diff --git a/.azurepipelines/artifacts-linux-test.yml b/.azurepipelines/artifacts-linux-test.yml
deleted file mode 100644
index b550d1614a..0000000000
--- a/.azurepipelines/artifacts-linux-test.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-jobs:
-- ${{ each distro in parameters.distros }}:
- - ${{ each dotnetVersion in parameters.dotnetVersions }}:
- - job:
- displayName: 'Artifacts Test ${{ distro }} ${{ dotnetVersion }} (${{ parameters.name }})'
- pool:
- vmImage: ${{ parameters.vmImage }}
- steps:
- - template: common-steps.yml
- parameters:
- includeArtifacts: true
- - pwsh: ./build.ps1 -target Artifacts-Test -DockerDistro ${{ distro }} -DockerDotnetVersion ${{ dotnetVersion }}
- displayName: '[Docker Test Artifacts ${{ distro }}_${{ dotnetVersion }}]'
diff --git a/.azurepipelines/artifacts-windows-test.yml b/.azurepipelines/artifacts-windows-test.yml
deleted file mode 100644
index 6c34d196f2..0000000000
--- a/.azurepipelines/artifacts-windows-test.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-jobs:
-- job: Artifacts_Test_MsBuild
- displayName: Artifacts Test MsBuild (Windows)
- pool:
- vmImage: windows-latest
- steps:
- - template: common-steps.yml
- parameters:
- includeArtifacts: true
- - pwsh: ./build.ps1 -target Artifacts-MsBuildFull-Test
- displayName: '[MsBuild Test Artifacts]'
-- job: Artifacts_Test_Commandline
- displayName: Artifacts Test Commandline (Windows)
- pool:
- vmImage: windows-latest
- steps:
- - template: common-steps.yml
- parameters:
- includeArtifacts: true
- - pwsh: ./build.ps1 -target Artifacts-Commandline-Test
- displayName: '[Commandline Test Artifacts]'
-- job: Artifacts_Test_Portable
- displayName: Artifacts Test Portable (Windows)
- pool:
- vmImage: windows-latest
- steps:
- - template: common-steps.yml
- parameters:
- includeArtifacts: true
- - pwsh: ./build.ps1 -target Artifacts-Portable-Test
- displayName: '[Portable Test Artifacts]'
\ No newline at end of file
diff --git a/.azurepipelines/build.yml b/.azurepipelines/build.yml
deleted file mode 100644
index 0e350faad6..0000000000
--- a/.azurepipelines/build.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-steps:
-- template: common-steps.yml
-- pwsh: ./build.ps1 -target Pack
- displayName: '[Cake build & pack]'
-- publish: $(System.DefaultWorkingDirectory)/artifacts
- displayName: 'Upload artifacts folder'
- condition: and(succeeded(), eq( variables['Agent.OS'], 'Windows_NT' ))
- artifact: storage
-- publish: $(System.DefaultWorkingDirectory)/artifacts/native
- displayName: 'Upload native folder'
- artifact: storage-$(VM_IMAGE)
diff --git a/.azurepipelines/common-steps.yml b/.azurepipelines/common-steps.yml
deleted file mode 100644
index 7734b3f14e..0000000000
--- a/.azurepipelines/common-steps.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-parameters:
-- name: includeArtifacts
- type: boolean
- default: false
-
-steps:
-- task: Cache@2
- inputs:
- key: 'v1-tools | "$(Agent.OS)" | build.cake'
- path: tools
- displayName: Cache Cake tools
-- task: Cache@2
- inputs:
- key: 'v1-dotnet | "$(Agent.OS)" | build/build.config'
- path: .dotnet
- displayName: Cache dotnet locally
-- ${{ if eq(parameters.includeArtifacts, true) }}:
- - task: DownloadPipelineArtifact@2
- displayName: 'Download artifacts folder'
- inputs:
- source: current
- path: $(Build.SourcesDirectory)/artifacts
- artifact: storage
diff --git a/.azurepipelines/docker.yml b/.azurepipelines/docker.yml
deleted file mode 100644
index 2447ee3fdf..0000000000
--- a/.azurepipelines/docker.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-jobs:
-- ${{ each distro in parameters.distros }}:
- - ${{ each dotnetVersion in parameters.dotnetVersions }}:
- - job:
- displayName: 'Docker ${{ distro }} ${{ dotnetVersion }} (${{ parameters.name }})'
- pool:
- vmImage: ${{ parameters.vmImage }}
- steps:
- - template: common-steps.yml
- parameters:
- includeArtifacts: true
- - pwsh: ./build.ps1 -target Publish-DockerHub -DockerDistro ${{ distro }} -DockerDotnetVersion ${{ dotnetVersion }}
- displayName: '[Docker build & Test ${{ distro }} ${{ dotnetVersion }}]'
- env:
- DOCKER_USERNAME: $(DOCKER_USERNAME)
- DOCKER_PASSWORD: $(DOCKER_PASSWORD)
- ENABLED_PUBLISH_DOCKER: $(ENABLED_PUBLISH_DOCKER)
diff --git a/.azurepipelines/publish.yml b/.azurepipelines/publish.yml
deleted file mode 100644
index e1ba2c7ae2..0000000000
--- a/.azurepipelines/publish.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-parameters:
-- name: taskName # defaults for any parameters that aren't specified
- default: ''
-
-steps:
-- template: common-steps.yml
- parameters:
- includeArtifacts: true
-- pwsh: ./build.ps1 -target Publish-${{ parameters.taskName }}
- displayName: '[Publish]'
- env:
- GITHUB_TOKEN: $(GITHUB_TOKEN)
- NUGET_API_KEY: $(NUGET_API_KEY)
- NUGET_API_URL: $(NUGET_API_URL)
- CHOCOLATEY_API_KEY: $(CHOCOLATEY_API_KEY)
- CHOCOLATEY_API_URL: $(CHOCOLATEY_API_URL)
- ENABLED_PUBLISH_NUGET: $(ENABLED_PUBLISH_NUGET)
- ENABLED_PUBLISH_CHOCOLATEY: $(ENABLED_PUBLISH_CHOCOLATEY)
- DOTNET_ROLL_FORWARD_ON_NO_CANDIDATE_FX: 2
diff --git a/.azurepipelines/release.yml b/.azurepipelines/release.yml
deleted file mode 100644
index 0ad9bd3c0f..0000000000
--- a/.azurepipelines/release.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-parameters:
- oses: ['windows', 'ubuntu', 'macos']
-steps:
-- template: common-steps.yml
- parameters:
- includeArtifacts: true
-- ${{ each os in parameters.oses }}:
- - task: DownloadPipelineArtifact@2
- displayName: 'Download ${{os}} native folder'
- inputs:
- source: current
- path: $(Build.SourcesDirectory)/artifacts/native
- artifact: storage-${{os}}-latest
-- pwsh: ./build.ps1 -target Release
- displayName: '[Release]'
- env:
- GITHUB_TOKEN: $(GITHUB_TOKEN)
- ENABLED_PUBLISH_RELEASE: $(ENABLED_PUBLISH_RELEASE)
diff --git a/.azurepipelines/test.yml b/.azurepipelines/test.yml
deleted file mode 100644
index 9ebbdffef1..0000000000
--- a/.azurepipelines/test.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-steps:
-- template: common-steps.yml
-- pwsh: ./build.ps1 -target Test
- displayName: '[Run Test]'
- env:
- ENABLED_UNIT_TESTS: $(ENABLED_UNIT_TESTS)
- CODECOV_TOKEN: $(CODECOV_TOKEN)
diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
new file mode 100644
index 0000000000..3ad6694334
--- /dev/null
+++ b/.config/dotnet-tools.json
@@ -0,0 +1,18 @@
+{
+ "version": 1,
+ "isRoot": true,
+ "tools": {
+ "gitreleasemanager.tool": {
+ "version": "0.20.0",
+ "commands": [
+ "dotnet-gitreleasemanager"
+ ]
+ },
+ "wyam2": {
+ "version": "3.0.0",
+ "commands": [
+ "wyam2"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
index f6b9fc4559..df058170ac 100644
--- a/.devcontainer/Dockerfile
+++ b/.devcontainer/Dockerfile
@@ -1,8 +1,4 @@
-# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.202.5/containers/dotnet/.devcontainer/base.Dockerfile
-
-# [Choice] .NET version: 6.0, 5.0, 3.1, 6.0-bullseye, 5.0-bullseye, 3.1-bullseye, 6.0-focal, 5.0-focal, 3.1-focal
-ARG VARIANT="6.0-bullseye-slim"
-FROM mcr.microsoft.com/vscode/devcontainers/dotnet:0-${VARIANT}
+FROM mcr.microsoft.com/devcontainers/dotnet:dev-9.0
# [Optional] Uncomment this section to install additional OS packages.
# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index 31d2b11306..69b116d50b 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -1,42 +1,55 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.202.5/containers/dotnet
{
- "name": "C# (.NET)",
- "runArgs": ["--init"],
- "build": {
- "dockerfile": "Dockerfile",
- "args": {
- "VARIANT": "6.0",
- }
- },
-
- // Set *default* container specific settings.json values on container create.
- "settings": {
- "editor.fontFamily": "'Cascadia Code', Consolas, 'Courier New', monospace",
- "editor.rulers": [90],
- "cSpell.words": [
- "commiting",
- "gittools",
- "gitversion"
- ],
+ "name": "GitVersion",
+ "build": {
+ "dockerfile": "Dockerfile",
+ "context": "."
+ },
+ "features": {
+ "ghcr.io/devcontainers/features/common-utils:2": {
+ "installZsh": "true",
+ "username": "vscode",
+ "userUid": "1000",
+ "userGid": "1000",
+ "upgradePackages": "true"
+ },
+ "ghcr.io/devcontainers/features/git:1": {
+ "version": "os-provided",
+ "ppa": "false"
+ },
+ "ghcr.io/devcontainers/features/powershell:1": {
+ "version": "latest"
+ },
+ "ghcr.io/devcontainers/features/github-cli:1": {
+ "version": "latest"
+ },
+ "ghcr.io/devcontainers/features/docker-in-docker:2": {
+ "version": "latest"
+ }
+ },
+ "customizations": {
+ "vscode": {
+ "settings": {
+ "editor.fontFamily": "'Cascadia Code', Consolas, 'Courier New', monospace",
+ "editor.rulers": [ 90 ],
+ "cSpell.words": [
+ "commiting",
+ "gittools",
+ "gitversion"
+ ]
+ },
+ // Add the IDs of extensions you want installed when the container is created.
+ "extensions": [
+ "ms-dotnettools.csdevkit",
+ "EditorConfig.EditorConfig",
+ "streetsidesoftware.code-spell-checker"
+ ]
+ }
},
- // Add the IDs of extensions you want installed when the container is created.
- "extensions": [
- "ms-dotnettools.csharp",
- "EditorConfig.EditorConfig",
- "streetsidesoftware.code-spell-checker"
- ],
-
- "postCreateCommand": "dotnet restore src; dotnet build build",
+ "postCreateCommand": "dotnet restore src; dotnet build build",
- // Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
- "remoteUser": "vscode",
- "features": {
- "docker-in-docker": "latest",
- "git": "latest",
- "github-cli": "latest",
- "sshd": "latest",
- "powershell": "latest"
- }
+ // Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
+ "remoteUser": "vscode"
}
diff --git a/.editorconfig b/.editorconfig
index b1965ff726..f199d80f9e 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -1,16 +1,21 @@
+root = true
# http://editorconfig.org
# top-most EditorConfig file
-root = true
[*]
indent_style = space
indent_size = 4
end_of_line = lf
-charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
+# Microsoft .NET properties
+dotnet_style_qualification_for_event = false:none
+dotnet_style_qualification_for_field = false:none
+dotnet_style_qualification_for_method = false:none
+dotnet_style_qualification_for_property = false:none
+
[*.yml]
indent_size = 2
@@ -59,18 +64,12 @@ dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
dotnet_style_prefer_inferred_tuple_names = true:suggestion
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:warning
dotnet_style_prefer_simplified_interpolation = true:suggestion
-
-# Dispose rules (CA2000 and CA2213) ported to IDE analyzers. We already execute the CA rules on the repo, so disable the IDE ones.
-dotnet_diagnostic.IDE0067.severity = none
-dotnet_diagnostic.IDE0068.severity = none
-dotnet_diagnostic.IDE0069.severity = none
-
#### C# Coding Conventions ####
# Prefer "var" everywhere
-csharp_style_var_for_built_in_types = true:silent
-csharp_style_var_when_type_is_apparent = true:silent
-csharp_style_var_elsewhere = true:silent
+csharp_style_var_for_built_in_types = true:suggestion
+csharp_style_var_when_type_is_apparent = true:suggestion
+csharp_style_var_elsewhere = true:suggestion
# Prefer method-like constructs to have a block body, except for lambdas
csharp_style_expression_bodied_methods = true:warning
@@ -152,38 +151,29 @@ csharp_space_between_method_call_parameter_list_parentheses = false
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
csharp_space_between_method_declaration_name_and_open_parenthesis = false
csharp_space_between_method_declaration_parameter_list_parentheses = false
-csharp_space_between_parentheses = false
csharp_space_between_square_brackets = false
+resharper_csharp_use_roslyn_logic_for_evident_types = true
+
# Alignment
-align_multiline_parameter = true
+resharper_csharp_align_multiline_parameter = true
# Qualify fields with "this."
-csharp_instance_members_qualify_members = field
-
-# IDE0011: Add braces
-dotnet_diagnostic.IDE0011.severity = none
-
-# IDE0090: Use 'new(...)'
-dotnet_diagnostic.IDE0090.severity = warning
+resharper_csharp_instance_members_qualify_members = field
-# IDE0041: Use 'is null' check
-dotnet_diagnostic.IDE0041.severity = warning
+# IDE0005: Using directive is unnecessary.
+dotnet_diagnostic.ide0005.severity = warning
-# CA1825: Avoid zero-length array allocations
-dotnet_diagnostic.CA1825.severity = warning
+# RCS1037: Remove trailing white-space.
+dotnet_diagnostic.rcs1037.severity = error
-# CA1822: Mark members as static
-dotnet_diagnostic.CA1822.severity = warning
+# RCS1036: Remove redundant empty line.
+dotnet_diagnostic.rcs1036.severity = error
-# CA2208: Instantiate argument exceptions correctly
-dotnet_diagnostic.CA2208.severity = warning
+xml_space_before_self_closing = true
-# CA1810: Initialize reference type static fields inline
-dotnet_diagnostic.CA1810.severity = warning
+resharper_arrange_object_creation_when_type_not_evident_highlighting = none
-# CA1816: Dispose methods should call SuppressFinalize
-dotnet_diagnostic.CA1816.severity = warning
+resharper_unused_auto_property_accessor_global_highlighting = none
-# IDE0005: Using directive is unnecessary.
-dotnet_diagnostic.IDE0005.severity = warning
+resharper_unused_method_return_value_global_highlighting = none
diff --git a/.gitattributes b/.gitattributes
index 9a5cb22250..14ce78d666 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -11,6 +11,7 @@
# Custom for Visual Studio
*.cs diff=csharp
*.sln
+*.slnx
*.csproj
*.vbproj
*.fsproj
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
deleted file mode 100644
index 19839b4122..0000000000
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ /dev/null
@@ -1,49 +0,0 @@
----
-name: Bug report
-about: Create a report to help us improve
-title: "[Bug]"
-labels: bug
-assignees: ''
-
----
-
-**Describe the bug**
-A clear and concise description of what the bug is.
-
-## Expected Behavior
-
-
-## Actual Behavior
-
-
-## Possible Fix
-
-
-## Steps to Reproduce
-
-
-## Context
-
-
-## Your Environment
-
-
-
-- Version Used:
-- Operating System and version (Windows 10, Ubuntu 18.04):
-- Link to your project:
-- Link to your CI build (if appropriate):
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index 6a58a1674f..a0369f2732 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -1,5 +1,5 @@
blank_issues_enabled: false
contact_links:
- - name: Gitter Community Chat
- url: https://gitter.im/GitTools/GitVersion
- about: Please ask and answer questions here.
\ No newline at end of file
+- name: Ask for help or share ideas
+ url: https://github.com/GitTools/GitVersion/discussions/new/choose
+ about: Ask the community for help or share ideas for new features.
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/documentation.md b/.github/ISSUE_TEMPLATE/documentation.md
deleted file mode 100644
index 597757df8a..0000000000
--- a/.github/ISSUE_TEMPLATE/documentation.md
+++ /dev/null
@@ -1,10 +0,0 @@
----
-name: Documentation
-about: Describe this issue template's purpose here.
-title: "[Docs]"
-labels: documentation
-assignees: ''
-
----
-
-
diff --git a/.github/ISSUE_TEMPLATE/failing-test.md b/.github/ISSUE_TEMPLATE/failing-test.md
deleted file mode 100644
index 252723f267..0000000000
--- a/.github/ISSUE_TEMPLATE/failing-test.md
+++ /dev/null
@@ -1,22 +0,0 @@
----
-name: Failing test
-about: Describe this issue template's purpose here.
-title: "[Failing test]"
-labels: failing test case
-assignees: ''
-
----
-
-**Describe the bug**
-A clear and concise description of what the bug is or a link to it
-
-## Test code
-
-```csharp
-using var fixture = new EmptyRepositoryFixture();
-fixture.Repository.MakeACommit();
-fixture.BranchTo("develop");
-fixture.Repository.MakeCommits(3);
-
-fixture.AssertFullSemver("0.1.0-alpha.1");
-```
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
deleted file mode 100644
index 1714c54078..0000000000
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ /dev/null
@@ -1,35 +0,0 @@
----
-name: Feature request
-about: Suggest an idea for this project
-title: "[Feature]"
-labels: feature
-assignees: ''
-
----
-
-**Is your feature request related to a problem? Please describe.**
-A clear and concise description of what the problem is. Ex. I'm always
-frustrated when [...]
-
-## Detailed Description
-
-
-## Context
-
-
-
-## Possible Implementation
-
diff --git a/.github/ISSUE_TEMPLATE/improvement-request.md b/.github/ISSUE_TEMPLATE/improvement-request.md
deleted file mode 100644
index eb0b004e01..0000000000
--- a/.github/ISSUE_TEMPLATE/improvement-request.md
+++ /dev/null
@@ -1,21 +0,0 @@
----
-name: Improvement request
-about: Describe this issue template's purpose here.
-title: "[Improvement]"
-labels: improvement
-assignees: ''
-
----
-
-**Is your improvement request related to a problem? Please describe.**
-A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
-
-## Detailed Description
-
-
-## Context
-
-
-
-## Possible Implementation
-
diff --git a/.github/ISSUE_TEMPLATE/issue-report.yml b/.github/ISSUE_TEMPLATE/issue-report.yml
new file mode 100644
index 0000000000..5e174295a5
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/issue-report.yml
@@ -0,0 +1,73 @@
+name: 🐞 Bug/Issue report
+description: Create a report to help us improve
+title: "[ISSUE]:
"
+labels: ["needs triage"]
+body:
+- type: checkboxes
+ attributes:
+ label: Prerequisites
+ options:
+ - label: I have written a descriptive issue title
+ required: true
+ - label: I have searched [issues](https://github.com/GitTools/GitVersion/issues) to ensure it has not already been reported
+ required: true
+- type: dropdown
+ attributes:
+ label: GitVersion package
+ options:
+ - GitVersion.Tool
+ - GitVersion.MsBuild
+ - GitVersion.Portable
+ - gittools/actions
+ - AzureDevops task
+ - N/A
+ multiple: true
+ validations:
+ required: true
+- type: input
+ attributes:
+ label: GitVersion version
+ validations:
+ required: true
+- type: dropdown
+ attributes:
+ label: Operating system
+ options:
+ - Linux
+ - Windows
+ - macOS
+ - N/A
+ multiple: true
+ validations:
+ required: true
+- type: textarea
+ attributes:
+ label: What are you seeing?
+ description: Describe the issue you are seeing
+ validations:
+ required: true
+- type: textarea
+ attributes:
+ label: What is expected?
+ description: Describe what you would expect
+ validations:
+ required: true
+- type: textarea
+ attributes:
+ label: Steps to Reproduce
+ description: List of steps or sample project to reproduce the issue
+ validations:
+ required: true
+- type: textarea
+ attributes:
+ label: RepositoryFixture Test
+ description: If you are able to write your bug or scenario up as a `RepositoryFixture` test and submit a pull-request with it, it is going to increase the likelyhood of the bug being fixed. Make sure there is no sensitive data shared and that you place a stack trace inside a code (```csharp) block to avoid formatting issues.
+ validations:
+ required: false
+- type: textarea
+ attributes:
+ label: Output log or link to your CI build (if appropriate).
+ description: Log messages you receive when running. Make sure there is no sensitive data shared. No need for backticks here.
+ render: shell
+ validations:
+ required: false
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 35967a1a21..4f351aa9c3 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -1,30 +1,43 @@
## Description
+
## Related Issue
+
+
+
+
## Motivation and Context
+
## How Has This Been Tested?
+
+
+
## Screenshots (if appropriate):
+
+
## Checklist:
+
+
-- [ ] My code follows the code style of this project.
-- [ ] My change requires a change to the documentation.
-- [ ] I have updated the documentation accordingly.
-- [ ] I have added tests to cover my changes.
-- [ ] All new and existing tests passed.
+* \[ ] My code follows the code style of this project.
+* \[ ] My change requires a change to the documentation.
+* \[ ] I have updated the documentation accordingly.
+* \[ ] I have added tests to cover my changes.
+* \[ ] All new and existing tests passed.
diff --git a/.github/actions/artifacts-attest/action.yml b/.github/actions/artifacts-attest/action.yml
new file mode 100644
index 0000000000..7722489c36
--- /dev/null
+++ b/.github/actions/artifacts-attest/action.yml
@@ -0,0 +1,13 @@
+name: 'Artifacts attestation'
+description: 'Artifacts attestation'
+
+runs:
+ using: 'composite'
+ steps:
+ -
+ name: 'Attestation'
+ uses: actions/attest-build-provenance@v2.0.1
+ with:
+ subject-path: |
+ ${{ github.workspace }}/artifacts/packages/native
+ ${{ github.workspace }}/artifacts/packages/nuget
\ No newline at end of file
diff --git a/.github/actions/artifacts-restore/action.yml b/.github/actions/artifacts-restore/action.yml
new file mode 100644
index 0000000000..acca453639
--- /dev/null
+++ b/.github/actions/artifacts-restore/action.yml
@@ -0,0 +1,30 @@
+name: 'Artifacts restore'
+description: 'Artifacts restore'
+
+runs:
+ using: 'composite'
+ steps:
+ -
+ uses: actions/download-artifact@v4
+ name: Download native linux packages
+ with:
+ name: native-Linux
+ path: ${{ github.workspace }}/artifacts/packages/native
+ -
+ uses: actions/download-artifact@v4
+ name: Download native windows packages
+ with:
+ name: native-Windows
+ path: ${{ github.workspace }}/artifacts/packages/native
+ -
+ uses: actions/download-artifact@v4
+ name: Download native macos packages
+ with:
+ name: native-macOS
+ path: ${{ github.workspace }}/artifacts/packages/native
+ -
+ uses: actions/download-artifact@v4
+ name: Download nuget packages
+ with:
+ name: nuget
+ path: ${{ github.workspace }}/artifacts/packages/nuget
\ No newline at end of file
diff --git a/.github/actions/cache-restore/action.yml b/.github/actions/cache-restore/action.yml
new file mode 100644
index 0000000000..3a3487843b
--- /dev/null
+++ b/.github/actions/cache-restore/action.yml
@@ -0,0 +1,25 @@
+name: 'Cache restore'
+description: 'Cache restore'
+
+runs:
+ using: 'composite'
+ steps:
+ -
+ name: Use cached cake frosting
+ id: cache-cake
+ uses: actions/cache@v4
+ with:
+ path: run
+ key: run-${{ runner.os }}-${{ hashFiles('./build/**') }}
+ -
+ name: Use cached tools
+ id: cache-tools
+ uses: actions/cache@v4
+ with:
+ path: tools
+ key: tools-${{ runner.os }}-${{ hashFiles('./build/**') }}
+ -
+ name: Setup .NET SDK
+ uses: actions/setup-dotnet@v4
+ with:
+ global-json-file: global.json
\ No newline at end of file
diff --git a/.github/actions/docker-manifests/action.yml b/.github/actions/docker-manifests/action.yml
new file mode 100644
index 0000000000..23de24c989
--- /dev/null
+++ b/.github/actions/docker-manifests/action.yml
@@ -0,0 +1,52 @@
+name: 'Docker Manifests'
+description: 'Docker Publish Manifests'
+inputs:
+ docker_distro:
+ description: 'Linux Distro'
+ required: true
+ dotnet_version:
+ description: '.net version'
+ required: true
+ docker_registry_username:
+ description: 'DockerHub Registry Username'
+ required: true
+ docker_registry_password:
+ description: 'DockerHub Registry Password'
+ required: true
+ github_registry_username:
+ description: 'GitHub Registry Username'
+ required: true
+ github_registry_password:
+ description: 'GitHub Registry Password'
+ required: true
+
+runs:
+ using: 'composite'
+ steps:
+ -
+ name: Login to DockerHub
+ uses: docker/login-action@v3
+ with:
+ username: ${{ inputs.docker_registry_username }}
+ password: ${{ inputs.docker_registry_password }}
+ -
+ name: '[Docker Publish Manifests] DockerHub'
+ shell: pwsh
+ run: |
+ dotnet run/docker.dll `
+ --target=DockerManifest --arch=amd64 --arch=arm64 --dotnet_version=${{ inputs.dotnet_version }} `
+ --docker_distro=${{ inputs.docker_distro }} --docker_registry dockerhub
+ -
+ name: Login to GitHub
+ uses: docker/login-action@v3
+ with:
+ registry: ghcr.io
+ username: ${{ inputs.github_registry_username }}
+ password: ${{ inputs.github_registry_password }}
+ -
+ name: '[Docker Publish Manifests] GitHub'
+ shell: pwsh
+ run: |
+ dotnet run/docker.dll `
+ --target=DockerManifest --arch=amd64 --arch=arm64 --dotnet_version=${{ inputs.dotnet_version }} `
+ --docker_distro=${{ inputs.docker_distro }} --docker_registry github
diff --git a/.github/actions/docker-publish/action.yml b/.github/actions/docker-publish/action.yml
new file mode 100644
index 0000000000..e5f2e05757
--- /dev/null
+++ b/.github/actions/docker-publish/action.yml
@@ -0,0 +1,55 @@
+name: 'Docker Publish'
+description: 'Docker Publish Images'
+inputs:
+ arch:
+ description: 'Docker architecture'
+ required: true
+ docker_distro:
+ description: 'Linux Distro'
+ required: true
+ dotnet_version:
+ description: '.net version'
+ required: true
+ docker_registry_username:
+ description: 'DockerHub Registry Username'
+ required: true
+ docker_registry_password:
+ description: 'DockerHub Registry Password'
+ required: true
+ github_registry_username:
+ description: 'GitHub Registry Username'
+ required: true
+ github_registry_password:
+ description: 'GitHub Registry Password'
+ required: true
+
+runs:
+ using: 'composite'
+ steps:
+ -
+ name: Login to DockerHub
+ uses: docker/login-action@v3
+ with:
+ username: ${{ inputs.docker_registry_username }}
+ password: ${{ inputs.docker_registry_password }}
+ -
+ name: '[Docker Publish] DockerHub'
+ shell: pwsh
+ run: |
+ dotnet run/docker.dll `
+ --target=DockerPublish --arch=${{ inputs.arch }} --dotnet_version=${{ inputs.dotnet_version }} `
+ --docker_distro=${{ inputs.docker_distro }} --docker_registry dockerhub --verbosity=diagnostic
+ -
+ name: Login to GitHub
+ uses: docker/login-action@v3
+ with:
+ registry: ghcr.io
+ username: ${{ inputs.github_registry_username }}
+ password: ${{ inputs.github_registry_password }}
+ -
+ name: '[Docker Publish] GitHub'
+ shell: pwsh
+ run: |
+ dotnet run/docker.dll `
+ --target=DockerPublish --arch=${{ inputs.arch }} --dotnet_version=${{ inputs.dotnet_version }} `
+ --docker_distro=${{ inputs.docker_distro }} --docker_registry github --verbosity=diagnostic
diff --git a/.github/actions/docker-setup/action.yml b/.github/actions/docker-setup/action.yml
new file mode 100644
index 0000000000..7b75cebdfd
--- /dev/null
+++ b/.github/actions/docker-setup/action.yml
@@ -0,0 +1,16 @@
+name: 'Docker Setup'
+description: 'Setups the docker engine'
+
+runs:
+ using: 'composite'
+ steps:
+ - name: Set up Docker
+ uses: docker/setup-docker-action@v4
+ with:
+ daemon-config: '{ "features": { "containerd-snapshotter": true } }'
+ - name: Setup Docker Buildx
+ uses: docker/setup-buildx-action@v3
+ with:
+ version: 'latest'
+ driver-opts: 'image=moby/buildkit:buildx-stable-1'
+ install: true
diff --git a/.github/actions/docker-test/action.yml b/.github/actions/docker-test/action.yml
new file mode 100644
index 0000000000..c7a747121f
--- /dev/null
+++ b/.github/actions/docker-test/action.yml
@@ -0,0 +1,30 @@
+name: 'Docker Test'
+description: 'Docker Test Images'
+inputs:
+ arch:
+ description: 'Docker architecture'
+ default: 'amd64'
+ docker_distro:
+ description: 'Linux Distro'
+ default: 'debian.12'
+ dotnet_version:
+ description: '.net version'
+ default: '8.0'
+
+runs:
+ using: 'composite'
+ steps:
+ -
+ name: '[Docker Build & Test] DockerHub'
+ shell: pwsh
+ run: |
+ dotnet run/docker.dll --target=DockerTest `
+ --arch=${{ inputs.arch }} --dotnet_version=${{ inputs.dotnet_version }} `
+ --docker_distro=${{ inputs.docker_distro }} --docker_registry dockerhub --verbosity=diagnostic
+ -
+ name: '[Docker Build & Test] GitHub'
+ shell: pwsh
+ run: |
+ dotnet run/docker.dll --target=DockerTest `
+ --arch=${{ inputs.arch }} --dotnet_version=${{ inputs.dotnet_version }} `
+ --docker_distro=${{ inputs.docker_distro }} --docker_registry github --verbosity=diagnostic
diff --git a/.github/chatmodes/plan.chatmode.md b/.github/chatmodes/plan.chatmode.md
new file mode 100644
index 0000000000..57ced4af97
--- /dev/null
+++ b/.github/chatmodes/plan.chatmode.md
@@ -0,0 +1,114 @@
+---
+description: 'Strategic planning and architecture assistant focused on thoughtful analysis before implementation. Helps developers understand codebases, clarify requirements, and develop comprehensive implementation strategies.'
+tools: ['codebase', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'problems', 'search', 'searchResults', 'usages', 'vscodeAPI']
+---
+
+# Plan Mode - Strategic Planning & Architecture Assistant
+
+You are a strategic planning and architecture assistant focused on thoughtful analysis before implementation. Your primary role is to help developers understand their codebase, clarify requirements, and develop comprehensive implementation strategies.
+
+## Core Principles
+
+**Think First, Code Later**: Always prioritize understanding and planning over immediate implementation. Your goal is to help users make informed decisions about their development approach.
+
+**Information Gathering**: Start every interaction by understanding the context, requirements, and existing codebase structure before proposing any solutions.
+
+**Collaborative Strategy**: Engage in dialogue to clarify objectives, identify potential challenges, and develop the best possible approach together with the user.
+
+## Your Capabilities & Focus
+
+### Information Gathering Tools
+- **Codebase Exploration**: Use the `codebase` tool to examine existing code structure, patterns, and architecture
+- **Search & Discovery**: Use `search` and `searchResults` tools to find specific patterns, functions, or implementations across the project
+- **Usage Analysis**: Use the `usages` tool to understand how components and functions are used throughout the codebase
+- **Problem Detection**: Use the `problems` tool to identify existing issues and potential constraints
+- **Test Analysis**: Use `findTestFiles` to understand testing patterns and coverage
+- **External Research**: Use `fetch` to access external documentation and resources
+- **Repository Context**: Use `githubRepo` to understand project history and collaboration patterns
+- **VSCode Integration**: Use `vscodeAPI` and `extensions` tools for IDE-specific insights
+- **External Services**: Use MCP tools like `mcp-atlassian` for project management context and `browser-automation` for web-based research
+
+### Planning Approach
+- **Requirements Analysis**: Ensure you fully understand what the user wants to accomplish
+- **Context Building**: Explore relevant files and understand the broader system architecture
+- **Constraint Identification**: Identify technical limitations, dependencies, and potential challenges
+- **Strategy Development**: Create comprehensive implementation plans with clear steps
+- **Risk Assessment**: Consider edge cases, potential issues, and alternative approaches
+
+## Workflow Guidelines
+
+### 1. Start with Understanding
+- Ask clarifying questions about requirements and goals
+- Explore the codebase to understand existing patterns and architecture
+- Identify relevant files, components, and systems that will be affected
+- Understand the user's technical constraints and preferences
+
+### 2. Analyze Before Planning
+- Review existing implementations to understand current patterns
+- Identify dependencies and potential integration points
+- Consider the impact on other parts of the system
+- Assess the complexity and scope of the requested changes
+
+### 3. Develop Comprehensive Strategy
+- Break down complex requirements into manageable components
+- Propose a clear implementation approach with specific steps
+- Identify potential challenges and mitigation strategies
+- Consider multiple approaches and recommend the best option
+- Plan for testing, error handling, and edge cases
+
+### 4. Present Clear Plans
+- Provide detailed implementation strategies with reasoning
+- Include specific file locations and code patterns to follow
+- Suggest the order of implementation steps
+- Identify areas where additional research or decisions may be needed
+- Offer alternatives when appropriate
+
+## Best Practices
+
+### Information Gathering
+- **Be Thorough**: Read relevant files to understand the full context before planning
+- **Ask Questions**: Don't make assumptions - clarify requirements and constraints
+- **Explore Systematically**: Use directory listings and searches to discover relevant code
+- **Understand Dependencies**: Review how components interact and depend on each other
+
+### Planning Focus
+- **Architecture First**: Consider how changes fit into the overall system design
+- **Follow Patterns**: Identify and leverage existing code patterns and conventions
+- **Consider Impact**: Think about how changes will affect other parts of the system
+- **Plan for Maintenance**: Propose solutions that are maintainable and extensible
+
+### Communication
+- **Be Consultative**: Act as a technical advisor rather than just an implementer
+- **Explain Reasoning**: Always explain why you recommend a particular approach
+- **Present Options**: When multiple approaches are viable, present them with trade-offs
+- **Document Decisions**: Help users understand the implications of different choices
+
+## Interaction Patterns
+
+### When Starting a New Task
+1. **Understand the Goal**: What exactly does the user want to accomplish?
+2. **Explore Context**: What files, components, or systems are relevant?
+3. **Identify Constraints**: What limitations or requirements must be considered?
+4. **Clarify Scope**: How extensive should the changes be?
+
+### When Planning Implementation
+1. **Review Existing Code**: How is similar functionality currently implemented?
+2. **Identify Integration Points**: Where will new code connect to existing systems?
+3. **Plan Step-by-Step**: What's the logical sequence for implementation?
+4. **Consider Testing**: How can the implementation be validated?
+
+### When Facing Complexity
+1. **Break Down Problems**: Divide complex requirements into smaller, manageable pieces
+2. **Research Patterns**: Look for existing solutions or established patterns to follow
+3. **Evaluate Trade-offs**: Consider different approaches and their implications
+4. **Seek Clarification**: Ask follow-up questions when requirements are unclear
+
+## Response Style
+
+- **Conversational**: Engage in natural dialogue to understand and clarify requirements
+- **Thorough**: Provide comprehensive analysis and detailed planning
+- **Strategic**: Focus on architecture and long-term maintainability
+- **Educational**: Explain your reasoning and help users understand the implications
+- **Collaborative**: Work with users to develop the best possible solution
+
+Remember: Your role is to be a thoughtful technical advisor who helps users make informed decisions about their code. Focus on understanding, planning, and strategy development rather than immediate implementation.
diff --git a/.github/chatmodes/planner.chatmode.md b/.github/chatmodes/planner.chatmode.md
new file mode 100644
index 0000000000..baf3afb8ac
--- /dev/null
+++ b/.github/chatmodes/planner.chatmode.md
@@ -0,0 +1,14 @@
+---
+description: 'Generate an implementation plan for new features or refactoring existing code.'
+tools: ['codebase', 'fetch', 'findTestFiles', 'githubRepo', 'search', 'usages']
+---
+# Planning mode instructions
+You are in planning mode. Your task is to generate an implementation plan for a new feature or for refactoring existing code.
+Don't make any code edits, just generate a plan.
+
+The plan consists of a Markdown document that describes the implementation plan, including the following sections:
+
+* Overview: A brief description of the feature or refactoring task.
+* Requirements: A list of requirements for the feature or refactoring task.
+* Implementation Steps: A detailed list of steps to implement the feature or refactoring task.
+* Testing: A list of tests that need to be implemented to verify the feature or refactoring task.
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 7fda019add..87b6a493c0 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -1,22 +1,75 @@
version: 2
updates:
-- package-ecosystem: nuget
- labels:
- - "dependencies"
- commit-message:
- prefix: "(deps)"
- directory: "/"
- schedule:
- interval: daily
- open-pull-requests-limit: 10
- ignore:
- - dependency-name: "Microsoft.Build"
- versions: ["16.9.0", "16.11.0"]
-- package-ecosystem: github-actions
- labels:
- - "dependencies"
- commit-message:
- prefix: "(build deps)"
- directory: "/"
- schedule:
- interval: daily
+ - package-ecosystem: dotnet-sdk
+ labels:
+ - "dependencies"
+ commit-message:
+ prefix: "(sdk)"
+ directory: "/"
+ schedule:
+ interval: cron
+ cronjob: "0 12 * * *"
+ - package-ecosystem: nuget
+ labels:
+ - "dependencies"
+ commit-message:
+ prefix: "(deps)"
+ groups:
+ microsoft:
+ patterns:
+ - "Microsoft.*"
+ - "System.*"
+ Microsoft_CodeAnalysis:
+ patterns:
+ - "Microsoft.CodeAnalysis.*"
+ analyzers:
+ patterns:
+ - "*Analyzers"
+ serilog:
+ patterns:
+ - "Serilog.*"
+ nunit:
+ patterns:
+ - "NUnit.*"
+ LibGit2Sharp:
+ patterns:
+ - "LibGit2Sharp.*"
+ JsonSchemaNet:
+ patterns:
+ - "JsonSchemaNet.*"
+ directories:
+ - "/build"
+ - "/new-cli"
+ - "/src"
+ schedule:
+ interval: cron
+ cronjob: "0 12 * * *"
+ open-pull-requests-limit: 10
+
+ - package-ecosystem: github-actions
+ labels:
+ - "dependencies"
+ commit-message:
+ prefix: "(build deps)"
+ groups:
+ actions:
+ patterns:
+ - "actions/*"
+ directory: "/"
+ schedule:
+ interval: cron
+ cronjob: "0 12 * * *"
+
+ - package-ecosystem: npm
+ labels:
+ - "dependencies"
+ commit-message:
+ prefix: "(docs deps)"
+ groups:
+ remark:
+ patterns:
+ - "remark*"
+ directory: "/"
+ schedule:
+ interval: cron
+ cronjob: "0 12 1,15 * *"
diff --git a/.github/mergify.yml b/.github/mergify.yml
index a4c175a3eb..2a9dca3674 100644
--- a/.github/mergify.yml
+++ b/.github/mergify.yml
@@ -11,12 +11,6 @@ pull_request_rules:
- '#commits-behind=0' # Only merge up to date pull requests
- check-success=DotNet Format
- check-success=Release
- - check-success=Unit Test code (windows-latest, netcoreapp3.1)
- - check-success=Unit Test code (ubuntu-latest, netcoreapp3.1)
- - check-success=Unit Test code (macos-latest, netcoreapp3.1)
- - check-success=Unit Test code (windows-latest, net5.0)
- - check-success=Unit Test code (windows-latest, net5.0)
- - check-success=Unit Test code (windows-latest, net5.0)
- repository-full-name=GitTools/GitVersion # Don't auto-merge PRs in forks
actions:
merge:
diff --git a/.github/stale.yml b/.github/stale.yml
deleted file mode 100644
index b9f69483f9..0000000000
--- a/.github/stale.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-# Number of days of inactivity before an issue becomes stale
-daysUntilStale: 90
-
-# Number of days of inactivity before a stale issue is closed
-daysUntilClose: 30
-
-# Issues with these labels will never be considered stale
-exemptLabels:
- - pinned
- - security
- - bug
- - failing test case
- - help wanted
-
-# Set to true to ignore issues in a milestone (defaults to false)
-exemptMilestones: true
-
-# Set to true to ignore issues with an assignee (defaults to false)
-exemptAssignees: true
-
-# Label to use when marking an issue as stale
-staleLabel: stale
-
-# Comment to post when marking an issue as stale. Set to `false` to disable
-markComment: >
- This issue has been automatically marked as stale because it has not had
- recent activity. After 30 days from now, it will be closed if no further
- activity occurs. Thank you for your contributions.
-
-# Comment to post when closing a stale issue. Set to `false` to disable
-closeComment: false
diff --git a/.github/workflows/_artifacts_linux.yml b/.github/workflows/_artifacts_linux.yml
new file mode 100644
index 0000000000..140d4489a7
--- /dev/null
+++ b/.github/workflows/_artifacts_linux.yml
@@ -0,0 +1,60 @@
+on:
+ workflow_call:
+ inputs:
+ runner:
+ required: true
+ type: string
+ arch:
+ required: true
+ type: string
+ docker_distros:
+ required: true
+ type: string
+ dotnet_versions:
+ required: true
+ type: string
+
+env:
+ DOTNET_INSTALL_DIR: "./.dotnet"
+ DOTNET_ROLL_FORWARD: "Major"
+
+jobs:
+ artifacts:
+ name: ${{ matrix.docker_distro }} - net${{ matrix.dotnet_version }}
+ runs-on: ${{ inputs.runner }}
+ strategy:
+ fail-fast: false
+ matrix:
+ docker_distro: ${{ fromJson(inputs.docker_distros) }}
+ dotnet_version: ${{ fromJson(inputs.dotnet_versions) }}
+ steps:
+ -
+ name: Checkout
+ uses: actions/checkout@v5
+ with:
+ fetch-depth: 0
+ -
+ name: Restore State
+ uses: ./.github/actions/cache-restore
+ -
+ uses: actions/download-artifact@v6
+ name: Download nuget packages
+ with:
+ name: nuget
+ path: ${{ github.workspace }}/artifacts/packages/nuget
+ -
+ uses: actions/download-artifact@v6
+ name: Download native packages
+ with:
+ name: native-Linux
+ path: ${{ github.workspace }}/artifacts/packages/native
+ -
+ name: Set up Docker
+ uses: ./.github/actions/docker-setup
+ -
+ name: '[Test Artifacts]'
+ shell: pwsh
+ run: |
+ dotnet run/artifacts.dll `
+ --target=ArtifactsTest --arch=${{ inputs.arch }} --dotnet_version=${{ matrix.dotnet_version }} `
+ --docker_distro=${{ matrix.docker_distro }}
\ No newline at end of file
diff --git a/.github/workflows/_artifacts_windows.yml b/.github/workflows/_artifacts_windows.yml
new file mode 100644
index 0000000000..fb7c2e0696
--- /dev/null
+++ b/.github/workflows/_artifacts_windows.yml
@@ -0,0 +1,35 @@
+on:
+ workflow_call:
+
+env:
+ DOTNET_INSTALL_DIR: "./.dotnet"
+ DOTNET_ROLL_FORWARD: "Major"
+
+jobs:
+ artifacts:
+ name: ${{ matrix.package }}
+ runs-on: windows-2025
+ strategy:
+ fail-fast: false
+ matrix:
+ package: [ Executable, MsBuildFull ]
+
+ steps:
+ -
+ name: Checkout
+ uses: actions/checkout@v5
+ with:
+ fetch-depth: 0
+ -
+ name: Restore State
+ uses: ./.github/actions/cache-restore
+ -
+ uses: actions/download-artifact@v6
+ name: Download nuget packages
+ with:
+ name: nuget
+ path: ${{ github.workspace }}/artifacts/packages/nuget
+ -
+ name: '[Test Artifacts]'
+ shell: pwsh
+ run: dotnet run/artifacts.dll --target=Artifacts${{ matrix.package }}Test
diff --git a/.github/workflows/_build.yml b/.github/workflows/_build.yml
new file mode 100644
index 0000000000..c34e570287
--- /dev/null
+++ b/.github/workflows/_build.yml
@@ -0,0 +1,50 @@
+on:
+ workflow_call:
+
+env:
+ DOTNET_INSTALL_DIR: "./.dotnet"
+ DOTNET_ROLL_FORWARD: "Major"
+
+jobs:
+ build:
+ name: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [windows-2025, ubuntu-24.04, macos-15]
+
+ runs-on: ${{ matrix.os }}
+ steps:
+ -
+ name: Checkout
+ uses: actions/checkout@v5
+ with:
+ fetch-depth: 0
+ -
+ name: Restore State
+ uses: ./.github/actions/cache-restore
+ -
+ name: '[Build]'
+ shell: pwsh
+ run: dotnet run/build.dll --target=Package
+ -
+ name: 'Upload nuget packages'
+ uses: actions/upload-artifact@v5
+ if: matrix.os == 'windows-2025'
+ with:
+ name: nuget
+ path: ${{ github.workspace }}/artifacts/packages/nuget
+ -
+ name: 'Upload native packages'
+ uses: actions/upload-artifact@v5
+ if: matrix.os == 'windows-2025'
+ with:
+ name: native-${{ runner.os }}
+ path: ${{ github.workspace }}/artifacts/packages/native/*.zip
+ -
+ name: 'Upload native packages'
+ uses: actions/upload-artifact@v5
+ if: matrix.os != 'windows-2025'
+ with:
+ name: native-${{ runner.os }}
+ path: ${{ github.workspace }}/artifacts/packages/native/*.tar.gz
diff --git a/.github/workflows/_docker.yml b/.github/workflows/_docker.yml
new file mode 100644
index 0000000000..cd415edfa5
--- /dev/null
+++ b/.github/workflows/_docker.yml
@@ -0,0 +1,67 @@
+on:
+ workflow_call:
+ inputs:
+ runner:
+ required: true
+ type: string
+ arch:
+ required: true
+ type: string
+ docker_distros:
+ required: true
+ type: string
+ dotnet_versions:
+ required: true
+ type: string
+
+env:
+ DOTNET_INSTALL_DIR: "./.dotnet"
+ DOTNET_ROLL_FORWARD: "Major"
+
+jobs:
+ docker:
+ name: ${{ matrix.docker_distro }} - net${{ matrix.dotnet_version }}
+ runs-on: ${{ inputs.runner }}
+ strategy:
+ fail-fast: false
+ matrix:
+ docker_distro: ${{ fromJson(inputs.docker_distros) }}
+ dotnet_version: ${{ fromJson(inputs.dotnet_versions) }}
+ steps:
+ -
+ name: Checkout
+ uses: actions/checkout@v5
+ with:
+ fetch-depth: 0
+ -
+ name: Restore State
+ uses: ./.github/actions/cache-restore
+ -
+ uses: actions/download-artifact@v6
+ name: Download nuget packages
+ with:
+ name: nuget
+ path: ${{ github.workspace }}/artifacts/packages/nuget
+ -
+ name: Set up Docker
+ uses: ./.github/actions/docker-setup
+ -
+ name: Docker Test
+ if: success() && github.event_name == 'pull_request' || github.repository_owner != 'GitTools'
+ uses: ./.github/actions/docker-test
+ with:
+ arch: ${{ inputs.arch }}
+ docker_distro: ${{ matrix.docker_distro }}
+ dotnet_version: ${{ matrix.dotnet_version }}
+ -
+ name: Docker Publish
+ if: success() && github.event_name != 'pull_request' && github.repository_owner == 'GitTools' && github.ref_name == 'main'
+ uses: ./.github/actions/docker-publish
+ with:
+ arch: ${{ inputs.arch }}
+ docker_distro: ${{ matrix.docker_distro }}
+ dotnet_version: ${{ matrix.dotnet_version }}
+ docker_registry_username: ${{ secrets.DOCKER_USERNAME }}
+ docker_registry_password: ${{ secrets.DOCKER_PASSWORD }}
+ github_registry_username: ${{ github.repository_owner }}
+ github_registry_password: ${{ secrets.DOCKER_GITHUB_TOKEN }}
\ No newline at end of file
diff --git a/.github/workflows/_docker_manifests.yml b/.github/workflows/_docker_manifests.yml
new file mode 100644
index 0000000000..0fb895ec27
--- /dev/null
+++ b/.github/workflows/_docker_manifests.yml
@@ -0,0 +1,46 @@
+on:
+ workflow_call:
+ inputs:
+ docker_distros:
+ required: true
+ type: string
+ dotnet_versions:
+ required: true
+ type: string
+
+env:
+ DOTNET_INSTALL_DIR: "./.dotnet"
+ DOTNET_ROLL_FORWARD: "Major"
+
+jobs:
+ manifest:
+ name: ${{ matrix.docker_distro }} - net${{ matrix.dotnet_version }}
+ runs-on: ubuntu-24.04
+ strategy:
+ fail-fast: false
+ matrix:
+ docker_distro: ${{ fromJson(inputs.docker_distros) }}
+ dotnet_version: ${{ fromJson(inputs.dotnet_versions) }}
+ steps:
+ -
+ name: Checkout
+ uses: actions/checkout@v5
+ with:
+ fetch-depth: 0
+ -
+ name: Restore State
+ uses: ./.github/actions/cache-restore
+ -
+ name: Set up Docker
+ uses: ./.github/actions/docker-setup
+ -
+ name: Docker Manifests
+ if: success() && github.event_name != 'pull_request' && github.repository_owner == 'GitTools' && github.ref_name == 'main'
+ uses: ./.github/actions/docker-manifests
+ with:
+ docker_distro: ${{ matrix.docker_distro }}
+ dotnet_version: ${{ matrix.dotnet_version }}
+ docker_registry_username: ${{ secrets.DOCKER_USERNAME }}
+ docker_registry_password: ${{ secrets.DOCKER_PASSWORD }}
+ github_registry_username: ${{ github.repository_owner }}
+ github_registry_password: ${{ secrets.DOCKER_GITHUB_TOKEN }}
diff --git a/.github/workflows/_prepare.yml b/.github/workflows/_prepare.yml
new file mode 100644
index 0000000000..4a0abe2050
--- /dev/null
+++ b/.github/workflows/_prepare.yml
@@ -0,0 +1,72 @@
+on:
+ workflow_call:
+ outputs:
+ docker_distros:
+ description: 'List of Docker distros'
+ value: ${{ jobs.set_matrix.outputs.docker_distros }}
+ dotnet_versions:
+ description: 'List of .NET versions'
+ value: ${{ jobs.set_matrix.outputs.dotnet_versions }}
+
+env:
+ DOTNET_INSTALL_DIR: "./.dotnet"
+ DOTNET_ROLL_FORWARD: "Major"
+
+jobs:
+ prepare:
+ name: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [windows-2025, ubuntu-24.04, macos-15]
+
+ runs-on: ${{ matrix.os }}
+ steps:
+ -
+ name: Checkout
+ uses: actions/checkout@v5
+ -
+ name: Cache cake frosting
+ id: cache-cake
+ uses: actions/cache@v4
+ with:
+ path: run
+ key: run-${{ runner.os }}-${{ hashFiles('./build/**') }}
+ - name: Use cached tools
+ id: cache-tools
+ uses: actions/cache@v4
+ with:
+ path: tools
+ key: tools-${{ runner.os }}-${{ hashFiles('./build/**') }}
+ -
+ name: Setup .NET SDK
+ uses: actions/setup-dotnet@v5
+ with:
+ global-json-file: global.json
+ -
+ name: '[Build]'
+ if: steps.cache-cake.outputs.cache-hit != 'true'
+ run: dotnet build build/ --configuration=Release
+ -
+ name: '[Prepare]'
+ shell: pwsh
+ run: dotnet run/build.dll --target=BuildPrepare
+ set_matrix:
+ needs: [ prepare ]
+ name: Set Matrix
+ runs-on: ubuntu-24.04
+ outputs:
+ docker_distros: ${{ steps.set_matrix.outputs.docker_distros }}
+ dotnet_versions: ${{ steps.set_matrix.outputs.dotnet_versions }}
+ steps:
+ -
+ name: Checkout
+ uses: actions/checkout@v5
+ -
+ name: Restore State
+ uses: ./.github/actions/cache-restore
+ -
+ name: '[Matrix]'
+ id: set_matrix
+ shell: pwsh
+ run: dotnet run/config.dll --target=SetMatrix
\ No newline at end of file
diff --git a/.github/workflows/_publish.yml b/.github/workflows/_publish.yml
new file mode 100644
index 0000000000..864431558b
--- /dev/null
+++ b/.github/workflows/_publish.yml
@@ -0,0 +1,39 @@
+on:
+ workflow_call:
+
+env:
+ DOTNET_INSTALL_DIR: "./.dotnet"
+ DOTNET_ROLL_FORWARD: "Major"
+
+jobs:
+ publish:
+ name: ${{ matrix.taskName }}
+ runs-on: windows-2025
+ strategy:
+ fail-fast: false
+ matrix:
+ taskName: [ NuGet, Chocolatey ]
+
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}
+ CHOCOLATEY_API_KEY: ${{ secrets.CHOCOLATEY_API_KEY }}
+ steps:
+ -
+ name: Checkout
+ uses: actions/checkout@v5
+ with:
+ fetch-depth: 0
+ -
+ name: Restore State
+ uses: ./.github/actions/cache-restore
+ -
+ uses: actions/download-artifact@v6
+ name: Download nuget packages
+ with:
+ name: nuget
+ path: ${{ github.workspace }}/artifacts/packages/nuget
+ -
+ name: '[Publish]'
+ shell: pwsh
+ run: dotnet run/publish.dll --target=Publish${{ matrix.taskName }}
\ No newline at end of file
diff --git a/.github/workflows/_unit_tests.yml b/.github/workflows/_unit_tests.yml
new file mode 100644
index 0000000000..503646b45b
--- /dev/null
+++ b/.github/workflows/_unit_tests.yml
@@ -0,0 +1,42 @@
+on:
+ workflow_call:
+ inputs:
+ dotnet_versions:
+ required: true
+ type: string
+env:
+ DOTNET_INSTALL_DIR: "./.dotnet"
+ DOTNET_ROLL_FORWARD: "Major"
+
+jobs:
+ unit_test:
+ name: ${{ matrix.os }} - net${{ matrix.dotnet_version }}
+ env:
+ CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [windows-2025, ubuntu-24.04, macos-15]
+ dotnet_version: ${{ fromJson(inputs.dotnet_versions) }}
+
+ runs-on: ${{ matrix.os }}
+ steps:
+ -
+ name: Checkout
+ uses: actions/checkout@v5
+ with:
+ fetch-depth: 0
+ -
+ name: Restore State
+ uses: ./.github/actions/cache-restore
+ -
+ name: '[Unit Test]'
+ shell: pwsh
+ run: dotnet run/build.dll --target=Test --dotnet_version=${{ matrix.dotnet_version }}
+
+ -
+ name: Test Summary
+ uses: test-summary/action@v2.4
+ if: ${{ always() && matrix.dotnet_version == '9.0' }}
+ with:
+ paths: artifacts/test-results/*.results.xml
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 2a2da1be3b..2421ae3dd3 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -3,27 +3,30 @@ name: CI
on:
push:
branches:
- - main
- - 'fix/*'
- - 'feature/*'
- - 'support/*'
+ - main
+ - 'fix/*'
+ - 'feature/*'
+ - 'poc/*'
+ - 'support/*'
paths:
- - '**'
- - '!docs/**'
+ - '**'
+ - '!docs/**'
pull_request:
branches:
- - main
- - 'support/*'
+ - main
+ - 'support/*'
paths:
- - '**'
- - '!docs/**'
-
+ - '**'
+ - '!docs/**'
+ merge_group:
+ types: [checks_requested]
+
repository_dispatch:
- types: [release]
+ types: [ ci-release ]
env:
- DOTNET_ROLL_FORWARD_ON_NO_CANDIDATE_FX: 2
+ DOTNET_ROLL_FORWARD: "Major"
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
DOTNET_NOLOGO: 1
@@ -31,466 +34,127 @@ env:
ENABLED_DIAGNOSTICS: ${{ secrets.ENABLED_DIAGNOSTICS }}
permissions:
+ id-token: write
contents: read
packages: write
+ attestations: write
jobs:
prepare:
- name: Prepare Build
- runs-on: ${{ matrix.os }}
- strategy:
- matrix:
- os: [windows-latest, ubuntu-latest, macos-latest]
- fail-fast: false
-
- steps:
- -
- name: Checkout
- uses: actions/checkout@v3
- -
- name: Cache cake frosting
- id: cache-cake
- uses: actions/cache@v3.0.11
- with:
- path: run
- key: run-${{ runner.os }}-${{ hashFiles('./build/**') }}
- -
- name: Setup .NET SDK
- uses: actions/setup-dotnet@v3.0.2
- with:
- dotnet-version: '7.0.x'
- dotnet-quality: 'preview'
- -
- name: '[Prepare]'
- if: steps.cache-cake.outputs.cache-hit != 'true'
- run: dotnet build build/CI.sln --configuration=Release
-
+ name: Prepare
+ uses: ./.github/workflows/_prepare.yml
+
build:
- name: Build code & Package
- needs: [prepare]
- runs-on: ${{ matrix.os }}
- strategy:
- matrix:
- os: [windows-latest, ubuntu-latest, macos-latest]
- fail-fast: false
-
- steps:
- -
- name: Checkout
- uses: actions/checkout@v3
- with:
- fetch-depth: 0
- -
- name: Use cached cake frosting
- id: cache-cake
- uses: actions/cache@v3.0.11
- with:
- path: run
- key: run-${{ runner.os }}-${{ hashFiles('./build/**') }}
- -
- name: Use cached tools
- id: cache-tools
- uses: actions/cache@v3.0.11
- with:
- path: tools
- key: tools-${{ runner.os }}-${{ hashFiles('./build/**') }}
- -
- name: Setup .NET SDK
- uses: actions/setup-dotnet@v3.0.2
- with:
- dotnet-version: '7.0.x'
- dotnet-quality: 'preview'
- -
- name: '[Build]'
- shell: pwsh
- run: dotnet run/build.dll --target=Package
- -
- name: 'Upload nuget packages'
- uses: actions/upload-artifact@v3
- if: matrix.os == 'windows-latest'
- with:
- name: nuget
- path: ${{ github.workspace }}/artifacts/packages/nuget
- -
- name: 'Upload native packages'
- uses: actions/upload-artifact@v3
- if: matrix.os == 'windows-latest'
- with:
- name: native-${{ runner.os }}
- path: ${{ github.workspace }}/artifacts/packages/native/*.zip
- -
- name: 'Upload native packages'
- uses: actions/upload-artifact@v3
- if: matrix.os != 'windows-latest'
- with:
- name: native-${{ runner.os }}
- path: ${{ github.workspace }}/artifacts/packages/native/*.tar.gz
+ name: Build & Package
+ needs: [ prepare ]
+ uses: ./.github/workflows/_build.yml
unit_test:
- name: Unit Test code
- needs: [prepare]
- runs-on: ${{ matrix.os }}
- env:
- CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
- strategy:
- matrix:
- os: [windows-latest, ubuntu-latest, macos-latest]
- targetFramework: [net48, net5.0, net6.0, netcoreapp3.1]
- exclude:
- -
- os: 'ubuntu-latest'
- targetFramework: net48
- -
- os: 'macos-latest'
- targetFramework: net48
- fail-fast: false
-
- steps:
- -
- name: Checkout
- uses: actions/checkout@v3
- with:
- fetch-depth: 0
- -
- name: Use cached cake frosting
- id: cache-cake
- uses: actions/cache@v3.0.11
- with:
- path: run
- key: run-${{ runner.os }}-${{ hashFiles('./build/**') }}
- -
- name: Use cached tools
- id: cache-tools
- uses: actions/cache@v3.0.11
- with:
- path: tools
- key: tools-${{ runner.os }}-${{ hashFiles('./build/**') }}
- -
- name: Setup .NET SDK
- uses: actions/setup-dotnet@v3.0.2
- with:
- dotnet-version: '7.0.x'
- dotnet-quality: 'preview'
- -
- name: '[Unit Test]'
- shell: pwsh
- run: dotnet run/build.dll --target=Test --dotnet_target=${{ matrix.targetFramework }}
-
- # -
- # name: Test Summary
- # uses: test-summary/action@v1
- # with:
- # paths: artifacts/test-results/*.results.xml
- # if: always()
+ name: Test
+ needs: [ prepare ]
+ uses: ./.github/workflows/_unit_tests.yml
+ with:
+ dotnet_versions: ${{ needs.prepare.outputs.dotnet_versions }}
+ secrets: inherit
artifacts_windows_test:
- name: Test artifacts on windows
- needs: [build]
- runs-on: windows-latest
- strategy:
- matrix:
- package: [ Executable, MsBuildFull ]
- fail-fast: false
-
- steps:
- -
- name: Checkout
- uses: actions/checkout@v3
- with:
- fetch-depth: 0
- -
- name: Use cached cake frosting
- id: cache-cake
- uses: actions/cache@v3.0.11
- with:
- path: run
- key: run-${{ runner.os }}-${{ hashFiles('./build/**') }}
- -
- name: Use cached tools
- id: cache-tools
- uses: actions/cache@v3.0.11
- with:
- path: tools
- key: tools-${{ runner.os }}-${{ hashFiles('./build/**') }}
- -
- uses: actions/download-artifact@v3
- name: Download nuget packages
- with:
- name: nuget
- path: ${{ github.workspace }}/artifacts/packages/nuget
- -
- name: Setup .NET SDK
- uses: actions/setup-dotnet@v3.0.2
- with:
- dotnet-version: '7.0.x'
- dotnet-quality: 'preview'
- -
- name: '[Test Artifacts]'
- shell: pwsh
- run: dotnet run/artifacts.dll --target=Artifacts${{ matrix.package }}Test
+ name: Artifacts Windows
+ needs: [ build ]
+ uses: ./.github/workflows/_artifacts_windows.yml
artifacts_linux_test:
- name: Test artifacts in docker
- needs: [build]
- runs-on: ubuntu-latest
+ needs: [ prepare, build ]
+ name: Artifacts Linux (${{ matrix.arch }})
strategy:
- matrix:
- targetFramework: [ '3.1', '5.0', '6.0' ]
- distro: [ alpine.3.12, alpine.3.13, alpine.3.14, centos.7, centos.8, debian.9, debian.10, debian.11, fedora.33, ubuntu.18.04, ubuntu.20.04 ]
fail-fast: false
-
- steps:
- -
- name: Checkout
- uses: actions/checkout@v3
- with:
- fetch-depth: 0
- -
- name: Use cached cake frosting
- id: cache-cake
- uses: actions/cache@v3.0.11
- with:
- path: run
- key: run-${{ runner.os }}-${{ hashFiles('./build/**') }}
- -
- name: Use cached tools
- id: cache-tools
- uses: actions/cache@v3.0.11
- with:
- path: tools
- key: tools-${{ runner.os }}-${{ hashFiles('./build/**') }}
- -
- uses: actions/download-artifact@v3
- name: Download nuget packages
- with:
- name: nuget
- path: ${{ github.workspace }}/artifacts/packages/nuget
- -
- uses: actions/download-artifact@v3
- name: Download native packages
- with:
- name: native-${{ runner.os }}
- path: ${{ github.workspace }}/artifacts/packages/native
- -
- name: Setup QEMU
- uses: docker/setup-qemu-action@v2
- -
- name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v2
- with:
- install: true
- -
- name: Setup .NET SDK
- uses: actions/setup-dotnet@v3.0.2
- with:
- dotnet-version: '7.0.x'
- dotnet-quality: 'preview'
- -
- name: '[Test Artifacts (amd64)]'
- shell: pwsh
- run: dotnet run/artifacts.dll --target=ArtifactsTest --arch amd64 --docker_dotnetversion=${{ matrix.targetFramework }} --docker_distro=${{ matrix.distro }}
- -
- name: '[Test Artifacts (arm64)]'
- shell: pwsh
- run: dotnet run/artifacts.dll --target=ArtifactsTest --arch arm64 --docker_dotnetversion=${{ matrix.targetFramework }} --docker_distro=${{ matrix.distro }}
+ matrix:
+ include:
+ - arch: amd64
+ runner: ubuntu-24.04
+ - arch: arm64
+ runner: ubuntu-24.04-arm
+ uses: ./.github/workflows/_artifacts_linux.yml
+ with:
+ runner: ${{ matrix.runner }}
+ arch: ${{ matrix.arch }}
+ docker_distros: ${{ needs.prepare.outputs.docker_distros }}
+ dotnet_versions: ${{ needs.prepare.outputs.dotnet_versions }}
docker_linux_images:
- name: Build, Test and Publish Docker Images
- needs: [build]
- runs-on: ubuntu-latest
+ needs: [ prepare, build ]
+ name: Docker Images (${{ matrix.arch }})
strategy:
- matrix:
- targetFramework: [ '3.1', '5.0', '6.0' ]
- distro: [ alpine.3.12, alpine.3.13, alpine.3.14, centos.7, centos.8, debian.9, debian.10, debian.11, fedora.33, ubuntu.18.04, ubuntu.20.04 ]
fail-fast: false
-
- steps:
- -
- name: Checkout
- uses: actions/checkout@v3
- with:
- fetch-depth: 0
- -
- name: Use cached cake frosting
- id: cache-cake
- uses: actions/cache@v3.0.11
- with:
- path: run
- key: run-${{ runner.os }}-${{ hashFiles('./build/**') }}
- -
- name: Use cached tools
- id: cache-tools
- uses: actions/cache@v3.0.11
- with:
- path: tools
- key: tools-${{ runner.os }}-${{ hashFiles('./build/**') }}
- -
- uses: actions/download-artifact@v3
- name: Download nuget packages
- with:
- name: nuget
- path: ${{ github.workspace }}/artifacts/packages/nuget
- -
- name: Setup QEMU
- uses: docker/setup-qemu-action@v2
- -
- name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v2
- with:
- install: true
- -
- name: Setup .NET SDK
- uses: actions/setup-dotnet@v3.0.2
- with:
- dotnet-version: '7.0.x'
- dotnet-quality: 'preview'
- -
- name: Login to DockerHub
- if: success() && github.event_name != 'pull_request' && github.repository_owner == 'GitTools'
- uses: docker/login-action@v2
- with:
- username: ${{ secrets.DOCKER_USERNAME }}
- password: ${{ secrets.DOCKER_PASSWORD }}
- -
- name: '[Docker Build/Test/Publish (amd64)] DockerHub'
- if: success() && github.event_name != 'pull_request' && github.repository_owner == 'GitTools'
- shell: pwsh
- run: dotnet run/docker.dll --target=DockerPublish --arch amd64 --docker_dotnetversion=${{ matrix.targetFramework }} --docker_distro=${{ matrix.distro }} --docker_registry dockerhub
- -
- name: '[Docker Build/Test/Publish (arm64)] DockerHub'
- if: success() && github.event_name != 'pull_request' && github.repository_owner == 'GitTools'
- shell: pwsh
- run: dotnet run/docker.dll --target=DockerPublish --arch arm64 --docker_dotnetversion=${{ matrix.targetFramework }} --docker_distro=${{ matrix.distro }} --docker_registry dockerhub
- -
- name: '[Docker Publish Manifest] DockerHub'
- if: success() && github.event_name != 'pull_request' && github.repository_owner == 'GitTools'
- shell: pwsh
- run: dotnet run/docker.dll --target=DockerManifest --docker_dotnetversion=${{ matrix.targetFramework }} --docker_distro=${{ matrix.distro }} --docker_registry dockerhub
-
- -
- name: Login to GitHub Container Registry
- if: success() && github.event_name != 'pull_request' && github.repository_owner == 'GitTools'
- uses: docker/login-action@v2
- with:
- registry: ghcr.io
- username: ${{ github.repository_owner }}
- password: ${{ secrets.DOCKER_GITHUB_TOKEN }}
- -
- name: '[Docker Build/Test/Publish (amd64)] GitHub Container Registry'
- if: success() && github.event_name != 'pull_request' && github.repository_owner == 'GitTools'
- shell: pwsh
- run: dotnet run/docker.dll --target=DockerPublish --arch amd64 --docker_dotnetversion=${{ matrix.targetFramework }} --docker_distro=${{ matrix.distro }} --docker_registry github
- -
- name: '[Docker Build/Test/Publish (arm64)] GitHub Container Registry'
- if: success() && github.event_name != 'pull_request' && github.repository_owner == 'GitTools'
- shell: pwsh
- run: dotnet run/docker.dll --target=DockerPublish --arch arm64 --docker_dotnetversion=${{ matrix.targetFramework }} --docker_distro=${{ matrix.distro }} --docker_registry github
- -
- name: '[Docker Publish Manifest] GitHub Container Registry'
- if: success() && github.event_name != 'pull_request' && github.repository_owner == 'GitTools'
- shell: pwsh
- run: dotnet run/docker.dll --target=DockerManifest --docker_dotnetversion=${{ matrix.targetFramework }} --docker_distro=${{ matrix.distro }} --docker_registry github
+ matrix:
+ include:
+ - arch: amd64
+ runner: ubuntu-24.04
+ - arch: arm64
+ runner: ubuntu-24.04-arm
+
+ uses: ./.github/workflows/_docker.yml
+ with:
+ runner: ${{ matrix.runner }}
+ arch: ${{ matrix.arch }}
+ docker_distros: ${{ needs.prepare.outputs.docker_distros }}
+ dotnet_versions: ${{ needs.prepare.outputs.dotnet_versions }}
+ secrets: inherit
+
+ docker_linux_manifests:
+ needs: [ prepare, docker_linux_images ]
+ name: Docker Manifests
+ uses: ./.github/workflows/_docker_manifests.yml
+ with:
+ docker_distros: ${{ needs.prepare.outputs.docker_distros }}
+ dotnet_versions: ${{ needs.prepare.outputs.dotnet_versions }}
+ secrets: inherit
publish:
name: Publish
- needs: [artifacts_windows_test, artifacts_linux_test, docker_linux_images]
- runs-on: windows-latest
- strategy:
- matrix:
- taskName: [NuGet, Chocolatey]
- fail-fast: false
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}
- CHOCOLATEY_API_KEY: ${{ secrets.CHOCOLATEY_API_KEY }}
- steps:
- -
- name: Checkout
- uses: actions/checkout@v3
- with:
- fetch-depth: 0
- -
- name: Use cached cake frosting
- id: cache-cake
- uses: actions/cache@v3.0.11
- with:
- path: run
- key: run-${{ runner.os }}-${{ hashFiles('./build/**') }}
- -
- name: Use cached tools
- id: cache-tools
- uses: actions/cache@v3.0.11
- with:
- path: tools
- key: tools-${{ runner.os }}-${{ hashFiles('./build/**') }}
- -
- uses: actions/download-artifact@v3
- name: Download nuget packages
- with:
- name: nuget
- path: ${{ github.workspace }}/artifacts/packages/nuget
- -
- name: Setup .NET SDK
- uses: actions/setup-dotnet@v3.0.2
- with:
- dotnet-version: '7.0.x'
- dotnet-quality: 'preview'
- -
- name: '[Publish]'
- shell: pwsh
- run: dotnet run/publish.dll --target=Publish${{ matrix.taskName }}
+ needs: [ artifacts_windows_test, artifacts_linux_test ]
+ uses: ./.github/workflows/_publish.yml
+ secrets: inherit
release:
name: Release
- needs: [publish]
- runs-on: windows-latest
+ needs: [ publish, docker_linux_manifests ]
+ runs-on: windows-2025
env:
GITHUB_TOKEN: ${{ secrets.RELEASE_GITHUB_TOKEN }}
steps:
-
name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v5
with:
fetch-depth: 0
-
- name: Use cached cake frosting
- id: cache-cake
- uses: actions/cache@v3.0.11
- with:
- path: run
- key: run-${{ runner.os }}-${{ hashFiles('./build/**') }}
- -
- name: Use cached tools
- id: cache-tools
- uses: actions/cache@v3.0.11
- with:
- path: tools
- key: tools-${{ runner.os }}-${{ hashFiles('./build/**') }}
+ name: Restore State
+ uses: ./.github/actions/cache-restore
-
- uses: actions/download-artifact@v3
- name: Download native linux packages
- with:
- name: native-Linux
- path: ${{ github.workspace }}/artifacts/packages/native
- -
- uses: actions/download-artifact@v3
- name: Download native windows packages
- with:
- name: native-Windows
- path: ${{ github.workspace }}/artifacts/packages/native
+ name: Restore Artifacts
+ uses: ./.github/actions/artifacts-restore
-
- uses: actions/download-artifact@v3
- name: Download native macos packages
- with:
- name: native-macOS
- path: ${{ github.workspace }}/artifacts/packages/native
+ name: Attetstation
+ if: ${{ github.event_name == 'repository_dispatch' }}
+ uses: ./.github/actions/artifacts-attest
-
- name: Setup .NET SDK
- uses: actions/setup-dotnet@v3.0.2
- with:
- dotnet-version: '7.0.x'
- dotnet-quality: 'preview'
+ name: DockerHub Publish Readme
+ if: ${{ github.event_name == 'repository_dispatch' }}
+ shell: pwsh
+ run: dotnet run/docker.dll --target=DockerHubReadmePublish
+ env:
+ DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
+ DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
-
name: '[Release]'
shell: pwsh
run: dotnet run/release.dll --target=PublishRelease
+ -
+ name: '[Publish Release]'
+ if: ${{ github.event_name == 'repository_dispatch' }}
+ uses: peter-evans/repository-dispatch@v4
+ with:
+ token: ${{ secrets.RELEASE_GITHUB_TOKEN }}
+ repository: ${{ github.repository }}
+ event-type: publish-release
+ client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}", "tag": "${{ github.event.client_payload.tag }}"}'
\ No newline at end of file
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index ccdaab0e61..c53b7a4cd7 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -8,6 +8,8 @@ on:
paths:
- '**'
- '!docs/**'
+ - '!.github/**'
+ - .github/workflows/codeql-analysis.yml
pull_request:
branches:
@@ -16,12 +18,19 @@ on:
paths:
- '**'
- '!docs/**'
+ - '!.github/**'
+ - .github/workflows/codeql-analysis.yml
schedule:
- cron: '0 12 * * *'
permissions:
contents: read
+env:
+ DOTNET_ROLL_FORWARD: "Major"
+ DOTNET_CLI_TELEMETRY_OPTOUT: 1
+ DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
+ DOTNET_NOLOGO: 1
jobs:
analyze:
@@ -30,7 +39,7 @@ jobs:
contents: read # for actions/checkout to fetch code
security-events: write # for github/codeql-action/analyze to upload SARIF results
name: Analyze
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
strategy:
fail-fast: false
@@ -40,39 +49,37 @@ jobs:
steps:
-
name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Initialize CodeQL
- uses: github/codeql-action/init@v2
+ uses: github/codeql-action/init@v4
with:
languages: ${{ matrix.language }}
-
name: Cache cake frosting
id: cache-cake
- uses: actions/cache@v3.0.11
+ uses: actions/cache@v4
with:
path: run
key: run-${{ runner.os }}-${{ hashFiles('./build/**') }}
-
name: Setup .NET SDK
- uses: actions/setup-dotnet@v3.0.2
+ uses: actions/setup-dotnet@v5
with:
- dotnet-version: '7.0.x'
- dotnet-quality: 'preview'
-
+ global-json-file: global.json
-
name: '[Prepare]'
if: steps.cache-cake.outputs.cache-hit != 'true'
- run: dotnet build build/CI.sln --configuration=Release
+ run: dotnet build build/ --configuration=Release
-
name: '[Build]'
shell: pwsh
- run: dotnet run/build.dll --target=Build --exclusive
+ run: dotnet run/build.dll --target=BuildPrepare --exclusive
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@v2
+ uses: github/codeql-action/analyze@v4
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
index a0adf79364..f3874e8c13 100644
--- a/.github/workflows/docs.yml
+++ b/.github/workflows/docs.yml
@@ -2,10 +2,11 @@ name: Verify & Publish Docs
on:
workflow_dispatch:
+ repository_dispatch:
+ types: [ publish-release ]
push:
branches:
- # - main
- - 'support/*'
+ - main
paths:
- docs/**
- package*.json
@@ -15,8 +16,7 @@ on:
- .github/workflows/docs.yml
pull_request:
branches:
- # - main
- - 'support/*'
+ - main
paths:
- docs/**
- package*.json
@@ -25,34 +25,33 @@ on:
- mkdocs.yml
- .github/workflows/docs.yml
env:
- DOTNET_ROLL_FORWARD_ON_NO_CANDIDATE_FX: 2
+ DOTNET_ROLL_FORWARD: "Major"
+ DOTNET_CLI_TELEMETRY_OPTOUT: 1
+ DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
+ DOTNET_NOLOGO: 1
jobs:
prepare:
name: Prepare Build
- runs-on: ${{ matrix.os }}
- strategy:
- matrix:
- os: [windows-latest, ubuntu-latest]
- fail-fast: false
+ runs-on: ubuntu-24.04
steps:
-
name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v5
with:
fetch-depth: 0
-
name: Cache cake frosting
id: cache-cake
- uses: actions/cache@v3.0.11
+ uses: actions/cache@v4
with:
path: run
key: run-${{ runner.os }}-${{ hashFiles('./build/**') }}
-
name: Use cached tools
id: cache-tools
- uses: actions/cache@v3.0.11
+ uses: actions/cache@v4
with:
path: tools
key: tools-${{ runner.os }}-${{ hashFiles('./build/**') }}
@@ -66,52 +65,38 @@ jobs:
-
name: Cache Node Modules
id: cache-node
- uses: actions/cache@v3.0.11
+ uses: actions/cache@v4
with:
path: ${{ steps.cache-node-dir.outputs.dir }}
key: node-${{ runner.os }}-${{ hashFiles('./package-lock.json') }}
restore-keys: node-${{ runner.os }}
-
name: Setup .NET SDK
- uses: actions/setup-dotnet@v3.0.2
+ uses: actions/setup-dotnet@v5
with:
- dotnet-version: '7.0.x'
- dotnet-quality: 'preview'
+ global-json-file: global.json
-
- name: '[Prepare]'
+ name: '[Build]'
if: steps.cache-cake.outputs.cache-hit != 'true'
- run: dotnet build build/CI.sln --configuration=Release
+ run: dotnet build build/ --configuration=Release
+ -
+ name: '[Prepare]'
+ shell: pwsh
+ run: dotnet run/build.dll --target=BuildPrepare
validate:
name: Validates Html
- needs: [prepare]
- runs-on: ubuntu-latest
+ needs: [ prepare ]
+ runs-on: ubuntu-24.04
steps:
-
name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v5
with:
fetch-depth: 0
-
- name: Use cached cake frosting
- id: cache-cake
- uses: actions/cache@v3.0.11
- with:
- path: run
- key: run-${{ runner.os }}-${{ hashFiles('./build/**') }}
- -
- name: Use cached tools
- id: cache-tools
- uses: actions/cache@v3.0.11
- with:
- path: tools
- key: tools-${{ runner.os }}-${{ hashFiles('./build/**') }}
- -
- name: Setup .NET SDK
- uses: actions/setup-dotnet@v3.0.2
- with:
- dotnet-version: '7.0.x'
- dotnet-quality: 'preview'
+ name: Restore State
+ uses: ./.github/actions/cache-restore
-
name: '[Build Documentation]'
shell: pwsh
@@ -121,7 +106,7 @@ jobs:
uses: chabad360/htmlproofer@master
with:
directory: ./artifacts/docs/preview
- arguments: --ignore-urls /api/,/docs/ --allow-hash-href --assume-extension --disable-external
+ arguments: --ignore-urls /api/,/docs/,/5.12.0/ --allow-hash-href --allow-missing-href --assume-extension --disable-external --no-check_external_hash
-
name: '[Reviewdog Reporter]'
id: reporter
@@ -130,47 +115,34 @@ jobs:
echo "value=$value" >> $GITHUB_OUTPUT
-
name: '[Remark Lint]'
- uses: reviewdog/action-remark-lint@v5.6
+ uses: reviewdog/action-remark-lint@v5
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
reporter: ${{ steps.reporter.outputs.value }}
publish:
name: Publish docs
- needs: [validate]
- runs-on: windows-latest
+ needs: [ validate ]
+ runs-on: ubuntu-24.04
env:
GITHUB_TOKEN: ${{ secrets.RELEASE_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.actor }}
steps:
-
name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v5
with:
fetch-depth: 0
-
- name: Use cached cake frosting
- id: cache-cake
- uses: actions/cache@v3.0.11
- with:
- path: run
- key: run-${{ runner.os }}-${{ hashFiles('./build/**') }}
+ name: Restore State
+ uses: ./.github/actions/cache-restore
-
- name: Use cached tools
- id: cache-tools
- uses: actions/cache@v3.0.11
- with:
- path: tools
- key: tools-${{ runner.os }}-${{ hashFiles('./build/**') }}
- -
- name: Setup .NET SDK
- uses: actions/setup-dotnet@v3.0.2
- with:
- dotnet-version: '7.0.x'
- dotnet-quality: 'preview'
+ name: '[Build Schemas]'
+ shell: pwsh
+ run: dotnet run/docs.dll --target=GenerateSchemas
-
name: '[Publish Documentation]'
- if: ${{ github.event_name == 'push' }}
+ if: ${{ github.event_name == 'repository_dispatch' }}
shell: pwsh
run: dotnet run/docs.dll --target=PublishDocs
-
diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml
index 939f8213ea..ffe858459c 100644
--- a/.github/workflows/format.yml
+++ b/.github/workflows/format.yml
@@ -1,15 +1,17 @@
-name: Validate Commit
-
+name: Code Format
on:
push:
branches:
- main
- 'fix/*'
- 'feature/*'
+ - 'poc/*'
- 'support/*'
paths:
- '**'
- '!docs/**'
+ - '!.github/**'
+ - .github/workflows/format.yml
pull_request:
branches:
@@ -18,25 +20,34 @@ on:
paths:
- '**'
- '!docs/**'
+ - '!.github/**'
+ - .github/workflows/format.yml
permissions:
contents: read
+env:
+ DOTNET_ROLL_FORWARD: "Major"
+ DOTNET_CLI_TELEMETRY_OPTOUT: 1
+ DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
+ DOTNET_NOLOGO: 1
+
jobs:
format:
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
name: DotNet Format
steps:
- - uses: actions/checkout@v3
+ -
+ name: Checkout
+ uses: actions/checkout@v5
-
name: Setup .NET SDK
- uses: actions/setup-dotnet@v3.0.2
+ uses: actions/setup-dotnet@v5
with:
- dotnet-version: '7.0.x'
- dotnet-quality: 'preview'
+ global-json-file: global.json
-
- name: Run Format Build solution
+ name: Run Format 'ci' solution
run: dotnet format ./build/ --verify-no-changes
-
- name: Run Format GitVersion solution
+ name: Run Format 'GitVersion' solution
run: dotnet format ./src/ --exclude **/AddFormats/ --verify-no-changes
diff --git a/.github/workflows/homebrew.yml b/.github/workflows/homebrew.yml
index 18488c5185..12cfa22056 100644
--- a/.github/workflows/homebrew.yml
+++ b/.github/workflows/homebrew.yml
@@ -1,9 +1,14 @@
-name: Homebrew
+name: Publish to Homebrew
on:
workflow_dispatch:
+ inputs:
+ tag-name:
+ description: 'The git tag name to bump the formula to'
+ required: true
repository_dispatch:
- types: [release]
+ types: [ publish-release ]
+
permissions:
contents: read
@@ -14,10 +19,25 @@ jobs:
name: Bump Homebrew formula
runs-on: macos-latest
steps:
- - uses: dawidd6/action-homebrew-bump-formula@v3.8.0
- with:
- # GitHub token, required, not the default one
- token: ${{secrets.RELEASE_GITHUB_TOKEN}}
- # Formula name, required
- formula: gitversion
- tag: ${{ github.event.client_payload.ref }}
+ - name: Get version
+ id: get-version
+ shell: pwsh
+ run: |
+ $version = "${{ github.event.client_payload.tag }}"
+ if ($version -eq "") {
+ $version = "${{ github.event.inputs.tag-name }}"
+ }
+ "version=$version" >> $env:GITHUB_OUTPUT
+ -
+ uses: mislav/bump-homebrew-formula-action@v3
+ name: Bump Homebrew formula
+ with:
+ formula-name: gitversion
+ tag-name: ${{ steps.get-version.outputs.version }}
+ download-url: https://github.com/GitTools/GitVersion/archive/refs/tags/${{ steps.get-version.outputs.version }}.tar.gz
+ commit-message: |
+ {{formulaName}} {{version}}
+
+ For additional details see https://github.com/GitTools/GitVersion/releases/tag/${{ steps.get-version.outputs.version }}
+ env:
+ COMMITTER_TOKEN: ${{ secrets.RELEASE_GITHUB_TOKEN }}
\ No newline at end of file
diff --git a/.github/workflows/mkdocs.yml b/.github/workflows/mkdocs.yml
new file mode 100644
index 0000000000..02d394c8b7
--- /dev/null
+++ b/.github/workflows/mkdocs.yml
@@ -0,0 +1,54 @@
+name: Markdown Update
+on:
+ push:
+
+env:
+ DOTNET_ROLL_FORWARD: "Major"
+ DOTNET_CLI_TELEMETRY_OPTOUT: 1
+ DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
+ DOTNET_NOLOGO: 1
+
+defaults:
+ run:
+ shell: pwsh
+
+jobs:
+ docs:
+ name: Update Markdown (embedded snippets)
+ runs-on: ubuntu-24.04
+ steps:
+ -
+ name: Checkout
+ uses: actions/checkout@v5
+ if: github.event_name == 'push'
+ with:
+ token: ${{ secrets.PUSH_GITHUB_TOKEN }}
+ -
+ name: Checkout
+ uses: actions/checkout@v5
+ if: github.event_name == 'pull_request'
+ -
+ name: Setup .NET SDK
+ uses: actions/setup-dotnet@v5
+ with:
+ global-json-file: global.json
+ -
+ name: Run MarkdownSnippets
+ run: |
+ dotnet tool install --global MarkdownSnippets.Tool
+ mdsnippets --write-header false
+ working-directory: ${{ github.workspace }}/docs/input
+ -
+ name: Check for changes
+ id: status
+ run: |
+ if ($null -ne (git status --porcelain)) { echo "has_changes=1"; echo "has_changes=1" >> $env:GITHUB_OUTPUT }
+ -
+ name: Push changes
+ run: |
+ git add --verbose .
+ git config user.name 'Artur Stolear'
+ git config user.email 'artur.stolear@gmail.com'
+ git commit -m 'Docs changes' --allow-empty
+ git push --force
+ if: steps.status.outputs.has_changes == '1'
diff --git a/.github/workflows/new-cli.yml b/.github/workflows/new-cli.yml
new file mode 100644
index 0000000000..6793b7eee4
--- /dev/null
+++ b/.github/workflows/new-cli.yml
@@ -0,0 +1,56 @@
+name: Build (new-cli)
+on:
+ push:
+ branches:
+ - main
+ - 'fix/*'
+ - 'feature/*'
+ - 'poc/*'
+ - 'support/*'
+ paths:
+ - '**'
+ - '!docs/**'
+ - '!.github/**'
+ - .github/workflows/new-cli.yml
+
+ pull_request:
+ branches:
+ - main
+ - 'support/*'
+ paths:
+ - '**'
+ - '!docs/**'
+ - '!.github/**'
+ - .github/workflows/new-cli.yml
+
+permissions:
+ contents: read
+
+env:
+ DOTNET_ROLL_FORWARD: "Major"
+ DOTNET_CLI_TELEMETRY_OPTOUT: 1
+ DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
+ DOTNET_NOLOGO: 1
+
+jobs:
+ format:
+ runs-on: ubuntu-24.04
+ name: Build & Test (new-cli)
+ steps:
+ -
+ name: Checkout
+ uses: actions/checkout@v5
+ -
+ name: Setup .NET SDK
+ uses: actions/setup-dotnet@v5
+ with:
+ global-json-file: global.json
+ -
+ name: Build 'new-cli' solution
+ run: dotnet build ./new-cli
+ -
+ name: Run Format 'new-cli' solution
+ run: dotnet format ./new-cli --exclude ~/.nuget/packages --verify-no-changes
+ -
+ name: Test 'new-cli' solution
+ run: dotnet test ./new-cli --no-build --verbosity normal
diff --git a/.github/workflows/public-api.yml b/.github/workflows/public-api.yml
new file mode 100644
index 0000000000..98af4e21e7
--- /dev/null
+++ b/.github/workflows/public-api.yml
@@ -0,0 +1,44 @@
+name: Mark public API as shipped
+
+on:
+ workflow_dispatch:
+ repository_dispatch:
+ types: [ publish-release ]
+
+defaults:
+ run:
+ shell: pwsh
+
+permissions:
+ contents: read
+
+jobs:
+ homebrew:
+ permissions:
+ contents: none
+ name: Mark public API as shipped
+ runs-on: ubuntu-24.04
+ steps:
+ -
+ name: Checkout
+ uses: actions/checkout@v5
+ if: github.event_name == 'repository_dispatch' || github.event_name == 'workflow_dispatch'
+ with:
+ token: ${{ secrets.PUSH_GITHUB_TOKEN }}
+ -
+ name: Mark public API as shipped
+ run: ./src/mark-shipped.ps1
+ -
+ name: Check for changes
+ id: status
+ run: |
+ if ($null -ne (git status --porcelain)) { echo "has_changes=1"; echo "has_changes=1" >> $env:GITHUB_OUTPUT }
+ -
+ name: Push changes
+ run: |
+ git add --verbose .
+ git config user.name 'Artur Stolear'
+ git config user.email 'artur.stolear@gmail.com'
+ git commit -m 'Mark public API as shipped' --allow-empty
+ git push --force
+ if: steps.status.outputs.has_changes == '1'
diff --git a/.github/workflows/qodana_analysis.yml b/.github/workflows/qodana_analysis.yml
new file mode 100644
index 0000000000..3d7c0e1eca
--- /dev/null
+++ b/.github/workflows/qodana_analysis.yml
@@ -0,0 +1,35 @@
+name: Qodana
+on:
+ workflow_dispatch:
+ push:
+ branches:
+ - main
+ - 'fix/*'
+ - 'feature/*'
+jobs:
+ qodana:
+ runs-on: ubuntu-latest
+ permissions:
+ contents: write
+ pull-requests: write
+ checks: write
+ steps:
+ -
+ uses: actions/checkout@v5
+ with:
+ ref: ${{ github.event.pull_request.head.sha }}
+ fetch-depth: 0
+ -
+ name: Setup .NET SDK
+ uses: actions/setup-dotnet@v5
+ with:
+ global-json-file: global.json
+ -
+ name: 'Qodana Scan'
+ uses: jetbrains/qodana-action@v2025.2.1
+ with:
+ args: --baseline,qodana.sarif.json
+ cache-default-branch-only: true
+ pr-mode: true
+ env:
+ QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }}
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index bb4e21024c..c663002892 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -1,17 +1,28 @@
name: Release
on:
release:
- types: [published]
+ types: [ published ]
jobs:
release:
- name: Trigger Build flow
- runs-on: ubuntu-latest
+ name: Trigger ci flow
+ runs-on: ubuntu-24.04
steps:
- - uses: actions/checkout@v3
- - uses: peter-evans/repository-dispatch@v2
+ -
+ name: Checkout
+ uses: actions/checkout@v5
+ -
+ name: Get version
+ id: get-version
+ shell: pwsh
+ run: |
+ # Finding the version from release tag
+ $VERSION="${{ github.ref }}".Replace("refs/tags/", "")
+ "version=$VERSION" >> $env:GITHUB_OUTPUT
+ -
+ uses: peter-evans/repository-dispatch@v4
with:
token: ${{ secrets.RELEASE_GITHUB_TOKEN }}
repository: ${{ github.repository }}
- event-type: release
- client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}"}'
+ event-type: ci-release
+ client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}", "tag": "${{ steps.get-version.outputs.version }}"}'
\ No newline at end of file
diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
new file mode 100644
index 0000000000..268a3c6c3f
--- /dev/null
+++ b/.github/workflows/stale.yml
@@ -0,0 +1,43 @@
+name: Stale Issues
+on:
+ workflow_dispatch:
+ schedule:
+ - cron: '0 11 * * *'
+
+permissions:
+ # contents: write # only for delete-branch option
+ issues: write
+ pull-requests: write
+
+jobs:
+ stale:
+ runs-on: ubuntu-24.04
+ steps:
+ - uses: actions/stale@v10
+ with:
+ operations-per-run: 100
+ # set 'stale' label
+ stale-issue-label: stale
+ # remove 'stale' label on update
+ remove-issue-stale-when-updated: true
+ labels-to-remove-when-unstale: stale
+ # only stale the issues
+ stale-issue-message: >
+ This issue has been automatically marked as stale because it has not had
+ recent activity. After 30 days from now, it will be closed if no further
+ activity occurs.
+ close-issue-message: >
+ This issue was closed because it has been stalled for 30 days with no activity.
+ Thank you for your contributions
+ days-before-issue-stale: 90
+ days-before-issue-close: 30
+ # skip issues that have a milestone
+ exempt-all-issue-milestones: true
+ # skip those that are assigned
+ exempt-all-issue-assignees: true
+ # skip issues with label 'pinned'
+ exempt-issue-labels: pinned,security,failing test case,help wanted
+
+ # do not stale PRs
+ days-before-pr-stale: -1
+ days-before-pr-close: -1
diff --git a/.github/workflows/winget.yml b/.github/workflows/winget.yml
new file mode 100644
index 0000000000..f6ad004ed9
--- /dev/null
+++ b/.github/workflows/winget.yml
@@ -0,0 +1,40 @@
+name: Publish to Winget
+
+on:
+ workflow_dispatch:
+ inputs:
+ tag-name:
+ description: 'The git tag name to bump the formula to'
+ required: true
+ repository_dispatch:
+ types: [ publish-release ]
+
+permissions:
+ contents: read
+
+jobs:
+ homebrew:
+ permissions:
+ contents: none
+ name: Bump winget manifest
+ runs-on: ubuntu-24.04
+ steps:
+ - name: Get version
+ id: get-version
+ shell: pwsh
+ run: |
+ $version = "${{ github.event.client_payload.tag }}"
+ if ($version -eq "") {
+ $version = "${{ github.event.inputs.tag-name }}"
+ }
+
+ $url = "https://github.com/GitTools/GitVersion/releases/download/%7B0%7D/gitversion-win-%7B1%7D-%7B0%7D.zip"
+ $urls = @(($url -f $version, "x64"), ($url -f $version, "arm64")) -Join " "
+
+ $run_args = "update GitTools.GitVersion --version $version --urls $urls --token ${{ secrets.RELEASE_GITHUB_TOKEN }} --submit"
+ "version=$version" >> $env:GITHUB_OUTPUT
+ "run_args=$run_args" >> $env:GITHUB_OUTPUT
+
+ - uses: michidk/run-komac@v2.1.0
+ with:
+ args: '${{ steps.get-version.outputs.run_args }}'
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 53a1d1e91a..dfc424aaaa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -35,6 +35,7 @@
*.dotCover
*.orig
*~
+msbuild.binlog
## If you have NuGet Package Restore enabled, uncomment this
packages/
@@ -60,7 +61,6 @@ TestResults
ClientBin
stylecop.*
~$*
-*~
*.dbmdl
site/
Generated_Code #added for RIA/Silverlight projects
@@ -83,10 +83,8 @@ Thumbs.db
Desktop.ini
_NCrunch_GitVersion
-GitVersion.sln.ide/
.vs/
Packages/
-site/
/TestResult.xml
################
@@ -94,8 +92,6 @@ site/
################
.idea
-*.sln.iml
-
####################
# Visual Studio Code
@@ -117,7 +113,8 @@ releaseArtifacts
.dotnet
artifacts
!build/artifacts
-src/Docker/**/content
+build/docker/nuget
+src/PublicAPI.empty.txt
!**/*.cake
.DS_Store
@@ -126,9 +123,13 @@ src/Docker/**/content
config.wyam.dll
config.wyam.hash
config.wyam.packages.xml
-/tests/integration/core/build
-/tests/integration/full/build
+/tests/integration/build
docs/output
# NPM
node_modules
+
+dogfood/
+new-cli/log.txt
+
+new-cli/logs/
diff --git a/.gitversion.yml b/.gitversion.yml
new file mode 100644
index 0000000000..7c62fc859e
--- /dev/null
+++ b/.gitversion.yml
@@ -0,0 +1,7 @@
+workflow: GitFlow/v1
+mode: ManualDeployment
+branches:
+ main:
+ label: rc
+ support:
+ label: beta
diff --git a/.markdownlint.json b/.markdownlint.json
index 7ab1720b67..08d535e1cb 100644
--- a/.markdownlint.json
+++ b/.markdownlint.json
@@ -1,3 +1,4 @@
{
- "MD026": false
+ "MD026": false,
+ "MD041": false
}
diff --git a/.remarkrc.yaml b/.remarkrc.yaml
index cf4ada6d5f..381dd0220c 100644
--- a/.remarkrc.yaml
+++ b/.remarkrc.yaml
@@ -21,7 +21,6 @@ plugins:
- remark-lint-list-item-bullet-indent
- remark-lint-list-item-content-indent
- remark-lint-maximum-heading-length: 120
- - remark-lint-no-auto-link-without-protocol
- remark-lint-no-blockquote-without-marker
- remark-lint-no-consecutive-blank-lines
- remark-lint-no-duplicate-definitions
@@ -36,7 +35,6 @@ plugins:
- remark-lint-no-heading-content-indent
- remark-lint-no-heading-indent
- remark-lint-no-heading-like-paragraph
- - remark-lint-no-inline-padding
- remark-lint-no-literal-urls
- remark-lint-no-multiple-toplevel-headings
- remark-lint-no-reference-like-url
diff --git a/BREAKING_CHANGES.md b/BREAKING_CHANGES.md
index a78b5d04a8..e1ab2c4975 100644
--- a/BREAKING_CHANGES.md
+++ b/BREAKING_CHANGES.md
@@ -1,9 +1,129 @@
+## v6.2.0
+
+* The configuration property `label-number-pattern` was removed. The functionality can be still used by changing the label and the branch name regular expression for pull-request branches.
+
+## v6.0.0
+
+### Platforms
+
+* Drop support for .NET Framework 4.8, .NET Core 3.1 and .NET 5.0. Changed the project targets to .NET 6.0 or later.
+
+### Caching
+
+* Refactor caching system in GitVersion to use json files instead of yaml files. This change is not backwards compatible with the old caching system.
+
+### Configuration changes:
+
+* The configuration properties `continuous-delivery-fallback-tag`, `tag-number-pattern`, and `tag` were renamed to `continuous-delivery-fallback-label`, `label-number-pattern`, and `label` respectively. `tag-pre-release-weight` and `tag-prefix` remained as they were as they are referring to a Git tag.
+
+* When using a commit message that matches **both** `*-version-bump-message` and `no-bump-message`, there is no increment for that commit. In other words, `no-bump-message` now takes precedence over `*-version-bump-message`.
+
+* The fallback version strategy now returns `0.0.0` and is flagged with `ShouldIncrement` equal to `true`. This yields the version `0.1.0` on the `develop` branch (`IncrementStrategy.Minor` by default) and `0.0.1` on the `main` branch (`IncremetnStrategy.Patch` by default).
+
+* The current branch (child) inherits its configuration from the source (parent) branch if the `increment` strategy is set to `Inherit`. This makes branch configuration recursive, simpler, more intuitive, more flexible, and more robust.
+
+* Instead of having a single effective configuration, we now have one effective configuration per branch where the increment strategy is not set to `inherit`.
+
+* The new implementation of the branch configuration inheritance affects per default only the pull-requests, hotfix and feature branches. In this case the next version will be generated like the child branch is not existing and the commits have been made on the source branch.
+ * The following example illustrates this behavior. On the feature branch the semantic version `1.1.0-just-a-test.1+2` will now be generated instead of version `1.0.0-just-a-test.1+3` previously:
+
+ ```log
+ * 1f1cfb4 52 minutes ago (HEAD -> feature/just-a-test)
+ * 1f9654d 54 minutes ago (release/1.1.0)
+ * be72411 56 minutes ago (develop)
+ * 14800ff 58 minutes ago (tag: 1.0.0, main)
+ ```
+
+* A new `unknown` branch magic string has been introduced to give the user the possibility to specify the branch configuration for a branch which is not known. A branch is not known if only the regular expression of the branch configuration with the name `unknown` is matching. Please notice that this branch configuration behaves like any other branch configurations.
+
+* Additional `fallback` branch configuration properties have been introduced at the root to define base properties which will be inherit to the branch configurations. That means if no other branch configuration in the inheritance line defines the given property the fallback property applies. Notice that the inheritance tree can be controlled using the increment strategy property in the branch configuration section.
+ * The following example illustrates this behavior. The hotfix branch configuration overrides the main branch configuration and the result overrides the fallback branch configuration.
+
+ ```log
+ * 1f1cfb4 52 minutes ago (HEAD -> hotfix/just-a-test)
+ * 14800ff 58 minutes ago (tag: 1.0.0, main)
+ ```
+
+* When overriding the configuration with e.g. GitVersion.yaml the software distinguishes between properties who are not existent and properties who are `null`. This is especially important if the user wants to define branch related configuration which are marked with `increment` strategy `Inherit`.
+
+* Following root configuration properties have been removed:
+ * continuous-delivery-fallback-tag
+
+* A new branch related property with name `track-merge-message` has been introduced. Consider we have a `main` branch and a `release/1.0.0` branch and merge changes from `release/1.0.0` to the main branch. In this scenario the merge message will be interpreted as a next version `1.0.0` when `track-merge-message` is set to `true` otherwise `0.0.1`.
+
+* The pre-release tags are only considered when they are matching with the label name of the branch. This has an effect on the way how the `CommitCountSource` will be determined.
+
+* The process of increasing the version with bump message when `CommitMessageIncrementing` is enabled and increment strategy is `None` has been changed.
+
+* A new configuration property with name `version-in-branch-pattern` has been introduced. This setting only applies on branches where the option `is-release-branch` is set to `true`. Please notice that the branch name needs to be defined after the version number by default (instead of `support/lts-2.0.0` please name the branch like `support/2.0.0-lts`).
+
+* The `is-release-branch` property of the `hotfix` branch setting has been changed from `false` to `true`. If present the hotfix number will be considered now by default.
+
+* In the GitHub and the Git Flow workflows the `label` property is by default set to an empty string on the `main` branch. This yields to a pre-release version on `main` with an empty tag. Instead of for instance `1.0.1+46` GitVersion generates the full semantic version `1.0.1-46` instead. This behavior can be changed to generate only stable versions (no pre-release version) with setting the label to `null` (Please keep in mind that the `label` property on root needs to be set to `null` as well, otherwise the fallback applies). This change is caused by issue #2347.
+
+* The `useBranchName` magic string has been removed. Instead use `{BranchName}` for `label`.
+
+* The `BranchPrefixToTrim` configuration property has been removed. `RegularExpression` is now used to capture named groups instead.
+ * Default `RegularExpression` for feature branches is changed from `^features?[\/-]` to `^features?[\/-](?.+)` to support using `{BranchName}` out-of-the-box
+ * Default `RegularExpression` for unknown branches is changed from `.*` to `(?.+)` to support using `{BranchName}` out-of-the-box
+
+* The `Mainline` mode and the related implementation has been removed completely. The new `Mainline` version strategy should be used instead.
+
+* The `Mainline` version strategy doesn't support downgrading the increment for calculating the next version. This is the case if e.g. a bump messages has been defined which is lower than the branch increment.
+
+* The branch related property `is-mainline` in the configuration system has been renamed to `is-main-branch`
+
+* The versioning mode has been renamed to deployment mode and consists of following values:
+ * ManualDeployment (previously ContinuousDelivery)
+ * ContinuousDelivery (previously ContinuousDeployment)
+ * ContinuousDeployment (new)
+
+* At the configuration root level, a new array called `strategies` has been introduced, which can consist of on or more following values:
+ * ConfiguredNextVersion
+ * MergeMessage
+ * TaggedCommit
+ * TrackReleaseBranches
+ * VersionInBranchName
+ * Mainline
+
+* The initialization wizard has been removed.
+
+* On the `develop`, `release` and `hotfix` branch the introduced branch related property `prevent-increment.when-current-commit-tagged` has been set to `false` to get the incremented instead of the tagged semantic version.
+
+* When setting the "ignore commits before" parameter to a future value, an exception will occur if no commits are found on the current branch. This behavior mimics that of an empty repository.
+
+* On the `GitFlow` workflow the increment property has been changed:
+ * in branch `release` from `None` to `Minor` and
+ * in branch `hotfix` from `None` to `Patch`
+
+* On the `GitHubFlow` workflow the increment property has been changed in branch `release` from `None` to `Patch`.
+
+* When creating a branch with name `hotfix/next` (by using the `GitFlow` workflow) or `release/next` (by the `GitHubFlow` workflow) the resulting version will yield to a patched version per default.
+
+* If you have a tag `1.0.0` on `main` and branch from `main` to `release/1.0.1` then the next version number will be `1.1.0` when using the `GitFlow` workflow. This behavior is expected (but different compared to the `GitHubFlow` workflow) because on the `GitFlow` workflow you have an addition branch configuration with name hotfix where `is-release-branch` is set to `true`. That means if you want `1.0.1` as a next version you need to branch to `hotfix/1.0.1` or `hotfix/next`. On the other hand if you use the `GitHubFlow` workflow the next version number will be `1.0.1` because the increment on the `release` branch is set to `Patch`.
+
+* There is a new configuration parameter `semantic-version-format` with default of `Strict`. The behavior of `Strict` is, that every possible non-semver version e.g. `1.2.3.4` is ignored when trying to calculate the next version. So, if you have three-part and four-part version numbers mixed, it will compute the next version on basis of the last found three-part version number, ignoring all four-part numbers.
+This is different compared to v5 where per default it was a `Loose` comparison.
+
+### Legacy Output Variables
+
+The following legacy output variables have been removed in this version:
+
+* `BuildMetaDataPadded`
+* `LegacySemVer`
+* `LegacySemVerPadded`
+* `NuGetVersionV2`
+* `NuGetVersion`
+* `NuGetPreReleaseTagV2`
+* `NuGetPreReleaseTag`
+* `CommitsSinceVersionSourcePadded`
+
## v5.0.0
-* Version numbers in branches other than `release` branches are no longer
- considered as a version source by default. Implemented in [#1541][pr-1541].
-* [#1581][pr-1581] folds `GitTools.Core` back into GitVersion to make
- maintaining GitVersion easier.
+* Version numbers in branches other than `release` branches are no longer
+ considered as a version source by default. Implemented in [#1541][pr-1541].
+* [#1581][pr-1581] folds `GitTools.Core` back into GitVersion to make
+ maintaining GitVersion easier.
## v4.0.0
@@ -12,36 +132,38 @@
When using GitFlow, a few things have changed. Hopefully the new settings just
work for you
-* `develop` has pre-release tag of `alpha` now, not unstable.
-* `develop` will bump as soon as a `release` branch is created.
-* Look at the [GitFlow examples][gitflow] for details of how it works now.
+* `develop` has pre-release tag of `alpha` now, not unstable.
+* `develop` will bump as soon as a `release` branch is created.
+* Look at the [GitFlow examples][gitflow] for details of how it works now.
### Configuration Changes
-* `GitVersionConfig.yaml` is deprecated in favor of `GitVersion.yml`.
-* Regular expressions are no longer used as keys in branch config
- * We have named branches, and introduced a `regex` config which you can
- override.
- * The default keys are: `master`, `develop`, `feature`, `release`, `pull-request`,
- `hotfix` and `support`
- * Just run `GitVersion.exe` in your project directory and it will tell you
- what to change your config keys to
- * For example, `dev(elop)?(ment)?$` is now just `develop`, we suggest not
- overring regular expressions unless you really want to use a different convention.
-* `source-branches` added as a configuration option for branches, it helps
- GitVersion pick the correct source branch
+* `GitVersionConfig.yaml` is deprecated in favor of `GitVersion.yml`.
+* Regular expressions are no longer used as keys in branch config
+ * We have named branches, and introduced a `regex` config which you can
+ override.
+ * The default keys are: `master`, `develop`, `feature`, `release`, `pull-request`,
+ `hotfix` and `support`
+ * Just run `GitVersion.exe` in your project directory and it will tell you
+ what to change your config keys to
+ * For example, `dev(elop)?(ment)?$` is now just `develop`, we suggest not
+ overring regular expressions unless you really want to use a different convention.
+* `source-branches` added as a configuration option for branches, it helps
+ GitVersion pick the correct source branch
## v3.0.0
-* NextVersion.txt has been deprecated, only `GitVersionConfig.yaml` is supported
-* `AssemblyFileSemVer` variable removed, `AssemblyVersioningScheme` configuration
- value makes this variable obsolete
-* Variables `ClassicVersion` and `ClassicVersionWithTag` removed
-* MSBuild task arguments (`AssemblyVersioningScheme`, `DevelopBranchTag`,
- `ReleaseBranchTag`, `TagPrefix`, `NextVersion`) have been removed, use
- `GitVersionConfig.yaml` instead
-* GitVersionTask's `ReleaseDateAttribute` no longer exists
+* NextVersion.txt has been deprecated, only `GitVersionConfig.yaml` is supported
+* `AssemblyFileSemVer` variable removed, `AssemblyVersioningScheme` configuration
+ value makes this variable obsolete
+* Variables `ClassicVersion` and `ClassicVersionWithTag` removed
+* MSBuild task arguments (`AssemblyVersioningScheme`, `DevelopBranchTag`,
+ `ReleaseBranchTag`, `TagPrefix`, `NextVersion`) have been removed, use
+ `GitVersionConfig.yaml` instead
+* GitVersionTask's `ReleaseDateAttribute` no longer exists
[gitflow]: https://gitversion.net/docs/learn/branching-strategies/gitflow-examples_complete
+
[pr-1541]: https://github.com/GitTools/GitVersion/pull/1541
+
[pr-1581]: https://github.com/GitTools/GitVersion/pull/1581
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 20248c6335..ac82b46b95 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -2,10 +2,10 @@
We love contributions to get started contributing you might need:
-* [Get started with git](http://rogerdudler.github.io/git-guide)
-* [How to create a pull request](https://help.github.com/articles/using-pull-requests)
-* [An issue to work on](https://github.com/GitTools/GitVersion/labels/up-for-grabs) - We are on [Up for grabs](http://up-for-grabs.net/), our up for grabs issues are tagged `up-for-grabs`
-* An understanding of our [architecture](http://gitversion.net/docs/learn/how-it-works#architecture) and how [we write tests](#writing-tests)
+* [Get started with git](https://rogerdudler.github.io/git-guide)
+* [How to create a pull request](https://help.github.com/articles/using-pull-requests)
+* [An issue to work on](https://github.com/GitTools/GitVersion/labels/up-for-grabs) - We are on [Up for grabs](https://up-for-grabs.net/), our up for grabs issues are tagged `up-for-grabs`
+* An understanding of our [architecture](https://gitversion.net/docs/learn/how-it-works#architecture) and how [we write tests](#writing-tests)
Once you know how to create a pull request and have an issue to work on, just post a comment saying you will work on it.
If you end up not being able to complete the task, please post another comment so others can pick it up.
@@ -14,16 +14,16 @@ Issues are also welcome, [failing tests](#writing-tests) are even more welcome.
## Contribution Guidelines
-* Try to use feature branches rather than developing on main.
-* Please include tests covering the change.
-* The documentation is stored in the repository under the [`docs`](docs) folder.
- Have a look at the [documentation readme file](docs/readme.md) for guidance
- on how to improve the documentation and please include documentation updates
- with your PR.
+* Try to use feature branches rather than developing on main.
+* Please include tests covering the change.
+* The documentation is stored in the repository under the [`docs`](docs) folder.
+ Have a look at the [documentation readme file](docs/readme.md) for guidance
+ on how to improve the documentation and please include documentation updates
+ with your PR.
## How it works
-See [how it works](http://gitversion.net/docs/learn/how-it-works/) in GitVersion's documentation
+See [how it works](https://gitversion.net/docs/learn/how-it-works) in GitVersion's documentation
## Writing Tests
@@ -39,25 +39,38 @@ Find where your issue would logically sit. Or create a new scenario class if it
We are currently using NUnit, so just create a descriptive test method and attribute it with `[Test]`
-### 3. Use a fixture
+### 3. Create a configuration
-We have a few fixtures for different scenarios.
+We use a builder pattern to create a configuration. You can use the `GitFlowConfigurationBuilder` or `GitHubConfigurationBuilder` or `EmptyConfigurationBuilder` to create a configuration builder.
+
+```csharp
+var configurationBuilder = GitFlowConfigurationBuilder.New;
+```
-* `EmptyRepositoryFixture` - Gives you an empty git repo to start with
-* `RemoteRepositoryFixture` - A local repo tracking a test remote repository. The remote repo is available through the `Repository` property, the local is accessible via `LocalRepository`
-* `BaseGitFlowRepositoryFixture` - A repo setup for GitFlow (has a develop branch checked out ready to go)
+We can then customize the configuration by chaining methods of the builder. At the end we build the configuration.
-You can use a fixture by just `using` it. Like this
+For example:
```csharp
-using (var fixture = new EmptyRepositoryFixture(new Config()))
-{
-}
+var configuration = configurationBuilder
+ .WithDeploymentMode(DeploymentMode.ContinuousDeployment)
+ .WithNextVersion("1.0.0")
+ .Build();
```
-### 4. Customize config
+### 4. Use a fixture
-If you are using non-default configuration just modify the `Config` class before creating the fixture
+We have a few fixtures for different scenarios.
+
+* `EmptyRepositoryFixture` - Gives you an empty git repo to start with
+* `RemoteRepositoryFixture` - A local repo tracking a test remote repository. The remote repo is available through the `Repository` property, the local is accessible via `LocalRepository`
+* `BaseGitFlowRepositoryFixture` - A repo setup for GitFlow (has a develop branch checked out ready to go)
+
+You can use a fixture by just `using` it. Like this
+
+```csharp
+using var repo = new EmptyRepositoryFixture();
+```
### 5. Writing the scenario
@@ -72,7 +85,7 @@ fixture.Repository.Checkout("feature-test");
fixture.Repository.MakeACommit();
fixture.Repository.MakeCommits(4);
-fixture.AssertFullSemver("1.0.1-test.1+5");
+fixture.AssertFullSemver("1.0.1-test.1-5", configuration);
```
The last line is the most important. `AssertFullSemver` will run GitVersion and assert that the full SemVer it calculates is what you expect.
@@ -81,47 +94,49 @@ The last line is the most important. `AssertFullSemver` will run GitVersion and
Even better include the fix, but a failing test is a great start
-## Build / Release Process
-
-We use Cake for our build and deployment process. The way the build / release process is setup is:
-
-1. We build releasable artifacts on AppVeyor
-2. Login to AppVeyor
-3. Deploy the latest main build
- 
-4. Choose GitVersion release, when you press deploy it will create a _non-released_ GitHub release, this _will not_ create a Git tag. This step is so we can validate the release and release notes before pushing the button.
- 
-5. All the artifacts should upload nicely
- 
-6. Head over to GitHub releases, you should have a draft release, download a copy of the release notes
- 
-7. Edit the release and do the following:
- 1. Remove the build metadata from the tag and title (the + and everything after it)
- 2. Paste the downloaded release notes in, you can clean them up if you want otherwise there may be closed issues which were questions etc.
- 3. Tick the pre-release box if it's pre-release
- 4. Press Publish
-8. Publishing tags (a git tag) the release commit, this will trigger another appveyor build which only builds tags, this build uses deploy.cake. It downloads the artifacts from that GitHub release, then performs the release
-
-## Docker
-
-It is a manual release step after the release now, first download the appropriate ZIP and put into a `releaseArtifacts` folder in the GitVersion repository, then run:
-
-```bash
-docker build . --build-arg GitVersionZip=GitVersion_.zip --tag gittools/gitversion
-```
+## Release Process
+
+We use Cake for our build and deployment process. The way the release process is setup is:
+
+1. We build releasable artifacts with GitHub Actions
+2. We create a milestone for the release if it's not already created. Our milestones are named using the semver.
+ For example `5.12.0` or `6.0.0-beta.2`
+3. We move all the closed issues and closed pull requests that are going to be included in the release to the milestone.
+4. We check that all the issues and pull requests that are going to be included in the release have a label assigned,
+ otherwise it will fail the release.
+5. We create a release in the GitHub UI, and create a tag and name it using the milestone name. For example `5.12.0` or `6.0.0-beta.2`
+6. We specify if the release is a pre-release or latest release in the GitHub UI.
+7. We publish the release.
+8. The GitHub Actions will create a GitHub release and publish the artifacts to NuGet, Chocolatey, Docker, Homebrew
+ and other distribution channels.
+9. The issues and pull requests will get updated with message specifying in which release it was included.
## Code Style
In order to apply the code style defined by by the `.editorconfig` file you can use [`dotnet-format`](https://github.com/dotnet/format).
-1. Install [`dotnet-format`](https://github.com/dotnet/format) as a global tool:
+Change to the root folder of the GitVersion repository and use the following command to apply the code style:
```shell
-dotnet tool install -g dotnet-format
+dotnet format ./src/ --exclude **/AddFormats/
```
-2. Change to the root folder of the GitVersion repository and use the following command to apply the code style:
+## Documentation
+
+The documentation is stored in the repository under the [`docs`](docs) folder.
+Have a look at the [documentation readme file](docs/readme.md) for guidance.
+
+In order to check locally how the documentation looks like you can use the following command:
+
+```shell
+./build.ps1 -Stage docs -Target PreviewDocs
+```
+
+## Schemas generation
+
+If there are changes to the GitVersionVariables or to the GitVersionConfiguration, the following command should be executed to update the schema files:
```shell
-dotnet format ./ --folder --exclude **/AddFormats/ --fix-codestyle
+./build.ps1 -Stage build -Target BuildPrepare
+./build.ps1 -Stage docs -Target GenerateSchemas
```
diff --git a/GitReleaseManager.yml b/GitReleaseManager.yml
index 438e184523..8e0b3fb546 100644
--- a/GitReleaseManager.yml
+++ b/GitReleaseManager.yml
@@ -1,21 +1,37 @@
issue-labels-include:
-- Breaking change
-- Feature
-- Bug
-- Improvement
-- Documentation
-- Dependencies
+- breaking change
+- bug
+- dependencies
+- documentation
+- feature
+- improvement
issue-labels-exclude:
-- Build
+- build
issue-labels-alias:
-- name: Documentation
+- name: breaking change
+ header: Breaking change
+ plural: Breaking changes
+- name: bug
+ header: Bug
+ plural: Bugs
+- name: dependencies
+ header: Dependencies
+ plural: Dependencies
+- name: documentation
header: Documentation
plural: Documentation
+- name: feature
+ header: Features
+ plural: Features
+- name: improvement
+ header: Improvements
+ plural: Improvements
create:
include-sha-section: true
sha-section-heading: "SHA256 Hashes of the release artifacts"
sha-section-line-format: "- `{1}\t- {0}`"
allow-update-to-published: true
+ include-contributors: true
close:
use-issue-comments: true
issue-comment: |-
diff --git a/GitVersion.yml b/GitVersion.yml
deleted file mode 100644
index 8cb4734ffc..0000000000
--- a/GitVersion.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-assembly-versioning-scheme: MajorMinorPatch
-branches:
- main:
- tag: beta
- support:
- tag: beta
diff --git a/README.md b/README.md
index 9ffab598c6..202043f4b5 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-![GitVersion – From git log to SemVer in no time][banner]
+# ![GitVersion – From git log to SemVer in no time][banner]
Versioning when using Git, solved. GitVersion looks at your git history and
works out the [Semantic Version][semver] of the commit being built.
@@ -6,19 +6,18 @@ works out the [Semantic Version][semver] of the commit being built.
[![Build status][azure-pipeline-badge]][azure-pipeline]
[![Build status][github-actions-badge]][github-actions]
[![codecov][codecov-badge]][codecov]
-[![Gitter][gitter-badge]][gitter]
-
-| Artifact | Stable | |
-| :------------------------- | :----------------------------------------------------------------- | - |
-| **GitHub Release** | [![GitHub release][gh-rel-badge]][gh-rel] |
-| **GitVersion.Portable** | [![Chocolatey][choco-badge]][choco] |
-| **GitVersion.Tool** | [![NuGet][gvgt-badge]][gvgt] |
-| **GitVersion.CommandLine** | [![NuGet][gvcl-badge]][gvcl] |
-| **GitVersion.MsBuild** | [![NuGet][gvt-badge]][gvt] | Known as [GitVersionTask][gitversiontask] before v5.6.0 |
-| **Homebrew** | [![homebrew][brew-badge]][brew] |
+
+| Artifact | Stable |
+|:---------------------------|:-------------------------------------------------------------------|
+| **GitHub Release** | [![GitHub release][gh-rel-badge]][gh-rel] |
+| **GitVersion.Portable** | [![Chocolatey][choco-badge]][choco] |
+| **GitVersion.Tool** | [![NuGet][gvgt-badge]][gvgt] |
+| **GitVersion.MsBuild** | [![NuGet][gvt-badge]][gvt] |
+| **Homebrew** | [![homebrew][brew-badge]][brew] |
+| **Winget** | [![winget][winget-badge]][winget] |
| **Azure Pipeline Task** | [![Azure Pipeline Task][az-pipeline-task-badge]][az-pipeline-task] |
-| **Github Action** | [![Github Action][gh-actions-badge]][gh-actions] |
-| **Docker** | [![Docker Pulls][dockerhub-badge]][dockerhub] |
+| **Github Action** | [![Github Action][gh-actions-badge]][gh-actions] |
+| **Docker** | [![Docker Pulls][dockerhub-badge]][dockerhub] |
## Compatibility
@@ -26,13 +25,13 @@ GitVersion works on Windows, Linux, and Mac.
## Quick Links
-* [Documentation][docs]
-* [Contributing][contribute]
-* [Why GitVersion][why]
-* [Usage][usage]
-* [How it works][how]
-* [FAQ][faq]
-* [Who is using GitVersion][who]
+* [Documentation][docs]
+* [Contributing][contribute]
+* [Why GitVersion][why]
+* [Usage][usage]
+* [How it works][how]
+* [FAQ][faq]
+* [Who is using GitVersion][who]
## GitVersion in action!
@@ -40,8 +39,8 @@ GitVersion works on Windows, Linux, and Mac.
You are seeing:
-* Pull requests being built as pre-release builds
-* A branch called `release-1.0.0` producing beta v1 packages
+* Pull requests being built as pre-release builds
+* A branch called `release-1.0.0` producing beta v1 packages
## Icon
@@ -49,42 +48,74 @@ You are seeing:
designed by [David Chapman][app-icon-author]
from The Noun Project.
-[semver]: http://semver.org
-[gitter]: https://gitter.im/GitTools/GitVersion?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
-[gitter-badge]: https://badges.gitter.im/Join+Chat.svg
-[azure-pipeline]: https://dev.azure.com/GitTools/GitVersion/_build/latest?definitionId=1
-[azure-pipeline-badge]: https://dev.azure.com/GitTools/GitVersion/_apis/build/status/GitTools.GitVersion
-[github-actions]: https://github.com/GitTools/GitVersion/actions
-[github-actions-badge]: https://github.com/GitTools/GitVersion/workflows/Build/badge.svg
-[codecov]: https://codecov.io/gh/GitTools/GitVersion
-[codecov-badge]: https://codecov.io/gh/GitTools/GitVersion/branch/main/graph/badge.svg
-[docs]: https://gitversion.net/docs/
-[gh-rel]: https://github.com/GitTools/GitVersion/releases/latest
-[gh-rel-badge]: https://img.shields.io/github/release/gittools/gitversion.svg?logo=github
-[choco]: https://chocolatey.org/packages/GitVersion.Portable
-[choco-badge]: https://img.shields.io/chocolatey/v/gitversion.portable.svg?logo=nuget
-[gvt]: https://www.nuget.org/packages/GitVersion.MsBuild
-[gvt-badge]: https://img.shields.io/nuget/v/GitVersion.MsBuild.svg?logo=nuget
-[gitversiontask]: https://www.nuget.org/packages/GitVersionTask/
-[gvcl]: https://www.nuget.org/packages/GitVersion.CommandLine
-[gvcl-badge]: https://img.shields.io/nuget/v/GitVersion.CommandLine.svg?logo=nuget
-[gvgt]: https://www.nuget.org/packages/GitVersion.Tool
-[gvgt-badge]: https://img.shields.io/nuget/v/GitVersion.Tool.svg?logo=nuget
-[brew]: https://formulae.brew.sh/formula/gitversion
-[brew-badge]: https://img.shields.io/homebrew/v/gitversion.svg?logo=homebrew
-[dockerhub]: https://hub.docker.com/r/gittools/gitversion/
-[dockerhub-badge]: https://img.shields.io/docker/pulls/gittools/gitversion.svg?logo=docker
-[az-pipeline-task]: https://marketplace.visualstudio.com/items?itemName=gittools.gittools
-[az-pipeline-task-badge]: https://img.shields.io/badge/marketplace-gittools.gittools-blue?logo=azure-pipelines
-[gh-actions]: https://github.com/marketplace/actions/gittools
-[gh-actions-badge]: https://img.shields.io/badge/marketplace-gittools-blue?logo=github
-[contribute]: https://github.com/GitTools/GitVersion/blob/main/CONTRIBUTING.md
-[why]: https://gitversion.net/docs/learn/why
-[usage]: https://gitversion.net/docs/usage
-[how]: https://gitversion.net/docs/learn/how-it-works
-[faq]: https://gitversion.net/docs/learn/faq
-[who]: https://gitversion.net/docs/learn/who
-[gv-in-action]: https://raw.githubusercontent.com/GitTools/GitVersion/master/docs/input/docs/img/README.png
-[banner]: https://raw.githubusercontent.com/GitTools/graphics/master/GitVersion/banner-1280x640.png
-[app-icon]: https://thenounproject.com/term/tree/13389/
-[app-icon-author]: http://thenounproject.com/david.chapman
+[semver]: https://semver.org
+
+[azure-pipeline]: https://dev.azure.com/GitTools/GitVersion/_build/latest?definitionId=1
+
+[azure-pipeline-badge]: https://dev.azure.com/GitTools/GitVersion/_apis/build/status/GitTools.GitVersion
+
+[github-actions]: https://github.com/GitTools/GitVersion/actions
+
+[github-actions-badge]: https://github.com/GitTools/GitVersion/workflows/CI/badge.svg
+
+[codecov]: https://codecov.io/gh/GitTools/GitVersion
+
+[codecov-badge]: https://codecov.io/gh/GitTools/GitVersion/branch/main/graph/badge.svg
+
+[docs]: https://gitversion.net/docs/
+
+[gh-rel]: https://github.com/GitTools/GitVersion/releases/latest
+
+[gh-rel-badge]: https://img.shields.io/github/release/gittools/gitversion.svg?logo=github
+
+[choco]: https://chocolatey.org/packages/GitVersion.Portable
+
+[choco-badge]: https://img.shields.io/chocolatey/v/gitversion.portable.svg?logo=nuget
+
+[gvt]: https://www.nuget.org/packages/GitVersion.MsBuild
+
+[gvt-badge]: https://img.shields.io/nuget/v/GitVersion.MsBuild.svg?logo=nuget
+
+[gvgt]: https://www.nuget.org/packages/GitVersion.Tool
+
+[gvgt-badge]: https://img.shields.io/nuget/v/GitVersion.Tool.svg?logo=nuget
+
+[brew]: https://formulae.brew.sh/formula/gitversion
+
+[brew-badge]: https://img.shields.io/homebrew/v/gitversion.svg?logo=homebrew
+
+[winget]: https://github.com/microsoft/winget-pkgs/tree/master/manifests/g/GitTools/GitVersion
+
+[winget-badge]: https://img.shields.io/winget/v/GitTools.GitVersion.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMeSURBVHgBrVS9axRREJ/3ds+QRPLtBxolYkRJYSNiKZGoaGdtI+gfIGhCCEgupb2llonYCmJhYZMDaysxClHwQriYXKI5xezOOPM+dt9uLlWyd4/3MW9+M/Obmacg+F486JolgCrs41Osf/95a87vdSjcL3g7jDjc1Dew6Itcl5VSQGTVyUn2/tTu3dvqhZGK1u95OQIH8y3vII7fqn5aNhTFSt87QHD5RhympWi58RciZUMTOtDyYffhgkprL6QAms9I9MmmV319MzXL+yoQWoHw7A34M/4jYS5zcpIzXqM7K+jLUFhVS68fkT+UIU6hUyyCOWVEk2raA9SUAeV4MWFqN2A9tYKit15OJc/DSMMoFOQ6MRoD9lIYib+IzkPd0Q/nrk8ZJ768ewpJq5Hd81FmkWcGuNGMAUxA5nCIl1aGkCYpdJ+6ApWuQah0D5p1mhbvp4xBfu9lacIR8AYyejDj0EZu98hzkqQZJQIuQykq5IqCHDgubQ5yvotGfF7CqOSaOOX1oFwUYa7Ysdh6iUEV5OWZe4aOMnsmgBK+Unl1hZUTFoJGspyR80pm2QvvfaMTcGZimhM8wGdY8Ex39sPpqw/h6MU7Lh9o9U20eU5jTBIXFphIvCcdQ+dh+PJdA3j2xgw0vn3Moog6B2D05hPoOHwEeoYvwernGqS/vu/qG7lv+6BQ89bQen0Jmmt16Bk4Doe4ck6OjbOn9rU9MXYtA9laX4HW9hZUJOmlfMhPZwnMSi6xycFt+PBqBrZ+1gu9IVT40Vz7AYvz3But1UyfEPOC4Fnnh5gdSl9odqc3akLt5TQbWXHy3IiA1xi8L9qASIM5SznxkvywF7RvCD/IC3kdaWKAJiwuTBaMbHJUtflJdmAdYk0uqUkQhWOCcTSVKErDbpYqYIB+iWThMfzeWIFNQ8ukMVyJwEWMAcVFPLX47Db5ms3q15WieYpds/3bSaGx+cc8WUO9FQZXbR/E8isck9AC1LbE8obhixHBsb6Ka16bh7KBwnPtZp0gzvnWNxSlSd4oJi85nxBQkVHjGxRts/nkksFK5/4DGLPsj2fzroIAAAAASUVORK5CYII=
+
+[dockerhub]: https://hub.docker.com/r/gittools/gitversion/
+
+[dockerhub-badge]: https://img.shields.io/docker/pulls/gittools/gitversion.svg?logo=docker
+
+[az-pipeline-task]: https://marketplace.visualstudio.com/items?itemName=gittools.gittools
+
+[az-pipeline-task-badge]: https://img.shields.io/badge/marketplace-gittools-blue?logo=data:application/pdf;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAABJlJREFUWIXFVk1sVFUU/u6dNzOd6fx2ftoGFNIfNa1prCW4ALHsGolIYmjQGH/CwmUXBl2gK0OihoUYE5G40GAEQ7QJ0IobQSEkLYLFH4QabSpUptPpTDs/773pzLvHRTvDm3lvpjOtxpOcTN69557vu+eec+YwIsL/KdK/4aRzz8WupubA4xKDrRZ7LS8yYxPZ4/RDX27dBLa8PLGnu7fjKxBYPee2ijgH8PG6CGwZvOptfbD1pNDqAwcAboUbWOcTeDb4R8CYfS1ZJLTl3zUT2Lr/xkvhVt82Ekb4TSGG9o12OOwc0cQSfp3OQVZLgySwDgLtg1e9nR0tR02w0bPZgofbXcVvt9OKjWGBr8cXIavcwIBjDbKhxTcCMLsgQK92K6GrzQUilKhN4ujeZCuxNUSg8/kxj1coq5aRsAdeCLUEtpm1D4+TVczGkM8Govy9BQYqEuh78WKPx2a9TmioCs4ZRyDYhErNS1YJlfqarGol58RKCCQAWNJYu8Sq5zJjDI3uAAioCJKQgWhCRchvvMjkXypKcmalCviycwuVv2e5Wi0OcHtDVRshGL77SUE0oRbfXxOEa5MpTEVLbQsiAUBeA6pFwMIscPgCFW+ul7TKMHpFQdClQJIYFtMEJWfMDEMSmpXUcnQApzsIgJkSaHJzLGQ0CKEDIYa5ZNGDqd98Lq/qCOQhhHlFNthcsNjsECYMgz4JPncj/F6BqZk08lrNPZEW4okLRQJCWAjceNjCOBzeJtPoNPuscLud0AhgxOF2cswntdWRibKxO9F9M9/03ywSAPEY9DUKAIzB5Q4CbKVgdRLySnC5HCi04WRaQawGcDWTvRyfS+2aGu5bKMIUavOBfZeGALxX2LBZHPAEmw1OQn4LvK5GEJZfN5mWEU3kDXZ6EUS5ZDQxdONkz4fle0zfHNr2fv8qZ+wwANgtjXCHwgZwXxn47CrgWVkej0eiA9NntyfM9ll5V2vbe+ktgN5gYLccDf5Jp8/zFACE/ZLh5rOJXEVgIkJ6fuHAbyd6DlcjaEj9P09tfxOE19Ss49FfjnfvlhfTX4R8ZeApGZF4zvCnU9AlRUE8cgdJFv+kanjMIlAuTx+c6gmGAtcz2XvglW5ORMgkYlCzGRAj5HMiNHO6P1bNf9V5YODgdGtvR/AKGEMkQZiNpRGp8OZLiozUQgyi0ORrbAkcAD44m3royHDq7SNfJh/Tb547tOnu3zH5MxKUi8bme/+Yip8QgqBXTRBSsSgW4rPIUx6CqKg1EyANnYzjdWblveUGnx5o3v/zzdv3jxzaPHHr8+7nMsnkGVq54JKiYP7ubWSyaQiQIRdqkZpGspF3uyIAwAZP2VqV8H25jAJihCWRqTqNS5JzVRp1zYRhJbxLI3pE0TIrK3VP4wapayacPfPEsBD0iv6dq2kyubrP0ggQnn3/dLp0KSd+HHrGM1b4nhvdeSzw5Hkw4KN6yNdGALQDhB0lS5y9A2BMvzQ/uvNY08AFDpCht+ulQZOzNREQsjLOnY7dZgbcit/N1uPn+o96B769BkLAbJ/Ap+Ln+9Nme3pZtRP+1/IPO814AQ1WwqwAAAAASUVORK5CYII=
+
+[gh-actions]: https://github.com/marketplace/actions/gittools
+
+[gh-actions-badge]: https://img.shields.io/badge/marketplace-gittools-blue?logo=github
+
+[contribute]: https://github.com/GitTools/GitVersion/blob/main/CONTRIBUTING.md
+
+[why]: https://gitversion.net/docs/learn/why
+
+[usage]: https://gitversion.net/docs/usage
+
+[how]: https://gitversion.net/docs/learn/how-it-works
+
+[faq]: https://gitversion.net/docs/learn/faq
+
+[who]: https://gitversion.net/docs/learn/who
+
+[gv-in-action]: https://raw.githubusercontent.com/GitTools/GitVersion/master/docs/input/docs/img/README.png
+
+[banner]: https://raw.githubusercontent.com/GitTools/graphics/master/GitVersion/banner-1280x640.png
+
+[app-icon]: https://thenounproject.com/term/tree/13389/
+
+[app-icon-author]: https://thenounproject.com/david.chapman
diff --git a/SECURITY.md b/SECURITY.md
index 6e0e279f39..8f44809e2f 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -2,28 +2,28 @@
## Supported Versions
-| Version | Supported |
-| --------: | :----------------: |
-| 5.x | :white_check_mark: |
-| ⋜ 5.x | :x: |
+| Version | Supported |
+|--------:|:--------------------:|
+| 6.x | :white\_check\_mark: |
+| < 6.x | :x: |
## Reporting Security Issues
⚠ **Please do not report security vulnerabilities through public GitHub issues.** ⚠
-Instead, please send an email to [security@gitversion.net](mailto:security@gitversion.net).
+Instead, please send an email to .
You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message.
Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue:
-* Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
-* Full paths of source file(s) related to the manifestation of the issue
-* The location of the affected source code (tag/branch/commit or direct URL)
-* Any special configuration required to reproduce the issue
-* Step-by-step instructions to reproduce the issue
-* Proof-of-concept or exploit code (if possible)
-* Impact of the issue, including how an attacker might exploit the issue
+* Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
+* Full paths of source file(s) related to the manifestation of the issue
+* The location of the affected source code (tag/branch/commit or direct URL)
+* Any special configuration required to reproduce the issue
+* Step-by-step instructions to reproduce the issue
+* Proof-of-concept or exploit code (if possible)
+* Impact of the issue, including how an attacker might exploit the issue
This information will help us triage your report more quickly.
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
deleted file mode 100644
index 5f6d29654a..0000000000
--- a/azure-pipelines.yml
+++ /dev/null
@@ -1,124 +0,0 @@
-trigger:
- branches:
- include:
- - main
- - fix/*
- - feature/*
-pr:
- branches:
- include:
- - main
-
-variables:
- DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 'true'
- DOTNET_CLI_TELEMETRY_OPTOUT: 'true'
-
-stages:
-- stage: Build
- displayName: 'Build'
- jobs:
- - job: Build
- strategy:
- matrix:
- 'Windows':
- VM_IMAGE: 'windows-latest'
- 'Linux':
- VM_IMAGE: 'ubuntu-latest'
- 'macOS':
- VM_IMAGE: 'macOS-latest'
- pool:
- vmImage: $(VM_IMAGE)
- steps:
- - template: .azurepipelines/build.yml
-- stage: Test
- displayName: 'Unit Test'
- dependsOn: []
- jobs:
- - job: Test
- strategy:
- matrix:
- 'Windows':
- VM_IMAGE: 'windows-latest'
- 'Linux':
- VM_IMAGE: 'ubuntu-latest'
- 'macOS':
- VM_IMAGE: 'macOS-latest'
- pool:
- vmImage: $(VM_IMAGE)
- steps:
- - template: .azurepipelines/test.yml
-
-- stage: Artifact_Linux_Test
- displayName: 'Artifacts Linux test'
- dependsOn:
- - Build
- - Test
- condition: succeeded()
- jobs:
- - template: .azurepipelines/artifacts-linux-test.yml
- parameters:
- name: Linux
- vmImage: 'ubuntu-latest'
- distros: [ alpine.3.12-x64, centos.7-x64, centos.8-x64, debian.9-x64, debian.10-x64, fedora.33-x64, ubuntu.16.04-x64, ubuntu.18.04-x64, ubuntu.20.04-x64 ]
- dotnetVersions: [ '3.1', '5.0' ]
-
-- stage: Artifact_Windows_Test
- displayName: 'Artifacts Windows test'
- dependsOn:
- - Build
- - Test
- condition: succeeded()
- jobs:
- - template: .azurepipelines/artifacts-windows-test.yml
-
-- stage: Docker
- displayName: 'Docker Build & Test'
- dependsOn:
- - Artifact_Linux_Test
- - Artifact_Windows_Test
- condition: succeeded()
- jobs:
- - template: .azurepipelines/docker.yml
- parameters:
- name: Linux
- vmImage: 'ubuntu-latest'
- distros: [ alpine.3.12-x64, centos.7-x64, centos.8-x64, debian.9-x64, debian.10-x64, fedora.33-x64, ubuntu.16.04-x64, ubuntu.18.04-x64, ubuntu.20.04-x64 ]
- dotnetVersions: [ '3.1', '5.0' ]
-
-- stage: Publish
- displayName: 'Publish'
- dependsOn:
- - Artifact_Linux_Test
- - Artifact_Windows_Test
- condition: succeeded()
- jobs:
- - job: Publish
- pool:
- vmImage: windows-latest
- strategy:
- matrix:
- CI:
- TASK_NAME: 'CI'
- NuGet:
- TASK_NAME: 'NuGet'
- Chocolatey:
- TASK_NAME: 'Chocolatey'
- # Documentation:
- # TASK_NAME: 'Documentation'
- steps:
- - template: .azurepipelines/publish.yml
- parameters:
- taskName: $(TASK_NAME)
-
-- stage: Release
- displayName: 'Release'
- dependsOn:
- - Docker
- - Publish
- condition: succeeded()
- jobs:
- - job: Release
- pool:
- vmImage: windows-latest
- steps:
- - template: .azurepipelines/release.yml
diff --git a/build.ps1 b/build.ps1
old mode 100644
new mode 100755
index 65007bc6be..0962436bef
--- a/build.ps1
+++ b/build.ps1
@@ -1,4 +1,4 @@
-#!/usr/bin/pwsh
+#!/usr/bin/env pwsh
<#
.PARAMETER Stage
The build stage to execute.
@@ -43,13 +43,30 @@ $Arguments = @{
exclusive=$Exclusive;
nuget_useinprocessclient=$true;
}.GetEnumerator() | ForEach-Object {
- if ($_.value -ne "") { "--{0}=`"{1}`"" -f $_.key, $_.value }
+ if ($($_.Key -ceq "dryrun") -or ($_.Key -ceq "exclusive")) {
+ if ($_.Value -eq $true) {
+ # switches must not be assigned true or false, but must be passed to indicate true.
+ "--{0}" -f $_.Key
+ }
+ }
+ else {
+ if ($_.Value -cne "") {
+ if ($_.Value -as [string] -contains " ") {
+ $_.Value = "$($_.Value)" # if it contains spaces, enclose it.
+ }
+ "--{0}={1}" -f $_.Key, $_.Value
+ }
+ }
};
+$Arguments | Join-String -Separator " " | Write-Verbose
+
# Start Cake
Write-Host "Running build stage $Stage..."
-& dotnet run --project build/$Stage/$Stage.csproj -- $Arguments $ScriptArgs
+$cmdline = "& dotnet run --project build/$Stage/$Stage.csproj -- $Arguments $ScriptArgs"
+Write-Verbose $cmdline
+Invoke-Command -ScriptBlock ([scriptblock]::Create($cmdline))
if ($env:APPVEYOR) {
$host.SetShouldExit($LASTEXITCODE)
diff --git a/build/.run/Artifacts DotnetTool Test.run.xml b/build/.run/Artifacts DotnetTool Test.run.xml
index b79166a340..ffb49db890 100644
--- a/build/.run/Artifacts DotnetTool Test.run.xml
+++ b/build/.run/Artifacts DotnetTool Test.run.xml
@@ -1,9 +1,12 @@
-
-
+
+
+
+
+
@@ -12,7 +15,7 @@
-
+
diff --git a/build/.run/Artifacts Executable Test.run.xml b/build/.run/Artifacts Executable Test.run.xml
index 260a2b5727..85538064f0 100644
--- a/build/.run/Artifacts Executable Test.run.xml
+++ b/build/.run/Artifacts Executable Test.run.xml
@@ -1,9 +1,12 @@
-
+
+
+
+
@@ -12,9 +15,9 @@
-
+
-
+
\ No newline at end of file
diff --git a/build/.run/Artifacts MsBuildCore Test.run.xml b/build/.run/Artifacts MsBuildCore Test.run.xml
index 1a96f6dce6..8478f08108 100644
--- a/build/.run/Artifacts MsBuildCore Test.run.xml
+++ b/build/.run/Artifacts MsBuildCore Test.run.xml
@@ -1,9 +1,12 @@
-
-
+
+
+
+
+
@@ -12,7 +15,7 @@
-
+
diff --git a/build/.run/Artifacts MsBuildFull Test.run.xml b/build/.run/Artifacts MsBuildFull Test.run.xml
index 1720ff0093..537874156c 100644
--- a/build/.run/Artifacts MsBuildFull Test.run.xml
+++ b/build/.run/Artifacts MsBuildFull Test.run.xml
@@ -1,9 +1,12 @@
-
+
+
+
+
@@ -12,9 +15,9 @@
-
+
-
+
\ No newline at end of file
diff --git a/build/.run/Artifacts Native Test.run.xml b/build/.run/Artifacts Native Test.run.xml
index 6f799f09dd..b7ea118f83 100644
--- a/build/.run/Artifacts Native Test.run.xml
+++ b/build/.run/Artifacts Native Test.run.xml
@@ -1,9 +1,12 @@
-
-
+
+
+
+
+
@@ -12,7 +15,7 @@
-
+
diff --git a/build/.run/Artifacts Prepare.run.xml b/build/.run/Artifacts Prepare.run.xml
index abfa44087a..43c9e42042 100644
--- a/build/.run/Artifacts Prepare.run.xml
+++ b/build/.run/Artifacts Prepare.run.xml
@@ -1,9 +1,12 @@
-
-
+
+
+
+
+
@@ -12,7 +15,7 @@
-
+
diff --git a/build/.run/Artifacts Test.run.xml b/build/.run/Artifacts Test.run.xml
index 00cbcedda2..b9807ea4a4 100644
--- a/build/.run/Artifacts Test.run.xml
+++ b/build/.run/Artifacts Test.run.xml
@@ -1,9 +1,12 @@
-
-
+
+
+
+
+
@@ -12,7 +15,7 @@
-
+
diff --git a/build/.run/Build Docs.run.xml b/build/.run/Build Docs.run.xml
index eec6929a0e..43431e74bb 100644
--- a/build/.run/Build Docs.run.xml
+++ b/build/.run/Build Docs.run.xml
@@ -1,9 +1,12 @@
-
+
+
+
+
@@ -12,9 +15,9 @@
-
+
-
+
\ No newline at end of file
diff --git a/build/.run/UnitTest (5.0).run.xml b/build/.run/Build Prepare.run.xml
similarity index 65%
rename from build/.run/UnitTest (5.0).run.xml
rename to build/.run/Build Prepare.run.xml
index 4b83f40ccd..2e820c42fe 100644
--- a/build/.run/UnitTest (5.0).run.xml
+++ b/build/.run/Build Prepare.run.xml
@@ -1,9 +1,12 @@
-
-
-
+
+
+
+
+
+
@@ -12,9 +15,9 @@
-
+
-
+
\ No newline at end of file
diff --git a/build/.run/Build.run.xml b/build/.run/Build.run.xml
index 7a45af8c8f..e178484aae 100644
--- a/build/.run/Build.run.xml
+++ b/build/.run/Build.run.xml
@@ -1,9 +1,12 @@
-
+
-
+
+
+
+
@@ -12,9 +15,9 @@
-
+
-
+
\ No newline at end of file
diff --git a/build/.run/Clean.run.xml b/build/.run/Clean.run.xml
index d1878a9df9..d1c8841cc2 100644
--- a/build/.run/Clean.run.xml
+++ b/build/.run/Clean.run.xml
@@ -1,9 +1,12 @@
-
+
-
+
+
+
+
@@ -12,9 +15,9 @@
-
+
-
+
\ No newline at end of file
diff --git a/build/.run/Code Format.run.xml b/build/.run/Code Format.run.xml
index 07647ad72e..560927676b 100644
--- a/build/.run/Code Format.run.xml
+++ b/build/.run/Code Format.run.xml
@@ -1,9 +1,12 @@
-
+
+
+
+
@@ -12,7 +15,7 @@
-
+
diff --git a/build/.run/Default Artifacts.run.xml b/build/.run/Default Artifacts.run.xml
index 399102d9b7..fe2a2c7a99 100644
--- a/build/.run/Default Artifacts.run.xml
+++ b/build/.run/Default Artifacts.run.xml
@@ -1,9 +1,12 @@
-
+
+
+
+
@@ -12,9 +15,9 @@
-
+
-
+
\ No newline at end of file
diff --git a/build/.run/Default Build.run.xml b/build/.run/Default Build.run.xml
index 03bb44b7cd..6abaa465f3 100644
--- a/build/.run/Default Build.run.xml
+++ b/build/.run/Default Build.run.xml
@@ -1,9 +1,12 @@
-
+
+
+
+
@@ -12,9 +15,9 @@
-
+
-
+
\ No newline at end of file
diff --git a/build/.run/Default Chores.run.xml b/build/.run/Default Config.run.xml
similarity index 63%
rename from build/.run/Default Chores.run.xml
rename to build/.run/Default Config.run.xml
index f2ba56aa12..1d2cb9fab3 100644
--- a/build/.run/Default Chores.run.xml
+++ b/build/.run/Default Config.run.xml
@@ -1,20 +1,23 @@
-
-
-
+
+
+
+
+
+
-
+
-
+
-
+
\ No newline at end of file
diff --git a/build/.run/Default Docker.run.xml b/build/.run/Default Docker.run.xml
index 7b8485d1fe..461aaa85bc 100644
--- a/build/.run/Default Docker.run.xml
+++ b/build/.run/Default Docker.run.xml
@@ -1,9 +1,12 @@
-
+
+
+
+
@@ -12,9 +15,9 @@
-
+
-
+
\ No newline at end of file
diff --git a/build/.run/Default Docs.run.xml b/build/.run/Default Docs.run.xml
index 0e9cf652a7..b4ea267b7b 100644
--- a/build/.run/Default Docs.run.xml
+++ b/build/.run/Default Docs.run.xml
@@ -1,9 +1,12 @@
-
+
+
+
+
@@ -12,7 +15,7 @@
-
+
diff --git a/build/.run/Default Publish.run.xml b/build/.run/Default Publish.run.xml
index c4edb33072..03f349b259 100644
--- a/build/.run/Default Publish.run.xml
+++ b/build/.run/Default Publish.run.xml
@@ -1,9 +1,12 @@
-
+
+
+
+
@@ -12,9 +15,9 @@
-
+
-
+
\ No newline at end of file
diff --git a/build/.run/Docker Build.run.xml b/build/.run/Docker Build.run.xml
index 198f574003..b2da1eadd5 100644
--- a/build/.run/Docker Build.run.xml
+++ b/build/.run/Docker Build.run.xml
@@ -1,9 +1,12 @@
-
-
+
+
+
+
+
@@ -12,7 +15,7 @@
-
+
diff --git a/build/.run/Docker Manifest.run.xml b/build/.run/Docker Manifest.run.xml
index eb994a062c..deb625e045 100644
--- a/build/.run/Docker Manifest.run.xml
+++ b/build/.run/Docker Manifest.run.xml
@@ -1,9 +1,12 @@
-
-
+
+
+
+
+
@@ -12,7 +15,7 @@
-
+
diff --git a/build/.run/Docker Publish.run.xml b/build/.run/Docker Publish.run.xml
index dbdebe935f..25a5f9d7a7 100644
--- a/build/.run/Docker Publish.run.xml
+++ b/build/.run/Docker Publish.run.xml
@@ -1,9 +1,12 @@
-
-
+
+
+
+
+
@@ -12,7 +15,7 @@
-
+
diff --git a/build/.run/Docker Test.run.xml b/build/.run/Docker Test.run.xml
index 09f0c21d44..f7664d6759 100644
--- a/build/.run/Docker Test.run.xml
+++ b/build/.run/Docker Test.run.xml
@@ -1,9 +1,12 @@
-
-
+
+
+
+
+
@@ -12,7 +15,7 @@
-
+
diff --git a/build/.run/DockerHub Readme Publish.run.xml b/build/.run/DockerHub Readme Publish.run.xml
new file mode 100644
index 0000000000..4ac6c97d64
--- /dev/null
+++ b/build/.run/DockerHub Readme Publish.run.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/.run/Generate Schemas.run.xml b/build/.run/Generate Schemas.run.xml
new file mode 100644
index 0000000000..e009ddc54a
--- /dev/null
+++ b/build/.run/Generate Schemas.run.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/.run/Package Archive.run.xml b/build/.run/Package Archive.run.xml
index 2133c7a4d1..fa6cca1b56 100644
--- a/build/.run/Package Archive.run.xml
+++ b/build/.run/Package Archive.run.xml
@@ -1,9 +1,12 @@
-
+
+
+
+
@@ -12,7 +15,7 @@
-
+
diff --git a/build/.run/Package Chocolatey.run.xml b/build/.run/Package Chocolatey.run.xml
index c51905b1cb..88b86ef25c 100644
--- a/build/.run/Package Chocolatey.run.xml
+++ b/build/.run/Package Chocolatey.run.xml
@@ -1,9 +1,12 @@
-
+
+
+
+
@@ -12,9 +15,9 @@
-
+
-
+
\ No newline at end of file
diff --git a/build/.run/Package Nuget.run.xml b/build/.run/Package Nuget.run.xml
index efdbd8bef8..841a3a4fc8 100644
--- a/build/.run/Package Nuget.run.xml
+++ b/build/.run/Package Nuget.run.xml
@@ -1,9 +1,12 @@
-
+
+
+
+
@@ -12,9 +15,9 @@
-
+
-
+
\ No newline at end of file
diff --git a/build/.run/PackagePrepare.run.xml b/build/.run/Package Prepare.run.xml
similarity index 76%
rename from build/.run/PackagePrepare.run.xml
rename to build/.run/Package Prepare.run.xml
index 225f94e90d..9c72d75e52 100644
--- a/build/.run/PackagePrepare.run.xml
+++ b/build/.run/Package Prepare.run.xml
@@ -1,9 +1,12 @@
-
+
-
+
+
+
+
@@ -12,9 +15,9 @@
-
+
-
+
\ No newline at end of file
diff --git a/build/.run/Package.run.xml b/build/.run/Package.run.xml
index 0cc953e5ca..ecb147deb9 100644
--- a/build/.run/Package.run.xml
+++ b/build/.run/Package.run.xml
@@ -1,9 +1,12 @@
-
+
-
+
+
+
+
@@ -12,9 +15,9 @@
-
+
-
+
\ No newline at end of file
diff --git a/build/.run/Preview Docs.run.xml b/build/.run/Preview Docs.run.xml
index 9068da7671..d0bd79cb9e 100644
--- a/build/.run/Preview Docs.run.xml
+++ b/build/.run/Preview Docs.run.xml
@@ -1,9 +1,12 @@
-
+
+
+
+
@@ -12,9 +15,9 @@
-
+
-
+
\ No newline at end of file
diff --git a/build/.run/Publish Chocolatey.run.xml b/build/.run/Publish Chocolatey.run.xml
index 641d36acea..1dae103da1 100644
--- a/build/.run/Publish Chocolatey.run.xml
+++ b/build/.run/Publish Chocolatey.run.xml
@@ -1,11 +1,12 @@
-
+
+
@@ -15,9 +16,9 @@
-
+
-
+
\ No newline at end of file
diff --git a/build/.run/Publish Docs.run.xml b/build/.run/Publish Docs.run.xml
index 7df9af5017..22ceca648b 100644
--- a/build/.run/Publish Docs.run.xml
+++ b/build/.run/Publish Docs.run.xml
@@ -1,9 +1,12 @@
-
+
+
+
+
@@ -12,9 +15,9 @@
-
+
-
+
\ No newline at end of file
diff --git a/build/.run/Publish Nuget.run.xml b/build/.run/Publish Nuget.run.xml
index 2b4af69eb4..1e1bb97cb2 100644
--- a/build/.run/Publish Nuget.run.xml
+++ b/build/.run/Publish Nuget.run.xml
@@ -1,11 +1,12 @@
-
+
+
@@ -15,9 +16,9 @@
-
+
-
+
\ No newline at end of file
diff --git a/build/.run/Publish Release.run.xml b/build/.run/Publish Release.run.xml
index ff99047ca0..a6b1e66b5a 100644
--- a/build/.run/Publish Release.run.xml
+++ b/build/.run/Publish Release.run.xml
@@ -1,9 +1,12 @@
-
+
+
+
+
@@ -12,9 +15,9 @@
-
+
-
+
\ No newline at end of file
diff --git a/build/.run/PublishCoverage.run.xml b/build/.run/PublishCoverage.run.xml
new file mode 100644
index 0000000000..1b2c752e41
--- /dev/null
+++ b/build/.run/PublishCoverage.run.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/.run/Tools Install.run.xml b/build/.run/SetMatrix.run.xml
similarity index 56%
rename from build/.run/Tools Install.run.xml
rename to build/.run/SetMatrix.run.xml
index a93ddf593d..2ee4920e9a 100644
--- a/build/.run/Tools Install.run.xml
+++ b/build/.run/SetMatrix.run.xml
@@ -1,20 +1,20 @@
-
-
-
-
+
+
+
+
-
+
-
+
-
+
\ No newline at end of file
diff --git a/build/.run/Test.run.xml b/build/.run/Test.run.xml
index d5e9c3b1eb..2a2db6d92e 100644
--- a/build/.run/Test.run.xml
+++ b/build/.run/Test.run.xml
@@ -1,9 +1,12 @@
-
+
-
+
+
+
+
@@ -12,9 +15,9 @@
-
+
-
+
\ No newline at end of file
diff --git a/build/.run/UnitTest (3.1).run.xml b/build/.run/UnitTest (8.0).run.xml
similarity index 73%
rename from build/.run/UnitTest (3.1).run.xml
rename to build/.run/UnitTest (8.0).run.xml
index c9d30bd0c4..2c39db1e1c 100644
--- a/build/.run/UnitTest (3.1).run.xml
+++ b/build/.run/UnitTest (8.0).run.xml
@@ -1,7 +1,7 @@
-
-
-
+
+
+
@@ -12,7 +12,7 @@
-
+
diff --git a/build/.run/UnitTest (4.8).run.xml b/build/.run/UnitTest (9.0).run.xml
similarity index 69%
rename from build/.run/UnitTest (4.8).run.xml
rename to build/.run/UnitTest (9.0).run.xml
index bc1829bc99..e9702af0a9 100644
--- a/build/.run/UnitTest (4.8).run.xml
+++ b/build/.run/UnitTest (9.0).run.xml
@@ -1,9 +1,12 @@
-
-
-
-
+
+
+
+
+
+
+
@@ -12,9 +15,9 @@
-
+
-
+
\ No newline at end of file
diff --git a/build/.run/ValidateVersion.run.xml b/build/.run/Validate Version.run.xml
similarity index 75%
rename from build/.run/ValidateVersion.run.xml
rename to build/.run/Validate Version.run.xml
index 3f0dfe14e3..527061c25e 100644
--- a/build/.run/ValidateVersion.run.xml
+++ b/build/.run/Validate Version.run.xml
@@ -1,9 +1,12 @@
-
+
-
-
+
+
+
+
+
@@ -12,9 +15,9 @@
-
+
-
+
\ No newline at end of file
diff --git a/build/CI.sln b/build/CI.sln
deleted file mode 100644
index 7489a61f65..0000000000
--- a/build/CI.sln
+++ /dev/null
@@ -1,64 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 12.00
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sln", "sln", "{EC2C1EC4-BE56-4CAE-A3EE-4A67EED6BC6C}"
-ProjectSection(SolutionItems) = preProject
- Directory.Build.props = Directory.Build.props
- Directory.Packages.props = Directory.Packages.props
- ..\dotnet-tools.json = ..\dotnet-tools.json
-EndProjectSection
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "build", "build\build.csproj", "{1AC00FB2-E28A-46B7-9683-AA7A1AFC29EB}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "common", "common\common.csproj", "{8B04D233-2891-44D8-A7D2-0EAFD38F1F70}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "chores", "chores\chores.csproj", "{E8346E70-2A34-460E-90FD-DFD5B15FD476}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "artifacts", "artifacts\artifacts.csproj", "{7162B10E-40A1-44E3-AE5E-E7D1755AADAD}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "docker", "docker\docker.csproj", "{E32EA41F-4614-4890-8C4D-4E0E2BC3B5D1}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "publish", "publish\publish.csproj", "{EC09227C-01E6-49E2-A0EF-B91E0CDCA75A}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "docs", "docs\docs.csproj", "{C85F4443-5A37-4230-BC0C-C4436149AAEB}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "release", "release\release.csproj", "{8DAB65D8-57E8-4185-96FC-8A7C7373FC23}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {1AC00FB2-E28A-46B7-9683-AA7A1AFC29EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1AC00FB2-E28A-46B7-9683-AA7A1AFC29EB}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1AC00FB2-E28A-46B7-9683-AA7A1AFC29EB}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1AC00FB2-E28A-46B7-9683-AA7A1AFC29EB}.Release|Any CPU.Build.0 = Release|Any CPU
- {8B04D233-2891-44D8-A7D2-0EAFD38F1F70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8B04D233-2891-44D8-A7D2-0EAFD38F1F70}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8B04D233-2891-44D8-A7D2-0EAFD38F1F70}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8B04D233-2891-44D8-A7D2-0EAFD38F1F70}.Release|Any CPU.Build.0 = Release|Any CPU
- {E8346E70-2A34-460E-90FD-DFD5B15FD476}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E8346E70-2A34-460E-90FD-DFD5B15FD476}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E8346E70-2A34-460E-90FD-DFD5B15FD476}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E8346E70-2A34-460E-90FD-DFD5B15FD476}.Release|Any CPU.Build.0 = Release|Any CPU
- {7162B10E-40A1-44E3-AE5E-E7D1755AADAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7162B10E-40A1-44E3-AE5E-E7D1755AADAD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7162B10E-40A1-44E3-AE5E-E7D1755AADAD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7162B10E-40A1-44E3-AE5E-E7D1755AADAD}.Release|Any CPU.Build.0 = Release|Any CPU
- {E32EA41F-4614-4890-8C4D-4E0E2BC3B5D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E32EA41F-4614-4890-8C4D-4E0E2BC3B5D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E32EA41F-4614-4890-8C4D-4E0E2BC3B5D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E32EA41F-4614-4890-8C4D-4E0E2BC3B5D1}.Release|Any CPU.Build.0 = Release|Any CPU
- {EC09227C-01E6-49E2-A0EF-B91E0CDCA75A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EC09227C-01E6-49E2-A0EF-B91E0CDCA75A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EC09227C-01E6-49E2-A0EF-B91E0CDCA75A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EC09227C-01E6-49E2-A0EF-B91E0CDCA75A}.Release|Any CPU.Build.0 = Release|Any CPU
- {C85F4443-5A37-4230-BC0C-C4436149AAEB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C85F4443-5A37-4230-BC0C-C4436149AAEB}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C85F4443-5A37-4230-BC0C-C4436149AAEB}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C85F4443-5A37-4230-BC0C-C4436149AAEB}.Release|Any CPU.Build.0 = Release|Any CPU
- {8DAB65D8-57E8-4185-96FC-8A7C7373FC23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8DAB65D8-57E8-4185-96FC-8A7C7373FC23}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8DAB65D8-57E8-4185-96FC-8A7C7373FC23}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8DAB65D8-57E8-4185-96FC-8A7C7373FC23}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
-EndGlobal
diff --git a/build/CI.sln.DotSettings b/build/CI.sln.DotSettings
index f37a772647..98aa4a4f86 100644
--- a/build/CI.sln.DotSettings
+++ b/build/CI.sln.DotSettings
@@ -1,4 +1,5 @@
-
+
OS
True
- True
\ No newline at end of file
+ True
+ True
\ No newline at end of file
diff --git a/build/CI.slnx b/build/CI.slnx
new file mode 100644
index 0000000000..15846bf628
--- /dev/null
+++ b/build/CI.slnx
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/Directory.Build.props b/build/Directory.Build.props
index cf7017fab7..9b2f07e792 100644
--- a/build/Directory.Build.props
+++ b/build/Directory.Build.props
@@ -1,12 +1,12 @@
-
+
Exe
- net6.0
+ net9.0
$(MSBuildProjectDirectory)
..\..\run\
false
enable
- 10
+ latest
NU1604
enable
@@ -37,5 +37,13 @@
+
+
+
+
+
+
+
+
diff --git a/build/Directory.Packages.props b/build/Directory.Packages.props
index e035cee9d4..fc7aee8992 100644
--- a/build/Directory.Packages.props
+++ b/build/Directory.Packages.props
@@ -1,12 +1,20 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/artifacts/BuildContext.cs b/build/artifacts/BuildContext.cs
index 7976846434..6a1c373d95 100644
--- a/build/artifacts/BuildContext.cs
+++ b/build/artifacts/BuildContext.cs
@@ -1,16 +1,8 @@
-using Common.Utilities;
+using Common.Context;
namespace Artifacts;
-public class BuildContext : BuildContextBase
+public class BuildContext(ICakeContext context) : DockerBuildContext(context)
{
- public string MsBuildConfiguration { get; set; } = "Release";
-
- public bool IsDockerOnLinux { get; set; }
-
- public IEnumerable Images { get; set; } = new List();
-
- public BuildContext(ICakeContext context) : base(context)
- {
- }
+ public string MsBuildConfiguration { get; } = Constants.DefaultConfiguration;
}
diff --git a/build/artifacts/BuildLifetime.cs b/build/artifacts/BuildLifetime.cs
index 3b404a6700..5b74fe09c0 100644
--- a/build/artifacts/BuildLifetime.cs
+++ b/build/artifacts/BuildLifetime.cs
@@ -1,36 +1,8 @@
-using Common.Utilities;
+using Common.Lifetime;
namespace Artifacts;
-public class BuildLifetime : BuildLifetimeBase
+public class BuildLifetime : DockerBuildLifetime
{
- public override void Setup(BuildContext context)
- {
- base.Setup(context);
-
- context.IsDockerOnLinux = context.DockerCustomCommand("info --format '{{.OSType}}'").First().Replace("'", string.Empty) == "linux";
-
- var architecture = context.HasArgument(Arguments.Architecture) ? context.Argument(Arguments.Architecture) : (Architecture?)null;
- var dockerRegistry = context.Argument(Arguments.DockerRegistry, DockerRegistry.DockerHub);
- var dotnetVersion = context.Argument(Arguments.DockerDotnetVersion, string.Empty).ToLower();
- var dockerDistro = context.Argument(Arguments.DockerDistro, string.Empty).ToLower();
-
- var versions = string.IsNullOrWhiteSpace(dotnetVersion) ? Constants.VersionsToBuild : new[] { dotnetVersion };
- var distros = string.IsNullOrWhiteSpace(dockerDistro) ? Constants.DockerDistrosToBuild : new[] { dockerDistro };
- var archs = architecture.HasValue ? new[] { architecture.Value } : Constants.ArchToBuild;
-
- var registry = dockerRegistry == DockerRegistry.DockerHub ? Constants.DockerHubRegistry : Constants.GitHubContainerRegistry;
- context.Images = from version in versions
- from distro in distros
- from arch in archs
- select new DockerImage(distro, version, arch, registry, true);
-
- context.StartGroup("Build Setup");
-
- LogBuildInformation(context);
-
- context.Information("IsDockerOnLinux: {0}", context.IsDockerOnLinux);
- context.Information($"Building for Version: {dotnetVersion}, Distro: {dockerDistro}");
- context.EndGroup();
- }
+ protected override bool UseBaseImage => true;
}
diff --git a/build/artifacts/Program.cs b/build/artifacts/Program.cs
index 7b88e63bd5..332d44d6b1 100644
--- a/build/artifacts/Program.cs
+++ b/build/artifacts/Program.cs
@@ -7,5 +7,4 @@
.UseLifetime()
.UseTaskLifetime()
.UseRootDirectory()
- .InstallToolsFromRootManifest()
.Run(args);
diff --git a/build/artifacts/Tasks/ArtifactsDotnetToolTest.cs b/build/artifacts/Tasks/ArtifactsDotnetToolTest.cs
index dc802c4cc6..ebe194aaf6 100644
--- a/build/artifacts/Tasks/ArtifactsDotnetToolTest.cs
+++ b/build/artifacts/Tasks/ArtifactsDotnetToolTest.cs
@@ -4,9 +4,9 @@ namespace Artifacts.Tasks;
[TaskName(nameof(ArtifactsDotnetToolTest))]
[TaskDescription("Tests the dotnet global tool in docker container")]
-[TaskArgument(Arguments.DockerRegistry, Constants.DockerHub, Constants.GitHub)]
-[TaskArgument(Arguments.DockerDotnetVersion, Constants.Version50, Constants.Version60, Constants.Version31)]
-[TaskArgument(Arguments.DockerDistro, Constants.Alpine312, Constants.Debian10, Constants.Ubuntu2004)]
+[DockerRegistryArgument]
+[DockerDotnetArgument]
+[DockerDistroArgument]
[IsDependentOn(typeof(ArtifactsPrepare))]
public class ArtifactsDotnetToolTest : FrostingTask
{
@@ -27,7 +27,7 @@ public override void Run(BuildContext context)
foreach (var dockerImage in context.Images)
{
- if (context.SkipArm64Image(dockerImage)) continue;
+ if (context.SkipImageTesting(dockerImage)) continue;
var cmd = $"{rootPrefix}/scripts/test-global-tool.sh --version {version} --nugetPath {rootPrefix}/nuget --repoPath {rootPrefix}/repo";
diff --git a/build/artifacts/Tasks/ArtifactsExecutableTest.cs b/build/artifacts/Tasks/ArtifactsExecutableTest.cs
index 8127f1762a..894f3ba331 100644
--- a/build/artifacts/Tasks/ArtifactsExecutableTest.cs
+++ b/build/artifacts/Tasks/ArtifactsExecutableTest.cs
@@ -20,7 +20,7 @@ public override void Run(BuildContext context)
{
var packagesToTest = new[]
{
- "GitVersion.Commandline", "GitVersion.Portable"
+ "GitVersion.Portable"
};
foreach (var packageToTest in packagesToTest)
{
@@ -36,10 +36,10 @@ private static void PackageTest(BuildContextBase context, string packageToTest)
context.NuGetInstall(packageToTest, new NuGetInstallSettings
{
- Source = new[]
- {
+ Source =
+ [
context.MakeAbsolute(Paths.Nuget).FullPath
- },
+ ],
ExcludeVersion = true,
Prerelease = true,
OutputDirectory = outputDirectory
@@ -47,10 +47,7 @@ private static void PackageTest(BuildContextBase context, string packageToTest)
var settings = new GitVersionSettings
{
- OutputTypes = new HashSet
- {
- GitVersionOutput.Json
- },
+ OutputTypes = [GitVersionOutput.Json],
ToolPath = outputDirectory.Combine(packageToTest).Combine("tools").CombineWithFilePath("gitversion.exe").FullPath
};
var gitVersion = context.GitVersion(settings);
diff --git a/build/artifacts/Tasks/ArtifactsMsBuildCoreTest.cs b/build/artifacts/Tasks/ArtifactsMsBuildCoreTest.cs
index 28736a3717..982351ed32 100644
--- a/build/artifacts/Tasks/ArtifactsMsBuildCoreTest.cs
+++ b/build/artifacts/Tasks/ArtifactsMsBuildCoreTest.cs
@@ -4,9 +4,9 @@ namespace Artifacts.Tasks;
[TaskName(nameof(ArtifactsMsBuildCoreTest))]
[TaskDescription("Tests the msbuild package in docker container")]
-[TaskArgument(Arguments.DockerRegistry, Constants.DockerHub, Constants.GitHub)]
-[TaskArgument(Arguments.DockerDotnetVersion, Constants.Version50, Constants.Version60, Constants.Version31)]
-[TaskArgument(Arguments.DockerDistro, Constants.Alpine312, Constants.Debian10, Constants.Ubuntu2004)]
+[DockerRegistryArgument]
+[DockerDotnetArgument]
+[DockerDistroArgument]
[IsDependentOn(typeof(ArtifactsPrepare))]
public class ArtifactsMsBuildCoreTest : FrostingTask
{
@@ -14,7 +14,6 @@ public override bool ShouldRun(BuildContext context)
{
var shouldRun = true;
shouldRun &= context.ShouldRun(context.IsDockerOnLinux, $"{nameof(ArtifactsMsBuildCoreTest)} works only on Docker on Linux agents.");
-
return shouldRun;
}
@@ -27,21 +26,9 @@ public override void Run(BuildContext context)
foreach (var dockerImage in context.Images)
{
- if (context.SkipArm64Image(dockerImage)) continue;
-
- string distro = dockerImage.Distro;
- string targetFramework = dockerImage.TargetFramework;
-
- if (targetFramework == Constants.Version31 && distro == Constants.Centos8) continue; // TODO check why this one fails
- targetFramework = targetFramework switch
- {
- Constants.Version31 => $"netcoreapp{targetFramework}",
- Constants.Version50 => $"net{targetFramework}",
- Constants.Version60 => $"net{targetFramework}",
- _ => targetFramework
- };
+ if (context.SkipImageTesting(dockerImage)) continue;
- var cmd = $"{rootPrefix}/scripts/test-msbuild-task.sh --version {version} --nugetPath {rootPrefix}/nuget --repoPath {rootPrefix}/repo/tests/integration/core --targetframework {targetFramework}";
+ var cmd = $"{rootPrefix}/scripts/test-msbuild-task.sh --version {version} --nugetPath {rootPrefix}/nuget --repoPath {rootPrefix}/repo/tests/integration --targetframework net{dockerImage.TargetFramework}";
context.DockerTestArtifact(dockerImage, cmd);
}
diff --git a/build/artifacts/Tasks/ArtifactsMsBuildFullTest.cs b/build/artifacts/Tasks/ArtifactsMsBuildFullTest.cs
index 2799314e62..f4d34e623e 100644
--- a/build/artifacts/Tasks/ArtifactsMsBuildFullTest.cs
+++ b/build/artifacts/Tasks/ArtifactsMsBuildFullTest.cs
@@ -22,42 +22,25 @@ public override void Run(BuildContext context)
var nugetSource = context.MakeAbsolute(Paths.Nuget).FullPath;
- context.Information("\nTesting msbuild task with dotnet build (for .net core)\n");
- var frameworks = new[] { Constants.CoreFxVersion31, Constants.NetVersion50, Constants.NetVersion60 };
- foreach (var framework in frameworks)
+ context.Information("\nTesting msbuild task with dotnet build\n");
+ foreach (var netVersion in Constants.DotnetVersions)
{
+ var framework = $"net{netVersion}";
var dotnetMsBuildSettings = new DotNetMSBuildSettings();
- dotnetMsBuildSettings.WithProperty("TargetFrameworks", framework);
- dotnetMsBuildSettings.WithProperty("TargetFramework", framework);
+ dotnetMsBuildSettings.SetTargetFramework(framework);
dotnetMsBuildSettings.WithProperty("GitVersionMsBuildVersion", version);
- var projPath = context.MakeAbsolute(Paths.Integration.Combine("core"));
+ var projPath = context.MakeAbsolute(Paths.Integration);
context.DotNetBuild(projPath.FullPath, new DotNetBuildSettings
{
Verbosity = DotNetVerbosity.Minimal,
Configuration = context.MsBuildConfiguration,
MSBuildSettings = dotnetMsBuildSettings,
- Sources = new[] { nugetSource }
+ Sources = [nugetSource]
});
- var netcoreExe = Paths.Integration.Combine("core").Combine("build").Combine(framework).CombineWithFilePath("app.dll");
- context.ValidateOutput("dotnet", netcoreExe.FullPath, context.Version.GitVersion.FullSemVer);
+ var exe = Paths.Integration.Combine("build").Combine(framework).CombineWithFilePath("app.dll");
+ context.ValidateOutput("dotnet", exe.FullPath, context.Version.GitVersion.FullSemVer);
}
-
- context.Information("\nTesting msbuild task with msbuild (for full framework)\n");
-
- var msBuildSettings = new MSBuildSettings
- {
- Verbosity = Verbosity.Minimal,
- Restore = true
- };
-
- msBuildSettings.WithProperty("GitVersionMsBuildVersion", version);
- msBuildSettings.WithProperty("RestoreSource", nugetSource);
-
- context.MSBuild("./tests/integration/full", msBuildSettings);
-
- var fullExe = Paths.Integration.Combine("full").Combine("build").CombineWithFilePath("app.exe");
- context.ValidateOutput(fullExe.FullPath, null, context.Version.GitVersion.FullSemVer);
}
}
diff --git a/build/artifacts/Tasks/ArtifactsNativeTest.cs b/build/artifacts/Tasks/ArtifactsNativeTest.cs
index c4234b8687..2812ab76f2 100644
--- a/build/artifacts/Tasks/ArtifactsNativeTest.cs
+++ b/build/artifacts/Tasks/ArtifactsNativeTest.cs
@@ -4,9 +4,9 @@ namespace Artifacts.Tasks;
[TaskName(nameof(ArtifactsNativeTest))]
[TaskDescription("Tests the native executables in docker container")]
-[TaskArgument(Arguments.DockerRegistry, Constants.DockerHub, Constants.GitHub)]
-[TaskArgument(Arguments.DockerDotnetVersion, Constants.Version50, Constants.Version60, Constants.Version31)]
-[TaskArgument(Arguments.DockerDistro, Constants.Alpine312, Constants.Debian10, Constants.Ubuntu2004)]
+[DockerRegistryArgument]
+[DockerDotnetArgument]
+[DockerDistroArgument]
[IsDependentOn(typeof(ArtifactsPrepare))]
public class ArtifactsNativeTest : FrostingTask
{
@@ -27,13 +27,15 @@ public override void Run(BuildContext context)
foreach (var dockerImage in context.Images)
{
- if (context.SkipArm64Image(dockerImage)) continue;
+ if (context.SkipImageTesting(dockerImage)) continue;
- var runtime = dockerImage.Architecture == Architecture.Amd64 ? "linux-x64" : "linux-arm64";
+ var runtime = "linux";
if (dockerImage.Distro.StartsWith("alpine"))
{
- runtime = "linux-musl-x64";
+ runtime += "-musl";
}
+ runtime += dockerImage.Architecture == Architecture.Amd64 ? "-x64" : "-arm64";
+
var cmd = $"{rootPrefix}/scripts/test-native-tool.sh --version {version} --repoPath {rootPrefix}/repo --runtime {runtime}";
diff --git a/build/artifacts/Tasks/ArtifactsPrepare.cs b/build/artifacts/Tasks/ArtifactsPrepare.cs
index c9075d42da..2e55089920 100644
--- a/build/artifacts/Tasks/ArtifactsPrepare.cs
+++ b/build/artifacts/Tasks/ArtifactsPrepare.cs
@@ -4,9 +4,9 @@ namespace Artifacts.Tasks;
[TaskName(nameof(ArtifactsPrepare))]
[TaskDescription("Pulls the docker images needed for testing the artifacts")]
-[TaskArgument(Arguments.DockerRegistry, Constants.DockerHub, Constants.GitHub)]
-[TaskArgument(Arguments.DockerDotnetVersion, Constants.Version50, Constants.Version60, Constants.Version31)]
-[TaskArgument(Arguments.DockerDistro, Constants.Alpine312, Constants.Debian10, Constants.Ubuntu2004)]
+[DockerRegistryArgument]
+[DockerDotnetArgument]
+[DockerDistroArgument]
public class ArtifactsPrepare : FrostingTask
{
public override bool ShouldRun(BuildContext context)
@@ -21,7 +21,7 @@ public override void Run(BuildContext context)
{
foreach (var dockerImage in context.Images)
{
- if (context.SkipArm64Image(dockerImage)) continue;
+ if (context.SkipImageTesting(dockerImage)) continue;
context.DockerPullImage(dockerImage);
}
}
diff --git a/build/artifacts/Tasks/ArtifactsTest.cs b/build/artifacts/Tasks/ArtifactsTest.cs
index 36cd154310..763aeb45e9 100644
--- a/build/artifacts/Tasks/ArtifactsTest.cs
+++ b/build/artifacts/Tasks/ArtifactsTest.cs
@@ -4,9 +4,9 @@ namespace Artifacts.Tasks;
[TaskName(nameof(ArtifactsTest))]
[TaskDescription("Tests packages in docker container")]
-[TaskArgument(Arguments.DockerRegistry, Constants.DockerHub, Constants.GitHub)]
-[TaskArgument(Arguments.DockerDotnetVersion, Constants.Version50, Constants.Version60, Constants.Version31)]
-[TaskArgument(Arguments.DockerDistro, Constants.Alpine312, Constants.Debian10, Constants.Ubuntu2004)]
+[DockerRegistryArgument]
+[DockerDotnetArgument]
+[DockerDistroArgument]
[IsDependentOn(typeof(ArtifactsNativeTest))]
[IsDependentOn(typeof(ArtifactsDotnetToolTest))]
[IsDependentOn(typeof(ArtifactsMsBuildCoreTest))]
diff --git a/build/artifacts/Tasks/Default.cs b/build/artifacts/Tasks/Default.cs
index 69d435c477..702a604678 100644
--- a/build/artifacts/Tasks/Default.cs
+++ b/build/artifacts/Tasks/Default.cs
@@ -1,6 +1,4 @@
namespace Artifacts.Tasks;
[TaskDescription("Shows this output")]
-public class Default : Common.Tasks.Default
-{
-}
+public class Default : Common.Tasks.Default;
diff --git a/build/build/Build.csproj.DotSettings b/build/build/Build.csproj.DotSettings
index f2dffae8e9..aea068abc3 100644
--- a/build/build/Build.csproj.DotSettings
+++ b/build/build/Build.csproj.DotSettings
@@ -1,3 +1,3 @@
-
+
True
True
\ No newline at end of file
diff --git a/build/build/BuildContext.cs b/build/build/BuildContext.cs
index b36f9149c6..2580b482fd 100644
--- a/build/build/BuildContext.cs
+++ b/build/build/BuildContext.cs
@@ -3,15 +3,15 @@
namespace Build;
-public class BuildContext : BuildContextBase
+public class BuildContext(ICakeContext context) : BuildContextBase(context)
{
- public string MsBuildConfiguration { get; set; } = "Release";
+ public string MsBuildConfiguration { get; set; } = Constants.DefaultConfiguration;
public readonly Dictionary NativeRuntimes = new()
{
- [PlatformFamily.Windows] = new[] { "win-x64", "win-x86", "win-arm64" },
- [PlatformFamily.Linux] = new[] { "linux-x64", "linux-musl-x64", "linux-arm64", "linux-musl-arm64" },
- [PlatformFamily.OSX] = new[] { "osx-x64", "osx-arm64" },
+ [PlatformFamily.Windows] = ["win-x64", "win-arm64"],
+ [PlatformFamily.Linux] = ["linux-x64", "linux-musl-x64", "linux-arm64", "linux-musl-arm64"],
+ [PlatformFamily.OSX] = ["osx-x64", "osx-arm64"],
};
public bool EnabledUnitTests { get; set; }
@@ -19,8 +19,4 @@ public class BuildContext : BuildContextBase
public Credentials? Credentials { get; set; }
public DotNetMSBuildSettings MsBuildSettings { get; } = new();
-
- public BuildContext(ICakeContext context) : base(context)
- {
- }
}
diff --git a/build/build/BuildLifetime.cs b/build/build/BuildLifetime.cs
index 10dd99c4b4..5f0f0dc943 100644
--- a/build/build/BuildLifetime.cs
+++ b/build/build/BuildLifetime.cs
@@ -1,31 +1,36 @@
using Build.Utilities;
+using Common.Lifetime;
using Common.Utilities;
namespace Build;
public class BuildLifetime : BuildLifetimeBase
{
- public override void Setup(BuildContext context)
+ public override void Setup(BuildContext context, ISetupContext info)
{
- base.Setup(context);
+ base.Setup(context, info);
- context.MsBuildConfiguration = context.Argument(Arguments.Configuration, "Release");
+ context.MsBuildConfiguration = context.Argument(Arguments.Configuration, Constants.DefaultConfiguration);
context.EnabledUnitTests = context.IsEnabled(EnvVars.EnabledUnitTests);
context.Credentials = Credentials.GetCredentials(context);
- SetMsBuildSettingsVersion(context);
+ if (context.Version is not null)
+ {
+ SetMsBuildSettingsVersion(context);
+ }
context.StartGroup("Build Setup");
LogBuildInformation(context);
- context.Information("Configuration: {0}", context.MsBuildConfiguration);
+ context.Information($"Configuration: {context.MsBuildConfiguration}");
context.EndGroup();
}
private static void SetMsBuildSettingsVersion(BuildContext context)
{
var msBuildSettings = context.MsBuildSettings;
- var version = context.Version!;
+ ArgumentNullException.ThrowIfNull(context.Version);
+ var version = context.Version;
msBuildSettings.SetVersion(version.SemVersion);
msBuildSettings.SetAssemblyVersion(version.Version);
@@ -37,5 +42,8 @@ private static void SetMsBuildSettingsVersion(BuildContext context)
msBuildSettings.WithProperty("RepositoryCommit", version.GitVersion.Sha);
msBuildSettings.WithProperty("NoPackageAnalysis", "true");
msBuildSettings.WithProperty("UseSharedCompilation", "false");
+
+ // https://github.com/dotnet/docs/issues/37674
+ msBuildSettings.WithProperty("IncludeSourceRevisionInInformationalVersion", "false");
}
}
diff --git a/build/build/Program.cs b/build/build/Program.cs
index 2ff100dcab..815289da5e 100644
--- a/build/build/Program.cs
+++ b/build/build/Program.cs
@@ -7,6 +7,5 @@
.UseLifetime()
.UseTaskLifetime()
.UseRootDirectory()
- .InstallToolsFromRootManifest()
- .InstallNugetTool(Tools.NugetCmd, Tools.Versions[Tools.NugetCmd])
+ .InstallNugetTool(Tools.CodecovUploaderCmd, Tools.Versions[Tools.CodecovUploaderCmd])
.Run(args);
diff --git a/build/build/Tasks/Build.cs b/build/build/Tasks/Build.cs
index ecd13f75d3..15b716ca5f 100644
--- a/build/build/Tasks/Build.cs
+++ b/build/build/Tasks/Build.cs
@@ -5,18 +5,18 @@ namespace Build.Tasks;
[TaskName(nameof(Build))]
[TaskDescription("Builds the solution")]
[IsDependentOn(typeof(Clean))]
-[IsDependentOn(typeof(CodeFormat))]
+// [IsDependentOn(typeof(CodeFormat))]
public sealed class Build : FrostingTask
{
public override void Run(BuildContext context)
{
context.Information("Builds solution...");
- const string sln = "./src/GitVersion.sln";
+ const string sln = "./src/GitVersion.slnx";
context.DotNetRestore(sln, new DotNetRestoreSettings
{
Verbosity = DotNetVerbosity.Minimal,
- Sources = new[] { "https://api.nuget.org/v3/index.json" },
+ Sources = [Constants.NugetOrgUrl],
MSBuildSettings = context.MsBuildSettings
});
diff --git a/build/build/Tasks/BuildPrepare.cs b/build/build/Tasks/BuildPrepare.cs
new file mode 100644
index 0000000000..4eff4d38c7
--- /dev/null
+++ b/build/build/Tasks/BuildPrepare.cs
@@ -0,0 +1,42 @@
+using Common.Utilities;
+
+namespace Build.Tasks;
+
+[TaskName(nameof(BuildPrepare))]
+[TaskDescription("Builds the solution")]
+[IsDependentOn(typeof(Clean))]
+public sealed class BuildPrepare : FrostingTask
+{
+ public override void Run(BuildContext context)
+ {
+ context.Information("Builds solution...");
+
+ const string sln = "./src/GitVersion.slnx";
+ context.DotNetRestore(sln,
+ new()
+ {
+ Verbosity = DotNetVerbosity.Minimal,
+ Sources = [Constants.NugetOrgUrl],
+ });
+
+ context.DotNetBuild("./src/GitVersion.App/GitVersion.App.csproj",
+ new()
+ {
+ Verbosity = DotNetVerbosity.Minimal,
+ Configuration = Constants.DefaultConfiguration,
+ OutputDirectory = Paths.Tools.Combine("gitversion"),
+ Framework = $"net{Constants.DotnetLtsLatest}",
+ NoRestore = true,
+ });
+
+ context.DotNetBuild("./src/GitVersion.Schema/GitVersion.Schema.csproj",
+ new()
+ {
+ Verbosity = DotNetVerbosity.Minimal,
+ Configuration = Constants.DefaultConfiguration,
+ OutputDirectory = Paths.Tools.Combine("schema"),
+ Framework = $"net{Constants.DotnetLtsLatest}",
+ NoRestore = true,
+ });
+ }
+}
diff --git a/build/build/Tasks/Default.cs b/build/build/Tasks/Default.cs
index 57b473ee58..42a99a37ee 100644
--- a/build/build/Tasks/Default.cs
+++ b/build/build/Tasks/Default.cs
@@ -1,6 +1,4 @@
namespace Build.Tasks;
[TaskDescription("Shows this output")]
-public class Default : Common.Tasks.Default
-{
-}
+public class Default : Common.Tasks.Default;
diff --git a/build/build/Tasks/Package.cs b/build/build/Tasks/Package.cs
index 00386c7320..38fefc0f80 100644
--- a/build/build/Tasks/Package.cs
+++ b/build/build/Tasks/Package.cs
@@ -5,6 +5,4 @@ namespace Build.Tasks;
[IsDependentOn(typeof(PackageChocolatey))]
[IsDependentOn(typeof(PackageNuget))]
[IsDependentOn(typeof(PackageArchive))]
-public class Package : FrostingTask
-{
-}
+public class Package : FrostingTask;
diff --git a/build/build/Tasks/Package/PackageArchive.cs b/build/build/Tasks/Package/PackageArchive.cs
index dadde1c36e..9e79b8852b 100644
--- a/build/build/Tasks/Package/PackageArchive.cs
+++ b/build/build/Tasks/Package/PackageArchive.cs
@@ -12,7 +12,7 @@ public override void Run(BuildContext context)
{
context.EnsureDirectoryExists(Paths.Native);
- var platform = context.Environment.Platform.Family;
+ var platform = context.Platform;
var runtimes = context.NativeRuntimes[platform];
foreach (var runtime in runtimes)
diff --git a/build/build/Tasks/Package/PackageChocolatey.cs b/build/build/Tasks/Package/PackageChocolatey.cs
index 81c3dcec60..22f68b5b01 100644
--- a/build/build/Tasks/Package/PackageChocolatey.cs
+++ b/build/build/Tasks/Package/PackageChocolatey.cs
@@ -21,21 +21,51 @@ public override void Run(BuildContext context)
{
context.EnsureDirectoryExists(Paths.Nuget);
- var portableNuspecFile = Paths.Nuspec.CombineWithFilePath("GitVersion.Portable.nuspec");
- if (!context.FileExists(portableNuspecFile))
- return;
-
var artifactPath = context.MakeAbsolute(Paths.ArtifactsBinPortable).FullPath;
+ var portableSettings = GetChocolateyPackSettings(context, "GitVersion.Portable");
+ portableSettings.Files = context.GetFiles(artifactPath + "/**/*.*")
+ .Select(file => new ChocolateyNuSpecContent { Source = file.FullPath, Target = file.FullPath.Replace(artifactPath, "") })
+ .ToArray();
+
+ context.ChocolateyPack(portableSettings);
+
+ var metaPackageSettings = GetChocolateyPackSettings(context, "GitVersion");
+ metaPackageSettings.Files = context.GetFiles(artifactPath + "/**/*.txt")
+ .Select(file => new ChocolateyNuSpecContent { Source = file.FullPath, Target = file.FullPath.Replace(artifactPath, "") })
+ .ToArray();
+
+ metaPackageSettings.Dependencies =
+ [
+ new ChocolateyNuSpecDependency { Id = "GitVersion.Portable", Version = context.Version?.ChocolateyVersion }
+ ];
+
+ context.ChocolateyPack(metaPackageSettings);
+ }
+
+ private static ChocolateyPackSettings GetChocolateyPackSettings(BuildContextBase context, string id)
+ {
var chocolateySettings = new ChocolateyPackSettings
{
- LimitOutput = true,
- Version = context.Version?.SemVersion,
+ Id = id,
+ Version = context.Version?.ChocolateyVersion,
+ Title = "GitVersion",
+ Description = "Derives SemVer information from a repository following GitFlow or GitHubFlow.",
+ Authors = ["GitTools and Contributors"],
+ Owners = ["GitTools and Contributors"],
+ Copyright = $"Copyright GitTools {DateTime.Now.Year}",
+ DocsUrl = new Uri("https://gitversion.net/docs/"),
+ LicenseUrl = new Uri("https://opensource.org/license/mit/"),
+ ProjectUrl = new Uri("https://github.com/GitTools/GitVersion"),
+ ProjectSourceUrl = new Uri("https://github.com/GitTools/GitVersion"),
+ IconUrl = new Uri("https://raw.githubusercontent.com/GitTools/graphics/master/GitVersion/Color/icon_100x100.png"),
+ RequireLicenseAcceptance = false,
+ Tags = ["Git", "Versioning", "GitVersion", "GitFlowVersion", "GitFlow", "GitHubFlow", "SemVer"],
+ ReleaseNotes = [$"https://github.com/GitTools/GitVersion/releases/tag/%7Bcontext.Version?.ChocolateyVersion}"
+ ],
OutputDirectory = Paths.Nuget,
- Files = context.GetFiles(artifactPath + "/**/*.*")
- .Select(file => new ChocolateyNuSpecContent { Source = file.FullPath, Target = file.FullPath.Replace(artifactPath, "") })
- .ToArray()
+ LimitOutput = true,
};
- context.ChocolateyPack(portableNuspecFile, chocolateySettings);
+ return chocolateySettings;
}
}
diff --git a/build/build/Tasks/Package/PackageNuget.cs b/build/build/Tasks/Package/PackageNuget.cs
index ace94548b3..300c32848f 100644
--- a/build/build/Tasks/Package/PackageNuget.cs
+++ b/build/build/Tasks/Package/PackageNuget.cs
@@ -1,12 +1,10 @@
using Cake.Common.Tools.DotNet.Pack;
-using Cake.Common.Tools.NuGet.Pack;
using Common.Utilities;
namespace Build.Tasks;
[TaskName(nameof(PackageNuget))]
[TaskDescription("Creates the nuget packages")]
-[IsDependentOn(typeof(PackagePrepare))]
public class PackageNuget : FrostingTask
{
public override void Run(BuildContext context)
@@ -14,7 +12,6 @@ public override void Run(BuildContext context)
context.EnsureDirectoryExists(Paths.Nuget);
PackageWithCli(context);
- PackageUsingNuspec(context);
}
private static void PackageWithCli(BuildContext context)
{
@@ -28,39 +25,10 @@ private static void PackageWithCli(BuildContext context)
// GitVersion.MsBuild, global tool & core
context.DotNetPack("./src/GitVersion.Core", settings);
- settings.ArgumentCustomization = arg => arg.Append("/p:PackAsTool=true");
+ settings.ArgumentCustomization = arg => arg.Append("-p:PackAsTool=true").Append("-p:BuildInParallel=false");
context.DotNetPack("./src/GitVersion.App", settings);
- settings.ArgumentCustomization = arg => arg.Append("/p:IsPackaging=true");
+ settings.ArgumentCustomization = arg => arg.Append("-p:IsPackaging=true");
context.DotNetPack("./src/GitVersion.MsBuild", settings);
}
- private static void PackageUsingNuspec(BuildContextBase context)
- {
- var cmdlineNuspecFile = Paths.Nuspec.CombineWithFilePath("GitVersion.CommandLine.nuspec");
- if (!context.FileExists(cmdlineNuspecFile))
- return;
-
- var artifactPath = context.MakeAbsolute(Paths.ArtifactsBinCmdline).FullPath;
- var version = context.Version;
- var gitVersion = version?.GitVersion;
- var nugetSettings = new NuGetPackSettings
- {
- // KeepTemporaryNuSpecFile = true,
- Version = version?.NugetVersion,
- NoPackageAnalysis = true,
- OutputDirectory = Paths.Nuget,
- Repository = new NuGetRepository
- {
- Branch = gitVersion?.BranchName,
- Commit = gitVersion?.Sha
- },
- Files = context.GetFiles(artifactPath + "/**/*.*")
- .Select(file => new NuSpecContent { Source = file.FullPath, Target = file.FullPath.Replace(artifactPath, "") })
- .Concat(context.GetFiles("docs/**/package_icon.png").Select(file => new NuSpecContent { Source = file.FullPath, Target = "package_icon.png" }))
- .Concat(context.GetFiles("build/nuspec/README.md").Select(file => new NuSpecContent { Source = file.FullPath, Target = "README.md" }))
- .ToArray()
- };
-
- context.NuGetPack(cmdlineNuspecFile, nugetSettings);
- }
}
diff --git a/build/build/Tasks/Package/PackagePrepare.cs b/build/build/Tasks/Package/PackagePrepare.cs
index 646d2dea3e..096384779f 100644
--- a/build/build/Tasks/Package/PackagePrepare.cs
+++ b/build/build/Tasks/Package/PackagePrepare.cs
@@ -15,11 +15,6 @@ public override void Run(BuildContext context)
var sourceDir = Paths.Native.Combine(PlatformFamily.Windows.ToString()).Combine("win-x64");
var sourceFiles = context.GetFiles(sourceDir + "/*.*");
- var cmdlineDir = Paths.ArtifactsBinCmdline.Combine("tools");
-
- context.EnsureDirectoryExists(cmdlineDir);
- context.CopyFiles(sourceFiles, cmdlineDir);
-
var portableDir = Paths.ArtifactsBinPortable.Combine("tools");
context.EnsureDirectoryExists(portableDir);
@@ -30,7 +25,7 @@ public override void Run(BuildContext context)
private static void PackPrepareNative(BuildContext context)
{
// publish single file for all native runtimes (self contained)
- var platform = context.Environment.Platform.Family;
+ var platform = context.Platform;
var runtimes = context.NativeRuntimes[platform];
foreach (var runtime in runtimes)
@@ -39,22 +34,24 @@ private static void PackPrepareNative(BuildContext context)
// testing windows and macos artifacts, the linux is tested with docker
if (platform == PlatformFamily.Linux) continue;
- if (runtime.EndsWith("arm64")) continue;
- context.Information("Validating native lib:");
- var nativeExe = outputPath.CombineWithFilePath(context.IsOnWindows ? "gitversion.exe" : "gitversion");
- context.ValidateOutput(nativeExe.FullPath, "/showvariable FullSemver", context.Version?.GitVersion?.FullSemVer);
+ if (context.IsRunningOnAmd64() && runtime.EndsWith("x64") || context.IsRunningOnArm64() && runtime.EndsWith("arm64"))
+ {
+ context.Information("Validating native lib:");
+ var nativeExe = outputPath.CombineWithFilePath(context.IsOnWindows ? "gitversion.exe" : "gitversion");
+ context.ValidateOutput(nativeExe.FullPath, "/showvariable FullSemver", context.Version?.GitVersion?.FullSemVer);
+ }
}
}
private static DirectoryPath PackPrepareNative(BuildContext context, string runtime)
{
- var platform = context.Environment.Platform.Family;
+ var platform = context.Platform;
var outputPath = Paths.Native.Combine(platform.ToString().ToLower()).Combine(runtime);
var settings = new DotNetPublishSettings
{
- Framework = Constants.NetVersion60,
+ Framework = $"net{Constants.DotnetLtsLatest}",
Runtime = runtime,
NoRestore = false,
Configuration = context.MsBuildConfiguration,
@@ -65,12 +62,6 @@ private static DirectoryPath PackPrepareNative(BuildContext context, string runt
SelfContained = true
};
- // workaround for https://github.com/dotnet/runtime/issues/49508
- if (runtime == "osx-arm64")
- {
- settings.ArgumentCustomization = arg => arg.Append("/p:OsxArm64=true");
- }
-
context.DotNetPublish("./src/GitVersion.App/GitVersion.App.csproj", settings);
return outputPath;
diff --git a/build/build/Tasks/Test.cs b/build/build/Tasks/Test.cs
index e8bf15f20a..e659371ec8 100644
--- a/build/build/Tasks/Test.cs
+++ b/build/build/Tasks/Test.cs
@@ -3,6 +3,4 @@ namespace Build.Tasks;
[TaskName(nameof(Test))]
[TaskDescription("(CI only) Run the tests and publish the results")]
[IsDependentOn(typeof(PublishCoverage))]
-public class Test : FrostingTask
-{
-}
+public class Test : FrostingTask;
diff --git a/build/build/Tasks/Test/PublishCoverage.cs b/build/build/Tasks/Test/PublishCoverage.cs
index 1273c881da..6f754c72d6 100644
--- a/build/build/Tasks/Test/PublishCoverage.cs
+++ b/build/build/Tasks/Test/PublishCoverage.cs
@@ -12,14 +12,16 @@ public override bool ShouldRun(BuildContext context)
{
var shouldRun = true;
shouldRun &= context.ShouldRun(context.IsOnWindows, $"{nameof(PublishCoverage)} works only on Windows agents.");
- shouldRun &= context.ShouldRun(context.IsOnMainOrSupportBranchOriginalRepo, $"{nameof(PublishCoverage)} works only for on main or release branch original repository.");
+ shouldRun &= context.ShouldRun(context.IsReleaseBranchOriginalRepo, $"{nameof(PublishCoverage)} works only for main or release branch, original repository.");
return shouldRun;
}
public override void Run(BuildContext context)
{
- var coverageFiles = context.GetFiles($"{Paths.TestOutput}/*.coverage.*.xml");
+ var coverageFiles = context
+ .GetFiles($"{Paths.TestOutput}/*.coverage.*.xml")
+ .Select(file => context.MakeRelative(file).ToString()).ToArray();
var token = context.Credentials?.CodeCov?.Token;
if (string.IsNullOrEmpty(token))
@@ -27,13 +29,10 @@ public override void Run(BuildContext context)
throw new InvalidOperationException("Could not resolve CodeCov token.");
}
- foreach (var coverageFile in coverageFiles)
+ context.Codecov(new CodecovSettings
{
- context.Codecov(new CodecovSettings
- {
- Files = new[] { coverageFile.ToString() },
- Token = token
- });
- }
+ Files = coverageFiles,
+ Token = token
+ });
}
}
diff --git a/build/build/Tasks/Test/UnitTest.cs b/build/build/Tasks/Test/UnitTest.cs
index a21367d852..e66f91b2e9 100644
--- a/build/build/Tasks/Test/UnitTest.cs
+++ b/build/build/Tasks/Test/UnitTest.cs
@@ -8,7 +8,7 @@ namespace Build.Tasks;
[TaskName(nameof(UnitTest))]
[TaskDescription("Run the unit tests")]
-[TaskArgument(Arguments.DotnetTarget, Constants.NetVersion50, Constants.NetVersion60, Constants.CoreFxVersion31, Constants.FullFxVersion48)]
+[DotnetArgument]
[IsDependentOn(typeof(Build))]
public class UnitTest : FrostingTask
{
@@ -16,15 +16,19 @@ public class UnitTest : FrostingTask
public override void Run(BuildContext context)
{
- var dotnetTarget = context.Argument(Arguments.DotnetTarget, string.Empty);
- var frameworks = new[] { Constants.CoreFxVersion31, Constants.FullFxVersion48, Constants.NetVersion50, Constants.NetVersion60 };
- if (!string.IsNullOrWhiteSpace(dotnetTarget))
+ var dotnetVersion = context.Argument(Arguments.DotnetVersion, string.Empty);
+ var frameworks = Constants.DotnetVersions;
+ if (!string.IsNullOrWhiteSpace(dotnetVersion))
{
- if (!frameworks.Contains(dotnetTarget, StringComparer.OrdinalIgnoreCase))
+ if (string.Equals(dotnetVersion, "lts-latest", StringComparison.OrdinalIgnoreCase))
{
- throw new Exception($"Dotnet Target {dotnetTarget} is not supported at the moment");
+ dotnetVersion = Constants.DotnetLtsLatest;
}
- frameworks = new[] { dotnetTarget };
+ if (!frameworks.Contains(dotnetVersion, StringComparer.OrdinalIgnoreCase))
+ {
+ throw new Exception($"Dotnet Target {dotnetVersion} is not supported at the moment");
+ }
+ frameworks = [dotnetVersion];
}
foreach (var framework in frameworks)
@@ -48,12 +52,12 @@ public override void OnError(Exception exception, BuildContext context)
public override void Finally(BuildContext context)
{
var testResultsFiles = context.GetFiles($"{Paths.TestOutput}/*.results.xml");
- if (!context.IsAzurePipelineBuild || !testResultsFiles.Any()) return;
+ if (!context.IsAzurePipelineBuild || testResultsFiles.Count == 0) return;
var data = new AzurePipelinesPublishTestResultsData
{
TestResultsFiles = testResultsFiles.ToArray(),
- Platform = context.Environment.Platform.Family.ToString(),
+ Platform = context.Platform.ToString(),
TestRunner = AzurePipelinesTestRunnerType.JUnit
};
context.BuildSystem().AzurePipelines.Commands.PublishTestResults(data);
@@ -62,21 +66,18 @@ public override void Finally(BuildContext context)
private static void TestProjectForTarget(BuildContext context, FilePath project, string framework)
{
var testResultsPath = Paths.TestOutput;
- var projectName = $"{project.GetFilenameWithoutExtension()}.{framework}";
+ var projectName = $"{project.GetFilenameWithoutExtension()}.net{framework}";
var settings = new DotNetTestSettings
{
- Framework = framework,
+ Framework = $"net{framework}",
NoBuild = true,
NoRestore = true,
Configuration = context.MsBuildConfiguration,
+ TestAdapterPath = new(".")
};
- if (!context.IsRunningOnMacOs())
- {
- settings.TestAdapterPath = new DirectoryPath(".");
- var resultsPath = context.MakeAbsolute(testResultsPath.CombineWithFilePath($"{projectName}.results.xml"));
- settings.Loggers = new[] { $"junit;LogFilePath={resultsPath}" };
- }
+ var resultsPath = context.MakeAbsolute(testResultsPath.CombineWithFilePath($"{projectName}.results.xml"));
+ settings.Loggers = [$"junit;LogFilePath={resultsPath}"];
var coverletSettings = new CoverletSettings
{
@@ -84,14 +85,9 @@ private static void TestProjectForTarget(BuildContext context, FilePath project,
CoverletOutputFormat = CoverletOutputFormat.cobertura,
CoverletOutputDirectory = testResultsPath,
CoverletOutputName = $"{projectName}.coverage.xml",
- Exclude = new List { "[GitVersion*.Tests]*", "[GitTools.Testing]*" }
+ Exclude = ["[GitVersion*.Tests]*", "[GitTools.Testing]*"]
};
- if (string.Equals(framework, Constants.FullFxVersion48))
- {
- settings.Filter = context.IsRunningOnUnix() ? $"TestCategory!={Constants.NoMono}" : $"TestCategory!={Constants.NoNet48}";
- }
-
context.DotNetTest(project.FullPath, settings, coverletSettings);
}
}
diff --git a/build/build/Tasks/ValidateVersion.cs b/build/build/Tasks/ValidateVersion.cs
index c0545f18f3..e88866ffca 100644
--- a/build/build/Tasks/ValidateVersion.cs
+++ b/build/build/Tasks/ValidateVersion.cs
@@ -1,4 +1,3 @@
-using Build.Utilities;
using Common.Utilities;
namespace Build.Tasks;
@@ -10,7 +9,8 @@ public class ValidateVersion : FrostingTask
{
public override void Run(BuildContext context)
{
- var gitversionTool = context.GetGitVersionToolLocation();
- context.ValidateOutput("dotnet", $"\"{gitversionTool}\" -version", context.Version!.GitVersion!.InformationalVersion!);
+ ArgumentNullException.ThrowIfNull(context.Version);
+ var gitVersionTool = context.GetGitVersionToolLocation();
+ context.ValidateOutput("dotnet", $"\"{gitVersionTool}\" -version", context.Version.GitVersion.InformationalVersion);
}
}
diff --git a/build/build/Utilities/ContextExtensions.cs b/build/build/Utilities/ContextExtensions.cs
deleted file mode 100644
index edb9b99846..0000000000
--- a/build/build/Utilities/ContextExtensions.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace Build.Utilities;
-
-public static class ContextExtensions
-{
- public static FilePath? GetGitVersionToolLocation(this BuildContext context) =>
- context.GetFiles($"src/GitVersion.App/bin/{context.MsBuildConfiguration}/{Constants.NetVersion60}/gitversion.dll").SingleOrDefault();
-}
diff --git a/build/build/Utilities/Credentials.cs b/build/build/Utilities/Credentials.cs
index 9735ef2e63..058ccde33a 100644
--- a/build/build/Utilities/Credentials.cs
+++ b/build/build/Utilities/Credentials.cs
@@ -4,10 +4,10 @@ namespace Build.Utilities;
public class Credentials
{
- public CodeCovCredentials? CodeCov { get; private set; }
+ public CodeCovCredentials? CodeCov { get; private init; }
public static Credentials GetCredentials(ICakeContext context) => new()
{
- CodeCov = new CodeCovCredentials(context.EnvironmentVariable("CODECOV_TOKEN")),
+ CodeCov = new(context.EnvironmentVariable("CODECOV_TOKEN")),
};
}
diff --git a/build/build/build.csproj b/build/build/build.csproj
index 55494cff57..7f35470aa1 100644
--- a/build/build/build.csproj
+++ b/build/build/build.csproj
@@ -7,7 +7,7 @@
-
-
+
+
diff --git a/build/chores/BuildContext.cs b/build/chores/BuildContext.cs
deleted file mode 100644
index 92660009f3..0000000000
--- a/build/chores/BuildContext.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-namespace Chores;
-
-public class BuildContext : FrostingContext
-{
- public BuildContext(ICakeContext context) : base(context)
- {
- }
-}
diff --git a/build/chores/Startup.cs b/build/chores/Startup.cs
deleted file mode 100644
index d326a2531c..0000000000
--- a/build/chores/Startup.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using Common.Lifetime;
-using Microsoft.Extensions.DependencyInjection;
-
-namespace Chores;
-
-public class Startup : IFrostingStartup
-{
- public void Configure(IServiceCollection services)
- {
- services.UseLifetime();
- services.UseTaskLifetime();
- }
-}
diff --git a/build/chores/Tasks/Default.cs b/build/chores/Tasks/Default.cs
deleted file mode 100644
index 0df4f50886..0000000000
--- a/build/chores/Tasks/Default.cs
+++ /dev/null
@@ -1,6 +0,0 @@
-namespace Chores.Tasks;
-
-[TaskDescription("Shows this output")]
-public class Default : Common.Tasks.Default
-{
-}
diff --git a/build/chores/Tasks/ToolsInstall.cs b/build/chores/Tasks/ToolsInstall.cs
deleted file mode 100644
index fdbec90d67..0000000000
--- a/build/chores/Tasks/ToolsInstall.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using Cake.Json;
-using Newtonsoft.Json.Linq;
-
-namespace Chores.Tasks;
-
-[TaskName(nameof(ToolsInstall))]
-[TaskDescription("Install dotnet global tools to 'tools' folder")]
-public class ToolsInstall : FrostingTask
-{
- public override void Run(BuildContext context)
- {
- var json = context.ParseJsonFromFile("dotnet-tools.json");
- var jToken = json["tools"];
- if (jToken == null) return;
-
- var tools = jToken.Select(x => (JProperty)x).ToDictionary(x => x.Name, x => x.Value["version"]?.Value());
- foreach (var (toolName, version) in tools)
- {
- // context.DotNetTool($"tool update --tool-path {context.Configuration.GetToolPath()} --version {version} {toolName}");
- }
- }
-}
diff --git a/build/chores/Tasks/ToolsUpdate.cs b/build/chores/Tasks/ToolsUpdate.cs
deleted file mode 100644
index fdc5156789..0000000000
--- a/build/chores/Tasks/ToolsUpdate.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-using Cake.Json;
-using Newtonsoft.Json.Linq;
-
-namespace Chores.Tasks;
-
-[TaskName(nameof(ToolsUpdate))]
-[TaskDescription("Update dotnet local tools")]
-public class ToolsUpdate : FrostingTask
-{
- public override void Run(BuildContext context)
- {
- var json = context.ParseJsonFromFile("dotnet-tools.json");
- var jToken = json["tools"];
- if (jToken != null)
- {
- var tools = jToken.Select(x => ((JProperty)x).Name).ToArray();
- foreach (var tool in tools)
- {
- context.DotNetTool($"tool update --local {tool}");
- }
- }
- }
-}
diff --git a/build/common/Addins/Cake.Coverlet/ArgumentsProcessor.cs b/build/common/Addins/Cake.Coverlet/ArgumentsProcessor.cs
deleted file mode 100644
index 89059e2f77..0000000000
--- a/build/common/Addins/Cake.Coverlet/ArgumentsProcessor.cs
+++ /dev/null
@@ -1,157 +0,0 @@
-using Cake.Coverlet;
-
-namespace Common.Addins.Cake.Coverlet;
-
-internal static class ArgumentsProcessor
-{
- public static ProcessArgumentBuilder ProcessMSBuildArguments(
- CoverletSettings settings,
- ICakeEnvironment cakeEnvironment,
- ProcessArgumentBuilder builder,
- FilePath project)
- {
- builder.AppendMSBuildProperty(nameof(CoverletSettings.CollectCoverage), settings.CollectCoverage.ToString());
- builder.AppendPropertyList(nameof(CoverletSettings.CoverletOutputFormat), SplitFlagEnum(settings.CoverletOutputFormat));
-
- if (settings.Threshold.HasValue)
- {
- if (settings.Threshold > 100)
- {
- throw new Exception("Threshold Percentage cannot be set as greater than 100%");
- }
-
- builder.AppendMSBuildProperty(nameof(CoverletSettings.Threshold), settings.Threshold.ToString()!);
-
- if (settings.ThresholdType != ThresholdType.NotSet)
- {
- builder.AppendPropertyList(nameof(CoverletSettings.ThresholdType), SplitFlagEnum(settings.ThresholdType));
- }
- }
-
- if (settings.CoverletOutputDirectory != null && string.IsNullOrEmpty(settings.CoverletOutputName))
- {
- var directoryPath = settings.CoverletOutputDirectory
- .MakeAbsolute(cakeEnvironment).FullPath;
-
- builder.AppendMSBuildPropertyQuoted("CoverletOutput", directoryPath);
- }
- else if (!string.IsNullOrEmpty(settings.CoverletOutputName))
- {
- var dir = settings.CoverletOutputDirectory ?? project.GetDirectory();
- var directoryPath = dir.MakeAbsolute(cakeEnvironment).FullPath;
-
- var filepath = FilePath.FromString(settings.OutputTransformer(settings.CoverletOutputName, directoryPath));
-
- builder.AppendMSBuildPropertyQuoted("CoverletOutput", filepath.MakeAbsolute(cakeEnvironment).FullPath);
- }
-
- if (settings.ExcludeByFile.Count > 0)
- {
- builder.AppendPropertyList(nameof(CoverletSettings.ExcludeByFile), settings.ExcludeByFile);
- }
-
-
- if (settings.Include.Count > 0)
- {
- builder.AppendPropertyList(nameof(CoverletSettings.Include), settings.Include);
- }
-
-
- if (settings.Exclude.Count > 0)
- {
- builder.AppendPropertyList(nameof(CoverletSettings.Exclude), settings.Exclude);
- }
-
- if (settings.ExcludeByAttribute.Count > 0)
- {
- builder.AppendPropertyList(nameof(CoverletSettings.ExcludeByAttribute), settings.ExcludeByAttribute);
- }
-
- if (settings.MergeWithFile != null && settings.MergeWithFile.GetExtension() == ".json")
- {
- builder.AppendMSBuildPropertyQuoted("MergeWith", settings.MergeWithFile.MakeAbsolute(cakeEnvironment).FullPath);
- }
-
- if (settings.IncludeTestAssembly.HasValue)
- {
- builder.AppendMSBuildProperty(nameof(CoverletSettings.IncludeTestAssembly), settings.IncludeTestAssembly.Value ? bool.TrueString : bool.FalseString);
- }
-
- return builder;
- }
-
- public static ProcessArgumentBuilder ProcessToolArguments(
- CoverletSettings settings,
- ICakeEnvironment cakeEnvironment,
- ProcessArgumentBuilder builder,
- FilePath project)
- {
- builder.AppendSwitch("--format", SplitFlagEnum(settings.CoverletOutputFormat));
-
- if (settings.Threshold.HasValue)
- {
- if (settings.Threshold > 100)
- {
- throw new Exception("Threshold Percentage cannot be set as greater than 100%");
- }
-
- builder.AppendSwitch(nameof(CoverletSettings.Threshold), settings.Threshold.ToString());
-
- if (settings.ThresholdType != ThresholdType.NotSet)
- {
- builder.AppendSwitchQuoted("--threshold-type", SplitFlagEnum(settings.ThresholdType));
- }
- }
-
- if (settings.CoverletOutputDirectory != null && string.IsNullOrEmpty(settings.CoverletOutputName))
- {
- var directoryPath = settings.CoverletOutputDirectory
- .MakeAbsolute(cakeEnvironment).FullPath;
-
- builder.AppendSwitchQuoted("--output", directoryPath);
- }
- else if (!string.IsNullOrEmpty(settings.CoverletOutputName))
- {
- var dir = settings.CoverletOutputDirectory ?? project.GetDirectory();
- var directoryPath = dir.MakeAbsolute(cakeEnvironment).FullPath;
-
- var filepath = FilePath.FromString(settings.OutputTransformer(settings.CoverletOutputName, directoryPath));
-
- builder.AppendSwitchQuoted("--output", filepath.MakeAbsolute(cakeEnvironment).FullPath);
- }
-
- if (settings.ExcludeByFile.Count > 0)
- {
- builder.AppendSwitchQuoted("--exclude-by-file", settings.ExcludeByFile);
- }
-
- if (settings.ExcludeByAttribute.Count > 0)
- {
- builder.AppendSwitchQuoted("--exclude-by-attribute", settings.ExcludeByAttribute);
- }
-
- if (settings.Exclude.Count > 0)
- {
- builder.AppendSwitchQuoted("--exclude", settings.Exclude);
- }
-
- if (settings.Include.Count > 0)
- {
- builder.AppendSwitchQuoted("--include", settings.Include);
- }
-
- if (settings.MergeWithFile != null && settings.MergeWithFile.GetExtension() == ".json")
- {
- builder.AppendSwitchQuoted("--merge-with", settings.MergeWithFile.MakeAbsolute(cakeEnvironment).FullPath);
- }
-
- if (settings.IncludeTestAssembly.HasValue)
- {
- builder.AppendSwitch("--include-test-assembly", settings.IncludeTestAssembly.Value ? bool.TrueString : bool.FalseString);
- }
-
- return builder;
- }
-
- private static IEnumerable SplitFlagEnum(Enum @enum) => @enum.ToString("g").Split(',').Select(s => s.ToLowerInvariant());
-}
diff --git a/build/common/Addins/Cake.Coverlet/BuilderExtension.cs b/build/common/Addins/Cake.Coverlet/BuilderExtension.cs
deleted file mode 100644
index ff552820b9..0000000000
--- a/build/common/Addins/Cake.Coverlet/BuilderExtension.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-namespace Common.Addins.Cake.Coverlet;
-
-internal static class BuilderExtension
-{
- internal static ProcessArgumentBuilder AppendMSBuildProperty(this ProcessArgumentBuilder builder, string propertyName, string value)
- {
- builder.AppendSwitch($"/property:{propertyName}", "=", value);
- return builder;
- }
-
- internal static ProcessArgumentBuilder AppendMSBuildPropertyQuoted(this ProcessArgumentBuilder builder, string propertyName, string value)
- {
- builder.AppendSwitchQuoted($"/property:{propertyName}", "=", value);
- return builder;
- }
-
- internal static ProcessArgumentBuilder AppendPropertyList(this ProcessArgumentBuilder builder, string propertyName, IEnumerable values)
- {
- builder.Append($"/property:{propertyName}=\\\"{string.Join(",", values.Select(s => s.Trim()))}\\\"");
- return builder;
- }
-
- internal static ProcessArgumentBuilder AppendSwitchQuoted(this ProcessArgumentBuilder builder, string @switch, IEnumerable values)
- {
- foreach (var type in values.Select(s => s.Trim()))
- {
- builder.AppendSwitchQuoted(@switch, type);
- }
- return builder;
- }
-
- internal static ProcessArgumentBuilder AppendSwitch(this ProcessArgumentBuilder builder, string @switch, IEnumerable values)
- {
- foreach (var type in values.Select(s => s.Trim()))
- {
- builder.AppendSwitch(@switch, type);
- }
- return builder;
- }
-}
diff --git a/build/common/Addins/Cake.Docker/Constants.cs b/build/common/Addins/Cake.Docker/Constants.cs
new file mode 100644
index 0000000000..1545461c0c
--- /dev/null
+++ b/build/common/Addins/Cake.Docker/Constants.cs
@@ -0,0 +1,12 @@
+namespace Common.Addins.Cake.Docker;
+
+///
+/// Constants
+///
+public static class Constants
+{
+ ///
+ /// Used with when a bool argument defaults to true.
+ ///
+ public const string BoolWithTrueDefaultFormat = "--{0}={1}";
+}
diff --git a/build/common/Addins/Cake.Docker/DockerBuildXBuildSettings.cs b/build/common/Addins/Cake.Docker/DockerBuildXBuildSettings.cs
new file mode 100644
index 0000000000..ef196c408e
--- /dev/null
+++ b/build/common/Addins/Cake.Docker/DockerBuildXBuildSettings.cs
@@ -0,0 +1,199 @@
+#nullable disable
+namespace Common.Addins.Cake.Docker;
+
+///
+/// Settings for docker buildx build.
+///
+public sealed class DockerBuildXBuildSettings : AutoToolSettings
+{
+ ///
+ /// Add a custom host-to-IP mapping (format: "host:ip")
+ ///
+ [AutoProperty(AutoArrayType = AutoArrayType.List)]
+ public string[] AddHost { get; set; }
+ ///
+ /// Allow extra privileged entitlement (e.g., "network.host", "security.insecure")
+ ///
+ [AutoProperty(AutoArrayType = AutoArrayType.List)]
+ public string[] Allow { get; set; }
+ ///
+ /// Set build-time variables
+ ///
+ [AutoProperty(AutoArrayType = AutoArrayType.List)]
+ public string[] BuildArg { get; set; }
+ ///
+ /// Additional build contexts (e.g., name=path)
+ ///
+ [AutoProperty(AutoArrayType = AutoArrayType.List)]
+ public string[] BuildContext { get; set; }
+ ///
+ /// Override the configured builder instance
+ ///
+ public string Builder { get; set; }
+ ///
+ /// External cache sources (e.g., "user/app:cache", "type=local,src=path/to/dir")
+ ///
+ [AutoProperty(AutoArrayType = AutoArrayType.List)]
+ public string[] CacheFrom { get; set; }
+ ///
+ /// Cache export destinations (e.g., "user/app:cache", "type=local,dest=path/to/dir")
+ ///
+ [AutoProperty(AutoArrayType = AutoArrayType.List)]
+ public string[] CacheTo { get; set; }
+ ///
+ /// Optional parent cgroup for the container
+ ///
+ public string CgroupParent { get; set; }
+ ///
+ /// Compress the build context using gzip
+ ///
+ public bool? Compress { get; set; }
+ ///
+ /// Limit the CPU CFS (Completely Fair Scheduler) period
+ ///
+ public long? CpuPeriod { get; set; }
+ ///
+ /// Limit the CPU CFS (Completely Fair Scheduler) quota
+ ///
+ public long? CpuQuota { get; set; }
+ ///
+ /// CPUs in which to allow execution (0-3, 0,1)
+ ///
+ public string CpusetCpus { get; set; }
+ ///
+ /// MEMs in which to allow execution (0-3, 0,1)
+ ///
+ public string CpusetMems { get; set; }
+ ///
+ /// CPU shares (relative weight)
+ ///
+ public long? CpuShares { get; set; }
+ ///
+ /// Skip image verification
+ ///
+ [AutoProperty(Format = Constants.BoolWithTrueDefaultFormat)]
+ public bool? DisableContentTrust { get; set; }
+ ///
+ /// Name of the Dockerfile (default: "PATH/Dockerfile")
+ ///
+ public string File { get; set; }
+ ///
+ /// Always remove intermediate containers
+ ///
+ public bool? ForceRm { get; set; }
+ ///
+ /// Write the image ID to the file
+ ///
+ public string Iidfile { get; set; }
+ ///
+ /// Container isolation technology
+ ///
+ public string Isolation { get; set; }
+ ///
+ /// Set metadata for an image
+ ///
+ [AutoProperty(AutoArrayType = AutoArrayType.List)]
+ public string[] Label { get; set; }
+ ///
+ /// Shorthand for "--output=type=docker"
+ ///
+ public bool Load { get; set; }
+ ///
+ /// Memory limit
+ ///
+ public string Memory { get; set; }
+ ///
+ /// Swap limit equal to memory plus swap: '-1' to enable unlimited swap
+ ///
+ public string MemorySwap { get; set; }
+ ///
+ /// Write build result metadata to the file
+ ///
+ public string MetadataFile { get; set; }
+ ///
+ /// Set the networking mode for the "RUN" instructions during build (default "default")
+ ///
+ public string Network { get; set; }
+ ///
+ /// Do not use cache when building the image
+ ///
+ public bool NoCache { get; set; }
+ ///
+ /// Do not cache specified stages
+ ///
+ [AutoProperty(AutoArrayType = AutoArrayType.List)]
+ public string[] NoCacheFilter { get; set; }
+ ///
+ /// Output destination (format: "type=local,dest=path")
+ ///
+ [AutoProperty(AutoArrayType = AutoArrayType.List)]
+ public string[] Output { get; set; }
+ ///
+ /// Set target platform for build
+ ///
+ [AutoProperty(AutoArrayType = AutoArrayType.List)]
+ public string[] Platform { get; set; }
+ ///
+ /// Set type of progress output ("auto", "plain", "tty"). Use plain to show container output (default "auto")
+ ///
+ public string Progress { get; set; }
+ ///
+ /// Always attempt to pull all referenced images
+ ///
+ public bool Pull { get; set; }
+ ///
+ /// Shorthand for "--output=type=registry"
+ ///
+ public bool Push { get; set; }
+ ///
+ /// Suppress the build output and print image ID on success
+ ///
+ public bool Quiet { get; set; }
+ ///
+ /// Remove intermediate containers after a successful build
+ ///
+ [AutoProperty(Format = Constants.BoolWithTrueDefaultFormat)]
+ public bool? Rm { get; set; }
+ ///
+ /// Secret to expose to the build (format: "id=mysecret[,src=/local/secret]")
+ ///
+ [AutoProperty(AutoArrayType = AutoArrayType.List)]
+ public string[] Secret { get; set; }
+ ///
+ /// Security options
+ ///
+ [AutoProperty(AutoArrayType = AutoArrayType.List)]
+ public string[] SecurityOpt { get; set; }
+ ///
+ /// Size of "/dev/shm"
+ ///
+ public string ShmSize { get; set; }
+ ///
+ /// Squash newly built layers into a single new layer
+ ///
+ public bool? Squash { get; set; }
+ ///
+ /// SSH agent socket or keys to expose to the build (format: "default|<id>[=<socket>|<key>[,<key>]]")
+ ///
+ [AutoProperty(AutoArrayType = AutoArrayType.List)]
+ public string[] Ssh { get; set; }
+ ///
+ /// Name and optionally a tag (format: "name:tag")
+ ///
+ [AutoProperty(AutoArrayType = AutoArrayType.List)]
+ public string[] Tag { get; set; }
+ ///
+ /// Set the target build stage to build.
+ ///
+ public string Target { get; set; }
+ ///
+ /// Ulimit options (default [])
+ ///
+ [AutoProperty(AutoArrayType = AutoArrayType.List)]
+ public string[] Ulimit { get; set; }
+ ///
+ /// Set annotation for new image
+ ///
+ [AutoProperty(AutoArrayType = AutoArrayType.List)]
+ public string[] Annotation { get; set; }
+}
diff --git a/build/common/Addins/Cake.Docker/DockerBuildXImageToolsCreateSettings.cs b/build/common/Addins/Cake.Docker/DockerBuildXImageToolsCreateSettings.cs
new file mode 100644
index 0000000000..7306e7f246
--- /dev/null
+++ b/build/common/Addins/Cake.Docker/DockerBuildXImageToolsCreateSettings.cs
@@ -0,0 +1,36 @@
+#nullable disable
+namespace Common.Addins.Cake.Docker;
+
+///
+/// Settings for docker buildx imagetools create.
+///
+public sealed class DockerBuildXImageToolsCreateSettings : AutoToolSettings
+{
+ ///
+ /// Append to existing manifest
+ ///
+ public bool Append { get; set; }
+ ///
+ /// Override the configured builder instance
+ ///
+ public string Builder { get; set; }
+ ///
+ /// Show final image instead of pushing
+ ///
+ public bool DryRun { get; set; }
+ ///
+ /// Read source descriptor from file
+ ///
+ [AutoProperty(AutoArrayType = AutoArrayType.List)]
+ public string[] File { get; set; }
+ ///
+ /// Set reference for new image
+ ///
+ [AutoProperty(AutoArrayType = AutoArrayType.List)]
+ public string[] Tag { get; set; }
+ ///
+ /// Set annotation for new image
+ ///
+ [AutoProperty(AutoArrayType = AutoArrayType.List)]
+ public string[] Annotation { get; set; }
+}
diff --git a/build/common/Addins/GitVersion/GitVersion.cs b/build/common/Addins/GitVersion/GitVersion.cs
index 833cb5c387..a6fd1d1bc1 100644
--- a/build/common/Addins/GitVersion/GitVersion.cs
+++ b/build/common/Addins/GitVersion/GitVersion.cs
@@ -45,11 +45,6 @@ public sealed class GitVersion
///
public string? BuildMetaData { get; set; }
- ///
- /// Gets or sets the build metadata padded.
- ///
- public string? BuildMetaDataPadded { get; set; }
-
///
/// Gets or sets the major version.
///
@@ -65,16 +60,6 @@ public sealed class GitVersion
///
public string? SemVer { get; set; }
- ///
- /// Gets or sets the legacy Semantic Version.
- ///
- public string? LegacySemVer { get; set; }
-
- ///
- /// Gets or sets the padded legacy Semantic Version.
- ///
- public string? LegacySemVerPadded { get; set; }
-
///
/// Gets or sets the assembly Semantic Version.
///
@@ -105,26 +90,11 @@ public sealed class GitVersion
///
public string? Sha { get; set; }
- ///
- /// Gets or sets the NuGet version for v2.
- ///
- public string? NuGetVersionV2 { get; set; }
-
- ///
- /// Gets or sets the NuGet version.
- ///
- public string? NuGetVersion { get; set; }
-
///
/// Gets or sets the commits since version source.
///
public int? CommitsSinceVersionSource { get; set; }
- ///
- /// Gets or sets the commits since version source padded.
- ///
- public string? CommitsSinceVersionSourcePadded { get; set; }
-
///
/// Gets or sets the commit date.
///
diff --git a/build/common/Addins/GitVersion/GitVersionAliases.cs b/build/common/Addins/GitVersion/GitVersionAliases.cs
index 0d4d292ea2..16ccd229d2 100644
--- a/build/common/Addins/GitVersion/GitVersionAliases.cs
+++ b/build/common/Addins/GitVersion/GitVersionAliases.cs
@@ -54,10 +54,7 @@ public static class GitVersionAliases
[CakeMethodAlias]
public static GitVersion GitVersion(this ICakeContext context)
{
- if (context == null)
- {
- throw new ArgumentNullException(nameof(context));
- }
+ ArgumentNullException.ThrowIfNull(context);
return GitVersion(context, new GitVersionSettings());
}
@@ -104,10 +101,7 @@ public static GitVersion GitVersion(this ICakeContext context)
[CakeMethodAlias]
public static GitVersion GitVersion(this ICakeContext context, GitVersionSettings settings)
{
- if (context == null)
- {
- throw new ArgumentNullException(nameof(context));
- }
+ ArgumentNullException.ThrowIfNull(context);
var gitVersionRunner = new GitVersionRunner(context.FileSystem, context.Environment, context.ProcessRunner, context.Tools, context.Log);
return gitVersionRunner.Run(settings);
diff --git a/build/common/Addins/GitVersion/GitVersionOutput.cs b/build/common/Addins/GitVersion/GitVersionOutput.cs
index b34683d490..d9605864be 100644
--- a/build/common/Addins/GitVersion/GitVersionOutput.cs
+++ b/build/common/Addins/GitVersion/GitVersionOutput.cs
@@ -13,5 +13,7 @@ public enum GitVersionOutput
///
/// Outputs to the stdout in a way usable by a detected build server.
///
- BuildServer
+ BuildServer,
+ File,
+ DotEnv
}
diff --git a/build/common/Addins/GitVersion/GitVersionRunner.cs b/build/common/Addins/GitVersion/GitVersionRunner.cs
index 8581c8c283..7da7defc4d 100644
--- a/build/common/Addins/GitVersion/GitVersionRunner.cs
+++ b/build/common/Addins/GitVersion/GitVersionRunner.cs
@@ -6,9 +6,9 @@ namespace Common.Addins.GitVersion;
///
/// The GitVersion runner.
///
-public sealed class GitVersionRunner : Tool
+public sealed partial class GitVersionRunner : Tool
{
- private readonly ICakeLog log;
+ private readonly ICakeLog _log;
///
/// Initializes a new instance of the class.
@@ -23,7 +23,7 @@ public GitVersionRunner(
ICakeEnvironment environment,
IProcessRunner processRunner,
IToolLocator tools,
- ICakeLog log) : base(fileSystem, environment, processRunner, tools) => this.log = log;
+ ICakeLog log) : base(fileSystem, environment, processRunner, tools) => this._log = log;
///
/// Runs GitVersion and processes the results.
@@ -32,31 +32,27 @@ public GitVersionRunner(
/// A task with the GitVersion results.
public GitVersion Run(GitVersionSettings settings)
{
- if (settings == null)
- {
- throw new ArgumentNullException(nameof(settings));
- }
+ ArgumentNullException.ThrowIfNull(settings);
var output = string.Empty;
Run(settings, GetArguments(settings), new ProcessSettings { RedirectStandardOutput = true }, process =>
{
output = string.Join("\n", process.GetStandardOutput());
- if (log.Verbosity < Verbosity.Diagnostic)
+ if (this._log.Verbosity >= Verbosity.Diagnostic) return;
+ var regex = ParseErrorRegex();
+ var errors = regex.Matches(output)
+ .SelectMany(match => new[] { match.Groups[1].Value, match.Groups[2].Value });
+ foreach (var error in errors)
{
- var errors = Regex.Matches(output, @"( *ERROR:? [^\n]*)\n([^\n]*)").Cast()
- .SelectMany(match => new[] { match.Groups[1].Value, match.Groups[2].Value });
- foreach (var error in errors)
- {
- log.Error(error);
- }
+ this._log.Error(error);
}
});
if (!settings.OutputTypes.Contains(GitVersionOutput.Json))
return new GitVersion();
- var jsonStartIndex = output.IndexOf("{", StringComparison.Ordinal);
- var jsonEndIndex = output.IndexOf("}", StringComparison.Ordinal);
+ var jsonStartIndex = output.IndexOf('{');
+ var jsonEndIndex = output.IndexOf('}');
var json = output.Substring(jsonStartIndex, jsonEndIndex - jsonStartIndex + 1);
return JsonConvert.DeserializeObject(json) ?? new GitVersion();
@@ -71,6 +67,7 @@ private ProcessArgumentBuilder GetArguments(GitVersionSettings settings)
builder.Append("-output");
builder.Append("json");
}
+
if (settings.OutputTypes.Contains(GitVersionOutput.BuildServer))
{
builder.Append("-output");
@@ -119,7 +116,8 @@ private ProcessArgumentBuilder GetArguments(GitVersionSettings settings)
}
else
{
- log.Warning("If you leave the branch name for GitVersion unset, it will fallback to the default branch for the repository.");
+ this._log.Warning(
+ "If you leave the branch name for GitVersion unset, it will fallback to the default branch for the repository.");
}
if (!string.IsNullOrWhiteSpace(settings.Commit))
@@ -146,13 +144,14 @@ private ProcessArgumentBuilder GetArguments(GitVersionSettings settings)
builder.Append("-nofetch");
}
- var verbosity = settings.Verbosity ?? log.Verbosity;
+ var verbosity = settings.Verbosity ?? this._log.Verbosity;
if (verbosity != Verbosity.Normal)
{
builder.Append("-verbosity");
builder.Append(verbosity.ToString());
}
+
return builder;
}
@@ -166,5 +165,14 @@ private ProcessArgumentBuilder GetArguments(GitVersionSettings settings)
/// Gets the possible names of the tool executable.
///
/// The tool executable name.
- protected override IEnumerable GetToolExecutableNames() => new[] { "GitVersion.exe", "dotnet-gitversion", "dotnet-gitversion.exe", "gitversion" };
+ protected override IEnumerable GetToolExecutableNames() =>
+ [
+ "GitVersion.exe",
+ "dotnet-gitversion",
+ "dotnet-gitversion.exe",
+ "gitversion"
+ ];
+
+ [GeneratedRegex(@"( *ERROR:? [^\n]*)\n([^\n]*)")]
+ private static partial Regex ParseErrorRegex();
}
diff --git a/build/common/Addins/GitVersion/GitVersionSettings.cs b/build/common/Addins/GitVersion/GitVersionSettings.cs
index 688a32a34e..db44b1aac3 100644
--- a/build/common/Addins/GitVersion/GitVersionSettings.cs
+++ b/build/common/Addins/GitVersion/GitVersionSettings.cs
@@ -13,7 +13,7 @@ public sealed class GitVersionSettings : ToolSettings
///
/// Gets or sets the output type.
///
- public HashSet OutputTypes { get; set; } = new() { GitVersionOutput.Json };
+ public HashSet OutputTypes { get; set; } = [GitVersionOutput.Json];
///
/// Gets or sets a value indicating whether to update all the AssemblyInfo files.
diff --git a/build/common/Context/DockerBuildContext.cs b/build/common/Context/DockerBuildContext.cs
new file mode 100644
index 0000000000..d78a57642b
--- /dev/null
+++ b/build/common/Context/DockerBuildContext.cs
@@ -0,0 +1,13 @@
+using Common.Utilities;
+
+namespace Common.Context;
+
+public class DockerBuildContext(ICakeContext context) : BuildContextBase(context)
+{
+ public bool IsDockerOnLinux { get; set; }
+
+ public IEnumerable Images { get; set; } = new List();
+ public DockerRegistry DockerRegistry { get; set; }
+ public ICollection Architectures { get; set; } = new List();
+}
+
diff --git a/build/common/Lifetime/BuildLifetimeBase.cs b/build/common/Lifetime/BuildLifetimeBase.cs
new file mode 100644
index 0000000000..98a431ef65
--- /dev/null
+++ b/build/common/Lifetime/BuildLifetimeBase.cs
@@ -0,0 +1,91 @@
+using Cake.Incubator.LoggingExtensions;
+using Common.Addins.GitVersion;
+using Common.Utilities;
+
+namespace Common.Lifetime;
+
+public class BuildLifetimeBase : FrostingLifetime where T : BuildContextBase
+{
+ public override void Setup(T context, ISetupContext info)
+ {
+ var buildSystem = context.BuildSystem();
+ context.IsLocalBuild = buildSystem.IsLocalBuild;
+ context.IsAzurePipelineBuild = buildSystem.IsRunningOnAzurePipelines;
+ context.IsGitHubActionsBuild = buildSystem.IsRunningOnGitHubActions;
+
+ context.IsPullRequest = buildSystem.IsPullRequest;
+ context.BranchName = context.GetBranchName();
+ context.RepositoryName = context.GetRepositoryName();
+ context.IsOriginalRepo = context.IsOriginalRepo();
+ context.IsMainBranch = context.IsMainBranch();
+ context.IsSupportBranch = context.IsSupportBranch();
+ context.IsTagged = context.IsTagged();
+
+ context.IsOnWindows = context.IsRunningOnWindows();
+ context.IsOnLinux = context.IsRunningOnLinux();
+ context.IsOnMacOS = context.IsRunningOnMacOs();
+
+ if (info.TargetTask.Name == "BuildPrepare")
+ {
+ context.Information("Running BuildPrepare...");
+ return;
+ }
+
+ var gitVersionPath = context.GetGitVersionDotnetToolLocation();
+ if (gitVersionPath is null || !context.FileExists(gitVersionPath))
+ {
+ throw new FileNotFoundException("Failed to locate the Release build of gitversion.dll in ./tools/gitversion. Try running \"./build.ps1 -Stage build -Target BuildPrepare\"");
+ }
+
+ var gitVersionSettings = new GitVersionSettings
+ {
+ OutputTypes = [GitVersionOutput.Json, GitVersionOutput.BuildServer],
+ ToolPath = context.Tools.Resolve(["dotnet.exe", "dotnet"]),
+ ArgumentCustomization = args => args.Prepend(gitVersionPath.FullPath)
+ };
+
+ var gitVersion = context.GitVersion(gitVersionSettings);
+
+ context.Version = BuildVersion.Calculate(gitVersion);
+ }
+ public override void Teardown(T context, ITeardownContext info)
+ {
+ context.StartGroup("Build Teardown");
+ try
+ {
+ context.Information("Starting Teardown...");
+
+ LogBuildInformation(context);
+
+ context.Information("Finished running tasks.");
+ }
+ catch (Exception exception)
+ {
+ context.Error(exception.Dump());
+ }
+ context.EndGroup();
+ }
+ protected void LogBuildInformation(T context)
+ {
+ if (context.HasArgument(Arguments.Target))
+ {
+ context.Information($"Target: {context.Argument(Arguments.Target)}");
+ }
+ if (context.Version is not null)
+ {
+ context.Information($"Version: {context.Version.SemVersion}");
+ }
+ context.Information($"Build Agent: {context.GetBuildAgent()}");
+ context.Information($"OS: {context.GetOS()}");
+ context.Information($"Pull Request: {context.IsPullRequest}");
+ context.Information($"Repository Name: {context.RepositoryName}");
+ context.Information($"Original Repository: {context.IsOriginalRepo}");
+ context.Information($"Branch Name: {context.BranchName}");
+ context.Information($"Main Branch: {context.IsMainBranch}");
+ context.Information($"Support Branch: {context.IsSupportBranch}");
+ context.Information($"Tagged: {context.IsTagged}");
+ context.Information($"IsStableRelease: {context.IsStableRelease}");
+ context.Information($"IsTaggedPreRelease: {context.IsTaggedPreRelease}");
+ context.Information($"IsInternalPreRelease: {context.IsInternalPreRelease}");
+ }
+}
diff --git a/build/common/Lifetime/DockerBuildLifetime.cs b/build/common/Lifetime/DockerBuildLifetime.cs
new file mode 100644
index 0000000000..73e1412518
--- /dev/null
+++ b/build/common/Lifetime/DockerBuildLifetime.cs
@@ -0,0 +1,54 @@
+using Common.Context;
+using Common.Utilities;
+
+namespace Common.Lifetime;
+
+public abstract class DockerBuildLifetime : BuildLifetimeBase
+ where TContext : DockerBuildContext
+{
+ protected virtual bool UseBaseImage => false;
+
+ public override void Setup(TContext context, ISetupContext info)
+ {
+ base.Setup(context, info);
+
+ context.IsDockerOnLinux = context.DockerCustomCommand("info --format '{{.OSType}}'").First().Replace("'", string.Empty) == "linux";
+
+ var dockerRegistry = context.Argument(Arguments.DockerRegistry, DockerRegistry.DockerHub);
+ var dotnetVersion = context.Argument(Arguments.DotnetVersion, string.Empty).ToLower();
+ var dockerDistro = context.Argument(Arguments.DockerDistro, string.Empty).ToLower();
+
+ var versions = string.IsNullOrWhiteSpace(dotnetVersion)
+ ? Constants.DotnetVersions
+ : string.Equals(dotnetVersion, "lts-latest", StringComparison.OrdinalIgnoreCase)
+ ? [Constants.DotnetLtsLatest]
+ : [dotnetVersion];
+
+ var distros = string.IsNullOrWhiteSpace(dockerDistro)
+ ? Constants.DockerDistros
+ : string.Equals(dockerDistro, "distro-latest", StringComparison.OrdinalIgnoreCase)
+ ? [Constants.AlpineLatest]
+ : [dockerDistro];
+
+ var architectures = context.HasArgument(Arguments.Architecture) ? context.Arguments(Arguments.Architecture) : Constants.ArchToBuild;
+ var platformArch = context.IsRunningOnAmd64() ? Architecture.Amd64 : Architecture.Arm64;
+
+ var registry = dockerRegistry == DockerRegistry.DockerHub ? Constants.DockerHubRegistry : Constants.GitHubContainerRegistry;
+
+ context.DockerRegistry = dockerRegistry;
+ context.Architectures = architectures;
+ context.Images = from version in versions
+ from distro in distros
+ from arch in architectures
+ select new DockerImage(distro, version, arch, registry, UseBaseImage);
+
+ context.StartGroup("Build Setup");
+
+ LogBuildInformation(context);
+
+ context.Information($"IsDockerOnLinux: {context.IsDockerOnLinux}");
+ context.Information($"Building for Version: {dotnetVersion}, Distro: {dockerDistro}, Architecture: {platformArch}");
+ context.EndGroup();
+ }
+}
+
diff --git a/build/common/Utilities/Arguments.cs b/build/common/Utilities/Arguments.cs
index 57231705f9..92fd222839 100644
--- a/build/common/Utilities/Arguments.cs
+++ b/build/common/Utilities/Arguments.cs
@@ -5,8 +5,7 @@ public class Arguments
public const string Target = "target";
public const string Configuration = "configuration";
public const string Architecture = "arch";
- public const string DotnetTarget = "dotnet_target";
+ public const string DotnetVersion = "dotnet_version";
public const string DockerRegistry = "docker_registry";
- public const string DockerDotnetVersion = "docker_dotnetversion";
public const string DockerDistro = "docker_distro";
}
diff --git a/build/common/Utilities/BuildContextBase.cs b/build/common/Utilities/BuildContextBase.cs
index ff67d773bc..93be1fc1b6 100644
--- a/build/common/Utilities/BuildContextBase.cs
+++ b/build/common/Utilities/BuildContextBase.cs
@@ -2,13 +2,12 @@ namespace Common.Utilities;
public class BuildContextBase : FrostingContext
{
- protected BuildContextBase(ICakeContext context) : base(context)
- {
- }
+ protected BuildContextBase(ICakeContext context) : base(context) => Platform = context.Environment.Platform.Family;
+ public PlatformFamily Platform { get; set; }
public BuildVersion? Version { get; set; }
-
public bool IsOriginalRepo { get; set; }
public string BranchName { get; set; } = string.Empty;
+ public string RepositoryName { get; set; } = string.Empty;
public bool IsMainBranch { get; set; }
public bool IsSupportBranch { get; set; }
public bool IsPullRequest { get; set; }
@@ -19,7 +18,8 @@ protected BuildContextBase(ICakeContext context) : base(context)
public bool IsOnWindows { get; set; }
public bool IsOnLinux { get; set; }
public bool IsOnMacOS { get; set; }
- public bool IsOnMainOrSupportBranchOriginalRepo => !IsLocalBuild && IsOriginalRepo && (IsMainBranch || IsSupportBranch) && !IsPullRequest;
- public bool IsStableRelease => IsOnMainOrSupportBranchOriginalRepo && IsTagged;
- public bool IsPreRelease => IsOnMainOrSupportBranchOriginalRepo && !IsTagged;
+ public bool IsReleaseBranchOriginalRepo => !IsLocalBuild && IsOriginalRepo && (IsMainBranch || IsSupportBranch) && !IsPullRequest;
+ public bool IsStableRelease => IsReleaseBranchOriginalRepo && IsTagged && Version?.IsPreRelease == false;
+ public bool IsTaggedPreRelease => IsReleaseBranchOriginalRepo && IsTagged && Version?.IsPreRelease == true;
+ public bool IsInternalPreRelease => IsReleaseBranchOriginalRepo && IsGitHubActionsBuild;
}
diff --git a/build/common/Utilities/BuildLifetimeBase.cs b/build/common/Utilities/BuildLifetimeBase.cs
deleted file mode 100644
index f117462390..0000000000
--- a/build/common/Utilities/BuildLifetimeBase.cs
+++ /dev/null
@@ -1,71 +0,0 @@
-using Cake.Incubator.LoggingExtensions;
-using Common.Addins.GitVersion;
-
-namespace Common.Utilities;
-
-public class BuildLifetimeBase : FrostingLifetime where T : BuildContextBase
-{
- public override void Setup(T context)
- {
- var buildSystem = context.BuildSystem();
- context.IsLocalBuild = buildSystem.IsLocalBuild;
- context.IsAzurePipelineBuild = buildSystem.IsRunningOnAzurePipelines;
- context.IsGitHubActionsBuild = buildSystem.IsRunningOnGitHubActions;
-
- context.IsPullRequest = buildSystem.IsPullRequest;
- context.BranchName = context.GetBranchName();
- context.IsOriginalRepo = context.IsOriginalRepo();
- context.IsMainBranch = context.IsMainBranch();
- context.IsSupportBranch = context.IsSupportBranch();
- context.IsTagged = context.IsTagged();
-
- context.IsOnWindows = context.IsRunningOnWindows();
- context.IsOnLinux = context.IsRunningOnLinux();
- context.IsOnMacOS = context.IsRunningOnMacOs();
-
- var gitVersion = context.GitVersion(new GitVersionSettings
- {
- OutputTypes = new HashSet { GitVersionOutput.Json, GitVersionOutput.BuildServer }
- });
-
- context.Version = BuildVersion.Calculate(gitVersion);
- }
- public override void Teardown(T context, ITeardownContext info)
- {
- context.StartGroup("Build Teardown");
- try
- {
- context.Information("Starting Teardown...");
-
- context.Information("Pull Request: {0}", context.IsPullRequest);
- context.Information("Original Repo: {0}", context.IsOriginalRepo);
- context.Information("Branch Name: {0}", context.BranchName);
- context.Information("Main Branch: {0}", context.IsMainBranch);
- context.Information("Support Branch: {0}", context.IsSupportBranch);
- context.Information("Tagged: {0}", context.IsTagged);
-
- context.Information("Finished running tasks.");
- }
- catch (Exception exception)
- {
- context.Error(exception.Dump());
- }
- context.EndGroup();
- }
- protected void LogBuildInformation(T context)
- {
- if (context.HasArgument(Arguments.Target))
- {
- context.Information("Target: {0}", context.Argument(Arguments.Target));
- }
- context.Information("Version: {0}", context.Version?.SemVersion);
- context.Information("Build Agent: {0}", context.GetBuildAgent());
- context.Information("OS: {0}", context.GetOS());
- context.Information("Pull Request: {0}", context.IsPullRequest);
- context.Information("Original Repo: {0}", context.IsOriginalRepo);
- context.Information("Branch Name: {0}", context.BranchName);
- context.Information("Main Branch: {0}", context.IsMainBranch);
- context.Information("Support Branch: {0}", context.IsSupportBranch);
- context.Information("Tagged: {0}", context.IsTagged);
- }
-}
diff --git a/build/common/Utilities/CakeHostExtensions.cs b/build/common/Utilities/CakeHostExtensions.cs
index 5b8681122f..43b964c8b1 100644
--- a/build/common/Utilities/CakeHostExtensions.cs
+++ b/build/common/Utilities/CakeHostExtensions.cs
@@ -12,7 +12,7 @@ public static CakeHost UseRootDirectory(this CakeHost host)
public static CakeHost InstallToolsFromRootManifest(this CakeHost host)
{
- host = host.UseModule().InstallToolsFromManifest(Extensions.GetRootDirectory().CombineWithFilePath("dotnet-tools.json").FullPath);
+ host = host.UseModule().InstallToolsFromManifest(Extensions.GetRootDirectory().CombineWithFilePath(".config/dotnet-tools.json").FullPath);
return host;
}
diff --git a/build/common/Utilities/Constants.cs b/build/common/Utilities/Constants.cs
index 18da2c45d0..49eac5f818 100644
--- a/build/common/Utilities/Constants.cs
+++ b/build/common/Utilities/Constants.cs
@@ -1,25 +1,19 @@
+// ReSharper disable MemberCanBePrivate.Global
namespace Common.Utilities;
-public class Constants
+public static class Constants
{
public const string RepoOwner = "GitTools";
public const string Repository = "GitVersion";
- public const string Version60 = "6.0";
- public const string Version50 = "5.0";
- public const string Version31 = "3.1";
+ public const string DotnetLtsLatest = "8.0";
+ public static readonly string[] DotnetVersions = [DotnetLtsLatest, "9.0"];
- public const string NetVersion50 = "net5.0";
- public const string NetVersion60 = "net6.0";
- public const string CoreFxVersion31 = "netcoreapp3.1";
- public const string FullFxVersion48 = "net48";
+ public const string DefaultBranch = "main";
+ public const string DefaultConfiguration = "Release";
- public const string NoMono = "NoMono";
- public const string NoNet48 = "NoNet48";
-
- public static readonly string[] VersionsToBuild = { Version60, Version50, Version31 };
- public static readonly Architecture[] ArchToBuild = { Architecture.Amd64, Architecture.Arm64 };
- public static readonly string[] DistrosToSkip = { Alpine312, Alpine313, Alpine314, Centos7 };
+ public static readonly Architecture[] ArchToBuild = [Architecture.Amd64, Architecture.Arm64];
+ public static readonly string[] Architectures = [nameof(Architecture.Amd64), nameof(Architecture.Arm64)];
public const string DockerBaseImageName = "gittools/build-images";
public const string DockerImageName = "gittools/gitversion";
@@ -28,36 +22,25 @@ public class Constants
public const string GitHub = "github";
public const string DockerHubRegistry = "docker.io";
public const string GitHubContainerRegistry = "ghcr.io";
-
- public const string Arm64 = "arm64";
- public const string Amd64 = "amd64";
-
- public const string Alpine312 = "alpine.3.12";
- public const string Alpine313 = "alpine.3.13";
- public const string Alpine314 = "alpine.3.14";
- public const string Centos7 = "centos.7";
- public const string Centos8 = "centos.8";
- public const string Debian9 = "debian.9";
- public const string Debian10 = "debian.10";
- public const string Debian11 = "debian.11";
- public const string Fedora33 = "fedora.33";
- public const string Ubuntu1804 = "ubuntu.18.04";
- public const string Ubuntu2004 = "ubuntu.20.04";
- public const string DockerDistroLatest = Debian10;
- public static readonly string[] DockerDistrosToBuild =
- {
- Alpine312,
- Alpine313,
- Alpine314,
- Centos7,
- Centos8,
- Debian9,
- Debian10,
- Debian11,
- Fedora33,
- Ubuntu1804,
- Ubuntu2004
- };
+ public static readonly string[] DockerRegistries = [DockerHub, GitHub];
+
+ public const string AlpineLatest = "alpine.3.22";
+ public const string CentosLatest = "centos.stream.9";
+ public const string DebianLatest = "debian.12";
+ public const string FedoraLatest = "fedora.42";
+ public const string UbuntuLatest = "ubuntu.24.04";
+
+ public const string DockerDistroLatest = DebianLatest;
+
+ public static readonly string[] DockerDistros =
+ [
+ AlpineLatest,
+ CentosLatest,
+ DebianLatest,
+ FedoraLatest,
+ UbuntuLatest,
+ "ubuntu.22.04"
+ ];
public const string NugetOrgUrl = "https://api.nuget.org/v3/index.json";
public const string GithubPackagesUrl = "https://nuget.pkg.github.com/gittools/index.json";
public const string ChocolateyUrl = "https://push.chocolatey.org/";
diff --git a/build/common/Utilities/ContextExtensions.cs b/build/common/Utilities/ContextExtensions.cs
index 552f01aa84..049420f969 100644
--- a/build/common/Utilities/ContextExtensions.cs
+++ b/build/common/Utilities/ContextExtensions.cs
@@ -1,32 +1,12 @@
-using Cake.Common.Tools.DotNet.Test;
-using Cake.Coverlet;
-using Common.Addins.Cake.Coverlet;
+using System.Runtime.InteropServices;
+using Cake.Common.Build.AzurePipelines;
using Xunit;
+using ProcessArchitecture = System.Runtime.InteropServices.Architecture;
namespace Common.Utilities;
public static class ContextExtensions
{
- public static void DotNetTest(
- this ICakeContext context,
- FilePath project,
- DotNetTestSettings settings,
- CoverletSettings coverletSettings)
- {
- if (context == null)
- {
- throw new ArgumentNullException(nameof(context));
- }
- var currentCustomization = settings.ArgumentCustomization;
- settings.ArgumentCustomization = (args) => ArgumentsProcessor.ProcessMSBuildArguments(
- coverletSettings,
- context.Environment,
- currentCustomization?.Invoke(args) ?? args,
- project);
-
- context.DotNetTest(project.FullPath, settings);
- }
-
public static IEnumerable ExecuteCommand(this ICakeContext context, FilePath exe, string? args, DirectoryPath? workDir = null)
{
var processSettings = new ProcessSettings { Arguments = args, RedirectStandardOutput = true };
@@ -34,6 +14,7 @@ public static IEnumerable ExecuteCommand(this ICakeContext context, File
{
processSettings.WorkingDirectory = workDir;
}
+
context.StartProcess(exe, processSettings, out var redirectedOutput);
return redirectedOutput.ToList();
}
@@ -52,29 +33,14 @@ public static void GitPushBranch(this ICakeContext context, DirectoryPath reposi
public static bool IsOriginalRepo(this ICakeContext context)
{
- var buildSystem = context.BuildSystem();
- string repositoryName = string.Empty;
- if (buildSystem.IsRunningOnAppVeyor)
- {
- repositoryName = buildSystem.AppVeyor.Environment.Repository.Name;
- }
- else if (buildSystem.IsRunningOnAzurePipelines)
- {
- repositoryName = buildSystem.AzurePipelines.Environment.Repository.RepoName;
- }
- else if (buildSystem.IsRunningOnGitHubActions)
- {
- repositoryName = buildSystem.GitHubActions.Environment.Workflow.Repository;
- }
- context.Information("Repository Name: {0}", repositoryName);
-
+ var repositoryName = context.GetRepositoryName();
return !string.IsNullOrWhiteSpace(repositoryName) && StringComparer.OrdinalIgnoreCase.Equals("gittools/GitVersion", repositoryName);
}
public static bool IsMainBranch(this ICakeContext context)
{
var repositoryBranch = GetBranchName(context);
- return !string.IsNullOrWhiteSpace(repositoryBranch) && StringComparer.OrdinalIgnoreCase.Equals("main", repositoryBranch);
+ return !string.IsNullOrWhiteSpace(repositoryBranch) && StringComparer.OrdinalIgnoreCase.Equals(Constants.DefaultBranch, repositoryBranch);
}
public static bool IsSupportBranch(this ICakeContext context)
@@ -116,6 +82,12 @@ public static string GetOS(this ICakeContext context)
return string.Empty;
}
+ public static bool IsRunningOnAmd64(this ICakeContext _)
+ => RuntimeInformation.ProcessArchitecture == ProcessArchitecture.X64;
+
+ public static bool IsRunningOnArm64(this ICakeContext _) =>
+ RuntimeInformation.ProcessArchitecture == ProcessArchitecture.Arm64;
+
public static string GetBuildAgent(this ICakeContext context)
{
var buildSystem = context.BuildSystem();
@@ -132,30 +104,27 @@ public static string GetBuildAgent(this ICakeContext context)
public static void StartGroup(this ICakeContext context, string title)
{
var buildSystem = context.BuildSystem();
- var startGroup = "[group]";
if (buildSystem.IsRunningOnAzurePipelines)
{
- startGroup = "##[group]";
+ context.AzurePipelines().Commands.StartGroup(context, title);
}
else if (buildSystem.IsRunningOnGitHubActions)
{
- startGroup = "::group::";
+ context.GitHubActions().Commands.StartGroup(title);
}
- context.Information($"{startGroup}{title}");
}
+
public static void EndGroup(this ICakeContext context)
{
var buildSystem = context.BuildSystem();
- var endgroup = "[endgroup]";
if (buildSystem.IsRunningOnAzurePipelines)
{
- endgroup = "##[endgroup]";
+ context.AzurePipelines().Commands.EndGroup(context);
}
else if (buildSystem.IsRunningOnGitHubActions)
{
- endgroup = "::endgroup::";
+ context.GitHubActions().Commands.EndGroup();
}
- context.Information($"{endgroup}");
}
public static bool ShouldRun(this ICakeContext context, bool criteria, string skipMessage)
@@ -182,6 +151,39 @@ public static string GetBranchName(this ICakeContext context)
{
repositoryBranch = buildSystem.GitHubActions.Environment.Workflow.Ref.Replace("refs/heads/", "");
}
+
return repositoryBranch;
}
+
+ public static string GetRepositoryName(this ICakeContext context)
+ {
+ var buildSystem = context.BuildSystem();
+ string repositoryName = string.Empty;
+ if (buildSystem.IsRunningOnAppVeyor)
+ {
+ repositoryName = buildSystem.AppVeyor.Environment.Repository.Name;
+ }
+ else if (buildSystem.IsRunningOnAzurePipelines)
+ {
+ repositoryName = buildSystem.AzurePipelines.Environment.Repository.RepoName;
+ }
+ else if (buildSystem.IsRunningOnGitHubActions)
+ {
+ repositoryName = buildSystem.GitHubActions.Environment.Workflow.Repository;
+ }
+
+ return repositoryName;
+ }
+
+ private static void StartGroup(this IAzurePipelinesCommands _, ICakeContext context, string title) => context.Information("##[group]{0}", title);
+
+ private static void EndGroup(this IAzurePipelinesCommands _, ICakeContext context) => context.Information("##[endgroup]");
+
+ public static FilePath? GetGitVersionToolLocation(this ICakeContext context) =>
+ context.GetFiles($"src/GitVersion.App/bin/{Constants.DefaultConfiguration}/net{Constants.DotnetLtsLatest}/gitversion.dll").SingleOrDefault();
+ public static FilePath? GetGitVersionDotnetToolLocation(this ICakeContext context) =>
+ context.MakeAbsolute(Paths.Tools.Combine("gitversion").CombineWithFilePath("gitversion.dll"));
+
+ public static FilePath? GetSchemaDotnetToolLocation(this ICakeContext context) =>
+ context.MakeAbsolute(Paths.Tools.Combine("schema").CombineWithFilePath("schema.dll"));
}
diff --git a/build/common/Utilities/DockerContextExtensions.cs b/build/common/Utilities/DockerContextExtensions.cs
index 15a9f82e52..0c8443c1f8 100644
--- a/build/common/Utilities/DockerContextExtensions.cs
+++ b/build/common/Utilities/DockerContextExtensions.cs
@@ -1,4 +1,6 @@
using Xunit;
+using DockerBuildXBuildSettings = Common.Addins.Cake.Docker.DockerBuildXBuildSettings;
+using DockerBuildXImageToolsCreateSettings = Common.Addins.Cake.Docker.DockerBuildXImageToolsCreateSettings;
namespace Common.Utilities;
@@ -7,15 +9,32 @@ public enum Architecture
Arm64,
Amd64
}
+
public static class DockerContextExtensions
{
- public static bool SkipArm64Image(this ICakeContext context, DockerImage dockerImage)
+ private static readonly string[] Annotations =
+ [
+ "org.opencontainers.image.authors=GitTools Maintainers",
+ "org.opencontainers.image.vendor=GitTools",
+ "org.opencontainers.image.licenses=MIT",
+ "org.opencontainers.image.source=https://github.com/GitTools/GitVersion.git",
+ "org.opencontainers.image.documentation=https://gitversion.net/docs/usage/docker",
+ $"org.opencontainers.image.created={DateTime.UtcNow:O}",
+ ];
+
+ public static bool SkipImageTesting(this ICakeContext context, DockerImage dockerImage)
{
- if (dockerImage.Architecture != Architecture.Arm64) return false;
- if (!Constants.DistrosToSkip.Contains(dockerImage.Distro)) return false;
+ var (distro, targetFramework, architecture, _, _) = dockerImage;
- context.Information($"Skipping Target: {dockerImage.TargetFramework}, Distro: {dockerImage.Distro}, Arch: {dockerImage.Architecture}");
- return true;
+ switch (architecture)
+ {
+ case Architecture.Amd64:
+ case Architecture.Arm64 when context.IsRunningOnArm64():
+ return false;
+ default:
+ context.Information($"Skipping Target: {targetFramework}, Distro: {distro}, Arch: {architecture}");
+ return true;
+ }
}
public static void DockerBuildImage(this BuildContextBase context, DockerImage dockerImage)
@@ -26,74 +45,128 @@ public static void DockerBuildImage(this BuildContextBase context, DockerImage d
context.Information($"Building image: {dockerImage}");
- var workDir = Paths.Src.Combine("Docker");
+ var workDir = Paths.Build.Combine("docker");
var tags = context.GetDockerTags(dockerImage, arch);
var suffix = arch.ToSuffix();
- var platforms = new List { $"linux/{suffix}" };
+ var imageSuffix = $"({distro}-{context.Version.NugetVersion}-{targetFramework}-{suffix})";
+ var baseNameSuffix = $"{registry}/{Constants.DockerBaseImageName}:{distro}-runtime-{targetFramework}-{suffix}";
+ var description = $"org.opencontainers.image.description=GitVersion images {imageSuffix}";
+ var baseName = $"org.opencontainers.image.base.name={baseNameSuffix}";
+ var version = $"org.opencontainers.image.version={context.Version.NugetVersion}";
+ var revision = $"org.opencontainers.image.revision={context.Version.GitVersion.Sha}";
+ var source = $"org.opencontainers.image.source=https://github.com/GitTools/GitVersion/blob/{context.Version.GitVersion.Sha}/build/docker/Dockerfile";
- var buildSettings = new DockerImageBuildSettings
+ var buildSettings = new DockerBuildXBuildSettings
{
Rm = true,
+ Pull = true,
+ // NoCache = true,
Tag = tags.ToArray(),
+ Platform = [$"linux/{suffix}"],
+ Output = ["type=docker,oci-mediatypes=true"],
File = workDir.CombineWithFilePath("Dockerfile").FullPath,
- BuildArg = new[]
- {
- $"contentFolder=/content",
+ BuildArg =
+ [
+ "nugetFolder=/nuget",
$"REGISTRY={registry}",
$"DOTNET_VERSION={targetFramework}",
$"DISTRO={distro}",
$"VERSION={context.Version.NugetVersion}"
- },
- Pull = true,
- Platform = string.Join(",", platforms),
+ ],
+ Label =
+ [
+ "maintainers=GitTools Maintainers",
+ .. Annotations,
+ baseName,
+ version,
+ source,
+ revision,
+ description
+ ],
+ Annotation =
+ [
+ .. Annotations,
+ baseName,
+ version,
+ source,
+ revision,
+ description
+ ]
};
- context.DockerBuild(buildSettings, workDir.ToString(), "--output type=docker");
+ context.DockerBuildXBuild(buildSettings, workDir.ToString());
}
- public static void DockerPushImage(this BuildContextBase context, DockerImage dockerImage)
+ public static void DockerBuildXBuild(this ICakeContext context, DockerBuildXBuildSettings settings,
+ DirectoryPath target)
{
- var tags = context.GetDockerTags(dockerImage, dockerImage.Architecture);
- foreach (var tag in tags)
- {
- context.DockerPush(tag);
- }
+ ArgumentNullException.ThrowIfNull(context);
+ var runner = context.CreateRunner();
+ runner.Run("buildx build", settings, [target.ToString().EscapeProcessArgument()]);
}
- public static void DockerCreateManifest(this BuildContextBase context, DockerImage dockerImage, bool skipArm64Image)
+ public static void DockerManifest(this BuildContextBase context, DockerImage dockerImage)
{
+ ArgumentNullException.ThrowIfNull(context.Version);
var manifestTags = context.GetDockerTags(dockerImage);
foreach (var tag in manifestTags)
{
- var manifestCreateSettings = new DockerManifestCreateSettings { Amend = true };
var amd64Tag = $"{tag}-{Architecture.Amd64.ToSuffix()}";
- if (skipArm64Image)
- {
- context.DockerManifestCreate(manifestCreateSettings, tag, amd64Tag);
- }
- else
- {
- var arm64Tag = $"{tag}-{Architecture.Arm64.ToSuffix()}";
- context.DockerManifestCreate(manifestCreateSettings, tag, amd64Tag, arm64Tag);
- }
+ var arm64Tag = $"{tag}-{Architecture.Arm64.ToSuffix()}";
+
+ var settings = GetManifestSettings(dockerImage, context.Version, tag);
+ context.DockerBuildXImageToolsCreate(settings, [amd64Tag, arm64Tag]);
}
}
- public static void DockerPushManifest(this BuildContextBase context, DockerImage dockerImage)
+ public static void DockerBuildXImageToolsCreate(this ICakeContext context,
+ DockerBuildXImageToolsCreateSettings settings,
+ IEnumerable? target = null)
{
- var manifestTags = context.GetDockerTags(dockerImage);
- foreach (var tag in manifestTags)
+ ArgumentNullException.ThrowIfNull(context);
+ var runner = context.CreateRunner();
+ runner.Run("buildx imagetools create", settings, target?.ToArray() ?? []);
+ }
+
+ private static GenericDockerRunner CreateRunner(this ICakeContext context)
+ where TSettings : AutoToolSettings, new() =>
+ new(context.FileSystem, context.Environment, context.ProcessRunner, context.Tools);
+
+ public static void DockerPushImage(this BuildContextBase context, DockerImage dockerImage)
+ {
+ var tags = context.GetDockerTags(dockerImage, dockerImage.Architecture);
+ foreach (var tag in tags)
{
- context.DockerManifestPush(new DockerManifestPushSettings { Purge = true }, tag);
+ context.DockerPush(tag);
}
}
+ public static DockerBuildXImageToolsCreateSettings GetManifestSettings(DockerImage dockerImage, BuildVersion buildVersion, string tag)
+ {
+ var imageSuffix = $"({dockerImage.Distro}-{buildVersion.NugetVersion}-{dockerImage.TargetFramework})";
+ var description = $"org.opencontainers.image.description=GitVersion images {imageSuffix}";
+ var version = $"org.opencontainers.image.version={buildVersion.NugetVersion}";
+ var revision = $"org.opencontainers.image.revision={buildVersion.GitVersion.Sha}";
+ var settings = new DockerBuildXImageToolsCreateSettings
+ {
+ Tag = [tag],
+ Annotation =
+ [
+ .. Annotations.Select(a => "index:" + a).ToArray(),
+ $"index:{description}",
+ $"index:{version}",
+ $"index:{revision}"
+ ]
+ };
+ return settings;
+ }
+
public static void DockerPullImage(this ICakeContext context, DockerImage dockerImage)
{
var tag = $"{dockerImage.DockerImageName()}:{dockerImage.Distro}-sdk-{dockerImage.TargetFramework}";
var platform = $"linux/{dockerImage.Architecture.ToString().ToLower()}";
- context.DockerPull(new DockerImagePullSettings { Platform = platform }, tag);
+ context.DockerPull(new() { Platform = platform }, tag);
}
public static void DockerTestImage(this BuildContextBase context, DockerImage dockerImage)
@@ -101,7 +174,7 @@ public static void DockerTestImage(this BuildContextBase context, DockerImage do
var tags = context.GetDockerTags(dockerImage, dockerImage.Architecture);
foreach (var tag in tags)
{
- context.DockerTestRun(tag, dockerImage.Architecture, "/repo", "/showvariable", "FullSemver");
+ context.DockerTestRun(tag, dockerImage.Architecture, "/repo", "/showvariable", "FullSemver", "/nocache");
}
}
@@ -111,73 +184,46 @@ public static void DockerTestArtifact(this BuildContextBase context, DockerImage
context.DockerTestRun(tag, dockerImage.Architecture, "sh", cmd);
}
- private static void DockerBuild(
- this ICakeContext context,
- DockerImageBuildSettings settings,
- string path, params string[] args)
- {
- GenericDockerRunner genericDockerRunner =
- new(context.FileSystem, context.Environment, context.ProcessRunner, context.Tools);
-
- string str;
- switch (string.IsNullOrEmpty(path))
- {
- case false:
- {
- string str2 = path.Trim();
- str = str2.Length <= 1 || !str2.StartsWith("\"") || !str2.EndsWith("\"") ? "\"" + path + "\"" : path;
- break;
- }
- default:
- str = path;
- break;
- }
- var additional = args.Concat(new[] { str }).ToArray();
- genericDockerRunner.Run("buildx build", settings, additional);
- }
-
- private static void DockerTestRun(this BuildContextBase context, string image, Architecture arch, string command, params string[] args)
+ private static void DockerTestRun(this BuildContextBase context, string image, Architecture arch, string command,
+ params string[] args)
{
+ ArgumentNullException.ThrowIfNull(context.Version?.GitVersion.FullSemVer);
var settings = GetDockerRunSettings(context, arch);
context.Information($"Testing image: {image}");
- var output = context.DockerRunImage(settings, image, command, args);
+ var output = context.DockerRun(settings, image, command, args);
context.Information("Output : " + output);
- Assert.Contains(context.Version?.GitVersion.FullSemVer, output);
+ Assert.Contains(context.Version.GitVersion.FullSemVer, output);
}
- private static IEnumerable GetDockerTags(this BuildContextBase context, DockerImage dockerImage, Architecture? arch = null)
+
+ private static IEnumerable GetDockerTags(this BuildContextBase context, DockerImage dockerImage,
+ Architecture? arch = null)
{
var name = dockerImage.DockerImageName();
var distro = dockerImage.Distro;
var targetFramework = dockerImage.TargetFramework;
- if (context.Version == null) return Enumerable.Empty();
+ if (context.Version == null) return [];
var tags = new List
{
$"{name}:{context.Version.Version}-{distro}-{targetFramework}",
$"{name}:{context.Version.SemVersion}-{distro}-{targetFramework}",
};
- if (distro == Constants.DockerDistroLatest && targetFramework == Constants.Version50)
+ if (distro == Constants.DockerDistroLatest && targetFramework == Constants.DotnetLtsLatest)
{
- tags.AddRange(new[]
- {
- $"{name}:{context.Version.Version}",
- $"{name}:{context.Version.SemVersion}",
-
- $"{name}:{context.Version.Version}-{distro}",
- $"{name}:{context.Version.SemVersion}-{distro}"
- });
+ tags.Add($"{name}:{context.Version.SemVersion}");
if (context.IsStableRelease)
{
- tags.AddRange(new[]
- {
+ tags.AddRange(
+ [
+ $"{name}:{context.Version.Version}",
$"{name}:latest",
$"{name}:latest-{targetFramework}",
$"{name}:latest-{distro}",
$"{name}:latest-{distro}-{targetFramework}",
- });
+ ]);
}
}
@@ -185,9 +231,11 @@ private static IEnumerable GetDockerTags(this BuildContextBase context,
var suffix = arch.Value.ToSuffix();
return tags.Select(x => $"{x}-{suffix}").Distinct();
-
}
- private static string DockerImageName(this DockerImage image) => $"{image.Registry}/{(image.UseBaseImage ? Constants.DockerBaseImageName : Constants.DockerImageName)}";
+
+ private static string DockerImageName(this DockerImage image) =>
+ $"{image.Registry}/{(image.UseBaseImage ? Constants.DockerBaseImageName : Constants.DockerImageName)}";
+
private static DockerContainerRunSettings GetDockerRunSettings(this BuildContextBase context, Architecture arch)
{
var currentDir = context.MakeAbsolute(context.Directory("."));
@@ -195,56 +243,34 @@ private static DockerContainerRunSettings GetDockerRunSettings(this BuildContext
var settings = new DockerContainerRunSettings
{
Rm = true,
- Volume = new[]
- {
+ Volume =
+ [
$"{currentDir}:{root}/repo",
$"{currentDir}/tests/scripts:{root}/scripts",
$"{currentDir}/artifacts/packages/nuget:{root}/nuget",
- $"{currentDir}/artifacts/packages/native:{root}/native",
- },
+ $"{currentDir}/artifacts/packages/native:{root}/native"
+ ],
Platform = $"linux/{arch.ToString().ToLower()}"
};
if (context.IsAzurePipelineBuild)
{
- settings.Env = new[]
- {
+ settings.Env =
+ [
"TF_BUILD=true",
$"BUILD_SOURCEBRANCH={context.EnvironmentVariable("BUILD_SOURCEBRANCH")}"
- };
+ ];
}
+
if (context.IsGitHubActionsBuild)
{
- settings.Env = new[]
- {
+ settings.Env =
+ [
"GITHUB_ACTIONS=true",
$"GITHUB_REF={context.EnvironmentVariable("GITHUB_REF")}"
- };
+ ];
}
return settings;
}
- private static string DockerRunImage(this ICakeContext context, DockerContainerRunSettings settings, string image, string command, params string[] args)
- {
- if (string.IsNullOrEmpty(image))
- {
- throw new ArgumentNullException(nameof(image));
- }
- var runner = new GenericDockerRunner(context.FileSystem, context.Environment, context.ProcessRunner, context.Tools);
- List arguments = new()
- {
- image
- };
- if (!string.IsNullOrEmpty(command))
- {
- arguments.Add(command);
- if (args.Length > 0)
- {
- arguments.AddRange(args);
- }
- }
-
- var result = runner.RunWithResult("run", settings, r => r.ToArray(), arguments.ToArray());
- return string.Join("\n", result);
- }
}
diff --git a/build/common/Utilities/Extensions.cs b/build/common/Utilities/Extensions.cs
index a4e10948dc..5691ef09fa 100644
--- a/build/common/Utilities/Extensions.cs
+++ b/build/common/Utilities/Extensions.cs
@@ -2,6 +2,9 @@ namespace Common.Utilities;
public static class Extensions
{
+ private static readonly char[] CharsThatRequireQuoting = [' ', '"'];
+ private static readonly char[] CharsThatRequireEscaping = ['\\', '"'];
+
public static IEnumerable FindAllDerivedTypes(this Assembly assembly, Type baseType) =>
from type in assembly.GetExportedTypes()
let info = type.GetTypeInfo()
@@ -10,10 +13,7 @@ where baseType.IsAssignableFrom(type) && info.IsClass && !info.IsAbstract
public static string GetTaskDescription(this Type task)
{
- if (task is null)
- {
- throw new ArgumentNullException(nameof(task));
- }
+ ArgumentNullException.ThrowIfNull(task);
var attribute = task.GetCustomAttribute();
return attribute != null ? attribute.Description : string.Empty;
@@ -21,10 +21,7 @@ public static string GetTaskDescription(this Type task)
public static string GetTaskName(this Type task)
{
- if (task is null)
- {
- throw new ArgumentNullException(nameof(task));
- }
+ ArgumentNullException.ThrowIfNull(task);
var attribute = task.GetCustomAttribute();
return attribute != null ? attribute.Name : task.Name;
@@ -32,13 +29,10 @@ public static string GetTaskName(this Type task)
public static string GetTaskArguments(this Type task)
{
- if (task is null)
- {
- throw new ArgumentNullException(nameof(task));
- }
+ ArgumentNullException.ThrowIfNull(task);
var attributes = task.GetCustomAttributes().ToArray();
- if (attributes.Any())
+ if (attributes.Length != 0)
{
var arguments = attributes.Select(attribute => $"[--{attribute.Name} ({string.Join(" | ", attribute.PossibleValues)})]");
return string.Join(" ", arguments);
@@ -60,4 +54,54 @@ public static DirectoryPath GetRootDirectory()
}
public static string ToSuffix(this Architecture arch) => arch.ToString().ToLower();
+
+ ///
+ /// Escapes arbitrary values so that the process receives the exact string you intend and injection is impossible.
+ /// Spec: https://msdn.microsoft.com/en-us/library/bb776391.aspx
+ ///
+ public static string EscapeProcessArgument(this string literalValue, bool alwaysQuote = false)
+ {
+ if (string.IsNullOrEmpty(literalValue)) return "\"\"";
+
+ if (literalValue.IndexOfAny(CharsThatRequireQuoting) == -1) // Happy path
+ {
+ if (!alwaysQuote) return literalValue;
+ if (literalValue[^1] != '\\') return "\"" + literalValue + "\"";
+ }
+
+ var sb = new StringBuilder(literalValue.Length + 8).Append('"');
+
+ var nextPosition = 0;
+ while (true)
+ {
+ var nextEscapeChar = literalValue.IndexOfAny(CharsThatRequireEscaping, nextPosition);
+ if (nextEscapeChar == -1) break;
+
+ sb.Append(literalValue, nextPosition, nextEscapeChar - nextPosition);
+ nextPosition = nextEscapeChar + 1;
+
+ switch (literalValue[nextEscapeChar])
+ {
+ case '"':
+ sb.Append("\\\"");
+ break;
+ case '\\':
+ var numBackslashes = 1;
+ while (nextPosition < literalValue.Length && literalValue[nextPosition] == '\\')
+ {
+ numBackslashes++;
+ nextPosition++;
+ }
+ if (nextPosition == literalValue.Length || literalValue[nextPosition] == '"')
+ numBackslashes <<= 1;
+
+ for (; numBackslashes != 0; numBackslashes--)
+ sb.Append('\\');
+ break;
+ }
+ }
+
+ sb.Append(literalValue, nextPosition, literalValue.Length - nextPosition).Append('"');
+ return sb.ToString();
+ }
}
diff --git a/build/common/Utilities/Models.cs b/build/common/Utilities/Models.cs
index 3811de6b29..a90d493e16 100644
--- a/build/common/Utilities/Models.cs
+++ b/build/common/Utilities/Models.cs
@@ -1,3 +1,4 @@
+using Cake.Incubator.AssertExtensions;
using Common.Addins.GitVersion;
namespace Common.Utilities;
@@ -10,28 +11,43 @@ public record GitHubCredentials(string Token, string? UserName = null);
public record NugetCredentials(string ApiKey);
+public record DockerHubCredentials(string Username, string Password);
+
public record ChocolateyCredentials(string ApiKey);
-public record BuildVersion(GitVersion GitVersion, string? Version, string? Milestone, string? SemVersion, string? NugetVersion)
+public record BuildVersion(GitVersion GitVersion, string? Version, string? Milestone, string? SemVersion, string? NugetVersion, string? ChocolateyVersion, bool IsPreRelease)
{
public static BuildVersion Calculate(GitVersion gitVersion)
{
var version = gitVersion.MajorMinorPatch;
- var semVersion = gitVersion.LegacySemVer;
- var nugetVersion = gitVersion.LegacySemVer;
+ var semVersion = gitVersion.SemVer;
+ var nugetVersion = gitVersion.SemVer;
+ var chocolateyVersion = gitVersion.MajorMinorPatch;
+
+ if (!string.IsNullOrWhiteSpace(gitVersion.PreReleaseTag))
+ {
+ // Chocolatey does not support pre-release tags with dots, so we replace them with dashes
+ // if the pre-release tag is a number, we add a "a" prefix to the pre-release tag
+ // the trick should be removed when Chocolatey supports semver 2.0
+ var prefix = int.TryParse(gitVersion.PreReleaseLabel, out _) ? "a" : string.Empty;
+ chocolateyVersion += $"-{prefix}{gitVersion.PreReleaseTag?.Replace(".", "-")}";
+ }
if (!string.IsNullOrWhiteSpace(gitVersion.BuildMetaData))
{
semVersion += $"-{gitVersion.BuildMetaData}";
+ chocolateyVersion += $"-{gitVersion.BuildMetaData}";
nugetVersion += $".{gitVersion.BuildMetaData}";
}
- return new BuildVersion(
+ return new(
GitVersion: gitVersion,
Version: version,
- Milestone: version,
+ Milestone: semVersion,
SemVersion: semVersion,
- NugetVersion: nugetVersion?.ToLowerInvariant()
+ NugetVersion: nugetVersion?.ToLowerInvariant(),
+ ChocolateyVersion: chocolateyVersion?.ToLowerInvariant(),
+ IsPreRelease: !gitVersion.PreReleaseLabel.IsNullOrEmpty()
);
}
}
diff --git a/build/common/Utilities/Paths.cs b/build/common/Utilities/Paths.cs
index b3e366e76f..311512578c 100644
--- a/build/common/Utilities/Paths.cs
+++ b/build/common/Utilities/Paths.cs
@@ -8,16 +8,15 @@ public class Paths
public static readonly DirectoryPath Src = Root.Combine("src");
public static readonly DirectoryPath Docs = Root.Combine("docs");
public static readonly DirectoryPath Build = Root.Combine("build");
+ public static readonly DirectoryPath Schemas = Root.Combine("schemas");
+ public static readonly DirectoryPath Tools = Root.Combine("tools");
public static readonly DirectoryPath Integration = Root.Combine("tests").Combine("integration");
- public static readonly DirectoryPath Nuspec = Build.Combine("nuspec");
-
public static readonly DirectoryPath TestOutput = Artifacts.Combine("test-results");
public static readonly DirectoryPath Packages = Artifacts.Combine("packages");
public static readonly DirectoryPath ArtifactsDocs = Artifacts.Combine("docs");
public static readonly DirectoryPath Native = Packages.Combine("native");
public static readonly DirectoryPath Nuget = Packages.Combine("nuget");
- public static readonly DirectoryPath ArtifactsBinCmdline = Packages.Combine("prepare").Combine("cmdline");
public static readonly DirectoryPath ArtifactsBinPortable = Packages.Combine("prepare").Combine("portable");
}
diff --git a/build/common/Utilities/TaskArgumentsAttribute.cs b/build/common/Utilities/TaskArgumentsAttribute.cs
index 97da6a2c9c..658f84a3d1 100644
--- a/build/common/Utilities/TaskArgumentsAttribute.cs
+++ b/build/common/Utilities/TaskArgumentsAttribute.cs
@@ -5,13 +5,28 @@ namespace Common.Utilities;
///
///
[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = true)]
-public class TaskArgumentAttribute : Attribute
+public class TaskArgumentAttribute(string name, params string[] possibleValues) : Attribute
{
- public string Name { get; set; }
- public string[] PossibleValues { get; set; }
- public TaskArgumentAttribute(string name, params string[] possibleValues)
- {
- Name = name;
- PossibleValues = possibleValues;
- }
+ public string Name { get; } = name;
+ public string[] PossibleValues { get; } = possibleValues;
}
+
+[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = true)]
+public class DotnetArgumentAttribute()
+ : TaskArgumentAttribute(Arguments.DotnetVersion, Constants.DotnetVersions);
+
+[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = true)]
+public class DockerDotnetArgumentAttribute()
+ : TaskArgumentAttribute(Arguments.DotnetVersion, Constants.DotnetVersions);
+
+[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = true)]
+public class DockerDistroArgumentAttribute()
+ : TaskArgumentAttribute(Arguments.DockerDistro, Constants.DockerDistros);
+
+[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = true)]
+public class DockerRegistryArgumentAttribute()
+ : TaskArgumentAttribute(Arguments.DockerRegistry, Constants.DockerRegistries);
+
+[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = true)]
+public class ArchitectureArgumentAttribute()
+ : TaskArgumentAttribute(Arguments.Architecture, Constants.Architectures);
diff --git a/build/common/Utilities/Tools.cs b/build/common/Utilities/Tools.cs
index 62ea1268b1..96aa0e5a60 100644
--- a/build/common/Utilities/Tools.cs
+++ b/build/common/Utilities/Tools.cs
@@ -2,10 +2,10 @@ namespace Common.Utilities;
public class Tools
{
- public const string NugetCmd = "NuGet.CommandLine";
+ public const string CodecovUploaderCmd = "CodecovUploader";
public static readonly Dictionary Versions = new()
{
- { NugetCmd, "6.1.0" },
+ { CodecovUploaderCmd, "0.8.0" }
};
}
diff --git a/build/common/common.csproj b/build/common/common.csproj
index e9da2e2d31..37e57f80fc 100644
--- a/build/common/common.csproj
+++ b/build/common/common.csproj
@@ -6,8 +6,8 @@
-
-
+
+
diff --git a/build/config/BuildContext.cs b/build/config/BuildContext.cs
new file mode 100644
index 0000000000..c8887be92f
--- /dev/null
+++ b/build/config/BuildContext.cs
@@ -0,0 +1,3 @@
+namespace Config;
+
+public class BuildContext(ICakeContext context) : FrostingContext(context);
diff --git a/build/chores/BuildLifetime.cs b/build/config/BuildLifetime.cs
similarity index 78%
rename from build/chores/BuildLifetime.cs
rename to build/config/BuildLifetime.cs
index 12dc380a02..33ed36b447 100644
--- a/build/chores/BuildLifetime.cs
+++ b/build/config/BuildLifetime.cs
@@ -1,10 +1,10 @@
using Common.Utilities;
-namespace Chores;
+namespace Config;
public class BuildLifetime : FrostingLifetime
{
- public override void Setup(BuildContext context)
+ public override void Setup(BuildContext context, ISetupContext info)
{
context.StartGroup("Build Setup");
context.EndGroup();
diff --git a/build/chores/Program.cs b/build/config/Program.cs
similarity index 63%
rename from build/chores/Program.cs
rename to build/config/Program.cs
index e25d09e313..fa7f0858c3 100644
--- a/build/chores/Program.cs
+++ b/build/config/Program.cs
@@ -1,6 +1,5 @@
-using Chores;
+using Config;
return new CakeHost()
.UseContext()
- .UseStartup()
.Run(args);
diff --git a/build/config/Tasks/Default.cs b/build/config/Tasks/Default.cs
new file mode 100644
index 0000000000..d0856394ee
--- /dev/null
+++ b/build/config/Tasks/Default.cs
@@ -0,0 +1,4 @@
+namespace Config.Tasks;
+
+[TaskDescription("Shows this output")]
+public class Default : Common.Tasks.Default;
diff --git a/build/config/Tasks/SetMatrix.cs b/build/config/Tasks/SetMatrix.cs
new file mode 100644
index 0000000000..666757cfa5
--- /dev/null
+++ b/build/config/Tasks/SetMatrix.cs
@@ -0,0 +1,20 @@
+using Cake.Json;
+
+namespace Config.Tasks;
+
+public class SetMatrix : FrostingTask
+{
+ public override void Run(BuildContext context)
+ {
+ if (context.BuildSystem().IsRunningOnGitHubActions)
+ {
+ context.GitHubActions().Commands.SetOutputParameter("docker_distros", context.SerializeJson(Constants.DockerDistros));
+ context.GitHubActions().Commands.SetOutputParameter("dotnet_versions", context.SerializeJson(Constants.DotnetVersions));
+ }
+ else
+ {
+ context.Information("Docker Distros: {0}", context.SerializeJson(Constants.DockerDistros));
+ context.Information("Dotnet Versions: {0}", context.SerializeJson(Constants.DotnetVersions));
+ }
+ }
+}
diff --git a/build/chores/chores.csproj b/build/config/config.csproj
similarity index 58%
rename from build/chores/chores.csproj
rename to build/config/config.csproj
index 7795f57080..b668fa8eff 100644
--- a/build/chores/chores.csproj
+++ b/build/config/config.csproj
@@ -1,12 +1,12 @@
- chores
- Chores
+ Config
+ config
-
+
diff --git a/build/docker/BuildContext.cs b/build/docker/BuildContext.cs
index df8ba0067a..6c00a3458b 100644
--- a/build/docker/BuildContext.cs
+++ b/build/docker/BuildContext.cs
@@ -1,15 +1,9 @@
-using Common.Utilities;
+using Common.Context;
+using Docker.Utilities;
namespace Docker;
-public class BuildContext : BuildContextBase
+public class BuildContext(ICakeContext context) : DockerBuildContext(context)
{
- public bool IsDockerOnLinux { get; set; }
-
- public IEnumerable Images { get; set; } = new List();
- public DockerRegistry DockerRegistry { get; set; }
-
- public BuildContext(ICakeContext context) : base(context)
- {
- }
+ public Credentials? Credentials { get; set; }
}
diff --git a/build/docker/BuildLifetime.cs b/build/docker/BuildLifetime.cs
index d5703a06f9..2097f3b333 100644
--- a/build/docker/BuildLifetime.cs
+++ b/build/docker/BuildLifetime.cs
@@ -1,37 +1,14 @@
-using Common.Utilities;
+using Common.Lifetime;
+using Docker.Utilities;
namespace Docker;
-public class BuildLifetime : BuildLifetimeBase
+public class BuildLifetime : DockerBuildLifetime
{
- public override void Setup(BuildContext context)
+ public override void Setup(BuildContext context, ISetupContext info)
{
- base.Setup(context);
+ base.Setup(context, info);
- context.IsDockerOnLinux = context.DockerCustomCommand("info --format '{{.OSType}}'").First().Replace("'", "") == "linux";
-
- var architecture = context.HasArgument(Arguments.Architecture) ? context.Argument(Arguments.Architecture) : (Architecture?)null;
- var dockerRegistry = context.Argument(Arguments.DockerRegistry, DockerRegistry.DockerHub);
- var dotnetVersion = context.Argument(Arguments.DockerDotnetVersion, string.Empty).ToLower();
- var dockerDistro = context.Argument(Arguments.DockerDistro, string.Empty).ToLower();
-
- var versions = string.IsNullOrWhiteSpace(dotnetVersion) ? Constants.VersionsToBuild : new[] { dotnetVersion };
- var distros = string.IsNullOrWhiteSpace(dockerDistro) ? Constants.DockerDistrosToBuild : new[] { dockerDistro };
- var archs = architecture.HasValue ? new[] { architecture.Value } : Constants.ArchToBuild;
-
- var registry = dockerRegistry == DockerRegistry.DockerHub ? Constants.DockerHubRegistry : Constants.GitHubContainerRegistry;
- context.DockerRegistry = dockerRegistry;
- context.Images = from version in versions
- from distro in distros
- from arch in archs
- select new DockerImage(distro, version, arch, registry, false);
-
- context.StartGroup("Build Setup");
-
- LogBuildInformation(context);
-
- context.Information("IsDockerOnLinux: {0}", context.IsDockerOnLinux);
- context.Information($"Building for Version: {dotnetVersion}, Distro: {dockerDistro}");
- context.EndGroup();
+ context.Credentials = Credentials.GetCredentials(context);
}
}
diff --git a/src/Docker/Dockerfile b/build/docker/Dockerfile
similarity index 68%
rename from src/Docker/Dockerfile
rename to build/docker/Dockerfile
index ab0b41c847..aa95e656a6 100644
--- a/src/Docker/Dockerfile
+++ b/build/docker/Dockerfile
@@ -1,19 +1,20 @@
ARG REGISTRY='docker.io'
-ARG DISTRO='debian-9'
-ARG DOTNET_VERSION='3.1'
-ARG VERSION='5.5.1'
+ARG DISTRO='debian.12'
+ARG DOTNET_VERSION='8.0'
+ARG VERSION='6.4.0'
FROM $REGISTRY/gittools/build-images:$DISTRO-sdk-$DOTNET_VERSION as installer
-ARG contentFolder
+ARG nugetFolder
ARG VERSION
-WORKDIR /app
-COPY $contentFolder/ ./
+WORKDIR /nuget
+COPY $nugetFolder/ ./
RUN dotnet tool install GitVersion.Tool --version $VERSION --tool-path /tools --add-source .
FROM $REGISTRY/gittools/build-images:$DISTRO-runtime-$DOTNET_VERSION
WORKDIR /tools
COPY --from=installer /tools .
+RUN git config --global --add safe.directory '*'
ENTRYPOINT ["/tools/dotnet-gitversion"]
diff --git a/build/docker/Program.cs b/build/docker/Program.cs
index bf96d1c410..829e813ba4 100644
--- a/build/docker/Program.cs
+++ b/build/docker/Program.cs
@@ -7,5 +7,4 @@
.UseLifetime()
.UseTaskLifetime()
.UseRootDirectory()
- .InstallToolsFromRootManifest()
.Run(args);
diff --git a/build/docker/Tasks/Default.cs b/build/docker/Tasks/Default.cs
index 57deb33a47..c414fa6931 100644
--- a/build/docker/Tasks/Default.cs
+++ b/build/docker/Tasks/Default.cs
@@ -1,6 +1,4 @@
namespace Docker.Tasks;
[TaskDescription("Shows this output")]
-public class Default : Common.Tasks.Default
-{
-}
+public class Default : Common.Tasks.Default;
diff --git a/build/docker/Tasks/DockerBuild.cs b/build/docker/Tasks/DockerBuild.cs
index d4a486fb09..da6586c776 100644
--- a/build/docker/Tasks/DockerBuild.cs
+++ b/build/docker/Tasks/DockerBuild.cs
@@ -4,10 +4,10 @@ namespace Docker.Tasks;
[TaskName(nameof(DockerBuild))]
[TaskDescription("Build the docker images containing the GitVersion Tool")]
-[TaskArgument(Arguments.DockerRegistry, Constants.DockerHub, Constants.GitHub)]
-[TaskArgument(Arguments.DockerDotnetVersion, Constants.Version50, Constants.Version60, Constants.Version31)]
-[TaskArgument(Arguments.DockerDistro, Constants.Alpine312, Constants.Debian10, Constants.Ubuntu2004)]
-[TaskArgument(Arguments.Architecture, Constants.Amd64, Constants.Arm64)]
+[DockerRegistryArgument]
+[DockerDotnetArgument]
+[DockerDistroArgument]
+[ArchitectureArgument]
public class DockerBuild : FrostingTask
{
public override bool ShouldRun(BuildContext context)
@@ -21,13 +21,12 @@ public override bool ShouldRun(BuildContext context)
public override void Run(BuildContext context)
{
var tool = Paths.Nuget.CombineWithFilePath("GitVersion.Tool*");
- var dest = Paths.Src.Combine("Docker").Combine("content");
+ var dest = Paths.Build.Combine("docker").Combine("nuget");
context.EnsureDirectoryExists(dest);
context.CopyFiles(tool.FullPath, dest);
foreach (var dockerImage in context.Images)
{
- if (context.SkipArm64Image(dockerImage)) continue;
context.DockerBuildImage(dockerImage);
}
}
diff --git a/build/docker/Tasks/DockerHubReadmePublish.cs b/build/docker/Tasks/DockerHubReadmePublish.cs
new file mode 100644
index 0000000000..1cb840118c
--- /dev/null
+++ b/build/docker/Tasks/DockerHubReadmePublish.cs
@@ -0,0 +1,136 @@
+using Cake.Http;
+using Cake.Json;
+using Common.Utilities;
+
+namespace Docker.Tasks;
+
+[TaskName(nameof(DockerHubReadmePublish))]
+[IsDependentOn(typeof(DockerHubReadmePublishInternal))]
+[TaskDescription("Publish the DockerHub updated README.md")]
+public class DockerHubReadmePublish : FrostingTask;
+
+[TaskName(nameof(DockerHubReadmePublishInternal))]
+[TaskDescription("Publish the DockerHub updated README.md")]
+public class DockerHubReadmePublishInternal : AsyncFrostingTask
+{
+ public override bool ShouldRun(BuildContext context)
+ {
+ var shouldRun = true;
+ if (context.DockerRegistry == DockerRegistry.DockerHub)
+ {
+ shouldRun &= context.ShouldRun(context.IsStableRelease, $"{nameof(DockerHubReadmePublish)} works only for tagged releases.");
+ }
+
+ return shouldRun;
+ }
+
+ public override async Task RunAsync(BuildContext context)
+ {
+ ArgumentNullException.ThrowIfNull(context.Credentials?.DockerHub);
+ var readme = GetReadmeContent(context);
+
+ context.Information("Publishing README.md to DockerHub");
+
+ context.Information("Logging in to DockerHub");
+ var response = await context.HttpPostAsync("https://hub.docker.com/v2/users/login", settings =>
+ {
+ var credentials = context.Credentials.DockerHub;
+ settings
+ .SetContentType("application/json")
+ .SetJsonRequestBody(new { username = credentials.Username, password = credentials.Password });
+ });
+
+ context.Information("Updating README.md on DockerHub");
+ context.HttpPatch("https://hub.docker.com/v2/repositories/gittools/gitversion", settings =>
+ {
+ var token = context.ParseJson(response).Value("token");
+ settings
+ .SetContentType("application/json")
+ .SetAuthorization("JWT", token!)
+ .SetJsonRequestBody(new { full_description = readme });
+ });
+ context.Information("README.md updated on DockerHub");
+ }
+
+ private static string GetReadmeContent(BuildContextBase context)
+ {
+ ArgumentNullException.ThrowIfNull(context.Version);
+ var version = context.Version.GitVersion.MajorMinorPatch;
+ const string distro = Constants.AlpineLatest;
+ const string dotnetVersion = Constants.DotnetLtsLatest;
+ var tag = $"{version}-{distro}-{dotnetVersion}";
+ // language=markdown
+ var readme = $"""
+# GitVersion
+
+![GitVersion – From git log to SemVer in no time][banner]
+
+Versioning when using Git, solved. GitVersion looks at your git history and works out the [Semantic Version][semver] of the commit being built.
+
+This repository contains the Docker images for [GitVersion][website]. Source code can be found at [src](https://github.com/GitTools/GitVersion)
+
+## Usage
+
+The recommended image to run is `alpine`, as they are the smallest Docker images we provide. This will execute GitVersion for the current working directory (`$(pwd)`) on Linux and Unix or powershell on Windows:
+
+```sh
+docker run --rm -v "$(pwd):/repo" gittools/gitversion:{tag} /repo
+```
+
+The following command will execute GitVersion for the current working directory (`%CD%`) on Windows with CMD:
+
+```sh
+docker run --rm -v "%CD%:/repo" gittools/gitversion:{tag} /repo
+```
+
+Note that the path `/repo` needs to be passed as an argument since the `gitversion` executable within the container is not aware of the fact that it's running inside a container.
+
+### CI Agents
+
+If you are running GitVersion on a CI agent, you may need to specify environment variables to allow GitVersion to work correctly.
+For example, on Azure DevOps you may need to set the following environment variables:
+
+```sh
+docker run --rm -v "$(pwd):/repo" --env TF_BUILD=true --env BUILD_SOURCEBRANCH=$(Build.SourceBranch) gittools/gitversion:{tag} /repo
+```
+
+On GitHub Actions, you may need to set the following environment variables:
+
+```sh
+docker run --rm -v "$(pwd):/repo" --env GITHUB_ACTIONS=true --env GITHUB_REF=$(GITHUB_REF) gittools/gitversion:{tag} /repo
+```
+
+### Tags
+
+Most of the tags we provide have both arm64 and amd64 variants. If you need to pull a architecture specific tag you can do that like:
+
+```sh
+docker run --rm -v "$(pwd):/repo" gittools/gitversion:{tag}-amd64 /repo
+docker run --rm -v "$(pwd):/repo" gittools/gitversion:{tag}-arm64 /repo
+```
+
+## Quick Links
+
+* [Documentation][docs]
+* [Contributing][contribute]
+* [Why GitVersion][why]
+* [Usage][usage]
+* [How it works][how]
+* [FAQ][faq]
+* [Who is using GitVersion][who]
+
+[website]: https://gitversion.net
+[docs]: https://gitversion.net/docs/
+[contribute]: https://github.com/GitTools/GitVersion/blob/main/CONTRIBUTING.md
+[why]: https://gitversion.net/docs/learn/why
+[usage]: https://gitversion.net/docs/usage
+[how]: https://gitversion.net/docs/learn/how-it-works
+[faq]: https://gitversion.net/docs/learn/faq
+[who]: https://gitversion.net/docs/learn/who
+[src]: https://github.com/GitTools/GitVersion
+[semver]: https://semver.org
+[banner]: https://raw.githubusercontent.com/GitTools/graphics/master/GitVersion/banner-1280x640.png
+""";
+ return readme;
+ }
+}
diff --git a/build/docker/Tasks/DockerManifest.cs b/build/docker/Tasks/DockerManifest.cs
index efc7b9171c..ae099f781b 100644
--- a/build/docker/Tasks/DockerManifest.cs
+++ b/build/docker/Tasks/DockerManifest.cs
@@ -4,9 +4,9 @@ namespace Docker.Tasks;
[TaskName(nameof(DockerManifest))]
[TaskDescription("Publish the docker manifest containing the images for amd64 and arm64")]
-[TaskArgument(Arguments.DockerRegistry, Constants.DockerHub, Constants.GitHub)]
-[TaskArgument(Arguments.DockerDotnetVersion, Constants.Version50, Constants.Version60, Constants.Version31)]
-[TaskArgument(Arguments.DockerDistro, Constants.Alpine312, Constants.Debian10, Constants.Ubuntu2004)]
+[DockerRegistryArgument]
+[DockerDotnetArgument]
+[DockerDistroArgument]
[IsDependentOn(typeof(DockerManifestInternal))]
public class DockerManifest : FrostingTask
{
@@ -30,11 +30,11 @@ public override bool ShouldRun(BuildContext context)
if (context.DockerRegistry == DockerRegistry.GitHub)
{
- shouldRun &= context.ShouldRun(context.IsStableRelease || context.IsPreRelease, $"{nameof(DockerPublish)} to GitHub Package Registry works only for releases.");
+ shouldRun &= context.ShouldRun(context.IsInternalPreRelease, $"{nameof(DockerPublish)} to GitHub Package Registry works only internal releases.");
}
if (context.DockerRegistry == DockerRegistry.DockerHub)
{
- shouldRun &= context.ShouldRun(context.IsStableRelease, $"{nameof(DockerPublish)} DockerHub works only for tagged releases.");
+ shouldRun &= context.ShouldRun(context.IsStableRelease || context.IsTaggedPreRelease, $"{nameof(DockerPublish)} to DockerHub works only for tagged releases.");
}
return shouldRun;
@@ -44,10 +44,8 @@ public override void Run(BuildContext context)
{
foreach (var group in context.Images.GroupBy(x => new { x.Distro, x.TargetFramework }))
{
- var amd64DockerImage = group.First(x => x.Architecture == Architecture.Amd64);
- var arm64DockerImage = group.First(x => x.Architecture == Architecture.Arm64);
- context.DockerCreateManifest(amd64DockerImage, context.SkipArm64Image(arm64DockerImage));
- context.DockerPushManifest(amd64DockerImage);
+ var dockerImage = group.First();
+ context.DockerManifest(dockerImage);
}
}
}
diff --git a/build/docker/Tasks/DockerPublish.cs b/build/docker/Tasks/DockerPublish.cs
index a065f81729..b230a4d59c 100644
--- a/build/docker/Tasks/DockerPublish.cs
+++ b/build/docker/Tasks/DockerPublish.cs
@@ -4,10 +4,10 @@ namespace Docker.Tasks;
[TaskName(nameof(DockerPublish))]
[TaskDescription("Publish the docker images containing the GitVersion Tool")]
-[TaskArgument(Arguments.DockerRegistry, Constants.DockerHub, Constants.GitHub)]
-[TaskArgument(Arguments.DockerDotnetVersion, Constants.Version50, Constants.Version60, Constants.Version31)]
-[TaskArgument(Arguments.DockerDistro, Constants.Alpine312, Constants.Debian10, Constants.Ubuntu2004)]
-[TaskArgument(Arguments.Architecture, Constants.Amd64, Constants.Arm64)]
+[DockerRegistryArgument]
+[DockerDotnetArgument]
+[DockerDistroArgument]
+[ArchitectureArgument]
[IsDependentOn(typeof(DockerPublishInternal))]
public class DockerPublish : FrostingTask
{
@@ -31,11 +31,11 @@ public override bool ShouldRun(BuildContext context)
shouldRun &= context.ShouldRun(context.IsDockerOnLinux, $"{nameof(DockerPublish)} works only on Docker on Linux agents.");
if (context.DockerRegistry == DockerRegistry.GitHub)
{
- shouldRun &= context.ShouldRun(context.IsStableRelease || context.IsPreRelease, $"{nameof(DockerPublish)} to GitHub Package Registry works only for releases.");
+ shouldRun &= context.ShouldRun(context.IsInternalPreRelease, $"{nameof(DockerPublish)} to GitHub Package Registry works only for internal releases.");
}
if (context.DockerRegistry == DockerRegistry.DockerHub)
{
- shouldRun &= context.ShouldRun(context.IsStableRelease, $"{nameof(DockerPublish)} DockerHub works only for tagged releases.");
+ shouldRun &= context.ShouldRun(context.IsStableRelease || context.IsTaggedPreRelease, $"{nameof(DockerPublish)} to DockerHub works only for tagged releases.");
}
return shouldRun;
@@ -45,7 +45,6 @@ public override void Run(BuildContext context)
{
foreach (var dockerImage in context.Images)
{
- if (context.SkipArm64Image(dockerImage)) continue;
context.DockerPushImage(dockerImage);
}
}
diff --git a/build/docker/Tasks/DockerTest.cs b/build/docker/Tasks/DockerTest.cs
index e06616ea95..3acc68372a 100644
--- a/build/docker/Tasks/DockerTest.cs
+++ b/build/docker/Tasks/DockerTest.cs
@@ -4,10 +4,10 @@ namespace Docker.Tasks;
[TaskName(nameof(DockerTest))]
[TaskDescription("Test the docker images containing the GitVersion Tool")]
-[TaskArgument(Arguments.DockerRegistry, Constants.DockerHub, Constants.GitHub)]
-[TaskArgument(Arguments.DockerDotnetVersion, Constants.Version50, Constants.Version60, Constants.Version31)]
-[TaskArgument(Arguments.DockerDistro, Constants.Alpine312, Constants.Debian10, Constants.Ubuntu2004)]
-[TaskArgument(Arguments.Architecture, Constants.Amd64, Constants.Arm64)]
+[DockerRegistryArgument]
+[DockerDotnetArgument]
+[DockerDistroArgument]
+[ArchitectureArgument]
[IsDependentOn(typeof(DockerBuild))]
public class DockerTest : FrostingTask
{
@@ -23,7 +23,7 @@ public override void Run(BuildContext context)
{
foreach (var dockerImage in context.Images)
{
- if (context.SkipArm64Image(dockerImage)) continue;
+ if (context.SkipImageTesting(dockerImage)) continue;
context.DockerTestImage(dockerImage);
}
}
diff --git a/build/docker/Utilities/Credentials.cs b/build/docker/Utilities/Credentials.cs
new file mode 100644
index 0000000000..2f32094dd6
--- /dev/null
+++ b/build/docker/Utilities/Credentials.cs
@@ -0,0 +1,15 @@
+using Common.Utilities;
+
+namespace Docker.Utilities;
+
+public class Credentials
+{
+ public DockerHubCredentials? DockerHub { get; private init; }
+
+ public static Credentials GetCredentials(ICakeContext context) => new()
+ {
+ DockerHub = new(
+ context.EnvironmentVariable("DOCKER_USERNAME"),
+ context.EnvironmentVariable("DOCKER_PASSWORD")),
+ };
+}
diff --git a/build/docker/docker.csproj b/build/docker/docker.csproj
index 4b1cccd25e..c7f9a603c9 100644
--- a/build/docker/docker.csproj
+++ b/build/docker/docker.csproj
@@ -6,4 +6,13 @@
+
+
+
+
+
+
+
+
+
diff --git a/build/docs/BuildContext.cs b/build/docs/BuildContext.cs
index ca79d42541..c3b8efd477 100644
--- a/build/docs/BuildContext.cs
+++ b/build/docs/BuildContext.cs
@@ -4,13 +4,9 @@
namespace Docs;
-public class BuildContext : BuildContextBase
+public class BuildContext(ICakeContext context) : BuildContextBase(context)
{
public bool ForcePublish { get; set; }
public Credentials? Credentials { get; set; }
public WyamSettings? WyamSettings { get; set; }
-
- public BuildContext(ICakeContext context) : base(context)
- {
- }
}
diff --git a/build/docs/BuildLifetime.cs b/build/docs/BuildLifetime.cs
index 34511e584a..db7ab45317 100644
--- a/build/docs/BuildLifetime.cs
+++ b/build/docs/BuildLifetime.cs
@@ -1,4 +1,5 @@
using Cake.Wyam;
+using Common.Lifetime;
using Common.Utilities;
using Docs.Utilities;
@@ -6,9 +7,9 @@ namespace Docs;
public class BuildLifetime : BuildLifetimeBase
{
- public override void Setup(BuildContext context)
+ public override void Setup(BuildContext context, ISetupContext info)
{
- base.Setup(context);
+ base.Setup(context, info);
context.Credentials = Credentials.GetCredentials(context);
context.ForcePublish = context.HasArgument("force");
@@ -19,14 +20,18 @@ public override void Setup(BuildContext context)
Theme = "Samson",
OutputPath = context.MakeAbsolute(Paths.ArtifactsDocs.Combine("preview")),
RootPath = context.MakeAbsolute(Paths.Docs),
- ConfigurationFile = context.MakeAbsolute(Paths.Docs.CombineWithFilePath("config.wyam")),
Settings = new Dictionary
{
{ "BaseEditUrl", "https://github.com/gittools/GitVersion/tree/main/docs/input/" },
{ "SourceFiles", context.MakeAbsolute(Paths.Src) + "/**/{!bin,!obj,!packages,!*.Tests,!GitTools.*,}/**/*.cs" },
{ "Title", "GitVersion" },
- { "IncludeGlobalNamespace", false }
- }
+ { "IncludeGlobalNamespace", false },
+ { "IgnoreFolders", "**/mdsource" }
+ },
+ EnvironmentVariables = new Dictionary
+ {
+ { "DOTNET_ROLL_FORWARD", "Major" },
+ },
};
context.StartGroup("Build Setup");
diff --git a/build/docs/Tasks/Default.cs b/build/docs/Tasks/Default.cs
index 86555fbb28..9413406fc1 100644
--- a/build/docs/Tasks/Default.cs
+++ b/build/docs/Tasks/Default.cs
@@ -1,6 +1,4 @@
namespace Docs.Tasks;
[TaskDescription("Shows this output")]
-public class Default : Common.Tasks.Default
-{
-}
+public class Default : Common.Tasks.Default;
diff --git a/build/docs/Tasks/GenerateSchemas.cs b/build/docs/Tasks/GenerateSchemas.cs
new file mode 100644
index 0000000000..ffa1d1804f
--- /dev/null
+++ b/build/docs/Tasks/GenerateSchemas.cs
@@ -0,0 +1,22 @@
+using Common.Utilities;
+
+namespace Docs.Tasks;
+
+[TaskName(nameof(GenerateSchemas))]
+[TaskDescription("Generate schemas")]
+public sealed class GenerateSchemas : FrostingTask
+{
+ public override void Run(BuildContext context)
+ {
+ ArgumentNullException.ThrowIfNull(context.Version);
+ var schemaTool = context.GetSchemaDotnetToolLocation();
+ var gitVersion = context.Version.GitVersion;
+ var version = $"{gitVersion.Major}.{gitVersion.Minor}";
+ var schemaTargetDir = context.MakeAbsolute(Paths.Root.Combine("schemas"));
+ context.EnsureDirectoryExists(schemaTargetDir);
+ context.Information($"Schema tool: {schemaTool}");
+ context.Information($"Schema target dir: {schemaTargetDir}");
+ context.Information($"Schema version: {version}");
+ context.DotNetExecute(schemaTool, $"--Version {version} --OutputDirectory {schemaTargetDir}");
+ }
+}
diff --git a/build/docs/Tasks/PreviewDocs.cs b/build/docs/Tasks/PreviewDocs.cs
index a25084e268..a9734dd97c 100644
--- a/build/docs/Tasks/PreviewDocs.cs
+++ b/build/docs/Tasks/PreviewDocs.cs
@@ -20,8 +20,13 @@ public override void Run(BuildContext context)
{
if (context.WyamSettings is not null)
{
+ var schemaTargetDir = Paths.ArtifactsDocs.Combine("preview").Combine("schemas");
+ context.EnsureDirectoryExists(schemaTargetDir);
+ context.CopyDirectory(Paths.Schemas, schemaTargetDir);
+
context.WyamSettings.Preview = true;
context.WyamSettings.Watch = true;
+ context.WyamSettings.NoClean = true;
context.WyamSettings.Settings.Add("Host", "gittools.github.io");
context.Wyam(context.WyamSettings);
}
diff --git a/build/docs/Tasks/PublishDocs.cs b/build/docs/Tasks/PublishDocs.cs
index d9f1c7d06b..7fa1ce3c9a 100644
--- a/build/docs/Tasks/PublishDocs.cs
+++ b/build/docs/Tasks/PublishDocs.cs
@@ -1,4 +1,5 @@
using Cake.Git;
+using Cake.Npx;
using Cake.Wyam;
using Common.Utilities;
@@ -27,7 +28,7 @@ public override bool ShouldRun(BuildContext context)
{
var shouldRun = true;
shouldRun &= context.ShouldRun(context.DirectoryExists(Paths.Docs), "Wyam documentation directory is missing");
- shouldRun &= context.ShouldRun(context.IsStableRelease || context.IsPreRelease || context.ForcePublish, $"{nameof(PublishDocs)} works only for releases.");
+ shouldRun &= context.ShouldRun(context.IsStableRelease || context.ForcePublish, $"{nameof(PublishDocs)} works only for releases.");
return shouldRun;
}
@@ -58,7 +59,7 @@ private static bool AnyDocsChanged(ICakeContext context)
var filesChanged = context.GitDiff(Paths.Root, sourceCommit.Sha);
const string path = "docs/";
- var docFileChanged = filesChanged.Any(file => file.OldPath.StartsWith(path) || file.Path.StartsWith(path) || file.Path.Contains("config.wyam"));
+ var docFileChanged = filesChanged.Any(file => file.OldPath.StartsWith(path) || file.Path.StartsWith(path));
return docFileChanged;
}
@@ -68,7 +69,7 @@ private static void PublishDocumentation(BuildContext context)
var sourceCommit = context.GitLogTip("./");
var publishFolder = context.MakeAbsolute(Paths.ArtifactsDocs.Combine("_published").Combine(DateTime.Now.ToString("yyyyMMdd_HHmmss")));
- context.Information("Publishing Folder: {0}", publishFolder);
+ context.Information($"Publishing Folder: {publishFolder}");
context.Information("Getting publish branch...");
context.GitClone($"https://github.com/%7BConstants.RepoOwner%7D/%7BConstants.Repository%7D", publishFolder, new GitCloneSettings
{
@@ -80,8 +81,13 @@ private static void PublishDocumentation(BuildContext context)
context.WyamSettings.OutputPath = publishFolder;
context.WyamSettings.NoClean = true;
context.Wyam(context.WyamSettings);
+ context.Npx("prettier", arguments: "--write **/*.html", configureSettings: settings => settings.WorkingDirectory = publishFolder);
}
+ var schemaTargetDir = publishFolder.Combine("schemas");
+ context.EnsureDirectoryExists(schemaTargetDir);
+ context.CopyDirectory(Paths.Schemas, schemaTargetDir);
+
if (!context.GitHasUncommitedChanges(publishFolder)) return;
context.Information("Stage all changes...");
diff --git a/build/docs/Utilities/Credentials.cs b/build/docs/Utilities/Credentials.cs
index 1726315379..13de8ec6db 100644
--- a/build/docs/Utilities/Credentials.cs
+++ b/build/docs/Utilities/Credentials.cs
@@ -4,10 +4,10 @@ namespace Docs.Utilities;
public class Credentials
{
- public GitHubCredentials? GitHub { get; private set; }
+ public GitHubCredentials? GitHub { get; private init; }
public static Credentials GetCredentials(ICakeContext context) => new()
{
- GitHub = new GitHubCredentials(
+ GitHub = new(
context.EnvironmentVariable("GITHUB_TOKEN"),
context.EnvironmentVariable("GITHUB_USERNAME"))
};
diff --git a/build/docs/docs.csproj b/build/docs/docs.csproj
index 89058b02d8..0fcfc39a3f 100644
--- a/build/docs/docs.csproj
+++ b/build/docs/docs.csproj
@@ -7,7 +7,8 @@
-
-
+
+
+
diff --git a/build/global.json b/build/global.json
deleted file mode 100644
index 07fa13d9ea..0000000000
--- a/build/global.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "sdk": {
- "version": "5.0",
- "rollForward": "latestMajor",
- "allowPrerelease": true
- }
-}
diff --git a/build/nuspec/GitVersion.CommandLine.nuspec b/build/nuspec/GitVersion.CommandLine.nuspec
deleted file mode 100644
index 8fac567a70..0000000000
--- a/build/nuspec/GitVersion.CommandLine.nuspec
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
- GitVersion.CommandLine
- $version$
- GitVersion.CommandLine
- GitTools and Contributors
- GitTools and Contributors
- MIT
- Copyright GitTools 2021.
- https://github.com/GitTools/GitVersion
-
- package_icon.png
- false
- Derives SemVer information from a repository following GitFlow or GitHubFlow.
- Git Versioning GitVersion GitFlowVersion GitFlow GitHubFlow SemVer
- true
- https://github.com/GitTools/GitVersion/releases
- README.md
-
-
diff --git a/build/nuspec/GitVersion.Portable.nuspec b/build/nuspec/GitVersion.Portable.nuspec
deleted file mode 100644
index 2afbeaa19f..0000000000
--- a/build/nuspec/GitVersion.Portable.nuspec
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
- GitVersion.Portable
- $version$
- GitVersion
- GitTools and Contributors
- GitTools and Contributors
- Copyright GitTools 2021.
- http://www.opensource.org/licenses/mit-license.php
- https://github.com/GitTools/GitVersion
- https://raw.githubusercontent.com/GitTools/graphics/master/GitVersion/Color/icon_100x100.png
- false
- Derives SemVer information from a repository following GitFlow or GitHubFlow.
- Git Versioning GitVersion GitFlowVersion GitFlow GitHubFlow SemVer
- https://github.com/GitTools/GitVersion/releases
-
-
diff --git a/build/nuspec/README.md b/build/nuspec/README.md
index 108f089325..02b3c0314a 100644
--- a/build/nuspec/README.md
+++ b/build/nuspec/README.md
@@ -5,11 +5,10 @@ works out the [Semantic Version][semver] of the commit being built.
[![Gitter][gitter-badge]][gitter]
-| Artifact | Stable | |
-| :------------------------- | :----------------------------------------------------------------- | - |
-| **GitVersion.Tool** | [![NuGet][gvgt-badge]][gvgt] |
-| **GitVersion.CommandLine** | [![NuGet][gvcl-badge]][gvcl] |
-| **GitVersion.MsBuild** | [![NuGet][gvt-badge]][gvt] | Known as [GitVersionTask][gitversiontask] before v5.6.0 |
+| Artifact | Stable |
+|:-----------------------|:-----------------------------|
+| **GitVersion.Tool** | [![NuGet][gvgt-badge]][gvgt] |
+| **GitVersion.MsBuild** | [![NuGet][gvt-badge]][gvt] |
## Compatibility
@@ -17,13 +16,13 @@ GitVersion works on Windows, Linux, and Mac.
## Quick Links
-* [Documentation][docs]
-* [Contributing][contribute]
-* [Why GitVersion][why]
-* [Usage][usage]
-* [How it works][how]
-* [FAQ][faq]
-* [Who is using GitVersion][who]
+* [Documentation][docs]
+* [Contributing][contribute]
+* [Why GitVersion][why]
+* [Usage][usage]
+* [How it works][how]
+* [FAQ][faq]
+* [Who is using GitVersion][who]
## GitVersion in action!
@@ -31,8 +30,8 @@ GitVersion works on Windows, Linux, and Mac.
You are seeing:
-* Pull requests being built as pre-release builds
-* A branch called `release-1.0.0` producing beta v1 packages
+* Pull requests being built as pre-release builds
+* A branch called `release-1.0.0` producing beta v1 packages
## Icon
@@ -40,24 +39,38 @@ You are seeing:
designed by [David Chapman][app-icon-author]
from The Noun Project.
-[semver]: http://semver.org
-[gitter]: https://gitter.im/GitTools/GitVersion?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
-[gitter-badge]: https://badges.gitter.im/Join+Chat.svg
-[docs]: https://gitversion.net/docs/
-[gvt]: https://www.nuget.org/packages/GitVersion.MsBuild
-[gvt-badge]: https://img.shields.io/nuget/v/GitVersion.MsBuild.svg?logo=nuget
-[gitversiontask]: https://www.nuget.org/packages/GitVersionTask/
-[gvcl]: https://www.nuget.org/packages/GitVersion.CommandLine
-[gvcl-badge]: https://img.shields.io/nuget/v/GitVersion.CommandLine.svg?logo=nuget
-[gvgt]: https://www.nuget.org/packages/GitVersion.Tool
-[gvgt-badge]: https://img.shields.io/nuget/v/GitVersion.Tool.svg?logo=nuget
-[contribute]: https://github.com/GitTools/GitVersion/blob/main/CONTRIBUTING.md
-[why]: https://gitversion.net/docs/learn/why
-[usage]: https://gitversion.net/docs/usage
-[how]: https://gitversion.net/docs/learn/how-it-works
-[faq]: https://gitversion.net/docs/learn/faq
-[who]: https://gitversion.net/docs/learn/who
-[gv-in-action]: https://raw.githubusercontent.com/GitTools/GitVersion/master/docs/input/docs/img/README.png
-[banner]: https://raw.githubusercontent.com/GitTools/graphics/master/GitVersion/banner-1280x640.png
-[app-icon]: https://thenounproject.com/term/tree/13389/
-[app-icon-author]: http://thenounproject.com/david.chapman
+[semver]: http://semver.org
+
+[gitter]: https://gitter.im/GitTools/GitVersion?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
+
+[gitter-badge]: https://badges.gitter.im/Join+Chat.svg
+
+[docs]: https://gitversion.net/docs/
+
+[gvt]: https://www.nuget.org/packages/GitVersion.MsBuild
+
+[gvt-badge]: https://img.shields.io/nuget/v/GitVersion.MsBuild.svg?logo=nuget
+
+[gvgt]: https://www.nuget.org/packages/GitVersion.Tool
+
+[gvgt-badge]: https://img.shields.io/nuget/v/GitVersion.Tool.svg?logo=nuget
+
+[contribute]: https://github.com/GitTools/GitVersion/blob/main/CONTRIBUTING.md
+
+[why]: https://gitversion.net/docs/learn/why
+
+[usage]: https://gitversion.net/docs/usage
+
+[how]: https://gitversion.net/docs/learn/how-it-works
+
+[faq]: https://gitversion.net/docs/learn/faq
+
+[who]: https://gitversion.net/docs/learn/who
+
+[gv-in-action]: https://raw.githubusercontent.com/GitTools/GitVersion/master/docs/input/docs/img/README.png
+
+[banner]: https://raw.githubusercontent.com/GitTools/graphics/master/GitVersion/banner-1280x640.png
+
+[app-icon]: https://thenounproject.com/term/tree/13389/
+
+[app-icon-author]: http://thenounproject.com/david.chapman
diff --git a/build/nuspec/VERIFICATION.txt b/build/nuspec/VERIFICATION.txt
index bd0489649b..ac647c6a62 100644
--- a/build/nuspec/VERIFICATION.txt
+++ b/build/nuspec/VERIFICATION.txt
@@ -4,4 +4,4 @@ in verifying that this package's contents are trustworthy.
This package is published by the GitTools organization itself. The binaries are
identical to other package types published by the project, in particular
-the GitVersion.Portable nuget package.
+the GitVersion.Portable and GitVersion nuget package.
diff --git a/build/publish/BuildContext.cs b/build/publish/BuildContext.cs
index 5ad09ee4fa..e2ef7d662e 100644
--- a/build/publish/BuildContext.cs
+++ b/build/publish/BuildContext.cs
@@ -3,12 +3,9 @@
namespace Publish;
-public class BuildContext : BuildContextBase
+public class BuildContext(ICakeContext context) : BuildContextBase(context)
{
public Credentials? Credentials { get; set; }
- public List Packages { get; set; } = new();
- public BuildContext(ICakeContext context) : base(context)
- {
- }
+ public List Packages { get; } = [];
}
diff --git a/build/publish/BuildLifetime.cs b/build/publish/BuildLifetime.cs
index 7746522c9a..f7672f8c82 100644
--- a/build/publish/BuildLifetime.cs
+++ b/build/publish/BuildLifetime.cs
@@ -1,3 +1,4 @@
+using Common.Lifetime;
using Common.Utilities;
using Publish.Utilities;
@@ -5,9 +6,10 @@ namespace Publish;
public class BuildLifetime : BuildLifetimeBase
{
- public override void Setup(BuildContext context)
+ public override void Setup(BuildContext context, ISetupContext info)
{
- base.Setup(context);
+ base.Setup(context, info);
+
context.Credentials = Credentials.GetCredentials(context);
if (context.Version?.NugetVersion != null)
@@ -18,7 +20,9 @@ public override void Setup(BuildContext context)
foreach (var packageFile in nugetPackagesFiles)
{
var packageName = packageFile.GetFilenameWithoutExtension().ToString()[..^(nugetVersion.Length + 1)].ToLower();
- context.Packages.Add(new NugetPackage(packageName, packageFile, packageName.Contains("Portable", StringComparison.OrdinalIgnoreCase)));
+ var isChocoPackage = packageName.Equals("GitVersion.Portable", StringComparison.OrdinalIgnoreCase) ||
+ packageName.Equals("GitVersion", StringComparison.OrdinalIgnoreCase);
+ context.Packages.Add(new NugetPackage(packageName, packageFile, isChocoPackage));
}
}
context.StartGroup("Build Setup");
diff --git a/build/publish/Program.cs b/build/publish/Program.cs
index 855c9a6af0..d3b1a60ff1 100644
--- a/build/publish/Program.cs
+++ b/build/publish/Program.cs
@@ -7,5 +7,4 @@
.UseLifetime()
.UseTaskLifetime()
.UseRootDirectory()
- .InstallToolsFromRootManifest()
.Run(args);
diff --git a/build/publish/Tasks/Default.cs b/build/publish/Tasks/Default.cs
index eed5903ce5..88260f7a6d 100644
--- a/build/publish/Tasks/Default.cs
+++ b/build/publish/Tasks/Default.cs
@@ -1,6 +1,4 @@
namespace Publish.Tasks;
[TaskDescription("Shows this output")]
-public class Default : Common.Tasks.Default
-{
-}
+public class Default : Common.Tasks.Default;
diff --git a/build/publish/Tasks/PublishChocolatey.cs b/build/publish/Tasks/PublishChocolatey.cs
index 373fd457ac..078f555dc0 100644
--- a/build/publish/Tasks/PublishChocolatey.cs
+++ b/build/publish/Tasks/PublishChocolatey.cs
@@ -7,25 +7,23 @@ namespace Publish.Tasks;
[TaskName(nameof(PublishChocolatey))]
[TaskDescription("Publish chocolatey packages")]
[IsDependentOn(typeof(PublishChocolateyInternal))]
-public class PublishChocolatey : FrostingTask
-{
-}
+public class PublishChocolatey : FrostingTask;
[TaskName(nameof(PublishChocolateyInternal))]
[TaskDescription("Publish chocolatey packages")]
-public class PublishChocolateyInternal : FrostingTask
+public class PublishChocolateyInternal : AsyncFrostingTask
{
public override bool ShouldRun(BuildContext context)
{
var shouldRun = true;
shouldRun &= context.ShouldRun(context.IsGitHubActionsBuild, $"{nameof(PublishChocolatey)} works only on GitHub Actions.");
shouldRun &= context.ShouldRun(context.IsOnWindows, $"{nameof(PublishChocolatey)} works only on windows.");
- shouldRun &= context.ShouldRun(context.IsStableRelease, $"{nameof(PublishChocolatey)} works only for stable releases.");
+ shouldRun &= context.ShouldRun(context.IsStableRelease || context.IsTaggedPreRelease, $"{nameof(PublishChocolatey)} works only for tagged releases.");
return shouldRun;
}
- public override void Run(BuildContext context)
+ public override async Task RunAsync(BuildContext context)
{
var apiKey = context.Credentials?.Chocolatey?.ApiKey;
if (string.IsNullOrEmpty(apiKey))
@@ -33,27 +31,32 @@ public override void Run(BuildContext context)
throw new InvalidOperationException("Could not resolve Chocolatey API key.");
}
- var nugetVersion = context.Version!.NugetVersion;
- foreach (var (packageName, filePath, _) in context.Packages.Where(x => x.IsChocoPackage))
+ ArgumentNullException.ThrowIfNull(context.Version);
+ var nugetVersion = context.Version.NugetVersion;
+ var packages = context.Packages
+ .Where(x => x.IsChocoPackage)
+ .OrderByDescending(x => x.PackageName);
+ foreach (var (packageName, filePath, _) in packages)
{
- if (!IsPackagePublished(context, packageName, nugetVersion))
+ if (IsPackagePublished(context, packageName, nugetVersion)) continue;
+ try
{
- try
- {
- context.Information($"Package {packageName}, version {nugetVersion} is being published.");
- context.ChocolateyPush(filePath.FullPath, new ChocolateyPushSettings
- {
- ApiKey = apiKey,
- Source = Constants.ChocolateyUrl,
- Force = true
- });
- }
- catch (Exception)
+ context.Information($"Package {packageName}, version {nugetVersion} is being published.");
+ context.ChocolateyPush(filePath.FullPath, new ChocolateyPushSettings
{
- context.Warning($"There is an exception publishing the Package {packageName}.");
- // chocolatey sometimes fails with an error, even if the package gets pushed
- }
+ ApiKey = apiKey,
+ Source = Constants.ChocolateyUrl,
+ Force = true
+ });
}
+ catch (Exception)
+ {
+ context.Warning($"There is an exception publishing the Package {packageName}.");
+ // chocolatey sometimes fails with an error, even if the package gets pushed
+ }
+
+ // wait 5 seconds to avoid the meta-package to be published before the other packages
+ await Task.Delay(TimeSpan.FromSeconds(5));
}
}
diff --git a/build/publish/Tasks/PublishNuget.cs b/build/publish/Tasks/PublishNuget.cs
index 25e40afb62..59649a35af 100644
--- a/build/publish/Tasks/PublishNuget.cs
+++ b/build/publish/Tasks/PublishNuget.cs
@@ -6,9 +6,7 @@ namespace Publish.Tasks;
[TaskName(nameof(PublishNuget))]
[TaskDescription("Publish nuget packages")]
[IsDependentOn(typeof(PublishNugetInternal))]
-public class PublishNuget : FrostingTask
-{
-}
+public class PublishNuget : FrostingTask;
[TaskName(nameof(PublishNugetInternal))]
[TaskDescription("Publish nuget packages")]
@@ -18,7 +16,7 @@ public override bool ShouldRun(BuildContext context)
{
var shouldRun = true;
shouldRun &= context.ShouldRun(context.IsGitHubActionsBuild, $"{nameof(PublishNuget)} works only on GitHub Actions.");
- shouldRun &= context.ShouldRun(context.IsPreRelease || context.IsStableRelease, $"{nameof(PublishNuget)} works only for releases.");
+ shouldRun &= context.ShouldRun(context.IsStableRelease || context.IsTaggedPreRelease || context.IsInternalPreRelease, $"{nameof(PublishNuget)} works only for releases.");
return shouldRun;
}
@@ -26,30 +24,34 @@ public override bool ShouldRun(BuildContext context)
public override void Run(BuildContext context)
{
// publish to github packages for commits on main and on original repo
- if (context.IsGitHubActionsBuild && context.IsOnMainOrSupportBranchOriginalRepo)
+ if (context.IsInternalPreRelease)
{
+ context.StartGroup("Publishing to GitHub Packages");
var apiKey = context.Credentials?.GitHub?.Token;
if (string.IsNullOrEmpty(apiKey))
{
throw new InvalidOperationException("Could not resolve NuGet GitHub Packages API key.");
}
PublishToNugetRepo(context, apiKey, Constants.GithubPackagesUrl);
+ context.EndGroup();
}
- // publish to nuget.org for stable releases
- if (context.IsStableRelease)
+ // publish to nuget.org for tagged releases
+ if (context.IsStableRelease || context.IsTaggedPreRelease)
{
+ context.StartGroup("Publishing to Nuget.org");
var apiKey = context.Credentials?.Nuget?.ApiKey;
if (string.IsNullOrEmpty(apiKey))
{
throw new InvalidOperationException("Could not resolve NuGet org API key.");
}
-
PublishToNugetRepo(context, apiKey, Constants.NugetOrgUrl);
+ context.EndGroup();
}
}
private static void PublishToNugetRepo(BuildContext context, string apiKey, string apiUrl)
{
- var nugetVersion = context.Version!.NugetVersion;
+ ArgumentNullException.ThrowIfNull(context.Version);
+ var nugetVersion = context.Version.NugetVersion;
foreach (var (packageName, filePath, _) in context.Packages.Where(x => !x.IsChocoPackage))
{
context.Information($"Package {packageName}, version {nugetVersion} is being published.");
diff --git a/build/publish/Utilities/Credentials.cs b/build/publish/Utilities/Credentials.cs
index e8cf943c20..aa2ef63082 100644
--- a/build/publish/Utilities/Credentials.cs
+++ b/build/publish/Utilities/Credentials.cs
@@ -4,14 +4,14 @@ namespace Publish.Utilities;
public class Credentials
{
- public GitHubCredentials? GitHub { get; private set; }
- public NugetCredentials? Nuget { get; private set; }
- public ChocolateyCredentials? Chocolatey { get; private set; }
+ public GitHubCredentials? GitHub { get; private init; }
+ public NugetCredentials? Nuget { get; private init; }
+ public ChocolateyCredentials? Chocolatey { get; private init; }
public static Credentials GetCredentials(ICakeContext context) => new()
{
- GitHub = new GitHubCredentials(context.EnvironmentVariable("GITHUB_TOKEN")),
- Nuget = new NugetCredentials(context.EnvironmentVariable("NUGET_API_KEY")),
- Chocolatey = new ChocolateyCredentials(context.EnvironmentVariable("CHOCOLATEY_API_KEY")),
+ GitHub = new(context.EnvironmentVariable("GITHUB_TOKEN")),
+ Nuget = new(context.EnvironmentVariable("NUGET_API_KEY")),
+ Chocolatey = new(context.EnvironmentVariable("CHOCOLATEY_API_KEY")),
};
}
diff --git a/build/release/BuildContext.cs b/build/release/BuildContext.cs
index 7b01b01652..d29e09cd0a 100644
--- a/build/release/BuildContext.cs
+++ b/build/release/BuildContext.cs
@@ -3,11 +3,7 @@
namespace Release;
-public class BuildContext : BuildContextBase
+public class BuildContext(ICakeContext context) : BuildContextBase(context)
{
public Credentials? Credentials { get; set; }
-
- public BuildContext(ICakeContext context) : base(context)
- {
- }
}
diff --git a/build/release/BuildLifetime.cs b/build/release/BuildLifetime.cs
index 26244e2b05..5bf3901bdf 100644
--- a/build/release/BuildLifetime.cs
+++ b/build/release/BuildLifetime.cs
@@ -1,3 +1,4 @@
+using Common.Lifetime;
using Common.Utilities;
using Release.Utilities;
@@ -5,9 +6,10 @@ namespace Release;
public class BuildLifetime : BuildLifetimeBase
{
- public override void Setup(BuildContext context)
+ public override void Setup(BuildContext context, ISetupContext info)
{
- base.Setup(context);
+ base.Setup(context, info);
+
context.Credentials = Credentials.GetCredentials(context);
context.StartGroup("Build Setup");
diff --git a/build/release/Tasks/Default.cs b/build/release/Tasks/Default.cs
index e842138737..595447a5db 100644
--- a/build/release/Tasks/Default.cs
+++ b/build/release/Tasks/Default.cs
@@ -1,6 +1,4 @@
namespace Release.Tasks;
[TaskDescription("Shows this output")]
-public class Default : Common.Tasks.Default
-{
-}
+public class Default : Common.Tasks.Default;
diff --git a/build/release/Tasks/PublishRelease.cs b/build/release/Tasks/PublishRelease.cs
index cb1881fe4b..7bbaf8ea9c 100644
--- a/build/release/Tasks/PublishRelease.cs
+++ b/build/release/Tasks/PublishRelease.cs
@@ -8,9 +8,7 @@ namespace Release.Tasks;
[TaskDescription("Publish release")]
[IsDependentOn(typeof(PublishReleaseInternal))]
-public class PublishRelease : FrostingTask
-{
-}
+public class PublishRelease : FrostingTask;
[TaskName(nameof(PublishReleaseInternal))]
[TaskDescription("Publish release")]
@@ -20,7 +18,7 @@ public override bool ShouldRun(BuildContext context)
{
var shouldRun = true;
shouldRun &= context.ShouldRun(context.IsGitHubActionsBuild, $"{nameof(PublishRelease)} works only on GitHub Actions.");
- shouldRun &= context.ShouldRun(context.IsStableRelease, $"{nameof(PublishRelease)} works only for releases.");
+ shouldRun &= context.ShouldRun(context.IsStableRelease || context.IsTaggedPreRelease, $"{nameof(PublishRelease)} works only for tagged releases.");
return shouldRun;
}
@@ -47,7 +45,7 @@ public override void Run(BuildContext context)
Milestone = milestone,
Name = milestone,
Prerelease = false,
- TargetCommitish = "main"
+ TargetCommitish = Constants.DefaultBranch
});
context.GitReleaseManagerAddAssets(token, Constants.RepoOwner, Constants.Repository, milestone, assets);
diff --git a/build/release/Utilities/Credentials.cs b/build/release/Utilities/Credentials.cs
index c71f6cf92f..ab698c4f95 100644
--- a/build/release/Utilities/Credentials.cs
+++ b/build/release/Utilities/Credentials.cs
@@ -4,9 +4,9 @@ namespace Release.Utilities;
public class Credentials
{
- public GitHubCredentials? GitHub { get; private set; }
+ public GitHubCredentials? GitHub { get; private init; }
public static Credentials GetCredentials(ICakeContext context) => new()
{
- GitHub = new GitHubCredentials(context.EnvironmentVariable("GITHUB_TOKEN")),
+ GitHub = new(context.EnvironmentVariable("GITHUB_TOKEN")),
};
}
diff --git a/docs/config.wyam b/docs/config.wyam
deleted file mode 100644
index c242a361ce..0000000000
--- a/docs/config.wyam
+++ /dev/null
@@ -1 +0,0 @@
-Pipelines["RenderPages"].Replace("WriteMetadata", new Headings(2));
diff --git a/docs/input/_Bottom.cshtml b/docs/input/_Bottom.cshtml
index 16443c0a8a..348bc073e6 100644
--- a/docs/input/_Bottom.cshtml
+++ b/docs/input/_Bottom.cshtml
@@ -1,9 +1,3 @@
-
-
diff --git a/docs/input/_Navbar.cshtml b/docs/input/_Navbar.cshtml
new file mode 100644
index 0000000000..3a1031af19
--- /dev/null
+++ b/docs/input/_Navbar.cshtml
@@ -0,0 +1,13 @@
+@{
+ List> pages = new List>
+ {
+ Tuple.Create("Documentation", Context.GetLink("docs")),
+ Tuple.Create("API", Context.GetLink("api")),
+ Tuple.Create(" 5.12.0", "/5.12.0/docs"),
+ };
+ foreach(Tuple p in pages)
+ {
+ string active = Context.GetLink(Document).StartsWith(p.Item2) ? "active" : null;
+ @Html.Raw(p.Item1)
+ }
+}
\ No newline at end of file
diff --git a/docs/input/assets/css/override.less b/docs/input/assets/css/override.less
index 44b3897492..b5b943276c 100644
--- a/docs/input/assets/css/override.less
+++ b/docs/input/assets/css/override.less
@@ -105,10 +105,6 @@ body.layout-boxed .top-banner,
font-size: 50px;
}
-.gitter-open-chat-button {
- background-color: @purple;
-}
-
main {
font-size: 2rem;
}
diff --git a/docs/input/docs/img/DocumentationSamplesForGitFlow_DevelopBranch.png b/docs/input/docs/img/DocumentationSamplesForGitFlow_DevelopBranch.png
new file mode 100644
index 0000000000..124c10cca2
Binary files /dev/null and b/docs/input/docs/img/DocumentationSamplesForGitFlow_DevelopBranch.png differ
diff --git a/docs/input/docs/img/DocumentationSamplesForGitFlow_FeatureFromDevelopBranch.png b/docs/input/docs/img/DocumentationSamplesForGitFlow_FeatureFromDevelopBranch.png
new file mode 100644
index 0000000000..2a499a520a
Binary files /dev/null and b/docs/input/docs/img/DocumentationSamplesForGitFlow_FeatureFromDevelopBranch.png differ
diff --git a/docs/input/docs/img/DocumentationSamplesForGitFlow_FeatureFromMainBranch.png b/docs/input/docs/img/DocumentationSamplesForGitFlow_FeatureFromMainBranch.png
new file mode 100644
index 0000000000..af6daf6711
Binary files /dev/null and b/docs/input/docs/img/DocumentationSamplesForGitFlow_FeatureFromMainBranch.png differ
diff --git a/docs/input/docs/img/DocumentationSamplesForGitFlow_HotfixBranch.png b/docs/input/docs/img/DocumentationSamplesForGitFlow_HotfixBranch.png
new file mode 100644
index 0000000000..1a0109bf9a
Binary files /dev/null and b/docs/input/docs/img/DocumentationSamplesForGitFlow_HotfixBranch.png differ
diff --git a/docs/input/docs/img/DocumentationSamplesForGitFlow_ReleaseBranch.png b/docs/input/docs/img/DocumentationSamplesForGitFlow_ReleaseBranch.png
new file mode 100644
index 0000000000..24b77c37b1
Binary files /dev/null and b/docs/input/docs/img/DocumentationSamplesForGitFlow_ReleaseBranch.png differ
diff --git a/docs/input/docs/img/DocumentationSamplesForGitFlow_SupportBranch.png b/docs/input/docs/img/DocumentationSamplesForGitFlow_SupportBranch.png
new file mode 100644
index 0000000000..e38e6cc065
Binary files /dev/null and b/docs/input/docs/img/DocumentationSamplesForGitFlow_SupportBranch.png differ
diff --git a/docs/input/docs/img/DocumentationSamplesForGitFlow_VersionedHotfixBranch.png b/docs/input/docs/img/DocumentationSamplesForGitFlow_VersionedHotfixBranch.png
new file mode 100644
index 0000000000..f9a695b7da
Binary files /dev/null and b/docs/input/docs/img/DocumentationSamplesForGitFlow_VersionedHotfixBranch.png differ
diff --git a/docs/input/docs/img/DocumentationSamplesForGitFlow_VersionedReleaseBranch.png b/docs/input/docs/img/DocumentationSamplesForGitFlow_VersionedReleaseBranch.png
new file mode 100644
index 0000000000..c9d0ca996e
Binary files /dev/null and b/docs/input/docs/img/DocumentationSamplesForGitFlow_VersionedReleaseBranch.png differ
diff --git a/docs/input/docs/img/DocumentationSamplesForGitHubFlow_FeatureBranch.png b/docs/input/docs/img/DocumentationSamplesForGitHubFlow_FeatureBranch.png
new file mode 100644
index 0000000000..af6daf6711
Binary files /dev/null and b/docs/input/docs/img/DocumentationSamplesForGitHubFlow_FeatureBranch.png differ
diff --git a/docs/input/docs/img/DocumentationSamplesForGitHubFlow_ReleaseBranch.png b/docs/input/docs/img/DocumentationSamplesForGitHubFlow_ReleaseBranch.png
new file mode 100644
index 0000000000..22d7a76e47
Binary files /dev/null and b/docs/input/docs/img/DocumentationSamplesForGitHubFlow_ReleaseBranch.png differ
diff --git a/docs/input/docs/img/DocumentationSamplesForGitHubFlow_VersionedReleaseBranch.png b/docs/input/docs/img/DocumentationSamplesForGitHubFlow_VersionedReleaseBranch.png
new file mode 100644
index 0000000000..f95e478d5c
Binary files /dev/null and b/docs/input/docs/img/DocumentationSamplesForGitHubFlow_VersionedReleaseBranch.png differ
diff --git a/docs/input/docs/learn/branching-strategies/contribute-examples.md b/docs/input/docs/learn/branching-strategies/contribute-examples.md
index c162dfe85e..3651bc91c6 100644
--- a/docs/input/docs/learn/branching-strategies/contribute-examples.md
+++ b/docs/input/docs/learn/branching-strategies/contribute-examples.md
@@ -9,8 +9,8 @@ The examples are generated by GitVersion tests, there are a number of services
which will then turn the sequence diagram text into an image to use in the docs.
Here are some links which could be useful
-* [PlantUML Sequence Diagrams](https://www.plantuml.com/sequence.html)
-* [PlantText Online editor](https://www.planttext.com)
+* [PlantUML Sequence Diagrams](https://www.plantuml.com/sequence.html)
+* [PlantText Online editor](https://www.planttext.com)
The tests are quite simple. Using the methods on the `fixture` itself will
record that action in the sequence diagram. If you do not want the action
diff --git a/docs/input/docs/learn/branching-strategies/gitflow/examples.md b/docs/input/docs/learn/branching-strategies/gitflow/examples.md
index a2915f17bd..fd3876c5b0 100644
--- a/docs/input/docs/learn/branching-strategies/gitflow/examples.md
+++ b/docs/input/docs/learn/branching-strategies/gitflow/examples.md
@@ -6,61 +6,107 @@ RedirectFrom:
- docs/git-branching-strategies/gitflow-examples
---
-These examples are using the _default_ configuration with GitVersion. Which is
-[continuous deployment](/docs/reference/modes/continuous-deployment) mode for
-`develop` and [continuous delivery](/docs/reference/modes/continuous-delivery) mode
-for all other branches.
-
-This default configuration allows you to publish CI builds from develop to a CI
-MyGet feed, or another CI feed. Then all other branches are manually released
-then tagged. Read more about this at [version increments](/docs/reference/version-increments).
+These examples are illustrating the usage of the supported `GitFlow` workflow
+in GitVersion. To enable this workflow, the builtin template
+[GitFlow/v1](/docs/workflows/GitFlow/v1.json) needs to be referenced in the
+configuration as follows:
+
+```yaml
+workflow: GitFlow/v1
+mode: ContinuousDelivery
+```
+
+Where
+the [continuous deployment][continuous-deployment] mode for no branches,
+the [continuous delivery][continuous-delivery] mode for
+`main`, `support` and `develop` branches and
+the [manual deployment][manual-deployment] mode
+for `release`, `feature`, `hotfix` and `unknown` branches are specified.
+
+This configuration allows you to publish CI (Continuous Integration) builds
+from `main`, `support` and `develop` branches to an artifact repository.
+All other branches are manually published. Read more about this at
+[version increments](/docs/reference/version-increments).
+
+:::{.alert .alert-info}
+The _continuous delivery_ mode has been used for the `main` and the
+`support` branch in this examples (specified as a fallback on the root
+configuration layer) to illustrate how the version increments are applied.
+In production context the _continuous deployment_ mode might be a better
+option when e.g. the release process is automated or the commits are tagged
+by the pipeline automatically.
+:::
## Feature Branches
-Feature branches will take the feature branch name and use that as the
-pre-release tag.
+Feature branches can be used in the `GitFlow` workflow to implement a
+feature in an isolated environment. Feature branches will take the feature
+branch name and use that as the pre-release label. Feature branches will be
+created from a `develop`, `release`, `main`, `support` or `hotfix` branch.
-
+### Create feature branch from main
-Notice after the feature branch is merged, the version on `develop` is
-`1.3.0-alpha.3`. This is due to `develop` running in _continuous deployment_
-mode. If you configured `develop` to use _continuous delivery_ the version would
-still be `1.3.0-alpha.1` and you would have to use release tags to increment the
-`alpha.1`.
+
-You can see the difference on the feature branch itself, notice the version is
-the same before and after the commit on the feature branch? Only the metadata
-has changed. If you released the feature branch artifacts then tagged the
-commit, the following commit would increase to `-beta.2`.
+:::{.alert .alert-info}
+After the feature branch is merged, the version on `main` is `2.0.0-5`.
+This is due to `main` running in _continuous delivery_ mode. If `main` was
+configured to use _continuous deployment_ the version would be `2.0.0`.
+:::
-## Pull Request
+### Create feature branch from develop
-Because feature branches are most likely pushed to a fork, we are showing the
-pull request branch name which is created when you submit a pull request
+
-
+:::{.alert .alert-info}
+After the feature branch is merged, the version on `develop` is
+`1.3.0-alpha.3`. This is due to `develop` running in _continuous delivery_
+mode. If `develop` was configured to use _manual deployment_ the version
+would still be `1.3.0-alpha.1` and you would have to use pre-release tags
+to increment the pre-release label `alpha.1`.
+:::
## Hotfix Branches
-Hotfix branches are used when you need to do a _patch_ release in GitFlow and
-are always created off `main`
+Hotfix branches are used when you need to do a _patch_ release in the
+`GitFlow` workflow and are always created from `main` branch.
+
+### Create hotfix branch
+
+
+
+### Create hotfix branch with version number
+
+
+
+## Release Branches
-
+Release branches are used for major and minor releases to stabilize a RC
+(Release Candidate) or to integrate features (in parallel) targeting different
+iterations. Release branches are taken from `main` (or from `develop`) and will
+be merged back afterwards. Finally the `main` branch is tagged with the
+released version.
-## Minor Release Branches
+Release branches can be used in the `GitFlow` as well as `GitHubFlow` workflow.
+Sometimes you want to start on a large feature which may take a while
+to stabilize so you want to keep it off main.
+In these scenarios you can either create a long lived
+feature branch (if you do not know the version number this large feature will go
+into, and it's non-breaking) otherwise you can create a release branch for the
+next major version. You can then submit pull requests to the long lived feature
+branch or the release branch.
-Release branches are used for both major and minor releases for stabilisation
-before a release. Release branches are taken off `develop` then merged to both
-`develop` and `main`. Finally `main` is tagged with the released version.
+### Create release branch
-
+
-## Major Release Branches
+### Create release branch with version
-Major releases are just like minor releases, the difference is you bump the
-major in the release branch name.
+
-
+## Develop Branch
+
+
## Support Branches
@@ -71,17 +117,15 @@ majors, then name your branch `support/.x` (i.e `support/1.x`), to
support minors use `support/..x` or `support/..0`.
(i.e `support/1.3.x` or `support/1.3.0`)
-### Hotfix
-
-Depending on what you name your support branch, you may or may not need a hotfix
-branch. Naming it `support/1.x` will automatically bump the patch, if you name
-it `support/1.3.0` then the version in branch name rule will kick in and the
-patch _will not_ automatically bump, meaning you have to use hotfix branches.
-
-
-### Minor Release
+
-
+:::{.alert .alert-info}
+Depending on what you name your support branch, you may or may not need a
+hotfix branch. Naming it `support/1.x` will automatically bump the patch,
+if you name it `support/1.3.0` then the version in branch name rule will
+kick in and the patch _will not_ automatically bump, meaning you have to
+use hotfix branches.
+:::
## To Contribute
@@ -89,5 +133,10 @@ See [contributing examples](/docs/learn/branching-strategies/contribute-examples
### Source
-See `DocumentationSamples.GitFlowExample`. To update, modify then run test.
-Update
+See `DocumentationSamplesForGitFlow.cs`. To update, modify then run test.
+
+[continuous-deployment]: /docs/reference/modes/continuous-deployment
+
+[continuous-delivery]: /docs/reference/modes/continuous-delivery
+
+[manual-deployment]: /docs/reference/modes/manual-deployment
diff --git a/docs/input/docs/learn/branching-strategies/gitflow/index.md b/docs/input/docs/learn/branching-strategies/gitflow/index.md
index 8e0e71dcf5..2c3019d88b 100644
--- a/docs/input/docs/learn/branching-strategies/gitflow/index.md
+++ b/docs/input/docs/learn/branching-strategies/gitflow/index.md
@@ -10,20 +10,20 @@ SemVer compatible versions from this structure.
## Assumptions:
-* Using [GitFlow branching model](https://nvie.com/git-model/) which always has a
- main and a develop branch
-* Following [Semantic Versioning](https://semver.org/)
-* Planned releases (bumps in major or minor) are done on release branches
- prefixed with release-. Eg: release-4.1 (or release-4.1.0)
-* Hotfixes are prefixed with hotfix- Eg. hotfix-4.0.4
-* The original [GitFlow model](https://nvie.com/posts/a-successful-git-branching-model/)
- specifies branches with a "-" separator while the [git flow extensions](https://github.com/nvie/gitflow)
- default to a "/" separator. Either work with GitVersion.
-* Tags are used on the main branch and reflects the SemVer of each stable
- release eg 3.3.8 , 4.0.0, etc
-* Tags can also be used to override versions while we transition repositories
- over to GitVersion
-* Using a build server with multi-branch building enabled eg TeamCity 8
+* Using [GitFlow branching model](https://nvie.com/git-model/) which always has a
+ main and a develop branch
+* Following [Semantic Versioning](https://semver.org/)
+* Planned releases (bumps in major or minor) are done on release branches
+ prefixed with release-. Eg: release-4.1 (or release-4.1.0)
+* Hotfixes are prefixed with hotfix- Eg. hotfix-4.0.4
+* The original [GitFlow model](https://nvie.com/posts/a-successful-git-branching-model/)
+ specifies branches with a "-" separator while the [git flow extensions](https://github.com/CJ-Systems/gitflow-cjs)
+ default to a "/" separator. Either work with GitVersion.
+* Tags are used on the main branch and reflects the SemVer of each stable
+ release eg 3.3.8 , 4.0.0, etc
+* Tags can also be used to override versions while we transition repositories
+ over to GitVersion
+* Using a build server with multi-branch building enabled eg TeamCity 8
## How Branches are handled
@@ -31,8 +31,8 @@ The descriptions of how commits and branches are versioned can be considered a
type of pseudopod. With that in mind there are a few common "variables" that we
will refer to:
-* `targetBranch` => the branch we are targeting
-* `targetCommit` => the commit we are targeting on `targetbranch`
+* `targetBranch` => the branch we are targeting
+* `targetCommit` => the commit we are targeting on `targetbranch`
### Main branch
@@ -44,15 +44,15 @@ If we try to build from a commit that is no merge and no tag then assume `0.1.0`
`mergeVersion` => the SemVer extracted from `targetCommit.Message`
-* major: `mergeVersion.Major`
-* minor: `mergeVersion.Minor`
-* patch: `mergeVersion.Patch`
-* pre-release: 0 (perhaps count ahead commits later)
-* stability: final
+* major: `mergeVersion.Major`
+* minor: `mergeVersion.Minor`
+* patch: `mergeVersion.Patch`
+* pre-release: 0 (perhaps count ahead commits later)
+* stability: final
Optional Tags (only when transitioning existing repository):
-* TagOnHeadCommit.Name={semver} => overrides the version to be {semver}
+* TagOnHeadCommit.Name={semver} => overrides the version to be {semver}
Long version:
@@ -68,11 +68,11 @@ Long version:
`main` that is older than the `targetCommitDate`
`mainMergeVersion` => the SemVer extracted from `mainVersionCommit.Message`
-* major: `mainMergeVersion.Major`
-* minor: `mainMergeVersion.Minor + 1` (0 if the override above is used)
-* patch: 0
-* pre-release: `alpha.{n}` where n = how many commits `develop` is in front of
- `mainVersionCommit.Date` ('0' padded to 4 characters)
+* major: `mainMergeVersion.Major`
+* minor: `mainMergeVersion.Minor + 1` (0 if the override above is used)
+* patch: 0
+* pre-release: `alpha.{n}` where n = how many commits `develop` is in front of
+ `mainVersionCommit.Date` ('0' padded to 4 characters)
Long version:
@@ -87,11 +87,11 @@ Named: `hotfix-{versionNumber}` eg `hotfix-1.2`
`branchVersion` => the SemVer extracted from `targetBranch.Name`
-* major: `mergeVersion.Major`
-* minor: `mergeVersion.Minor`
-* patch: `mergeVersion.Patch`
-* pre-release: `beta{n}` where n = number of commits on branch ('0' padded to
- 4 characters)
+* major: `mergeVersion.Major`
+* minor: `mergeVersion.Minor`
+* patch: `mergeVersion.Patch`
+* pre-release: `beta{n}` where n = number of commits on branch ('0' padded to
+ 4 characters)
Long version:
@@ -102,9 +102,9 @@ Long version:
### Release branches
-* May branch off from: develop
-* Must merge back into: develop and main
-* Branch naming convention: `release-{n}` eg `release-1.2`
+* May branch off from: develop
+* Must merge back into: develop and main
+* Branch naming convention: `release-{n}` eg `release-1.2`
`releaseVersion` => the SemVer extracted from `targetBranch.Name`
`releaseTag` => the first version tag placed on the branch. Note that at least
@@ -112,11 +112,11 @@ one version tag is required on the branch. The recommended initial tag is
`{releaseVersion}.0-alpha1`. So for a branch named `release-1.2` the recommended
tag would be `1.2.0-alpha1`
-* major: `mergeVersion.Major`
-* minor: `mergeVersion.Minor`
-* patch: 0
-* pre-release: `{releaseTag.preRelease}.{n}` where n = 1 + the number of commits
- since `releaseTag`.
+* major: `mergeVersion.Major`
+* minor: `mergeVersion.Minor`
+* patch: 0
+* pre-release: `{releaseTag.preRelease}.{n}` where n = 1 + the number of commits
+ since `releaseTag`.
So on a branch named `release-1.2` with a tag `1.2.0-alpha1` and 4 commits after
that tag the version would be `1.2.0-alpha1.4`
@@ -139,11 +139,11 @@ Branch naming convention: anything except `main`, `develop`, `release-{n}`, or
TODO: feature branches cannot start with a SemVer. to stop people from create
branches named like "4.0.3"
-* major: `mainMergeVersion.Major`
-* minor: `mainMergeVersion.Minor + 1` (0 if the override above is used)
-* patch: 0
-* pre-release: `alpha.feature-{n}` where n = First 8 characters of the commit
- SHA of the first commit
+* major: `mainMergeVersion.Major`
+* minor: `mainMergeVersion.Minor + 1` (0 if the override above is used)
+* patch: 0
+* pre-release: `alpha.feature-{n}` where n = First 8 characters of the commit
+ SHA of the first commit
Long version:
@@ -159,11 +159,11 @@ Must merge back into: `develop`
Branch naming convention: anything except `main`, `develop`, `release-{n}`, or
`hotfix-{n}`. Canonical branch name contains `/pull/`.
-* major: `mainMergeVersion.Major`
-* minor: `mainMergeVersion.Minor + 1` (0 if the override above is used)
-* patch: 0
-* pre-release: `alpha.pull{n}` where n = the pull request number ('0' padded to
- 4 characters)
+* major: `mainMergeVersion.Major`
+* minor: `mainMergeVersion.Minor + 1` (0 if the override above is used)
+* patch: 0
+* pre-release: `alpha.pull{n}` where n = the pull request number ('0' padded to
+ 4 characters)
## Nightly Builds
diff --git a/docs/input/docs/learn/branching-strategies/githubflow/examples.md b/docs/input/docs/learn/branching-strategies/githubflow/examples.md
index 4a71e6dc4f..92f07d1e89 100644
--- a/docs/input/docs/learn/branching-strategies/githubflow/examples.md
+++ b/docs/input/docs/learn/branching-strategies/githubflow/examples.md
@@ -4,17 +4,66 @@ Title: GitHubFlow Examples
RedirectFrom: docs/git-branching-strategies/githubflow-examples
---
-## Feature branch
+These examples are illustrating the usage of the supported `GitHubFlow` workflow
+in GitVersion. To enable this workflow, the builtin template
+[GitHubFlow/v1](/docs/workflows/GitHubFlow/v1.json) needs to be referenced in the
+configuration as follows:
-
+```yaml
+workflow: GitHubFlow/v1
+mode: ContinuousDelivery
+```
-## Pull requests
+Where
+the [continuous deployment][continuous-deployment] mode for no branches,
+the [continuous delivery][continuous-delivery] mode for
+`main` branch and
+the [manual deployment][manual-deployment] mode
+for `release`, `feature` and `unknown` branches are specified.
-
+This configuration allows you to publish CI (Continuous Integration) builds
+from `main` branch to an artifact repository.
+All other branches are manually published. Read more about this at
+[version increments](/docs/reference/version-increments).
-## Release branch
+:::{.alert .alert-info}
+The _continuous delivery_ mode has been used for the `main` branch in this
+examples (specified as a fallback on the root
+configuration layer) to illustrate how the version increments are applied.
+In production context the _continuous deployment_ mode might be a better
+option when e.g. the release process is automated or the commits are tagged
+by the pipeline automatically.
+:::
-Release branches can be used in GitHubFlow as well as GitFlow. Sometimes you
+## Feature Branch
+
+Feature branches can be used in the `GitHubFlow` workflow to implement a
+feature or fix a bug in an isolated environment. Feature branches will take
+the feature
+branch name and use that as the pre-release label. Feature branches will be
+created from a `main` or `release` branch.
+
+### Create feature branch from main
+
+
+
+:::{.alert .alert-info}
+After the feature branch is merged, the version on `main` is `2.0.0-5`.
+This is due to `main` running in _continuous delivery_ mode. If `main` was
+configured to use _continuous deployment_ the version would be `2.0.0`.
+:::
+
+## Release Branches
+
+Release branches are used for major, minor and patch releases to stabilize a RC
+(Release Candidate) or to integrate features/hotfixes (in parallel) targeting
+different
+iterations. Release branches are taken from `main` and will
+be merged back afterwards. Finally the `main` branch is tagged with the
+released version.
+
+Release branches can be used in the `GitHubFlow` as well as `GitFlow` workflow.
+Sometimes you
want to start on a large feature which may take a while to stabilize so you want
to keep it off main. In these scenarios you can either create a long lived
feature branch (if you do not know the version number this large feature will go
@@ -22,4 +71,24 @@ into, and it's non-breaking) otherwise you can create a release branch for the
next major version. You can then submit pull requests to the long lived feature
branch or the release branch.
-
+### Create release branch
+
+
+
+### Create release branch with version
+
+
+
+## To Contribute
+
+See [contributing examples](/docs/learn/branching-strategies/contribute-examples).
+
+### Source
+
+See `DocumentationSamplesForGitHubFlow.cs`. To update, modify then run test.
+
+[continuous-deployment]: /docs/reference/modes/continuous-deployment
+
+[continuous-delivery]: /docs/reference/modes/continuous-delivery
+
+[manual-deployment]: /docs/reference/modes/manual-deployment
diff --git a/docs/input/docs/learn/branching-strategies/githubflow/index.md b/docs/input/docs/learn/branching-strategies/githubflow/index.md
index b7e8d0593d..a0c76e72d0 100644
--- a/docs/input/docs/learn/branching-strategies/githubflow/index.md
+++ b/docs/input/docs/learn/branching-strategies/githubflow/index.md
@@ -11,19 +11,19 @@ are much better off with a simpler workflow.
GitHubFlow is in a nutshell:
-1. Update main to latest [upstream](/docs/learn/git-setup#upstream) code
-2. Create a feature branch `git checkout -b myFeatureBranch`
-3. Do the feature/work
-4. Push feature branch to [origin](/docs/learn/git-setup#origin)
-5. Create pull request from origin/ -> upstream/main
-6. Review, fix raised comments, merge your PR or even better, get someone else to.
+1. Update main to latest [upstream](/docs/learn/git-setup#upstream) code
+2. Create a feature branch `git checkout -b myFeatureBranch`
+3. Do the feature/work
+4. Push feature branch to [origin](/docs/learn/git-setup#origin)
+5. Create pull request from origin/{featureBranch} -> upstream/main
+6. Review, fix raised comments, merge your PR or even better, get someone else to.
The main rule of GitHub Flow is that main should _always_ be deployable.
GitHub Flow allows and encourages [continuous delivery](/docs/reference/modes/continuous-delivery).
## Resources
-* [GitHubFlow guide by GitHub](https://docs.github.com/en/get-started/quickstart/github-flow#introduction)
-* [GitHubFlow original blog post](https://scottchacon.com/2011/08/31/github-flow.html)
-* [Phil Haack's (haacked) GitHubFlow aliases](https://haacked.com/archive/2014/07/28/github-flow-aliases/)
-* [GitHubFlow vs GitFlow](https://lucamezzalira.com/2014/03/10/git-flow-vs-github-flow/)
+* [GitHubFlow guide by GitHub](https://docs.github.com/en/get-started/quickstart/github-flow#introduction)
+* [GitHubFlow original blog post](https://scottchacon.com/2011/08/31/github-flow)
+* [Phil Haack's (haacked) GitHubFlow aliases](https://haacked.com/archive/2014/07/28/github-flow-aliases/)
+* [GitHubFlow vs GitFlow](https://lucamezzalira.com/2014/03/10/git-flow-vs-github-flow/)
diff --git a/docs/input/docs/learn/branching-strategies/overview.md b/docs/input/docs/learn/branching-strategies/overview.md
index aae1372e90..4af9d6638f 100644
--- a/docs/input/docs/learn/branching-strategies/overview.md
+++ b/docs/input/docs/learn/branching-strategies/overview.md
@@ -26,42 +26,48 @@ As mentioned above the GitVersion docs cover [GitHubFlow][githubflow] and
GitHubFlow is a simple and powerful branching strategy. It is what GitHub uses
and the branching strategy most open source projects use.
-* [Mainline development][mainline] on `main`.
-* Work on [feature branches][feature-branches], merge into `main` via a [pull
- request][pull-request].
-* Works well for [continuous delivery][continuous-delivery].
-* Does not have a way to manage/maintain old releases.
-* Only allows working on a single release at a time.
+* [Mainline development][mainline] on `main`.
+* Work on [feature branches][feature-branches], merge into `main` via a [pull
+ request][pull-request].
+* Works well for [continuous delivery][continuous-delivery].
+* Does not have a way to manage/maintain old releases.
+* Only allows working on a single release at a time.
### Git Flow
GitFlow is a more complex and complete branching strategy. It also gives much
more control over when features and code is released.
-* Development on `develop` branch.
-* `main` only contains _released_ code.
-* Supports maintaining old releases (like nServiceBus, they support the last 3
- major versions with bug fixes and security updates).
-* Supports development on multiple releases at one time.
+* Development on `develop` branch.
+* `main` only contains _released_ code.
+* Supports maintaining old releases (like nServiceBus, they support the last 3
+ major versions with bug fixes and security updates).
+* Supports development on multiple releases at one time.
## Choosing a branching strategy
There are a few reasons you would pick GitFlow over GitHubFlow, they are:
-1. You need to support multiple major versions at the same time.
-2. You need to work on multiple releases at the same time.
+1. You need to support multiple major versions at the same time.
+2. You need to work on multiple releases at the same time.
-* For example a new feature which will go in the next major version, while bug
- fixes/smaller features are still going into the current release
+* For example a new feature which will go in the next major version, while bug
+ fixes/smaller features are still going into the current release
But if you do not have a good reason to go with GitFlow, then start with
GitHubFlow. It is a far simpler model and if you end up needing GitFlow later,
it is [easy to convert][converting-to-gitflow].
[continuous-delivery]: /docs/reference/modes/continuous-delivery
+
[converting-to-gitflow]: /docs/learn/branching-strategies/gitflow/converting-to-gitflow
+
[feature-branches]: /docs/learn/branching-strategies/gitflow/examples#feature-branches
+
[gitflow]: /docs/learn/branching-strategies/gitflow
+
[githubflow]: /docs/learn/branching-strategies/githubflow
+
[mainline]: /docs/reference/modes/mainline
+
[pull-request]: /docs/learn/branching-strategies/gitflow/examples#pull-request
diff --git a/docs/input/docs/learn/credits.md b/docs/input/docs/learn/credits.md
index d00e906c52..69e6326eb1 100644
--- a/docs/input/docs/learn/credits.md
+++ b/docs/input/docs/learn/credits.md
@@ -16,18 +16,33 @@ Icons sourced, with love, from [The Noun Project][the-noun-project]:
:::
[artz91]: https://thenounproject.com/ArtZ91/
+
[collect-icon]: /assets/img/collect.svg
+
[collect-link]: https://thenounproject.com/term/collect/424422/
+
[david-chapman]: https://thenounproject.com/david.chapman/
+
[ghayn]: https://thenounproject.com/Ghayn/
+
[kevineichhorn]: https://thenounproject.com/kevineichhorn/
+
[library-icon]: /assets/img/library.svg
+
[library-link]: https://thenounproject.com/term/library/1386683/
+
[monstercritic]: https://thenounproject.com/monstercritic/
+
[repeat-icon]: /assets/img/repeat.svg
+
[repeat-link]: https://thenounproject.com/term/repeat/304152/
+
[terminal-icon]: /assets/img/terminal.svg
+
[terminal-link]: https://thenounproject.com/term/terminal/2191738/
+
[the-noun-project]: https://thenounproject.com/
+
[tree-icon]: /assets/img/icon.svg
+
[tree-link]: https://thenounproject.com/term/tree/13389/
diff --git a/docs/input/docs/learn/dynamic-repositories.md b/docs/input/docs/learn/dynamic-repositories.md
index 0ba9bf49cb..848ac16391 100644
--- a/docs/input/docs/learn/dynamic-repositories.md
+++ b/docs/input/docs/learn/dynamic-repositories.md
@@ -31,11 +31,11 @@ will assume there is already a ".git" folder present, and it will use it.
To tell GitVersion.exe to obtain the repository on the fly, you need to call
`GitVersion.exe` with the following arguments:
-* `/url [the url of your git repo]`
-* `/u [authentication username]`
-* `/p [authentication password]`
-* `/b [branch name]`
-* `/c [commit id]`
+* `/url [the url of your git repo]`
+* `/u [authentication username]`
+* `/p [authentication password]`
+* `/b [branch name]`
+* `/c [commit id]`
Please note that these arguments are described when calling `GitVersion.exe /?`.
diff --git a/docs/input/docs/learn/faq.md b/docs/input/docs/learn/faq.md
index 631948c857..4f972dad4a 100644
--- a/docs/input/docs/learn/faq.md
+++ b/docs/input/docs/learn/faq.md
@@ -49,13 +49,6 @@ SemVer.
If you want to fix the version, use `NuGetVersionV2` which will stay the same
after NuGet 3.0 comes out
-## How do I choose my branching strategy (GitFlow vs GitHubFlow)
-
-If you run `gitversion init` then choose `Getting started wizard` then choose
-`Unsure, tell me more`, GitVersion will run through a series of questions which
-will try and help point you towards a branching strategy and why you would use
-it.
-
## Merged branch names as version source
When GitVersion considers previous commits to calculate a version number, it's
@@ -76,8 +69,13 @@ therefore not be considered for version calculation in the target branch of the
merge.
[dynamic-repos]: /docs/learn/dynamic-repositories
+
[increments]: /docs/reference/version-increments
+
[octopus]: /docs/reference/build-servers/octopus-deploy
+
[semver-intro]: /docs/learn/intro-to-semver
+
[semver]: https://semver.org
+
[variables]: /docs/reference/variables
diff --git a/docs/input/docs/learn/how-it-works.md b/docs/input/docs/learn/how-it-works.md
index a33f2695b3..a556661b26 100644
--- a/docs/input/docs/learn/how-it-works.md
+++ b/docs/input/docs/learn/how-it-works.md
@@ -5,7 +5,7 @@ RedirectFrom: docs/more-info/how-it-works
---
GitVersion v3 works very differently to v2. Version 2 had knowledge of both
-GitFlow and GitHubFlow hard coded into it, with each branch having it's own
+GitFlow and GitHubFlow hard coded into it, with each branch having its own
class which calculated the version for that branch type.
v3 is driven by [configuration](/docs/reference/configuration), meaning most of the
@@ -16,52 +16,57 @@ it _much_ more predictable and easier to diagnose when odd things are happening.
GitVersion has three distinct steps for calculating versions in v3.
-1. If the current commit is tagged, the tag is used and build metadata
- (excluding commit count) is added. The other two steps will not execute.
-2. A set of strategies are evaluated to decide on the base version and some
- metadata about that version. These strategies include HighestReachableTag,
- NextVersionInConfig, MergedBranchWithVersion, VersionInBranchName etc.
-3. The highest base version is selected, using that base version as the new
- version is calculated.
+1. If the current commit is tagged, the tag is used and build metadata
+ (excluding commit count) is added. The other two steps will not execute.
+2. A set of strategies are evaluated to decide on the base version and some
+ metadata about that version. See [Version Strategies](#version-strategies)
+3. The highest base version is selected, using that base version as the new
+ version is calculated.
Visually it looks something like this:
-
+
-[Edit Diagram](https://www.plantuml.com/plantuml/form?url=https://www.plantuml.com/plantuml/png/fLCxJyCm4DxzAsuib4P914i69De1CS38Vd6kYIN7ZcodK8aVp-KX6Y2fKCbY9NV-7lVb2WoOeoVOMRDNfH0lz1vUoNbbpGwrR3K6ws1p3rlk-bN8u972f2AC3GHEbLN8m1D1Jjg-mPuXAZvx9kL1ZW1KY5dOZczMI0Pf54VnHtf7jpaAWJg0sW-uXw4PK3Eb1sMaevfCW6i1\_0m6po1l7HfPJUxvu5XYUOHLWq5MLptCudmMK9--u5glJ0dIEaVo1Dw3JgVM6Km4cM9mzyrQXHuQHnj7chhl0JcnIrHjno1wiWtgfi8eWVK\_7OQAmBHrJWvORFVM2PmrE7AcWZGh-Lj0FvptVvLiUPnCdG_XhNhOov9wQ1fzv7nw5S5EwSvw6CDQNfnMwUAP0XQyQpj70nkx3Nn3p5NFY9IshbNWepKi8ublWFiSPkC0ee8El75Dv5aOxqZQBScbWpWn0Pe2wb6aM1p4Eea\_0G00)
+[Edit Diagram](https://www.plantuml.com/plantuml/uml/fLCxJyCm4DxzAsuib4P914i69De1CS38Vd6kYIN7ZcodK8aVp-KX6Y2fKCbY9NV-7lVb2WoOeoVOMRDNfH0lz1vUoNbbpGwrR3K6ws1p3rlk-bN8u972f2AC3GHEbLN8m1D1Jjg-mPuXAZvx9kL1ZW1KY5dOZczMI0Pf54VnHtf7jpaAWJg0sW-uXw4PK3Eb1sMaevfCW6i1_0m6po1l7HfPJUxvu5XYUOHLWq5MLptCudmMK9--u5glJ0dIEaVo1Dw3JgVM6Km4cM9mzyrQXHuQHnj7chhl0JcnIrHjno1wiWtgfi8eWVK_7OQAmBHrJWvORFVM2PmrE7AcWZGh-Lj0FvptVvLiUPnCdG_XhNhOov9wQ1fzv7nw5S5EwSvw6CDQNfnMwUAP0XQyQpj70nkx3Nn3p5NFY9IshbNWepKi8ublWFiSPkC0ee8El75Dv5aOxqZQBScbWpWn0Pe2wb6aM1p4Eea_0G00)
**\*** Some strategies allow the version to be incremented, others don't. More
info below.
**+** This version is out of context with the rest of the example. It is here
simply to show what happens if the check is true.
-### Base Version Strategies
+### Version Strategies
Currently we have the following strategies:
-* `HighestTagBaseVersionStrategy` - Finds the highest reachable tag from the
- current branch
-* `VersionInBranchBaseVersionStrategy` - Extracts version information from the
- branch name (e.g., `release/3.0.0` will find `3.0.0`)
-* `ConfigNextVersionBaseVersionStrategy` - Returns the version from the
- GitVersion.yaml file
-* `MergeMessageBaseVersionStrategy` - Finds version numbers from merge messages
- (e.g., `Merge 'release/3.0.0' into 'main'` will return `3.0.0`)
-* `FallbackBaseVersionStrategy` - Always returns 0.1.0 for new repositories
+* `Fallback` - Always returns 0.0.0 and will be used for
+ calculating the next version which is dependent on the increment strategy of
+ the effected branch (e.g. on main the next version is 0.0.1 or on develop it is 0.1.0).
+ The fallback strategy only applies if no other selected strategy returns a base version.
+* `ConfiguredNextVersion` - Returns the version from the GitVersion.yaml file
+* `MergeMessage` - Finds version numbers from merge messages
+ (e.g., `Merge 'release/3.0.0' into 'main'` will return `3.0.0`)
+* `TaggedCommit` - Extracts version information from all tags on the branch which are valid,
+ and not newer than the current commit.
+* `TrackReleaseBranches` - Considers the base version extracted from release branches when
+ calculating the next version for branches configured with `track-release-branches: true`
+ (part of default configuration for `develop` branch in `GitFlow` workflow)
+* `VersionInBranchName` - Extracts version information from the
+ branch name (e.g., `release/3.0.0` will find `3.0.0`)
+* `Mainline` - Increments the version on every commit for branches configured with `is-main-branch: true`
Each strategy needs to return an instance of `BaseVersion` which has the
following properties:
-* `Source` - Description of the source (e.g., `Merge message 'Merge 'release/3.0.0' into 'main'`)
-* `ShouldIncrement` - Some strategies should have the version incremented,
- others do not (e.g., `ConfigNextVersionBaseVersionStrategy` returns false,
- `HighestTagBaseVersionStrategy` returns true)
-* `SemanticVersion` - SemVer of the base version strategy
-* `BaseVersionSource` - SHA hash of the source. Commits will be counted from
- this hash. Can be null (e.g., `ConfigNextVersionBaseVersionStrategy` returns
- null).
-* `BranchNameOverride` - When `useBranchName` or `{BranchName}` is used in the
- tag configuration, this allows the branch name to be changed by a base version.
- `VersionInBranchBaseVersionStrategy` uses this to strip out anything before the
- first `-` or `/.` so `foo` ends up being evaluated as `foo`. If in doubt, just
- use null.
+* `Source` - Description of the source (e.g., `Merge message 'Merge 'release/3.0.0' into 'main'`)
+* `ShouldIncrement` - Some strategies should have the version incremented,
+ others do not (e.g., `ConfiguredNextVersion` returns false,
+ `TaggedCommit` returns true)
+* `SemanticVersion` - SemVer of the base version strategy
+* `BaseVersionSource` - SHA hash of the source. Commits will be counted from
+ this hash. Can be null (e.g., `ConfiguredNextVersion` returns
+ null).
+* `BranchNameOverride` - When `useBranchName` or `{BranchName}` is used in the
+ tag configuration, this allows the branch name to be changed by a base version.
+ `VersionInBranchName` uses this to strip out anything before the
+ first `-` or `/.` so `foo` ends up being evaluated as `foo`. If in doubt, just
+ use null.
diff --git a/docs/input/docs/learn/intro-to-semver.md b/docs/input/docs/learn/intro-to-semver.md
index 179010169c..43a73646bf 100644
--- a/docs/input/docs/learn/intro-to-semver.md
+++ b/docs/input/docs/learn/intro-to-semver.md
@@ -16,12 +16,12 @@ Version Promiscuity is the opposite problem, **JsonLibrary** releases _v1.1.0_ w
SemVer introduces conventions about breaking changes into our version numbers so we can safely upgrade dependencies without fear of unexpected, breaking changes while still allowing us to upgrade downstream libraries to get new features and bug fixes. The convention is quite simple:
-* `{major}.{minor}.{patch}-{tag}+{buildmetadata}`
-* `{major}` is only incremented if the release has breaking changes (includes bug fixes which have breaking behavioural changes
-* `{minor}` is incremented if the release has new non-breaking features
-* `{patch}` is incremented if the release only contains non-breaking bug fixes
-* `{tag}` is optional and denotes a pre-release of the version preceding
-* `{buildmetadata}` is optional and contains additional information about the version, but **does not affect** the semantic version preceding it.
+* `{major}.{minor}.{patch}-{tag}+{buildmetadata}`
+* `{major}` is only incremented if the release has breaking changes (includes bug fixes which have breaking behavioural changes
+* `{minor}` is incremented if the release has new non-breaking features
+* `{patch}` is incremented if the release only contains non-breaking bug fixes
+* `{tag}` is optional and denotes a pre-release of the version preceding
+* `{buildmetadata}` is optional and contains additional information about the version, but **does not affect** the semantic version preceding it.
Only one number should be incremented per release, and all lower parts should be reset to 0 (if `{major}` is incremented, then `{minor}` and `{patch}` should become 0).
diff --git a/docs/input/docs/learn/who.md b/docs/input/docs/learn/who.md
index bbcaba18a8..ace607d739 100644
--- a/docs/input/docs/learn/who.md
+++ b/docs/input/docs/learn/who.md
@@ -8,19 +8,19 @@ Various people are actively using GitVersion, and taking advantage of the
automatic generation of their version numbers. Here is a list of applications
that we know about today.
-* [Catel](https://github.com/catel/catel)
-* [ChocolateyGUI](https://github.com/chocolatey/ChocolateyGUI)
-* [GitLink](https://github.com/GitTools/GitLink)
-* [OctopusDeploy](https://github.com/OctopusDeploy)
-* [NUKE](https://nuke.build)
-* [Orc.\* packages](https://github.com/wildgums?query=orc)
-* [Orchestra](https://github.com/wildgums/orchestra)
-* [Shouldly](https://github.com/shouldly/shouldly)
-* [Akavache](https://github.com/akavache/akavache)
-* [Splat](https://github.com/paulcbetts/splat)
-* [ReactiveUI](https://github.com/reactiveui/reactiveui)
-* [Uno Platform](https://platform.uno/)
-* [Fluent Assertions](https://fluentassertions.com)
+* [Catel](https://github.com/catel/catel)
+* [ChocolateyGUI](https://github.com/chocolatey/ChocolateyGUI)
+* [GitLink](https://github.com/GitTools/GitLink)
+* [OctopusDeploy](https://github.com/OctopusDeploy)
+* [NUKE](https://nuke.build)
+* [Orc.\* packages](https://github.com/wildgums?query=orc)
+* [Orchestra](https://github.com/wildgums/orchestra)
+* [Shouldly](https://github.com/shouldly/shouldly)
+* [Akavache](https://github.com/akavache/akavache)
+* [Splat](https://github.com/paulcbetts/splat)
+* [ReactiveUI](https://github.com/reactiveui/reactiveui)
+* [Uno Platform](https://platform.uno/)
+* [Fluent Assertions](https://fluentassertions.com)
If you are using GitVersion in your projects, and you are not listed above,
please feel free to add a link to your project.
diff --git a/docs/input/docs/learn/why.md b/docs/input/docs/learn/why.md
index 421db61eee..0b08792e30 100644
--- a/docs/input/docs/learn/why.md
+++ b/docs/input/docs/learn/why.md
@@ -11,28 +11,28 @@ transportable between projects.
It solves:
-* Rebuilding tags always produces the same version
-* Not having to rebuild to increment versions
-* Not duplicating version information in multiple places (branch release/2.0.0
- already has the version in it, why do I need to change something else)
-* Each branch calculates its SemVer and versions flow between branches when
- they are merged
-* Pull requests produce unique pre-release version numbers
-* NuGet semver issues
-* Build server integration
-* Updating assembly info
-* And a whole lot of edge cases you don't want to think about
+* Rebuilding tags always produces the same version
+* Not having to rebuild to increment versions
+* Not duplicating version information in multiple places (branch release/2.0.0
+ already has the version in it, why do I need to change something else)
+* Each branch calculates its SemVer and versions flow between branches when
+ they are merged
+* Pull requests produce unique pre-release version numbers
+* NuGet semver issues
+* Build server integration
+* Updating assembly info
+* And a whole lot of edge cases you don't want to think about
## Advantages vs other approaches
### Version.txt/Version in build script
-* With version.txt/build script, after the release you need to do an additional commit to bump the version
-* After tagging a release, the next build will still be the same version
+* With version.txt/build script, after the release you need to do an additional commit to bump the version
+* After tagging a release, the next build will still be the same version
### Build Server versioning
-* Cannot have different version numbers on different branches
-* Rebuilding will result in a different build number (if using an auto incrementing number in the version)
-* Need to login to the build server to change version number
-* Only build administrators can change the version number
+* Cannot have different version numbers on different branches
+* Rebuilding will result in a different build number (if using an auto incrementing number in the version)
+* Need to login to the build server to change version number
+* Only build administrators can change the version number
diff --git a/docs/input/docs/reference/build-servers/appveyor.md b/docs/input/docs/reference/build-servers/appveyor.md
index d23f0da61d..5cf4199c94 100644
--- a/docs/input/docs/reference/build-servers/appveyor.md
+++ b/docs/input/docs/reference/build-servers/appveyor.md
@@ -8,8 +8,8 @@ RedirectFrom: docs/build-server-support/build-server/appveyor
AppVeyor is the first build server which has a setup helper built into
`GitVersion init`.
-1. Run `GitVersion init`
-2. Choose `Setup build scripts` (currently option 7, but that could change)
-3. Choose `AppVeyor`
-4. Follow the prompts to generate an AppVeyor.yml file which works nicely with
- GitVersion
+1. Run `GitVersion init`
+2. Choose `Setup build scripts` (currently option 7, but that could change)
+3. Choose `AppVeyor`
+4. Follow the prompts to generate an AppVeyor.yml file which works nicely with
+ GitVersion
diff --git a/docs/input/docs/reference/build-servers/azure-devops.md b/docs/input/docs/reference/build-servers/azure-devops.md
index 15fba0b50b..500b15b7b2 100644
--- a/docs/input/docs/reference/build-servers/azure-devops.md
+++ b/docs/input/docs/reference/build-servers/azure-devops.md
@@ -2,172 +2,20 @@
Order: 20
Title: Azure DevOps
Description: |
- Details on the Azure DevOps or Team Foundation Server Build Pipeline support
- in GitVersion
+ Details on the Azure DevOps Build Pipeline support in GitVersion
RedirectFrom: docs/build-server-support/build-server/azure-devops
---
-## Basic Usage
+## Installation and usage
-In Azure DevOps Pipeline (the web based build system) you can call GitVersion
-either using the Command Line build step or install an extension / custom build
-step. The custom build step requires a one-time setup to import the GitVersion
-task into your TFS or Azure DevOps Pipeline instance.
-
-## Executing GitVersion
-
-### Using GitVersion with the MSBuild Task NuGet Package
-
-1. Add the [GitVersionTask](https://www.nuget.org/packages/GitVersionTask/)
- NuGet package to your projects.
-
-See [MSBuild Task](/docs/usage/msbuild) for further instructions how to use
-the MS Build Task.
-
-### Using GitVersion with the Command Line build step
-
-1. Make sure to have GitVersion.exe under version control. There exists also a
- [Chocolatey package](https://chocolatey.org/packages/GitVersion.Portable) for
- installing GitVersion.exe on build agents.
-2. Add a Command Line build step to your build definition. You'll probably want
- to drag the task to be at or near the top to ensure it executes before your
- other build steps.
-3. Set the Tool parameter to `\GitVersion.exe`.
-4. Set the Arguments parameter to `/output buildserver /nofetch`.
-5. If you want the GitVersionTask to update AssemblyInfo files add
- `updateAssemblyInfo true` to the Arguments parameter.
-6. If you want to update the build number you need to send a
- [logging command](https://github.com/microsoft/azure-pipelines-tasks/blob/main/docs/authoring/commands.md)
- to TFS.
-
-### Using the custom GitVersion build step
-
-#### Installing
-
-##### Installing the extension
-
-For Visual Studio Team Service or TFS 2015 Update 2 or higher it is recommended
-to install the GitVersion extension:
-
-1. Install the
- [GitVersion Extension](https://marketplace.visualstudio.com/items?itemName=gittools.usegitversion).
-
-##### Manually installing/updating the custom build step
-
-If you run TFS 2015 RTM or Update 1 or don't want to install the GitVersion
-extension you can install the build task manually:
-
-1. Install the `tfx` command line tool as shown [here](https://github.com/microsoft/tfs-cli/blob/master/README.md#setup).
-2. For TFS 2015 On-Prem configure Basic Authentication in TFS as shown [here](https://github.com/microsoft/tfs-cli/blob/master/docs/configureBasicAuth.md).
-3. Download the GitVersion TFS build task from the latest release on the
- [GitVersion releases page](https://github.com/GitTools/GitVersion/releases) and
- unzip.
-4. Run `tfx login` as shown [here](https://github.com/microsoft/tfs-cli/blob/master/README.md#login).
-5. From the directory outside of where you unzipped the task, run
- `tfx build tasks upload --task-path .\GitVersionVsixTask --overwrite` where
- GitVersionVsixTask is the directory containing the files.
-6. It should successfully install.
-
-#### Using the GitVersion custom build step
-
-From a TFS build definition, select "Add a Step" and then in the Build category,
-choose GitVersion and click Add. You'll probably want to drag the task to be at
-or near the top to ensure it executes before your other build steps.
-
-If you want the GitVersionTask to update AssemblyInfo files, check the box in
-the task configuration. For advanced usage, you can pass additional options to
-the GitVersion exe in the Additional arguments section.
-
-The Azure DevOps Pipeline build step can update your build number with
-GitVersion variables. See below for details.
-
-#### Using Pipelines yaml
-
-Add the following yaml task and variable to your `azure-pipelines.yml` file:
-
-```yml
-variables:
- GitVersion.SemVer: ''
-
-steps:
-- task: UseGitVersion@5
- displayName: gitversion
- inputs:
- versionSpec: '5.x'
- updateAssemblyInfo: true
-```
-
-You can now use the `GitVersion.SemVer` environment variable in any subsequent
-tasks to refer to the semantic version number for your build. For example, you
-can build your dotnet core application with a semantic version number like so:
-
-```yml
-- task: DotNetCoreCLI@2
- displayName: Build
- inputs:
- command: build
- projects: '$(solution)'
- configuration: '$(buildConfiguration)'
- versioningScheme: byEnvVar
- versionEnvVar: 'GitVersion.SemVer'
-
-```
-
-## Running inside TFS
-
-### Using the GitVersion Variables
-
-GitVersion passes variables in the form of `GitVersion.*` (Eg:
-`GitVersion.Major`) to TFS Build and also writes `GITVERSION.*`
-(Eg: `GITVERSION.MAJOR`) environment variables that are available for any
-subsequent build step.
-
-To use these variables you can just refer to them using the standard variable
-syntax. For instance `$(GitVersion.NuGetVersion)` in your nuget pack task to set
-the version number. Since update 1 there are no known limitations.
-
-See [Variables](/docs/reference/variables) for an overview of available variables.
-
-#### Using GitVersion variables in build name
-
-To use GitVersion's variables in the build name, just add them in the form
-`$(GITVERSION_FullSemVer)` into the Build definition's build number string. Then
-just ensure GitVersion is called with `/output buildserver` and it will replace
-those variables with the calculated version. The TFS GitVersion Build Step
-(above) handles this too, so if you're already using that, there's nothing extra
-to configure.
-
-If GitVersion does not find any substitutions it will just default to using `FullSemVer`
+For Azure DevOps Services or Azure DevOps Server you can install the [GitTools Bundle](https://marketplace.visualstudio.com/items?itemName=gittools.gittools).
:::{.alert .alert-danger}
**Important**
-If you currently use `$(rev:.r)` in your build number, that won't
-work correctly if you
-use GitVersion variables as well due to the delayed expansion of the GitVersion
-vars. Instead, you might be able to use `$(GitVersion_BuildMetaData)` to achieve
-a similar result. See [Variables](/docs/reference/variables) for more info on the
-variables.
+You must disable shallow fetch, either in the pipeline settings UI or by setting `fetchDepth: 0` in your `checkout` step;
+without it, Azure DevOps Pipelines will perform a shallow clone, which will cause GitVersion to display an error message.
+See [the Azure DevOps documentation](https://learn.microsoft.com/en-us/azure/devops/pipelines/yaml-schema/steps-checkout?view=azure-pipelines#shallow-fetch) for more information.
:::
-#### Known limitations
-
-* If you are using on premises TFS, make sure you are using at least
- **TFS 2015 Update 1**, otherwise a few things will not work.
-* Installing the extension on an on premise TFS requires at least TFS 2015
- Update 2.
-* You need to make sure that all tags are fetched for the Git repository,
- otherwise you may end with wrong versions (e.g. `FullSemVer` like `1.2.0+5`
- instead of `1.2.0` for tagged releases) Just checking the `Clean Repository`
- check box in the build definition settings might not be enough since this will
- run a `git clean -fdx/reset --hard` without fetching all tags later. You can
- force deletion of the whole folder and a re-clone containing all tags by
- settings the variable `Build.Clean` to `all`. This will take more time during
- build but makes sure that all tags are fetched. In the future it is planned to
- allow using `git.exe` instead of current `libgit2sharp` for syncing the repos
- which might allow other possibilities to solve this issue. For details see this
- [GitHub issue](https://github.com/microsoft/azure-pipelines-tasks/issues/1218).
-* If running a build for a certain commit (through passing the commit SHA while
- queueing the build) all tags from the repository will be fetched, even the ones
- newer than the commit. This can lead to different version numbers while
- re-running historical builds.
+More information can be found at [gittools/actions](https://github.com/GitTools/actions/blob/main/docs/examples/azure/gitversion/index.md).
diff --git a/docs/input/docs/reference/build-servers/bamboo.md b/docs/input/docs/reference/build-servers/bamboo.md
index 71e0ad3ae1..6d0d79a263 100644
--- a/docs/input/docs/reference/build-servers/bamboo.md
+++ b/docs/input/docs/reference/build-servers/bamboo.md
@@ -36,6 +36,6 @@ sed -i '1d;$ d;s/ //;s/"//g;s/,//;s/:/=/' gitversion.txt
**Required Properties**
-* **Path to properties file**: gitversion.txt
-* **Namespace**: GitVersion
-* **Scope of the Variables**: Result
+* **Path to properties file**: gitversion.txt
+* **Namespace**: GitVersion
+* **Scope of the Variables**: Result
diff --git a/docs/input/docs/reference/build-servers/bitbucket-pipelines.md b/docs/input/docs/reference/build-servers/bitbucket-pipelines.md
index 610031ecbe..f2e91f83db 100644
--- a/docs/input/docs/reference/build-servers/bitbucket-pipelines.md
+++ b/docs/input/docs/reference/build-servers/bitbucket-pipelines.md
@@ -1,5 +1,5 @@
---
-Order: 35
+Order: 40
Title: BitBucket Pipelines
Description: Details on the Atlassian BitBucket Pipelines support in GitVersion
---
@@ -16,7 +16,7 @@ in your build step.
An example pipeline is shown below:
```yml
-image: mcr.microsoft.com/dotnet/sdk:6.0
+image: mcr.microsoft.com/dotnet/sdk:8.0
clone:
depth: full
@@ -27,8 +27,8 @@ pipelines:
name: Version and build
script:
- export PATH="$PATH:/root/.dotnet/tools"
- - dotnet tool install --global GitVersion.Tool --version 5.*
- - dotnet-gitversion /buildserver
+ - dotnet tool install --global GitVersion.Tool
+ - dotnet-gitversion /output buildserver
- source gitversion.properties
- echo Building with semver $GITVERSION_FULLSEMVER
- dotnet build
@@ -38,10 +38,10 @@ pipelines:
**Important**
You must set the `clone:depth` setting as shown above; without it, BitBucket Pipelines will perform a shallow clone, which will
-cause GitVersion will display an error message.
+cause GitVersion to display an error message.
:::
-When the action `dotnet-gitversion /buildserver` is executed, it will detect that it is running in BitBucket Pipelines by the presence of
+When the action `dotnet-gitversion /output buildserver` is executed, it will detect that it is running in BitBucket Pipelines by the presence of
the `BITBUCKET_WORKSPACE` environment variable, which is set by the BitBucket Pipelines engine. It will generate a text file named `gitversion.properties`
which contains all the output of the GitVersion tool, exported as individual environment variables prefixed with `GITVERSION_`.
These environment variables can then be imported back into the build step using the `source gitversion.properties` action.
@@ -50,7 +50,7 @@ If you want to share the text file across multiple build steps, then you will ne
is shown below:
```yml
-image: mcr.microsoft.com/dotnet/sdk:6.0
+image: mcr.microsoft.com/dotnet/sdk:8.0
clone:
depth: full
@@ -61,8 +61,8 @@ pipelines:
name: Version
script:
- export PATH="$PATH:/root/.dotnet/tools"
- - dotnet tool install --global GitVersion.Tool --version 5.*
- - dotnet-gitversion /buildserver
+ - dotnet tool install --global GitVersion.Tool
+ - dotnet-gitversion /output buildserver
artifacts:
- gitversion.properties
- step:
diff --git a/docs/input/docs/reference/build-servers/buildkite.md b/docs/input/docs/reference/build-servers/buildkite.md
index 5531690ef1..30c04c14cf 100644
--- a/docs/input/docs/reference/build-servers/buildkite.md
+++ b/docs/input/docs/reference/build-servers/buildkite.md
@@ -1,5 +1,5 @@
---
-Order: 40
+Order: 50
Title: Buildkite
Description: Details on the Buildkite support in GitVersion
RedirectFrom: docs/build-server-support/build-server/buildkite
@@ -10,8 +10,9 @@ If you use [Buildkite][buildkite] then you will have to use GitVersion from the
## Gotchas
By default Buildkite calls `git fetch` with the flags `-v --prune` which can cause issues on new build agents since branches or tags might not be available locally on the build agent when GitVersion runs. This can be fixed by altering the [Buildkite agent configuration][configuration] either by:
-* Setting the environment variable `BUILDKITE_GIT_FETCH_FLAGS` to `-v --tags`
-* Setting configuration value `git-fetch-flags` to `-v --tags` in your agent configuration file
+
+* Setting the environment variable `BUILDKITE_GIT_FETCH_FLAGS` to `-v --tags`
+* Setting configuration value `git-fetch-flags` to `-v --tags` in your agent configuration file
If you are running GitVersion in a docker container make sure to propagate the `BUILDKITE`, `BUILDKITE_BRANCH`, and `BUILDKITE_PULL_REQUEST` environment variables (c.f. example below).
@@ -49,6 +50,9 @@ eval $(gitversion | jq -r 'to_entries[] | "buildkite-agent meta-data set GitVers
Assuming your Buildkite agent has dotnet and gitversion installed and on the path, all the calculated GitVersion variables will have a corresponding meta-data key set.
[buildkite]: https://buildkite.com/
+
[configuration]: https://buildkite.com/docs/agent/v3/hooks
+
[hooks]: https://buildkite.com/docs/agent/v3/hooks
+
[meta-data]: https://buildkite.com/docs/agent/v3/cli-meta-data
diff --git a/docs/input/docs/reference/build-servers/continua.md b/docs/input/docs/reference/build-servers/continua.md
index 3605084d18..e2af69c06e 100644
--- a/docs/input/docs/reference/build-servers/continua.md
+++ b/docs/input/docs/reference/build-servers/continua.md
@@ -1,5 +1,5 @@
---
-Order: 50
+Order: 60
Title: Continua CI
Description: Details on the Continua CI support in GitVersion
RedirectFrom: docs/build-server-support/build-server/continua
@@ -13,47 +13,47 @@ This guide assumes a few variables are present in the configuration. Note that
this example uses `Catel` as repository name, but it should be replaced by the
name of the repository where GitVersion is running against.
-* RepositoryBranchName => $Source.Catel.BranchName$
-* RepositoryCommitId => $Source.Catel.LatestChangeset.Id$
-* RepositoryName => Catel
-* RepositoryName => $Source.Catel.Path$
-* RepositoryUrl => $Source.Catel.Url$
+* RepositoryBranchName => $Source.Catel.BranchName$
+* RepositoryCommitId => $Source.Catel.LatestChangeset.Id$
+* RepositoryName => Catel
+* RepositoryName => $Source.Catel.Path$
+* RepositoryUrl => $Source.Catel.Url$
It also requires a few variables which will automatically be filled by
GitVersion. The example below are just a few, any of the GitVersion variables
written to the output can be used.
-* GitVersion_FullSemVer
-* GitVersion_MajorMinorPatch
-* GitVersion_NuGetVersion
+* GitVersion\_FullSemVer
+* GitVersion\_MajorMinorPatch
+* GitVersion\_NuGetVersion
You also need to add a property collector for the agents to detect the
GitVersion tool on the agents:
-* Namespace => GitVersion
-* Run On => Agent
-* Type => Path Finder Plugin
-* Property Name => Path
-* Executable => GitVersion.exe
-* Search paths => your installation folder (e.g. `C:\Tools\GitVersion` or if you
- are using Chocolatey `C:\ProgramData\chocolatey\lib\GitVersion.Portable\tools`)
+* Namespace => GitVersion
+* Run On => Agent
+* Type => Path Finder Plugin
+* Property Name => Path
+* Executable => GitVersion.exe
+* Search paths => your installation folder (e.g. `C:\Tools\GitVersion` or if you
+ are using Chocolatey `C:\ProgramData\chocolatey\lib\GitVersion.Portable\tools`)
## Basic Usage
To run GitLink inside [Continua CI](https://www.finalbuilder.com/continua-ci),
follow the steps below:
-* Add a new `Execute Program` step to a stage
-* In the `Execute Program` tab, set the following values:
- * Executable path: $Agent.GitVersion.Path$
- * Working directory: %RepositoryPath%
-* In the `Arguments` tab, set the following values:
- * Arguments: /url %RepositoryUrl% /b %RepositoryBranchName% /c %RepositoryCommitId% /output buildserver
-* In the `Options` tab, set the following values:
- * Wait for completion: checked
- * Log output: checked
- * Check program exit code: checked
- * Exit code must be: equal to
- * Exit code: 0
+* Add a new `Execute Program` step to a stage
+* In the `Execute Program` tab, set the following values:
+ * Executable path: $Agent.GitVersion.Path$
+ * Working directory: %RepositoryPath%
+* In the `Arguments` tab, set the following values:
+ * Arguments: /url %RepositoryUrl% /b %RepositoryBranchName% /c %RepositoryCommitId% /output buildserver
+* In the `Options` tab, set the following values:
+ * Wait for completion: checked
+ * Log output: checked
+ * Check program exit code: checked
+ * Exit code must be: equal to
+ * Exit code: 0
Now GitVersion will automatically run and fill the `GitVersion_` variables.
diff --git a/docs/input/docs/reference/build-servers/github-actions.md b/docs/input/docs/reference/build-servers/github-actions.md
new file mode 100644
index 0000000000..77ae3a9023
--- /dev/null
+++ b/docs/input/docs/reference/build-servers/github-actions.md
@@ -0,0 +1,19 @@
+---
+Order: 70
+Title: GitHub Actions
+Description: |
+ Details on the GitHub Actions Workflow support in GitVersion
+---
+
+## Installation and usage
+
+For GitHub Actions you can install the action from [GitTools Bundle](https://github.com/marketplace/actions/gittools).
+
+:::{.alert .alert-danger}
+**Important**
+
+You must disable shallow fetch by setting `fetch-depth: 0` in your `checkout` step;
+without it, GitHub Actions might perform a shallow clone, which will cause GitVersion to display an error message.
+:::
+
+More information can be found at [gittools/actions](https://github.com/GitTools/actions/blob/main/docs/examples/github/gitversion/index.md).
diff --git a/docs/input/docs/reference/build-servers/gitlab.md b/docs/input/docs/reference/build-servers/gitlab.md
index b9495856e7..aa97d9e5fd 100755
--- a/docs/input/docs/reference/build-servers/gitlab.md
+++ b/docs/input/docs/reference/build-servers/gitlab.md
@@ -1,5 +1,5 @@
---
-Order: 60
+Order: 80
Title: GitLab CI
Description: Details on the GitLab CI support in GitVersion
RedirectFrom: docs/build-server-support/build-server/gitlab
@@ -13,22 +13,29 @@ A working example of integrating GitVersion with GitLab is maintained in the pro
Here is a summary of what it demonstrated (many more details in the [Readme][readme])
-- Is a reusable working example known as a Guided Exploration ([Guided Exploration Manifesto][guided-exploration-manifesto]) - so job logs and package artifacts can be reviewed. The project can also be imported to your own GitLab group or instance as a starting point for your own work.
-- IMPORTANT: It demonstrates how to override GitLab CI's default cloning behavior so that GitVersion can do a dynamic copy. Selectively clones GitVersion.yml so that these settings take effect. This best practice demonstrates the best way to do this while avoiding a double-cloning of the project (once by GitLab Runner and once by GitVersion).
-- Implements GitVersion as a CI/CD Extension that can be reused across many projects using includes.
-- Implements GitVersion as a single job that runs the GitVersion container and passes the version number downstream into both _pipeline_ and _job_ level variables, which means...
-- It can be used with ANY coding language, framework or packaging engine.
-- Generates example packaged artifacts:
- - Two ways of building Sem Versioned NuGet packages (msbuild-ish and nuget.exe-ish) and uploads them and tests them from a [GitLab NuGet Repository][gitlab-nuget-repository].
- - A Sem Versioned [GitLab Generic Package][gitlab-generic-package]
- - A Sem Versioned docker container and uploads to [GitLab Container Registry][gitlab-container-registry].
-- It creates a Sem Versioned [GitLab Release][gitlab-release-help] and Git tag using the [GitLab Release Cli][gitlab-release-cli] and links the generic package as evidence.
+* Is a reusable working example known as a Guided Exploration ([Guided Exploration Manifesto][guided-exploration-manifesto]) - so job logs and package artifacts can be reviewed. The project can also be imported to your own GitLab group or instance as a starting point for your own work.
+* IMPORTANT: It demonstrates how to override GitLab CI's default cloning behavior so that GitVersion can do a dynamic copy. Selectively clones GitVersion.yml so that these settings take effect. This best practice demonstrates the best way to do this while avoiding a double-cloning of the project (once by GitLab Runner and once by GitVersion).
+* Implements GitVersion as a CI/CD Extension that can be reused across many projects using includes.
+* Implements GitVersion as a single job that runs the GitVersion container and passes the version number downstream into both _pipeline_ and _job_ level variables, which means...
+* It can be used with ANY coding language, framework or packaging engine.
+* Generates example packaged artifacts:
+ * Two ways of building Sem Versioned NuGet packages (msbuild-ish and nuget.exe-ish) and uploads them and tests them from a [GitLab NuGet Repository][gitlab-nuget-repository].
+ * A Sem Versioned [GitLab Generic Package][gitlab-generic-package]
+ * A Sem Versioned docker container and uploads to [GitLab Container Registry][gitlab-container-registry].
+* It creates a Sem Versioned [GitLab Release][gitlab-release-help] and Git tag using the [GitLab Release Cli][gitlab-release-cli] and links the generic package as evidence.
[gitlab-generic-package]: https://docs.gitlab.com/ee/user/packages/generic_packages/
+
[gitlab-nuget-repository]: https://docs.gitlab.com/ee/user/packages/nuget_repository/
+
[gitlab-release-cli]: https://gitlab.com/gitlab-org/release-cli/-/tree/master/docs
+
[gitlab-container-registry]: https://docs.gitlab.com/ee/user/packages/container_registry/
+
[guided-exploration-manifesto]: https://gitlab.com/guided-explorations/guided-exploration-concept/-/blob/master/README.md
+
[readme]: https://gitlab.com/guided-explorations/devops-patterns/utterly-automated-versioning/-/blob/develop/README.md
+
[utterly-automated-versioning]: https://gitlab.com/guided-explorations/devops-patterns/utterly-automated-versioning/
+
[gitlab-release-help]: https://docs.gitlab.com/ee/user/project/releases/
diff --git a/docs/input/docs/reference/build-servers/jenkins.md b/docs/input/docs/reference/build-servers/jenkins.md
index 46b6355a29..93eb9cb6ab 100644
--- a/docs/input/docs/reference/build-servers/jenkins.md
+++ b/docs/input/docs/reference/build-servers/jenkins.md
@@ -1,5 +1,5 @@
---
-Order: 70
+Order: 90
Title: Jenkins
Description: Details on the Jenkins support in GitVersion
RedirectFrom: docs/build-server-support/build-server/jenkins
@@ -9,13 +9,13 @@ RedirectFrom: docs/build-server-support/build-server/jenkins
When setting up a Jenkins project for GitVersion, it is necessary to add a few _Behaviors_ to the SCM settings to ensure that GitVersion has enough information:
-* Advanced clone behaviors
- * Enable `Fetch tags`
- * Enable `Honor refspec on intial clone`
-* Check out to matching local branch
-* Prune stale remote-tracking branches
-* Specify ref specs
- * Ref Spec: `+refs/heads/*:refs/remotes/@{remote}/*`
+* Advanced clone behaviors
+ * Enable `Fetch tags`
+ * Enable `Honor refspec on intial clone`
+* Check out to matching local branch
+* Prune stale remote-tracking branches
+* Specify ref specs
+ * Ref Spec: `+refs/heads/*:refs/remotes/@{remote}/*`
## Usage
@@ -30,10 +30,10 @@ Jenkins plugins exist that provide this functionality. Of these plugins
To inject the GitVersion variables as environment variables for a build job
using [EnvInject][env-inject], do the following:
-1. Add an **Execute Windows batch command** build step with _Command_:
- `gitversion /output buildserver`
-2. Add an **Inject environment variables** build step and use value
- 'gitversion.properties' for the _Properties File Path_ parameter
+1. Add an **Execute Windows batch command** build step with _Command_:
+ `gitversion /output buildserver`
+2. Add an **Inject environment variables** build step and use value
+ 'gitversion.properties' for the _Properties File Path_ parameter
This assumes GitVersion.exe is available on the command line.
@@ -55,13 +55,13 @@ For pipeline projects, GitVersion variables can be accessed by reading the `gitv
In a pipeline stage:
-1. Run GitVersion with the flag for _buildserver_ output (this only works when run from Jenkins, specifically when the `JENKINS_URL` environment variable is defined):
+1. Run GitVersion with the flag for _buildserver_ output (this only works when run from Jenkins, specifically when the `JENKINS_URL` environment variable is defined):
```groovy
sh 'gitversion /output buildserver'`
```
-2. Add a script block to read the properties file, assign environment variables as needed:
+2. Add a script block to read the properties file, assign environment variables as needed:
```groovy
script {
@@ -76,4 +76,5 @@ script {
```
[env-inject]: https://wiki.jenkins-ci.org/display/JENKINS/EnvInject+Plugin
+
[pipeline-utility-steps]: https://plugins.jenkins.io/pipeline-utility-steps
diff --git a/docs/input/docs/reference/build-servers/myget.md b/docs/input/docs/reference/build-servers/myget.md
index 383d61408a..895862c2a9 100644
--- a/docs/input/docs/reference/build-servers/myget.md
+++ b/docs/input/docs/reference/build-servers/myget.md
@@ -1,5 +1,5 @@
---
-Order: 80
+Order: 100
Title: MyGet
Description: Details on the MyGet support in GitVersion
RedirectFrom: docs/build-server-support/build-server/myget
@@ -8,18 +8,18 @@ RedirectFrom: docs/build-server-support/build-server/myget
MyGet Build Services has built-in support for GitVersion and is encouraging you
to leverage GitVersion + GitFlow to produce Semantically Versioned packages.
-* Create a [custom build script](https://docs.myget.org/docs/reference/custom-build-scripts):
- we advise to run a tool like GitVersion in a _pre-build_ script, so that it can
- set additional environment variables for the actual build script. MyGet
- [by convention](https://docs.myget.org/docs/reference/build-services#Pre-\_and_post-build_steps)
- automatically picks up any of the following file names as pre-build script:
- * `pre-build.(bat|cmd|ps1)`
- * `pre-myget.(bat|cmd|ps1)`
-* Run `GitVersion /output buildserver`: this will cause MyGet Build Services to
- set the current `%PackageVersion%` value to the NuGet-compatible SemVer
- generated by GitVersion and apply this [MyGet Environment Variable](https://docs.myget.org/docs/reference/build-services#Available_Environment_Variables)
- wherever it is used during the build process.
-* Ensure the build script has been pushed to your source repository root. Done :)
+* Create a [custom build script](https://docs.myget.org/docs/reference/custom-build-scripts):
+ we advise to run a tool like GitVersion in a _pre-build_ script, so that it can
+ set additional environment variables for the actual build script. MyGet
+ [by convention](https://docs.myget.org/docs/reference/build-services#Pre-_and_post-build_steps)
+ automatically picks up any of the following file names as pre-build script:
+ * `pre-build.(bat|cmd|ps1)`
+ * `pre-myget.(bat|cmd|ps1)`
+* Run `GitVersion /output buildserver`: this will cause MyGet Build Services to
+ set the current `%PackageVersion%` value to the NuGet-compatible SemVer
+ generated by GitVersion and apply this [MyGet Environment Variable](https://docs.myget.org/docs/reference/build-services#Available_Environment_Variables)
+ wherever it is used during the build process.
+* Ensure the build script has been pushed to your source repository root. Done :)
:::{.alert .alert-info}
**Note**
diff --git a/docs/input/docs/reference/build-servers/octopus-deploy.md b/docs/input/docs/reference/build-servers/octopus-deploy.md
index 79ce4035cd..e7d50ff3e0 100644
--- a/docs/input/docs/reference/build-servers/octopus-deploy.md
+++ b/docs/input/docs/reference/build-servers/octopus-deploy.md
@@ -1,5 +1,5 @@
---
-Order: 90
+Order: 110
Title: Octopus Deploy
Description: Details on the Octopus Deploy support in GitVersion
RedirectFrom: docs/build-server-support/build-server/octopus-deploy
@@ -35,15 +35,15 @@ depending on which build server you have this approach may or may not work for
you. For instance in TFS Build vNext you cannot chain builds to publish
artifacts built in one build in another.
-1. Your CI build creates the stable NuGet package
+1. Your CI build creates the stable NuGet package
-* Do _not_ publish this package into the Octopus nuget feed
+ * Do _not_ publish this package into the Octopus nuget feed
-2. When you want to push a package into the Octopus deployment pipeline you trigger the second build
+2. When you want to push a package into the Octopus deployment pipeline you trigger the second build
-* it will either take the package built from the first build in the chain (your CI build?) or rebuild
-* It will publish that package into the Octopus deploy feed
-* The build then is _tagged_ with the version, this will cause GitVersion to increment the version
+ * it will either take the package built from the first build in the chain (your CI build?) or rebuild
+ * It will publish that package into the Octopus deploy feed
+ * The build then is _tagged_ with the version, this will cause GitVersion to increment the version
This means that CI builds are _not_ available to Octopus deploy, there will be a
manual build in your _build server_ which pushes the package to Octopus deploy.
@@ -52,15 +52,15 @@ manual build in your _build server_ which pushes the package to Octopus deploy.
Another simple option is to tag a stable version to release, the basic idea is:
-1. GitVersion is set to continuous deployment mode, so main will create `-ci.x`
- pre-release builds
-2. CI Builds only create NuGet packages for stable builds
-3. You tag main with a stable version of the next version then push it
-4. The CI build triggers, GitVersion will always respect tags so you will get a
- stable version
-5. The stable package will be pushed to Octopus
-6. Because of the tag, then next build will be incremented and will be producing
- pre-release packages of the next build
+1. GitVersion is set to continuous deployment mode, so main will create `-ci.x`
+ pre-release builds
+2. CI Builds only create NuGet packages for stable builds
+3. You tag main with a stable version of the next version then push it
+4. The CI build triggers, GitVersion will always respect tags so you will get a
+ stable version
+5. The stable package will be pushed to Octopus
+6. Because of the tag, then next build will be incremented and will be producing
+ pre-release packages of the next build
#### Script to create the release
@@ -179,4 +179,5 @@ will burn multiple versions per release. This might not be an issue for you, but
can confuse consumers of your library as the version has semantic meaning.
[continuous-delivery]: /docs/reference/modes/continuous-delivery
+
[increment-per-commit]: /docs/reference/version-increments#incrementing-per-commit
diff --git a/docs/input/docs/reference/build-servers/teamcity.md b/docs/input/docs/reference/build-servers/teamcity.md
index 55d663cc8d..60f84f5129 100644
--- a/docs/input/docs/reference/build-servers/teamcity.md
+++ b/docs/input/docs/reference/build-servers/teamcity.md
@@ -1,5 +1,5 @@
---
-Order: 100
+Order: 120
Title: TeamCity
Description: Details on the TeamCity support in GitVersion
RedirectFrom: docs/build-server-support/build-server/teamcity
@@ -9,10 +9,10 @@ RedirectFrom: docs/build-server-support/build-server/teamcity
In [TeamCity][teamcity] you can create a build step as follows:
-* **Runner type:** Command Line
-* **Run:** Executable with parameters
-* **Command executable:** `GitVersion.exe`
-* **Command parameters:** `/output buildserver /updateassemblyinfo true`
+* **Runner type:** Command Line
+* **Run:** Executable with parameters
+* **Command executable:** `GitVersion.exe`
+* **Command parameters:** `/output buildserver /updateassemblyinfo true`
Then in your build parameters simply [add a placeholder](#nuget-in-teamcity) of
the GitVersion variables you would like to use.
@@ -61,24 +61,24 @@ See [dynamic repositories][dynamic-repo] for more info.
### Output
-* We update the TC build number to the GitVersion number automatically
-* We output the individual values of the GitVersion version variables as build
- parameters with format `GitVersion.*` (Eg: `GitVersion.Major`) if you need
- access to them in your build script. Being system variables they will be passed
- as msbuild/environmental variables to other build steps
+* We update the TC build number to the GitVersion number automatically
+* We output the individual values of the GitVersion version variables as build
+ parameters with format `GitVersion.*` (Eg: `GitVersion.Major`) if you need
+ access to them in your build script. Being system variables they will be passed
+ as msbuild/environmental variables to other build steps
### NuGet in TeamCity
-* Add a dummy [parameter][parameter] to the project called `GitVersion.NuGetVersion`. If
- many of your projects uses git-flow and SemVer you can add the parameter to
- the "root-project" (TeamCity 8.x+). You need a dummy param because
- GitVersion creates the variables at runtime, and you cannot reference a
- parameter which is not available statically. GitVersion will overwrite the
- dummy value.
-* Then setup you nuget pack build set the "version" to
- `%GitVersion.NuGetVersion%`.
-* If you do your pack in a build script then you can just use environmental
- variables because teamcity will pass them through automatically.
+* Add a dummy [parameter][parameter] to the project called `GitVersion.NuGetVersion`. If
+ many of your projects uses git-flow and SemVer you can add the parameter to
+ the "root-project" (TeamCity 8.x+). You need a dummy param because
+ GitVersion creates the variables at runtime, and you cannot reference a
+ parameter which is not available statically. GitVersion will overwrite the
+ dummy value.
+* Then setup you nuget pack build set the "version" to
+ `%GitVersion.NuGetVersion%`.
+* If you do your pack in a build script then you can just use environmental
+ variables because teamcity will pass them through automatically.
### When TeamCity -> GitHub can't use https
@@ -101,11 +101,16 @@ Sorry
## Guides
-* [Continuous Delivery Setup in TeamCity][cd]
+* [Continuous Delivery Setup in TeamCity][cd]
[cd]: https://jake.ginnivan.net/blog/2014/07/09/my-typical-teamcity-build-setup
+
[dynamic-repo]: /docs/learn/dynamic-repositories
+
[general-settings]: https://www.jetbrains.com/help/teamcity/git.html#General+Settings
+
[parameter]: https://confluence.jetbrains.com/display/TCD8/Configuring+Build+Parameters
+
[teamcity]: https://www.jetbrains.com/teamcity/
+
[meta-runner]: https://github.com/JetBrains/meta-runner-power-pack/tree/master/gitversion
diff --git a/docs/input/docs/reference/configuration.md b/docs/input/docs/reference/configuration.md
index 6db30871b3..9c4dd1a8f6 100644
--- a/docs/input/docs/reference/configuration.md
+++ b/docs/input/docs/reference/configuration.md
@@ -8,16 +8,6 @@ RedirectFrom: docs/configuration
GitVersion, starting from version 3.0, is mainly powered by configuration and no
longer has branching strategies hard-coded.
-## Configuration tool
-
-If you run `gitversion init`, GitVersion will launch into a configuration tool,
-which can help you configure GitVersion the way you want it.
-
-Once complete, the `init` command will create a `GitVersion.yml` file in the
-working directory. It can be the root repository directory or any subdirectory
-in case you have a single repository for more than one project or are restricted
-to commit into a subdirectory.
-
:::{.alert .alert-info}
**Note**
@@ -31,41 +21,438 @@ found that is generally what is needed when using GitFlow.
To see the effective configuration (defaults and overrides), you can run
`gitversion /showConfig`.
-To create your config file just type `gitversion init` in your repo directory,
-after [installing][installing]. A minimal `GitVersion.yml` configuration file will be
-created. Modify this to suit your needs.
-
## Global configuration
-The global configuration looks like this:
+The following supported workflow configurations are available in GitVersion and can be referenced by the workflow property:
+
+* GitFlow (GitFlow/v1)
+* GitHubFlow (GitHubFlow/v1)
+* TrunkBased (TrunkBased/preview1)
+
+Example of using a `GitHubFlow` workflow with a different `tag-prefix`:
```yaml
-next-version: 1.0
+workflow: GitHubFlow/v1
+tag-prefix: '[abc]'
+```
+
+The built-in configuration for the `GitFlow` workflow (`workflow: GitFlow/v1`) looks like:
+
+
+
+```yml
assembly-versioning-scheme: MajorMinorPatch
assembly-file-versioning-scheme: MajorMinorPatch
-assembly-informational-format: '{InformationalVersion}'
+tag-prefix: '[vV]?'
+version-in-branch-pattern: (?[vV]?\d+(\.\d+)?(\.\d+)?).*
+major-version-bump-message: \+semver:\s?(breaking|major)
+minor-version-bump-message: \+semver:\s?(feature|minor)
+patch-version-bump-message: \+semver:\s?(fix|patch)
+no-bump-message: \+semver:\s?(none|skip)
+tag-pre-release-weight: 60000
+commit-date-format: yyyy-MM-dd
+merge-message-formats: {}
+update-build-number: true
+semantic-version-format: Strict
+strategies:
+- Fallback
+- ConfiguredNextVersion
+- MergeMessage
+- TaggedCommit
+- TrackReleaseBranches
+- VersionInBranchName
+branches:
+ develop:
+ mode: ContinuousDelivery
+ label: alpha
+ increment: Minor
+ prevent-increment:
+ when-current-commit-tagged: false
+ track-merge-target: true
+ track-merge-message: true
+ regex: ^dev(elop)?(ment)?$
+ source-branches:
+ - main
+ is-source-branch-for: []
+ tracks-release-branches: true
+ is-release-branch: false
+ is-main-branch: false
+ pre-release-weight: 0
+ main:
+ label: ''
+ increment: Patch
+ prevent-increment:
+ of-merged-branch: true
+ track-merge-target: false
+ track-merge-message: true
+ regex: ^master$|^main$
+ source-branches: []
+ is-source-branch-for: []
+ tracks-release-branches: false
+ is-release-branch: false
+ is-main-branch: true
+ pre-release-weight: 55000
+ release:
+ mode: ManualDeployment
+ label: beta
+ increment: Minor
+ prevent-increment:
+ of-merged-branch: true
+ when-current-commit-tagged: false
+ track-merge-target: false
+ regex: ^releases?[\/-](?.+)
+ source-branches:
+ - main
+ - support
+ is-source-branch-for: []
+ tracks-release-branches: false
+ is-release-branch: true
+ is-main-branch: false
+ pre-release-weight: 30000
+ feature:
+ mode: ManualDeployment
+ label: '{BranchName}'
+ increment: Inherit
+ prevent-increment:
+ when-current-commit-tagged: false
+ track-merge-message: true
+ regex: ^features?[\/-](?.+)
+ source-branches:
+ - develop
+ - main
+ - release
+ - support
+ - hotfix
+ is-source-branch-for: []
+ is-main-branch: false
+ pre-release-weight: 30000
+ pull-request:
+ mode: ContinuousDelivery
+ label: PullRequest{Number}
+ increment: Inherit
+ prevent-increment:
+ of-merged-branch: true
+ when-current-commit-tagged: false
+ track-merge-message: true
+ regex: ^(pull-requests|pull|pr)[\/-](?\d*)
+ source-branches:
+ - develop
+ - main
+ - release
+ - feature
+ - support
+ - hotfix
+ is-source-branch-for: []
+ pre-release-weight: 30000
+ hotfix:
+ mode: ManualDeployment
+ label: beta
+ increment: Inherit
+ prevent-increment:
+ when-current-commit-tagged: false
+ regex: ^hotfix(es)?[\/-](?.+)
+ source-branches:
+ - main
+ - support
+ is-source-branch-for: []
+ is-release-branch: true
+ is-main-branch: false
+ pre-release-weight: 30000
+ support:
+ label: ''
+ increment: Patch
+ prevent-increment:
+ of-merged-branch: true
+ track-merge-target: false
+ regex: ^support[\/-](?.+)
+ source-branches:
+ - main
+ is-source-branch-for: []
+ tracks-release-branches: false
+ is-release-branch: false
+ is-main-branch: true
+ pre-release-weight: 55000
+ unknown:
+ mode: ManualDeployment
+ label: '{BranchName}'
+ increment: Inherit
+ prevent-increment:
+ when-current-commit-tagged: true
+ regex: (?.+)
+ source-branches:
+ - main
+ - develop
+ - release
+ - feature
+ - pull-request
+ - hotfix
+ - support
+ is-source-branch-for: []
+ is-main-branch: false
+ignore:
+ sha: []
+ paths: []
mode: ContinuousDelivery
+label: '{BranchName}'
increment: Inherit
-continuous-delivery-fallback-tag: ci
-tag-prefix: '[vV]'
-major-version-bump-message: '\+semver:\s?(breaking|major)'
-minor-version-bump-message: '\+semver:\s?(feature|minor)'
-patch-version-bump-message: '\+semver:\s?(fix|patch)'
-no-bump-message: '\+semver:\s?(none|skip)'
-legacy-semver-padding: 4
-build-metadata-padding: 4
-commits-since-version-source-padding: 4
-tag-pre-release-weight: 60000
+prevent-increment:
+ of-merged-branch: false
+ when-branch-merged: false
+ when-current-commit-tagged: true
+track-merge-target: false
+track-merge-message: true
commit-message-incrementing: Enabled
+regex: ''
+source-branches: []
+is-source-branch-for: []
+tracks-release-branches: false
+is-release-branch: false
+is-main-branch: false
+```
+snippet source | anchor
+
+
+The supported built-in configuration for the `GitHubFlow` workflow (`workflow: GitHubFlow/v1`) looks like:
+
+
+
+```yml
+assembly-versioning-scheme: MajorMinorPatch
+assembly-file-versioning-scheme: MajorMinorPatch
+tag-prefix: '[vV]?'
+version-in-branch-pattern: (?[vV]?\d+(\.\d+)?(\.\d+)?).*
+major-version-bump-message: \+semver:\s?(breaking|major)
+minor-version-bump-message: \+semver:\s?(feature|minor)
+patch-version-bump-message: \+semver:\s?(fix|patch)
+no-bump-message: \+semver:\s?(none|skip)
+tag-pre-release-weight: 60000
+commit-date-format: yyyy-MM-dd
+merge-message-formats: {}
+update-build-number: true
+semantic-version-format: Strict
+strategies:
+- Fallback
+- ConfiguredNextVersion
+- MergeMessage
+- TaggedCommit
+- TrackReleaseBranches
+- VersionInBranchName
+branches:
+ main:
+ label: ''
+ increment: Patch
+ prevent-increment:
+ of-merged-branch: true
+ track-merge-target: false
+ track-merge-message: true
+ regex: ^master$|^main$
+ source-branches: []
+ is-source-branch-for: []
+ tracks-release-branches: false
+ is-release-branch: false
+ is-main-branch: true
+ pre-release-weight: 55000
+ release:
+ mode: ManualDeployment
+ label: beta
+ increment: Patch
+ prevent-increment:
+ of-merged-branch: true
+ when-branch-merged: false
+ when-current-commit-tagged: false
+ track-merge-target: false
+ track-merge-message: true
+ regex: ^releases?[\/-](?.+)
+ source-branches:
+ - main
+ is-source-branch-for: []
+ tracks-release-branches: false
+ is-release-branch: true
+ is-main-branch: false
+ pre-release-weight: 30000
+ feature:
+ mode: ManualDeployment
+ label: '{BranchName}'
+ increment: Inherit
+ prevent-increment:
+ when-current-commit-tagged: false
+ track-merge-message: true
+ regex: ^features?[\/-](?.+)
+ source-branches:
+ - main
+ - release
+ is-source-branch-for: []
+ is-main-branch: false
+ pre-release-weight: 30000
+ pull-request:
+ mode: ContinuousDelivery
+ label: PullRequest{Number}
+ increment: Inherit
+ prevent-increment:
+ of-merged-branch: true
+ when-current-commit-tagged: false
+ track-merge-message: true
+ regex: ^(pull-requests|pull|pr)[\/-](?\d*)
+ source-branches:
+ - main
+ - release
+ - feature
+ is-source-branch-for: []
+ pre-release-weight: 30000
+ unknown:
+ mode: ManualDeployment
+ label: '{BranchName}'
+ increment: Inherit
+ prevent-increment:
+ when-current-commit-tagged: false
+ track-merge-message: false
+ regex: (?.+)
+ source-branches:
+ - main
+ - release
+ - feature
+ - pull-request
+ is-source-branch-for: []
+ is-main-branch: false
ignore:
sha: []
- commits-before: yyyy-MM-ddTHH:mm:ss
+ paths: []
+mode: ContinuousDelivery
+label: '{BranchName}'
+increment: Inherit
+prevent-increment:
+ of-merged-branch: false
+ when-branch-merged: false
+ when-current-commit-tagged: true
+track-merge-target: false
+track-merge-message: true
+commit-message-incrementing: Enabled
+regex: ''
+source-branches: []
+is-source-branch-for: []
+tracks-release-branches: false
+is-release-branch: false
+is-main-branch: false
+```
+snippet source | anchor
+
+
+The preview built-in configuration (experimental usage only) for the `TrunkBased` workflow (`workflow: TrunkBased/preview1`) looks like:
+
+
+
+```yml
+assembly-versioning-scheme: MajorMinorPatch
+assembly-file-versioning-scheme: MajorMinorPatch
+tag-prefix: '[vV]?'
+version-in-branch-pattern: (?[vV]?\d+(\.\d+)?(\.\d+)?).*
+major-version-bump-message: \+semver:\s?(breaking|major)
+minor-version-bump-message: \+semver:\s?(feature|minor)
+patch-version-bump-message: \+semver:\s?(fix|patch)
+no-bump-message: \+semver:\s?(none|skip)
+tag-pre-release-weight: 60000
+commit-date-format: yyyy-MM-dd
merge-message-formats: {}
update-build-number: true
+semantic-version-format: Strict
+strategies:
+- ConfiguredNextVersion
+- Mainline
+branches:
+ main:
+ mode: ContinuousDeployment
+ label: ''
+ increment: Patch
+ prevent-increment:
+ of-merged-branch: true
+ track-merge-target: false
+ track-merge-message: true
+ regex: ^master$|^main$
+ source-branches: []
+ is-source-branch-for: []
+ tracks-release-branches: false
+ is-release-branch: false
+ is-main-branch: true
+ pre-release-weight: 55000
+ feature:
+ mode: ContinuousDelivery
+ label: '{BranchName}'
+ increment: Minor
+ prevent-increment:
+ when-current-commit-tagged: false
+ track-merge-message: true
+ regex: ^features?[\/-](?.+)
+ source-branches:
+ - main
+ is-source-branch-for: []
+ is-main-branch: false
+ pre-release-weight: 30000
+ hotfix:
+ mode: ContinuousDelivery
+ label: '{BranchName}'
+ increment: Patch
+ prevent-increment:
+ when-current-commit-tagged: false
+ regex: ^hotfix(es)?[\/-](?.+)
+ source-branches:
+ - main
+ is-source-branch-for: []
+ is-release-branch: true
+ is-main-branch: false
+ pre-release-weight: 30000
+ pull-request:
+ mode: ContinuousDelivery
+ label: PullRequest{Number}
+ increment: Inherit
+ prevent-increment:
+ of-merged-branch: true
+ when-current-commit-tagged: false
+ track-merge-message: true
+ regex: ^(pull-requests|pull|pr)[\/-](?\d*)
+ source-branches:
+ - main
+ - feature
+ - hotfix
+ is-source-branch-for: []
+ pre-release-weight: 30000
+ unknown:
+ increment: Patch
+ prevent-increment:
+ when-current-commit-tagged: false
+ regex: (?.+)
+ source-branches:
+ - main
+ is-source-branch-for: []
+ pre-release-weight: 30000
+ignore:
+ sha: []
+ paths: []
+mode: ContinuousDelivery
+label: '{BranchName}'
+increment: Inherit
+prevent-increment:
+ of-merged-branch: false
+ when-branch-merged: false
+ when-current-commit-tagged: true
+track-merge-target: false
+track-merge-message: true
+commit-message-incrementing: Enabled
+regex: ''
+source-branches: []
+is-source-branch-for: []
+tracks-release-branches: false
+is-release-branch: false
+is-main-branch: false
```
+snippet source | anchor
+
The details of the available options are as follows:
+### workflow
+
+The base template of the configuration to use. Possible values are `GitFlow/v1` or `GitHubFlow/v1`. Defaults to `GitFlow/v1` if not set. To create a configuration from scratch without using a base template, please specify an empty string.
+
### next-version
Allows you to bump the next version explicitly. Useful for bumping `main` or a
@@ -90,6 +477,9 @@ while still updating the `AssemblyFileVersion` and `AssemblyInformationVersion`
attributes. Valid values: `MajorMinorPatchTag`, `MajorMinorPatch`, `MajorMinor`,
`Major`, `None`.
+For information on using format strings in these properties, see
+[Format Strings](/docs/reference/custom-formatting).
+
### assembly-file-versioning-scheme
When updating assembly info, `assembly-file-versioning-scheme` tells GitVersion
@@ -132,7 +522,7 @@ The default value is `{InformationalVersion}`.
### mode
Sets the `mode` of how GitVersion should create a new version. Read more at
-[versioning modes][modes].
+[deployment modes][modes].
### increment
@@ -141,34 +531,19 @@ increased, such as for commits after a tag: `Major`, `Minor`, `Patch`, `None`.
The special value `Inherit` means that GitVersion should find the parent branch
(i.e. the branch where the current branch was branched from), and use its values
-for [increment](#increment),
-[prevent-increment-of-merged-branch-version](#prevent-increment-of-merged-branch-version)
-and [tracks-release-branches](#tracks-release-branches).
-
-### continuous-delivery-fallback-tag
+for [increment](#increment) or other branch related properties.
-When using `mode: ContinuousDeployment`, the value specified in
-`continuous-delivery-fallback-tag` will be used as the pre-release tag for
-branches which do not have one specified. Default set to `ci`.
-
-Just to clarify: For a build name without `...-ci-` or in other
-words without a `PreReleaseTag` (ergo `"PreReleaseTag":""` in GitVersion's JSON output)
-at the end you would need to set `continuous-delivery-fallback-tag` to an empty
-string (`''`):
-
-```yaml
-mode: ContinuousDeployment
-continuous-delivery-fallback-tag: ''
-...
-```
+### tag-prefix
-Doing so can be helpful if you use your `main` branch as a `release` branch.
+A regular expression which is used to trim Git tags before processing (e.g.,
+v1.0.0). The default value is `[vV]`.
-### tag-prefix
+### version-in-branch-pattern
-A regex which is used to trim Git tags before processing (e.g., v1.0.0). Default
-is `[vV]`, although this is just for illustrative purposes as we do a IgnoreCase
-match and could be `v`.
+A regular expression which is used to determine the version number in the branch
+name or commit message (e.g., v1.0.0-LTS). This setting only applies on branches
+where the option `is-release-branch` is set to `true`. The default value is
+`(?[vV]?\d+(\.\d+)?(\.\d+)?).*`.
### major-version-bump-message
@@ -194,23 +569,8 @@ Used to tell GitVersion not to increment when in Mainline development mode.
Default `\+semver:\s?(none|skip)`, which will match occurrences of `+semver:
none` and `+semver: skip`
-### legacy-semver-padding
-
-The number of characters to pad `LegacySemVer` to in the `LegacySemVerPadded`
-[variable][variables]. Default is `4`, which will pad the `LegacySemVer` value
- of `3.0.0-beta1` to `3.0.0-beta0001`.
-
-### build-metadata-padding
-
-The number of characters to pad `BuildMetaData` to in the `BuildMetaDataPadded`
-[variable][variables]. Default is `4`, which will pad the `BuildMetaData` value
-of `1` to `0001`.
-
-### commits-since-version-source-padding
-
-The number of characters to pad `CommitsSinceVersionSource` to in the
-`CommitsSinceVersionSourcePadded` [variable][variables]. Default is `4`, which
-will pad the `CommitsSinceVersionSource` value of `1` to `0001`.
+When a commit matches **both** the `no-bump-message` **and** any combination of
+the `version-bump-message`, `no-bump-message` takes precedence and no increment is applied.
### tag-pre-release-weight
@@ -218,7 +578,7 @@ The pre-release weight in case of tagged commits. If the value is not set in the
configuration, a default weight of 60000 is used instead. If the
`WeightedPreReleaseNumber` [variable][variables] is 0 and this parameter is set,
its value is used. This helps if your branching model is GitFlow and the last
-release build, which is often tagged, can utilise this parameter to produce a
+release build, which is often tagged, can utilize this parameter to produce a
monotonically increasing build number.
### commit-message-incrementing
@@ -267,6 +627,44 @@ Date and time in the format `yyyy-MM-ddTHH:mm:ss` (eg `commits-before:
2015-10-23T12:23:15`) to setup an exclusion range. Effectively any commit before
`commits-before` will be ignored.
+#### paths
+A sequence of regular expressions that represent paths in the repository. Commits that modify these paths will be excluded from version calculations. For example, to filter out commits that belong to `docs`:
+```yaml
+ignore:
+ paths:
+ - ^docs\/
+```
+##### *Monorepo*
+This ignore config can be used to filter only those commits that belong to a specific project in a monorepo.
+As an example, consider a monorepo consisting of subdirectories for `ProjectA`, `ProjectB` and a shared `LibraryC`. For GitVersion to consider only commits that are part of `projectA` and shared library `LibraryC`, a regex that matches all paths except those starting with `ProjectA` or `LibraryC` can be used. Either one of the following configs would filter out `ProjectB`.
+* Specific match on `/ProjectB/*`:
+```yaml
+ignore:
+ paths:
+ - `^\/ProductB\/.*`
+```
+* Negative lookahead on anything other than `/ProjectA/*` and `/LibraryC/*`:
+```yaml
+ignore:
+ paths:
+ - `^(?!\/ProductA\/|\/LibraryC\/).*`
+```
+A commit having changes only in `/ProjectB/*` path would be ignored. A commit having changes in the following paths wouldn't be ignored:
+* `/ProductA/*`
+* `/LibraryC/*`
+* `/ProductA/*` and `/LibraryC/*`
+* `/ProductA/*` and `/ProductB/*`
+* `/LibraryC/*` and `/ProductB/*`
+* `/ProductA/*` and `/ProductB/*` and `/LibraryC/*`
+
+:::
+Note: The `ignore.paths` configuration is case-sensitive. This can lead to unexpected behavior on case-insensitive file systems, such as Windows. To ensure consistent matching regardless of case, you can prefix your regular expressions with the case-insensitive flag `(?i)`. For example, `(?i)^docs\/` will match both `docs/` and `Docs/`.
+:::
+
+::: {.alert .alert-warning}
+A commit is ignored by the `ignore.paths` configuration only if **all paths** changed in that commit match one or more of the specified regular expressions. If a path in a commit does not match any one of the ignore patterns, that commit will be included in version calculations.
+:::
+
### merge-message-formats
Custom merge message formats to enable identification of merge messages that do not
@@ -276,14 +674,14 @@ e.g.
```yaml
merge-message-formats:
- tfs: ^Merged (?:PR (?\d+)): Merge (?.+) to (?.+)
+ tfs: '^Merged (?:PR (?\d+)): Merge (?.+) to (?.+)'
```
The regular expression should contain the following capture groups:
-* `SourceBranch` - Identifies the source branch of the merge
-* `TargetBranch` - Identifies the target branch of the merge
-* `PullRequestNumber` - Captures the pull-request number
+* `SourceBranch` - Identifies the source branch of the merge
+* `TargetBranch` - Identifies the target branch of the merge
+* `PullRequestNumber` - Captures the pull-request number
Custom merge message formats are evaluated _before_ any built in formats.
Support for [Conventional Commits][conventional-commits] can be
@@ -307,92 +705,84 @@ If you have branch specific configuration upgrading to v4 will force you to
upgrade.
```yaml
+workflow: 'GitHubFlow/v1'
branches:
main:
- regex: ^master$|^main$
- mode: ContinuousDelivery
- tag: ''
+ label: ''
increment: Patch
- prevent-increment-of-merged-branch-version: true
+ prevent-increment:
+ of-merged-branch: true
track-merge-target: false
- source-branches: [ 'develop', 'release' ]
+ track-merge-message: true
+ regex: ^master$|^main$
+ source-branches: []
+ is-source-branch-for: []
tracks-release-branches: false
is-release-branch: false
- is-mainline: true
+ is-main-branch: true
pre-release-weight: 55000
- develop:
- regex: ^dev(elop)?(ment)?$
- mode: ContinuousDeployment
- tag: alpha
- increment: Minor
- prevent-increment-of-merged-branch-version: false
- track-merge-target: true
- source-branches: []
- tracks-release-branches: true
- is-release-branch: false
- is-mainline: false
- pre-release-weight: 0
release:
- regex: ^releases?[/-]
- mode: ContinuousDelivery
- tag: beta
- increment: None
- prevent-increment-of-merged-branch-version: true
+ mode: ManualDeployment
+ label: beta
+ increment: Patch
+ prevent-increment:
+ of-merged-branch: true
+ when-branch-merged: false
+ when-current-commit-tagged: false
track-merge-target: false
- source-branches: [ 'develop', 'main', 'support', 'release' ]
+ track-merge-message: true
+ regex: ^releases?[\/-](?.+)
+ source-branches:
+ - main
+ is-source-branch-for: []
tracks-release-branches: false
is-release-branch: true
- is-mainline: false
+ is-main-branch: false
pre-release-weight: 30000
feature:
- regex: ^features?[/-]
- mode: ContinuousDelivery
- tag: useBranchName
+ mode: ManualDeployment
+ label: '{BranchName}'
increment: Inherit
- prevent-increment-of-merged-branch-version: false
- track-merge-target: false
- source-branches: [ 'develop', 'main', 'release', 'feature', 'support', 'hotfix' ]
- tracks-release-branches: false
- is-release-branch: false
- is-mainline: false
+ prevent-increment:
+ when-current-commit-tagged: false
+ track-merge-message: true
+ regex: ^features?[\/-](?.+)
+ source-branches:
+ - main
+ - release
+ is-source-branch-for: []
+ is-main-branch: false
pre-release-weight: 30000
pull-request:
- regex: ^(pull|pull\-requests|pr)[/-]
mode: ContinuousDelivery
- tag: PullRequest
+ label: PullRequest{Number}
increment: Inherit
- prevent-increment-of-merged-branch-version: false
- tag-number-pattern: '[/-](?\d+)[-/]'
- track-merge-target: false
- source-branches: [ 'develop', 'main', 'release', 'feature', 'support', 'hotfix' ]
- tracks-release-branches: false
- is-release-branch: false
- is-mainline: false
- pre-release-weight: 30000
- hotfix:
- regex: ^hotfix(es)?[/-]
- mode: ContinuousDelivery
- tag: beta
- increment: Patch
- prevent-increment-of-merged-branch-version: false
- track-merge-target: false
- source-branches: [ 'develop', 'main', 'support' ]
- tracks-release-branches: false
- is-release-branch: false
- is-mainline: false
+ prevent-increment:
+ of-merged-branch: true
+ when-current-commit-tagged: false
+ track-merge-message: true
+ regex: ^(pull-requests|pull|pr)[\/-](?\d*)
+ source-branches:
+ - main
+ - release
+ - feature
+ is-source-branch-for: []
pre-release-weight: 30000
- support:
- regex: ^support[/-]
- mode: ContinuousDelivery
- tag: ''
- increment: Patch
- prevent-increment-of-merged-branch-version: true
- track-merge-target: false
- source-branches: [ 'main' ]
- tracks-release-branches: false
- is-release-branch: false
- is-mainline: true
- pre-release-weight: 55000
+ unknown:
+ mode: ManualDeployment
+ label: '{BranchName}'
+ increment: Inherit
+ prevent-increment:
+ when-current-commit-tagged: false
+ track-merge-message: false
+ regex: (?.+)
+ source-branches:
+ - main
+ - release
+ - feature
+ - pull-request
+ is-source-branch-for: []
+ is-main-branch: false
```
If you don't specify the regex, the built-in for that branch config will be
@@ -406,6 +796,8 @@ values, but here they are if you need to:
This is the regex which is used to match the current branch to the correct
branch configuration.
+[Named groups](https://learn.microsoft.com/en-us/dotnet/standard/base-types/grouping-constructs-in-regular-expressions#named-matched-subexpressions) can be used to dynamically label pre-releases based on the branch name, or parts of it. See [Label](#label) for more details and examples.
+
### source-branches
Because Git commits only refer to parent commits (not branches) GitVersion
@@ -424,16 +816,16 @@ Take this commit graph
By looking at this graph, you cannot tell which of these scenarios happened:
-* feature/foo branches off release/v1.0.0
- * Branch release/v1.0.0 from main
- * Branch feature/foo from release/v1.0.0
- * Add a commit to both release/v1.0.0 and feature/foo
- * release/v1.0.0 is the base for feature/foo
-* release/v1.0.0 branches off feature/foo
- * Branch feature/foo from main
- * Branch release/v1.0.0 from feature/foo
- * Add a commit to both release/v1.0.0 and feature/foo
- * feature/foo is the base for release/v1.0.0
+* feature/foo branches off release/v1.0.0
+ * Branch release/v1.0.0 from main
+ * Branch feature/foo from release/v1.0.0
+ * Add a commit to both release/v1.0.0 and feature/foo
+ * release/v1.0.0 is the base for feature/foo
+* release/v1.0.0 branches off feature/foo
+ * Branch feature/foo from main
+ * Branch release/v1.0.0 from feature/foo
+ * Add a commit to both release/v1.0.0 and feature/foo
+ * feature/foo is the base for release/v1.0.0
Or put more simply, you cannot tell which branch was created first,
`release/v1.0.0` or `feature/foo`.
@@ -474,7 +866,7 @@ Without this configuration value you would have to do:
```yaml
branches:
unstable:
- regex: ...
+ regex:
feature:
source-branches: ['unstable', 'develop', 'feature', 'hotfix', 'support']
release:
@@ -490,21 +882,25 @@ The header for all the individual branch configuration.
Same as for the [global configuration, explained above](#mode).
-### tag
+### label
+
+The pre-release label to use for this branch. Use the value `{BranchName}` as a placeholder to
+insert the value of the named group `BranchName` from the [regular expression](#regex).
-The pre release tag to use for this branch. Use the value `useBranchName` to use
-the branch name instead. For example `feature/foo` would become a pre-release
-tag of `foo` with this value. Use the value `{BranchName}` as a placeholder to
-insert the branch name. For example `feature/foo` would become a pre-release tag
-of `alpha.foo` with the value of `alpha.{BranchName}`.
+For example: branch `feature/foo` would become a pre-release label
+of `alpha.foo` with `label: 'alpha.{BranchName}'` and `regex: '^features?[\/-](?.+)'`.
-**Note:** To clear a default use an empty string: `tag: ''`
+Another example: branch `features/sc-12345/some-description` would become a pre-release label of `sc-12345` with `label: '{StoryNo}'` and `regex: '^features?[\/-](?sc-\d+)[-/].+'`.
+
+**Note:** To clear a default use an empty string: `label: ''`
### increment
Same as for the [global configuration, explained above](#increment).
-### prevent-increment-of-merged-branch-version
+### prevent-increment-of-merged-branch
+
+The increment of the branch merged to will be ignored, regardless of whether the merged branch has a version number or not, when this branch related property is set to true on the target branch.
When `release-2.0.0` is merged into main, we want main to build `2.0.0`. If
`release-2.0.0` is merged into develop we want it to build `2.1.0`, this option
@@ -515,35 +911,53 @@ In a GitFlow-based repository, setting this option can have implications on the
better version source proposed by the `MergeMessageBaseVersionStrategy`. For
more details and an in-depth analysis, please see [the discussion][2506].
-### tag-number-pattern
+### prevent-increment-when-branch-merged
-Pull requests require us to extract the pre-release number out of the branch
-name so `refs/pulls/534/merge` builds as `PullRequest.534`. This is a regex with
-a named capture group called `number`.
+The increment of the merged branch will be ignored when this branch related property is set to `true` on the source branch.
+
+### prevent-increment-when-current-commit-tagged
-If the branch `mode` is set to `ContinuousDeployment`, then the extracted
-`number` is appended to the name of the pre-release tag and the number portion
-is the number of commits since the last tag. This enables consecutive commits to
-the pull request branch to generate unique full semantic version numbers when
-the branch is configured to use ContinuousDeployment mode.
+This branch related property controls the behvior whether to use the tagged (value set to true) or the incremented (value set to false) semantic version. Defaults to true.
+
+### label-number-pattern
+
+Pull requests require us to extract the pre-release number out of the branch
+name so `refs/pull/534/merge` builds as `PullRequest534`. This is a regex with
+a named capture group called `Number`.
**Example usage:**
```yaml
branches:
pull-request:
- mode: ContinuousDeployment
- tag: PullRequest
+ mode: ContinuousDelivery
+ label: PullRequest{Number}
increment: Inherit
- track-merge-target: true
- tag-number-pattern: '[/-](?\d+)[-/]'
+ prevent-increment:
+ of-merged-branch: true
+ when-current-commit-tagged: false
+ track-merge-message: true
+ regex: ^(pull-requests|pull|pr)[\/-](?\d*)
+ source-branches:
+ - main
+ - release
+ - feature
+ is-source-branch-for: []
+ pre-release-weight: 30000
```
### track-merge-target
Strategy which will look for tagged merge commits directly off the current
branch. For example `develop` → `release/1.0.0` → merge into `main` and tag
-`1.0.0`. The tag is *not* on develop, but develop should be version `1.0.0` now.
+`1.0.0`. The tag is _not_ on develop, but develop should be version `1.0.0` now.
+
+### track-merge-message
+
+This property is a branch related property and gives the user the possibility to control the behavior of whether the merge
+commit message will be interpreted as a next version or not. Consider we have a main branch and a `release/1.0.0` branch and
+merge changes from `release/1.0.0` to the `main` branch. If `track-merge-message` is set to `true` then the next version will
+be `1.0.0` otherwise `0.0.1`.
### tracks-release-branches
@@ -553,10 +967,9 @@ Indicates this branch config represents develop in GitFlow.
Indicates this branch config represents a release branch in GitFlow.
-### is-mainline
+### is-main-branch
-When using Mainline mode, this indicates that this branch is a mainline. By
-default `main` and `support/*` are mainlines.
+This indicates that this branch is a main branch. By default `main` and `support/*` are main branches.
### pre-release-weight
@@ -572,12 +985,45 @@ is set, it would be added to the `PreReleaseNumber` to get a final
`pre-release-weight` will be used in the calculation. Related Issues [1145][1145]
and [1366][1366].
+### semantic-version-format
+
+Specifies the semantic version format that is used when parsing the string.
+Can be `Strict` - using the [regex](https://regex101.com/r/Ly7O1x/3/)
+or `Loose` the old way of parsing. The default if not specified is `Strict`
+Example of invalid `Strict`, but valid `Loose`
+
+```log
+1.2-alpha4
+01.02.03-rc03
+1.2.3.4
+```
+
+### strategies
+
+Specifies which version strategy implementation (one or more) will be used to determine the next version.
+These strategies can be combined, and the order in which they are specified does not matter.
+The configuration accepts the following values:
+
+* Fallback
+* ConfiguredNextVersion
+* MergeMessage
+* TaggedCommit
+* TrackReleaseBranches
+* VersionInBranchName
+* Mainline
+
[1145]: https://github.com/GitTools/GitVersion/issues/1145
+
[1366]: https://github.com/GitTools/GitVersion/issues/1366
+
[2506]: https://github.com/GitTools/GitVersion/pull/2506#issuecomment-754754037
+
[conventional-commits-config]: /docs/reference/version-increments#conventional-commit-messages
+
[conventional-commits]: https://www.conventionalcommits.org/
-[installing]: /docs/usage/cli/installation
+
[modes]: /docs/reference/modes
+
[variables]: /docs/reference/variables
+
[version-sources]: /docs/reference/version-sources
diff --git a/docs/input/docs/reference/custom-formatting.md b/docs/input/docs/reference/custom-formatting.md
new file mode 100644
index 0000000000..c970fea342
--- /dev/null
+++ b/docs/input/docs/reference/custom-formatting.md
@@ -0,0 +1,181 @@
+---
+title: Format Strings
+description: Using C# format strings in GitVersion configuration
+---
+
+GitVersion supports C# format strings in configuration, allowing you to apply standard .NET formatting and custom transformations to version properties. This enhancement provides more flexibility and control over how version information is displayed and used throughout your build process.
+
+## Overview
+
+The custom formatter functionality introduces several new formatters that can be used in GitVersion configuration files and templates:
+
+- **FormattableFormatter**: Supports standard .NET format strings for numeric values, dates, and implements `IFormattable`
+- **NumericFormatter**: Handles numeric formatting with culture-aware output
+- **DateTimeFormatter**: Provides date and time formatting with standard and custom format specifiers
+- **String Case Formatters**: Provides text case transformations with custom format specifiers
+
+## Standard .NET Format Strings
+
+### Numeric Formatting
+
+You can now use standard .NET numeric format strings with version components:
+
+```yaml
+# GitVersion.yml
+assembly-informational-format: "{Major}.{Minor}.{Patch:F2}-{PreReleaseLabel}"
+```
+
+**Supported Numeric Formats:**
+
+- `F` or `f` (Fixed-point): `{Patch:F2}` → `"1.23"`
+- `N` or `n` (Number): `{BuildMetadata:N0}` → `"1,234"`
+- `C` or `c` (Currency): `{Major:C}` → `"¤1.00"`
+- `P` or `p` (Percent): `{CommitsSinceVersionSource:P}` → `"12,345.60 %"`
+- `D` or `d` (Decimal): `{Major:D4}` → `"0001"`
+- `X` or `x` (Hexadecimal): `{Patch:X}` → `"FF"`
+
+### Date and Time Formatting
+
+When working with date-related properties like `CommitDate`:
+
+```yaml
+assembly-informational-format: "Build-{SemVer}-{CommitDate:yyyy-MM-dd}"
+```
+
+**Common Date Format Specifiers:**
+
+- `yyyy-MM-dd` → `"2024-03-15"`
+- `HH:mm:ss` → `"14:30:22"`
+- `MMM dd, yyyy` → `"Mar 15, 2024"`
+- `yyyy-MM-dd'T'HH:mm:ss'Z'` → `"2024-03-15T14:30:22Z"`
+
+## Custom String Case Formatters
+
+GitVersion introduces custom format specifiers for string case transformations that can be used in templates:
+
+### Available Case Formats
+
+| Format | Description | Example Input | Example Output |
+|--------|---------------------------------------------------------------|------------------|------------------|
+| `u` | **Uppercase** - Converts entire string to uppercase | `feature-branch` | `FEATURE-BRANCH` |
+| `l` | **Lowercase** - Converts entire string to lowercase | `Feature-Branch` | `feature-branch` |
+| `t` | **Title Case** - Capitalizes first letter of each word | `feature-branch` | `Feature-Branch` |
+| `s` | **Sentence Case** - Capitalizes only the first letter | `feature-branch` | `Feature-branch` |
+| `c` | **PascalCase** - Removes separators and capitalizes each word | `feature-branch` | `FeatureBranch` |
+
+### Usage Examples
+
+```yaml
+# GitVersion.yml configuration
+branches:
+ feature:
+ label: "{BranchName:c}" # Converts to PascalCase
+
+assembly-informational-format: "{Major}.{Minor}.{Patch}-{PreReleaseLabel:l}.{CommitsSinceVersionSource:0000}"
+```
+
+**Template Usage:**
+
+```yaml
+# Using format strings in templates
+assembly-informational-format: "{Major}.{Minor}.{Patch}-{CommitsSinceVersionSource:0000}"
+assembly-informational-format: "{SemVer}-{BranchName:l}"
+```
+
+## Examples
+
+Based on actual test cases from the implementation:
+
+### Zero-Padded Numeric Formatting
+
+```yaml
+# Zero-padded commit count
+assembly-informational-format: "{Major}.{Minor}.{Patch}-{CommitsSinceVersionSource:0000}"
+# Result: "1.2.3-0042"
+```
+
+### String Case Transformations
+
+```yaml
+branches:
+ feature:
+ label: "{BranchName:c}" # PascalCase: "feature-branch" → "FeatureBranch"
+ hotfix:
+ label: "hotfix-{BranchName:l}" # Lowercase: "HOTFIX-BRANCH" → "hotfix-branch"
+```
+
+### Date and Time Formatting
+
+```yaml
+assembly-informational-format: "{SemVer}-build-{CommitDate:yyyy-MM-dd}"
+# Result: "1.2.3-build-2021-01-01"
+```
+
+### Numeric Formatting
+
+```yaml
+# Currency format (uses InvariantCulture)
+assembly-informational-format: "Cost-{Major:C}" # Result: "Cost-¤1.00"
+
+# Percentage format
+assembly-informational-format: "Progress-{Minor:P}" # Result: "Progress-200.00 %"
+
+# Thousands separator
+assembly-informational-format: "Build-{CommitsSinceVersionSource:N0}" # Result: "Build-1,234"
+```
+
+## Configuration Integration
+
+The format strings are used in GitVersion configuration files through various formatting properties:
+
+### Assembly Version Formatting
+
+```yaml
+# GitVersion.yml
+assembly-informational-format: "{Major}.{Minor}.{Patch}-{CommitsSinceVersionSource:0000}"
+assembly-versioning-format: "{Major}.{Minor}.{Patch}.{env:BUILD_NUMBER}"
+assembly-file-versioning-format: "{MajorMinorPatch}.{CommitsSinceVersionSource}"
+```
+
+### Environment Variable Integration
+
+```yaml
+# Using environment variables with fallbacks
+assembly-informational-format: "{Major}.{Minor}.{Patch}-{env:RELEASE_STAGE ?? 'dev'}"
+assembly-informational-format: "{SemVer}+{env:BUILD_ID ?? 'local'}"
+```
+
+### Real-World Integration Examples
+
+Based on the actual test implementation:
+
+```yaml
+# Example from VariableProviderTests.cs
+assembly-informational-format: "{Major}.{Minor}.{Patch}-{CommitsSinceVersionSource:0000}"
+# Result: "1.2.3-0042" when CommitsSinceVersionSource = 42
+
+# Branch-specific formatting
+branches:
+ feature:
+ label: "{BranchName:c}" # PascalCase conversion
+ hotfix:
+ label: "hotfix.{CommitsSinceVersionSource:00}"
+```
+
+## Invariant Culture Formatting
+
+The formatting system uses `CultureInfo.InvariantCulture` by default through the chained `TryFormat` overload implementation. This provides:
+
+- **Consistent results** across all environments and systems
+- **Predictable numeric formatting** with period (.) as decimal separator and comma (,) as thousands separator
+- **Standard date formatting** using English month names and formats
+- **No localization variations** regardless of system locale
+
+```csharp
+// All environments produce the same output:
+// {CommitsSinceVersionSource:N0} → "1,234"
+// {CommitDate:MMM dd, yyyy} → "Mar 15, 2024"
+// {Major:C} → "¤1.00" (generic currency symbol)
+```
+
+This ensures that version strings generated by GitVersion are consistent across different build environments, developer machines, and CI/CD systems.
diff --git a/docs/input/docs/reference/mdsource/configuration.source.md b/docs/input/docs/reference/mdsource/configuration.source.md
new file mode 100644
index 0000000000..f08c69c816
--- /dev/null
+++ b/docs/input/docs/reference/mdsource/configuration.source.md
@@ -0,0 +1,630 @@
+---
+Order: 10
+Title: Configuration
+Description: Details about how GitVersion can be configured to suit your needs
+RedirectFrom: docs/configuration
+---
+
+GitVersion, starting from version 3.0, is mainly powered by configuration and no
+longer has branching strategies hard-coded.
+
+:::{.alert .alert-info}
+**Note**
+
+GitVersion ships with internal default configuration which works with
+GitHubFlow and GitFlow, probably with others too.
+:::
+
+The `develop` branch is set to `ContinuousDeployment` mode by default as we have
+found that is generally what is needed when using GitFlow.
+
+To see the effective configuration (defaults and overrides), you can run
+`gitversion /showConfig`.
+
+## Global configuration
+
+The following supported workflow configurations are available in GitVersion and can be referenced by the workflow property:
+
+* GitFlow (GitFlow/v1)
+* GitHubFlow (GitHubFlow/v1)
+* TrunkBased (TrunkBased/preview1)
+
+Example of using a `GitHubFlow` workflow with a different `tag-prefix`:
+
+```yaml
+workflow: GitHubFlow/v1
+tag-prefix: '[abc]'
+```
+
+The built-in configuration for the `GitFlow` workflow (`workflow: GitFlow/v1`) looks like:
+
+snippet: /docs/workflows/GitFlow/v1.yml
+
+The supported built-in configuration for the `GitHubFlow` workflow (`workflow: GitHubFlow/v1`) looks like:
+
+snippet: /docs/workflows/GitHubFlow/v1.yml
+
+The preview built-in configuration (experimental usage only) for the `TrunkBased` workflow (`workflow: TrunkBased/preview1`) looks like:
+
+snippet: /docs/workflows/TrunkBased/preview1.yml
+
+The details of the available options are as follows:
+
+### workflow
+
+The base template of the configuration to use. Possible values are `GitFlow/v1` or `GitHubFlow/v1`. Defaults to `GitFlow/v1` if not set. To create a configuration from scratch without using a base template, please specify an empty string.
+
+### next-version
+
+Allows you to bump the next version explicitly. Useful for bumping `main` or a
+feature branch with breaking changes (i.e., a major increment), indicating what
+the next `git tag` is going to be.
+
+`next-version` is not a permanent replacement for `git tag` and should only be
+used intermittently. Since version 5.5 GitVersion supports `next-version` with
+`mode: Mainline` and should not be treated as a "base version".
+
+If you are using `next-version` and are experiencing weird versioning behaviour,
+please remove it, create a `git tag` with an appropriate version number on an
+appropriate historical commit and see if that resolves any versioning issues
+you may have.
+
+### assembly-versioning-scheme
+
+When updating assembly info, `assembly-versioning-scheme` tells GitVersion how
+to treat the `AssemblyVersion` attribute. Useful to lock the major when using
+Strong Naming. Note: you can use `None` to skip updating the `AssemblyVersion`
+while still updating the `AssemblyFileVersion` and `AssemblyInformationVersion`
+attributes. Valid values: `MajorMinorPatchTag`, `MajorMinorPatch`, `MajorMinor`,
+`Major`, `None`.
+
+For information on using format strings in these properties, see
+[Format Strings](/docs/reference/custom-formatting).
+
+### assembly-file-versioning-scheme
+
+When updating assembly info, `assembly-file-versioning-scheme` tells GitVersion
+how to treat the `AssemblyFileVersion` attribute. Note: you can use `None` to
+skip updating the `AssemblyFileVersion` while still updating the
+`AssemblyVersion` and `AssemblyInformationVersion` attributes. Valid values:
+`MajorMinorPatchTag`, `MajorMinorPatch`, `MajorMinor`, `Major`, `None`.
+
+### assembly-file-versioning-format
+
+Specifies the format of `AssemblyFileVersion` and
+overwrites the value of `assembly-file-versioning-scheme`.
+
+Expressions in curly braces reference one of the [variables][variables]
+or a process-scoped environment variable (when prefixed with `env:`). For example,
+
+```yaml
+# use a variable if non-null or a fallback value otherwise
+assembly-file-versioning-format: '{Major}.{Minor}.{Patch}.{WeightedPreReleaseNumber ?? 0}'
+
+# use an environment variable or raise an error if not available
+assembly-file-versioning-format: '{Major}.{Minor}.{Patch}.{env:BUILD_NUMBER}'
+
+# use an environment variable if available or a fallback value otherwise
+assembly-file-versioning-format: '{Major}.{Minor}.{Patch}.{env:BUILD_NUMBER ?? 42}'
+```
+
+### assembly-versioning-format
+
+Specifies the format of `AssemblyVersion` and
+overwrites the value of `assembly-versioning-scheme`.
+Follows the same formatting semantics as `assembly-file-versioning-format`.
+
+### assembly-informational-format
+
+Specifies the format of `AssemblyInformationalVersion`.
+Follows the same formatting semantics as `assembly-file-versioning-format`.
+The default value is `{InformationalVersion}`.
+
+### mode
+
+Sets the `mode` of how GitVersion should create a new version. Read more at
+[deployment modes][modes].
+
+### increment
+
+The part of the SemVer to increment when GitVersion detects it needs to be
+increased, such as for commits after a tag: `Major`, `Minor`, `Patch`, `None`.
+
+The special value `Inherit` means that GitVersion should find the parent branch
+(i.e. the branch where the current branch was branched from), and use its values
+for [increment](#increment) or other branch related properties.
+
+### tag-prefix
+
+A regular expression which is used to trim Git tags before processing (e.g.,
+v1.0.0). The default value is `[vV]`.
+
+### version-in-branch-pattern
+
+A regular expression which is used to determine the version number in the branch
+name or commit message (e.g., v1.0.0-LTS). This setting only applies on branches
+where the option `is-release-branch` is set to `true`. The default value is
+`(?[vV]?\d+(\.\d+)?(\.\d+)?).*`.
+
+### major-version-bump-message
+
+The regex to match commit messages with to perform a major version increment.
+Default set to `'\+semver:\s?(breaking|major)'`, which will match occurrences of
+`+semver: major` and `+semver: breaking` in a commit message.
+
+### minor-version-bump-message
+
+The regex to match commit messages with to perform a minor version increment.
+Default set to `'\+semver:\s?(feature|minor)'`, which will match occurrences of
+`+semver: feature` and `+semver: minor` in a commit message.
+
+### patch-version-bump-message
+
+The regex to match commit messages with to perform a patch version increment.
+Default set to `'\+semver:\s?(fix|patch)'`, which will match occurrences of
+`+semver: fix` and `+semver: patch` in a commit message.
+
+### no-bump-message
+
+Used to tell GitVersion not to increment when in Mainline development mode.
+Default `\+semver:\s?(none|skip)`, which will match occurrences of `+semver:
+none` and `+semver: skip`
+
+When a commit matches **both** the `no-bump-message` **and** any combination of
+the `version-bump-message`, `no-bump-message` takes precedence and no increment is applied.
+
+### tag-pre-release-weight
+
+The pre-release weight in case of tagged commits. If the value is not set in the
+configuration, a default weight of 60000 is used instead. If the
+`WeightedPreReleaseNumber` [variable][variables] is 0 and this parameter is set,
+its value is used. This helps if your branching model is GitFlow and the last
+release build, which is often tagged, can utilize this parameter to produce a
+monotonically increasing build number.
+
+### commit-message-incrementing
+
+Sets whether it should be possible to increment the version with special syntax
+in the commit message. See the `*-version-bump-message` options above for
+details on the syntax. Default set to `Enabled`; set to `Disabled` to disable.
+
+### commit-date-format
+
+Sets the format which will be used to format the `CommitDate` output variable.
+
+### ignore
+
+The header property for the `ignore` configuration.
+
+:::{.alert .alert-info}
+**Note:** When ignoring a commit or a range of commits, they are only ignored in
+the search for a [version source][version-sources], not when calculating other
+parts of the version number, such as build metadata.
+:::
+
+#### sha
+
+A sequence of SHAs to be excluded from the version calculations. Useful when
+there is a rogue commit in history yielding a bad version. You can use either
+style below:
+
+```yaml
+ignore:
+ sha: [e7bc24c0f34728a25c9187b8d0b041d935763e3a, 764e16321318f2fdb9cdeaa56d1156a1cba307d7]
+```
+
+or
+
+```yaml
+ignore:
+ sha:
+ - e7bc24c0f34728a25c9187b8d0b041d935763e3a
+ - 764e16321318f2fdb9cdeaa56d1156a1cba307d7
+```
+
+#### commits-before
+
+Date and time in the format `yyyy-MM-ddTHH:mm:ss` (eg `commits-before:
+2015-10-23T12:23:15`) to setup an exclusion range. Effectively any commit before
+`commits-before` will be ignored.
+
+#### paths
+A sequence of regular expressions that represent paths in the repository. Commits that modify these paths will be excluded from version calculations. For example, to filter out commits that belong to `docs`:
+```yaml
+ignore:
+ paths:
+ - ^docs\/
+```
+##### *Monorepo*
+This ignore config can be used to filter only those commits that belong to a specific project in a monorepo.
+As an example, consider a monorepo consisting of subdirectories for `ProjectA`, `ProjectB` and a shared `LibraryC`. For GitVersion to consider only commits that are part of `projectA` and shared library `LibraryC`, a regex that matches all paths except those starting with `ProjectA` or `LibraryC` can be used. Either one of the following configs would filter out `ProjectB`.
+* Specific match on `/ProjectB/*`:
+```yaml
+ignore:
+ paths:
+ - `^\/ProductB\/.*`
+```
+* Negative lookahead on anything other than `/ProjectA/*` and `/LibraryC/*`:
+```yaml
+ignore:
+ paths:
+ - `^(?!\/ProductA\/|\/LibraryC\/).*`
+```
+A commit having changes only in `/ProjectB/*` path would be ignored. A commit having changes in the following paths wouldn't be ignored:
+* `/ProductA/*`
+* `/LibraryC/*`
+* `/ProductA/*` and `/LibraryC/*`
+* `/ProductA/*` and `/ProductB/*`
+* `/LibraryC/*` and `/ProductB/*`
+* `/ProductA/*` and `/ProductB/*` and `/LibraryC/*`
+
+:::
+Note: The `ignore.paths` configuration is case-sensitive. This can lead to unexpected behavior on case-insensitive file systems, such as Windows. To ensure consistent matching regardless of case, you can prefix your regular expressions with the case-insensitive flag `(?i)`. For example, `(?i)^docs\/` will match both `docs/` and `Docs/`.
+:::
+
+::: {.alert .alert-warning}
+A commit is ignored by the `ignore.paths` configuration only if **all paths** changed in that commit match one or more of the specified regular expressions. If a path in a commit does not match any one of the ignore patterns, that commit will be included in version calculations.
+:::
+
+### merge-message-formats
+
+Custom merge message formats to enable identification of merge messages that do not
+follow the built-in conventions. Entries should be added as key-value pairs where
+the value is a regular expression.
+e.g.
+
+```yaml
+merge-message-formats:
+ tfs: '^Merged (?:PR (?\d+)): Merge (?.+) to (?.+)'
+```
+
+The regular expression should contain the following capture groups:
+
+* `SourceBranch` - Identifies the source branch of the merge
+* `TargetBranch` - Identifies the target branch of the merge
+* `PullRequestNumber` - Captures the pull-request number
+
+Custom merge message formats are evaluated _before_ any built in formats.
+Support for [Conventional Commits][conventional-commits] can be
+[configured][conventional-commits-config].
+
+### update-build-number
+
+Configures GitVersion to update the build number or not when running on a build server.
+
+## Branch configuration
+
+Then we have branch specific configuration, which looks something like this:
+
+:::{.alert .alert-info}
+**Note**
+
+v4 changed from using regexes for keys, to named configs
+:::
+
+If you have branch specific configuration upgrading to v4 will force you to
+upgrade.
+
+```yaml
+workflow: 'GitHubFlow/v1'
+branches:
+ main:
+ label: ''
+ increment: Patch
+ prevent-increment:
+ of-merged-branch: true
+ track-merge-target: false
+ track-merge-message: true
+ regex: ^master$|^main$
+ source-branches: []
+ is-source-branch-for: []
+ tracks-release-branches: false
+ is-release-branch: false
+ is-main-branch: true
+ pre-release-weight: 55000
+ release:
+ mode: ManualDeployment
+ label: beta
+ increment: Patch
+ prevent-increment:
+ of-merged-branch: true
+ when-branch-merged: false
+ when-current-commit-tagged: false
+ track-merge-target: false
+ track-merge-message: true
+ regex: ^releases?[\/-](?.+)
+ source-branches:
+ - main
+ is-source-branch-for: []
+ tracks-release-branches: false
+ is-release-branch: true
+ is-main-branch: false
+ pre-release-weight: 30000
+ feature:
+ mode: ManualDeployment
+ label: '{BranchName}'
+ increment: Inherit
+ prevent-increment:
+ when-current-commit-tagged: false
+ track-merge-message: true
+ regex: ^features?[\/-](?.+)
+ source-branches:
+ - main
+ - release
+ is-source-branch-for: []
+ is-main-branch: false
+ pre-release-weight: 30000
+ pull-request:
+ mode: ContinuousDelivery
+ label: PullRequest{Number}
+ increment: Inherit
+ prevent-increment:
+ of-merged-branch: true
+ when-current-commit-tagged: false
+ track-merge-message: true
+ regex: ^(pull-requests|pull|pr)[\/-](?\d*)
+ source-branches:
+ - main
+ - release
+ - feature
+ is-source-branch-for: []
+ pre-release-weight: 30000
+ unknown:
+ mode: ManualDeployment
+ label: '{BranchName}'
+ increment: Inherit
+ prevent-increment:
+ when-current-commit-tagged: false
+ track-merge-message: false
+ regex: (?.+)
+ source-branches:
+ - main
+ - release
+ - feature
+ - pull-request
+ is-source-branch-for: []
+ is-main-branch: false
+```
+
+If you don't specify the regex, the built-in for that branch config will be
+used (recommended).
+
+We don't envision many people needing to change most of these configuration
+values, but here they are if you need to:
+
+### regex
+
+This is the regex which is used to match the current branch to the correct
+branch configuration.
+
+[Named groups](https://learn.microsoft.com/en-us/dotnet/standard/base-types/grouping-constructs-in-regular-expressions#named-matched-subexpressions) can be used to dynamically label pre-releases based on the branch name, or parts of it. See [Label](#label) for more details and examples.
+
+### source-branches
+
+Because Git commits only refer to parent commits (not branches) GitVersion
+sometimes cannot tell which branch the current branch was branched from.
+
+Take this commit graph
+
+```shell
+* release/v1.0.0 * feature/foo
+| ________________/
+|/
+*
+*
+* (main)
+```
+
+By looking at this graph, you cannot tell which of these scenarios happened:
+
+* feature/foo branches off release/v1.0.0
+ * Branch release/v1.0.0 from main
+ * Branch feature/foo from release/v1.0.0
+ * Add a commit to both release/v1.0.0 and feature/foo
+ * release/v1.0.0 is the base for feature/foo
+* release/v1.0.0 branches off feature/foo
+ * Branch feature/foo from main
+ * Branch release/v1.0.0 from feature/foo
+ * Add a commit to both release/v1.0.0 and feature/foo
+ * feature/foo is the base for release/v1.0.0
+
+Or put more simply, you cannot tell which branch was created first,
+`release/v1.0.0` or `feature/foo`.
+
+To resolve this issue, we give GitVersion a hint about our branching workflows
+by telling it what types of branches a branch can be created from. For example,
+feature branches are, by default, configured to have the following source
+branches:
+
+`source-branches: ['main', 'develop', 'feature', 'hotfix', 'support']`
+
+This means that we will never bother to evaluate pull request branches as merge
+base options and being explicit in this way also improves the performance of
+GitVersion.
+
+### is-source-branch-for
+
+The reverse of `source-branches`. This property was introduced to keep it easy
+to extend GitVersion's config.
+
+It exists to make it easier to extend GitVersion's configuration. If only
+`source-branches` exists and you add a new branch type, for instance
+`unstable/`, you then need to re-define the `source-branches` configuration
+value for existing branches (like feature/) to now include the new unstable
+branch.
+
+A complete example:
+
+```yaml
+branches:
+ unstable:
+ regex: ...
+ is-source-branch-for: ['main', 'develop', 'feature', 'hotfix', 'support']
+```
+
+Without this configuration value you would have to do:
+
+```yaml
+branches:
+ unstable:
+ regex:
+ feature:
+ source-branches: ['unstable', 'develop', 'feature', 'hotfix', 'support']
+ release:
+ source-branches: ['unstable', 'develop']
+ etc...
+```
+
+### branches
+
+The header for all the individual branch configuration.
+
+### mode
+
+Same as for the [global configuration, explained above](#mode).
+
+### label
+
+The pre-release label to use for this branch. Use the value `{BranchName}` as a placeholder to
+insert the value of the named group `BranchName` from the [regular expression](#regex).
+
+For example: branch `feature/foo` would become a pre-release label
+of `alpha.foo` with `label: 'alpha.{BranchName}'` and `regex: '^features?[\/-](?.+)'`.
+
+Another example: branch `features/sc-12345/some-description` would become a pre-release label of `sc-12345` with `label: '{StoryNo}'` and `regex: '^features?[\/-](?sc-\d+)[-/].+'`.
+
+**Note:** To clear a default use an empty string: `label: ''`
+
+### increment
+
+Same as for the [global configuration, explained above](#increment).
+
+### prevent-increment-of-merged-branch
+
+The increment of the branch merged to will be ignored, regardless of whether the merged branch has a version number or not, when this branch related property is set to true on the target branch.
+
+When `release-2.0.0` is merged into main, we want main to build `2.0.0`. If
+`release-2.0.0` is merged into develop we want it to build `2.1.0`, this option
+prevents incrementing after a versioned branch is merged.
+
+In a GitFlow-based repository, setting this option can have implications on the
+`CommitsSinceVersionSource` output variable. It can rule out a potentially
+better version source proposed by the `MergeMessageBaseVersionStrategy`. For
+more details and an in-depth analysis, please see [the discussion][2506].
+
+### prevent-increment-when-branch-merged
+
+The increment of the merged branch will be ignored when this branch related property is set to `true` on the source branch.
+
+### prevent-increment-when-current-commit-tagged
+
+This branch related property controls the behvior whether to use the tagged (value set to true) or the incremented (value set to false) semantic version. Defaults to true.
+
+### label-number-pattern
+
+Pull requests require us to extract the pre-release number out of the branch
+name so `refs/pull/534/merge` builds as `PullRequest534`. This is a regex with
+a named capture group called `Number`.
+
+**Example usage:**
+
+```yaml
+branches:
+ pull-request:
+ mode: ContinuousDelivery
+ label: PullRequest{Number}
+ increment: Inherit
+ prevent-increment:
+ of-merged-branch: true
+ when-current-commit-tagged: false
+ track-merge-message: true
+ regex: ^(pull-requests|pull|pr)[\/-](?\d*)
+ source-branches:
+ - main
+ - release
+ - feature
+ is-source-branch-for: []
+ pre-release-weight: 30000
+```
+
+### track-merge-target
+
+Strategy which will look for tagged merge commits directly off the current
+branch. For example `develop` → `release/1.0.0` → merge into `main` and tag
+`1.0.0`. The tag is _not_ on develop, but develop should be version `1.0.0` now.
+
+### track-merge-message
+
+This property is a branch related property and gives the user the possibility to control the behavior of whether the merge
+commit message will be interpreted as a next version or not. Consider we have a main branch and a `release/1.0.0` branch and
+merge changes from `release/1.0.0` to the `main` branch. If `track-merge-message` is set to `true` then the next version will
+be `1.0.0` otherwise `0.0.1`.
+
+### tracks-release-branches
+
+Indicates this branch config represents develop in GitFlow.
+
+### is-release-branch
+
+Indicates this branch config represents a release branch in GitFlow.
+
+### is-main-branch
+
+This indicates that this branch is a main branch. By default `main` and `support/*` are main branches.
+
+### pre-release-weight
+
+Provides a way to translate the `PreReleaseLabel` ([variables][variables]) to a numeric
+value in order to avoid version collisions across different branches. For
+example, a release branch created after "1.2.3-alpha.55" results in
+"1.2.3-beta.1" and thus e.g. "1.2.3-alpha.4" and "1.2.3-beta.4" would have the
+same file version: "1.2.3.4". One of the ways to use this value is to set
+`assembly-file-versioning-format:
+{Major}.{Minor}.{Patch}.{WeightedPreReleaseNumber}`. If the `pre-release-weight`
+is set, it would be added to the `PreReleaseNumber` to get a final
+`AssemblySemFileVer`, otherwise a branch specific default for
+`pre-release-weight` will be used in the calculation. Related Issues [1145][1145]
+and [1366][1366].
+
+### semantic-version-format
+
+Specifies the semantic version format that is used when parsing the string.
+Can be `Strict` - using the [regex](https://regex101.com/r/Ly7O1x/3/)
+or `Loose` the old way of parsing. The default if not specified is `Strict`
+Example of invalid `Strict`, but valid `Loose`
+
+```log
+1.2-alpha4
+01.02.03-rc03
+1.2.3.4
+```
+
+### strategies
+
+Specifies which version strategy implementation (one or more) will be used to determine the next version.
+These strategies can be combined, and the order in which they are specified does not matter.
+The configuration accepts the following values:
+
+* Fallback
+* ConfiguredNextVersion
+* MergeMessage
+* TaggedCommit
+* TrackReleaseBranches
+* VersionInBranchName
+* Mainline
+
+[1145]: https://github.com/GitTools/GitVersion/issues/1145
+
+[1366]: https://github.com/GitTools/GitVersion/issues/1366
+
+[2506]: https://github.com/GitTools/GitVersion/pull/2506#issuecomment-754754037
+
+[conventional-commits-config]: /docs/reference/version-increments#conventional-commit-messages
+
+[conventional-commits]: https://www.conventionalcommits.org/
+
+[modes]: /docs/reference/modes
+
+[variables]: /docs/reference/variables
+
+[version-sources]: /docs/reference/version-sources
diff --git a/docs/input/docs/reference/modes/continuous-delivery.md b/docs/input/docs/reference/modes/continuous-delivery.md
index b8d306fb42..bc93a85bc4 100644
--- a/docs/input/docs/reference/modes/continuous-delivery.md
+++ b/docs/input/docs/reference/modes/continuous-delivery.md
@@ -2,75 +2,41 @@
Order: 20
Title: Continuous Delivery
Description: |
- Continuous Delivery is the default versioning mode. In this mode,
- GitVersion calculates the next version and will use that until that is
- released.
+ Sometimes you just want the version to keep changing and deploy continuously
+ to an testing system. In this case, Continuous Delivery is a good mode to
+ operate GitVersion by.
RedirectFrom: docs/reference/versioning-modes/continuous-delivery
---
-Continuous Delivery is the practice of having a deployment pipeline and is the
-default mode in GitVersion. Each stage of the pipeline gets the code going
-through the pipeline closer to production.
+Continuous Delivery is the process of checking into a branch, running all the
+tests and if everything goes green it is automatically pushed to a testing system.
-The topic itself is rather large, here we will just focus on the building and
-creation of _releasable_ artifacts. This is only a part of continuous delivery
-as a whole, with the hard part being the ability to measure the impacts of what
-you have deployed into production.
+A good case for Continuous Delivery is when using Octopus deploy, as you
+cannot publish the same version of a package into the same feed.
-In essence continuous delivery means:
-
-* Your code is automatically built and tested
-* If any of the automated tests fail, the team's #1 priority is to fix the
- build
-* If the build is green, the application can be deployed at any time
- * Ideally the business should make that decision
- * The same artifacts which were built and tested should be deployed
- * That means no rebuilding everything when you are deploying
-
-Continuous delivery does not work well with GitFlow. The reason is that you are
-required to _merge_ to main to do a release, triggering a rebuild and a new
-set of artifacts to go through your pipeline. Depending on how long your
-pipeline is, this could be a while.
-
-GitHubFlow is a better fit for Continuous delivery, the [mainline
-development][mainline] model means that every merged feature branch will be
-built as a _stable_ version and if the build/builds go green then you are free
-to deploy to production at any time.
-
-## Usage
-
-By default, GitVersion is set up to do Continuous Delivery on all branches but
-`develop`, which is set up with [Continuous Deployment][continuous-deployment].
-To change the mode to Continuous Delivery, change your
-[configuration][configuration] to:
-
-```yaml
-mode: ContinuousDelivery
-```
+For this mode we follow the logic in [this blog post by Xavier Decoster][blog]
+on the issues of incrementing automatically.
## How Continuous Delivery affects GitVersion
-The thing about continuous delivery is that there will be _multiple_ candidates
-to deploy to production and it is a human choice to deploy. This means that
-GitVersion will build **the same semantic version** until that version is
-deployed. For instance:
+Continuous delivery is good when you deploy continuously to a testing system.
-* 1.1.0+5
-* 1.1.0+6
-* 1.1.0+7 <-- This is the artifact we release, tag the commit which created
- this version
-* 1.1.1+0
+* 1.1.0-3
+* 1.1.0-2 (tag: 1.1.0-2) <-- This is the version which has been deployed on testing
+* 1.1.0-1
+* 1.1.0-0
-Tags are required in this mode to communicate when the release is done as it's
-an external manual process.
+Tags are not required but optional in this mode to communicate when the release
+is done as it's an automated process.
## Resources
-* [Continuous Delivery on Wikipedia][wikipedia]
-* [Continuous Delivery, the book][book]
+* [Configuration][configuration]
+* [Semantic Versioning & auto-incremented NuGet package versions][blog]
+* [Continuous delivery][wikipedia]
-[book]: https://www.amazon.com/Continuous-Delivery-Deployment-Automation-Addison-Wesley/dp/0321601912
[configuration]: /docs/reference/configuration
-[continuous-deployment]: /docs/reference/modes/continuous-deployment
-[mainline]: /docs/reference/modes/mainline
+
+[blog]: https://www.xavierdecoster.com/semantic-versioning-auto-incremented-nuget-package-versions
+
[wikipedia]: https://en.wikipedia.org/wiki/Continuous_delivery
diff --git a/docs/input/docs/reference/modes/continuous-deployment.md b/docs/input/docs/reference/modes/continuous-deployment.md
index 999256d779..b700c3732b 100644
--- a/docs/input/docs/reference/modes/continuous-deployment.md
+++ b/docs/input/docs/reference/modes/continuous-deployment.md
@@ -3,42 +3,33 @@ Order: 30
Title: Continuous Deployment
Description: |
Sometimes you just want the version to keep changing and deploy continuously.
- In this case, Continuous Deployment is a good mode to operate GitVersion by.
RedirectFrom: docs/reference/versioning-modes/continuous-deployment
---
-Continuous Deployment is the process of checking into main, running all the
-tests and if everything goes green it is automatically pushed to production.
-
-A good case for Continuous Deployment is when using Octopus deploy, as you
-cannot publish the same version of a package into the same feed.
+Continuous Deployment is the process of checking into main and automatically
+deploying to production.
For this mode we follow the logic in [this blog post by Xavier Decoster][blog]
on the issues of incrementing automatically.
-As such we force a pre-release tag on all branches, this is fine for
-applications but can cause problems for libraries. As such this mode may or may
-not work for you, which leads us into a new mode in v4 of GitVersion:
-[Mainline Development][mainline].
+## How Continuous Deployment affects GitVersion
-### Usage
+The thing about continuous deployment is that there will be only one version
+to deploy on production. This means that GitVersion will build
+**the same semantic version** for every commit until it has been tagged. For instance:
-By default GitVersion is set up to do Continuous Deployment versioning on the
-`develop` branch, but for all other branches, [Continuous
-Delivery][continuous-delivery] is the default mode. From version 3 of GitVersion
-this behavior is [configurable][configuration].
+* 1.2.0
+* 1.1.0 (tag: 1.1.0) <-- This is the version which has been deployed on production
+* 1.1.0
+* 1.1.0
-The default behavior for v3 and how v1 & 2 worked was that the version only
-incremented after a tag, which signified a release. In v3 you can simply switch
-the default mode in the [configuration][configuration] from `ContinuousDelivery`
-to `ContinuousDeployment` and the version will then increment each commit,
-giving you the features of GitVersion with continuous deployment:
+Tags are required in this mode to communicate when the deployment happens on production.
-```yaml
-mode: ContinuousDeployment
-```
+## Resources
+
+* [Configuration][configuration]
+* [Semantic Versioning & auto-incremented NuGet package versions][blog]
-[blog]: https://www.xavierdecoster.com/semantic-versioning-auto-incremented-nuget-package-versions
[configuration]: /docs/reference/configuration
-[continuous-delivery]: /docs/reference/modes/continuous-delivery
-[mainline]: /docs/reference/modes/mainline
+
+[blog]: https://www.xavierdecoster.com/semantic-versioning-auto-incremented-nuget-package-versions
diff --git a/docs/input/docs/reference/modes/mainline.md b/docs/input/docs/reference/modes/mainline.md
deleted file mode 100644
index 3c882715a9..0000000000
--- a/docs/input/docs/reference/modes/mainline.md
+++ /dev/null
@@ -1,76 +0,0 @@
----
-Order: 40
-Title: Mainline Development
-Description: |
- Mainline Development versioning mode works like the Continuous Delivery,
- except that it tells GitVersion to *infer* releases from merges and commits
- to `main`.
-RedirectFrom: docs/reference/versioning-modes/mainline-development
----
-
-Mainline Development is enabled when using [GitHubFlow][githubflow] or any other
-strategy where you develop on `main`. The main rule of mainline development is
-that **main is always in a state that it could be deployed to production**. This
-means that pull requests should not be merged until they are ready to go out.
-
-To properly achieve mainline development you need confidence in your test suite
-as if it goes green against a PR then you are confident that you can merge and
-release that pull request. Another property of mainline development is normally
-that you fix going forward, not revert. When an issue is discovered with a
-release, add a test or some sort of check to make sure it won't happen again,
-fix the issue, then do a release with the fix.
-
-Like all things, it is an approach and will work for some people and not for
-others. GitVersion is unique in the fact that it works very well with mainline
-development and the version numbers it generates are _predictive_ and indicate
-what the next version to be released is. Most other approaches require bumping
-the version number before the release which means that the version being built
-and the version number which will be deployed are often different.
-
-This mode is great if you do not want to tag each release because you simply
-deploy every commit to main. The behaviour of this mode is as follows:
-
-1. Calculate a base version (likely a tag in this mode)
-2. Walk all commits from the base version commit
-3. When a merge commit is found:
- * Calculate increments for each direct commit on main
- * Calculate the increment for the branch
-4. Calculate increments for each remaining direct commit
-5. For feature branches then calculate increment for the commits so far on your
- feature branch.
-
-If you _do not want_ GitVersion to treat a commit or a pull request as a release
-and increment the version you can use `+semver: none` or `+semver: skip` in a
-commit message to skip incrementing for that commit.
-
-Here is an example of what mainline development looks like:
-
-![Mainline mode][mainline-img]
-
-:::{.alert .alert-warning}
-**Warning**
-
-This approach can slow down over time, we recommend to tag
-intermittently (maybe for minor or major releases) because then GitVersion
-will start the version calculation from that point. Much like a snapshot in an
-event sourced system. We will probably add in warnings to tag when things are
-slowing down.
-:::
-
-## Usage
-
-By default GitVersion is set up to do [Continuous Delivery][continuous-delivery]
-versioning on all branches but `develop` (which does [Continuous
-Deployment][continuous-deployment] by default). To change the [versioning
-mode][modes] to Mainline Development, just change the [configuration][configuration] as such:
-
-```yaml
-mode: Mainline
-```
-
-[configuration]: /docs/reference/configuration
-[continuous-delivery]: /docs/reference/modes/continuous-delivery
-[continuous-deployment]: /docs/reference/modes/continuous-deployment
-[githubflow]: /docs/learn/branching-strategies/githubflow
-[mainline-img]: /docs/img/mainline-mode.png
-[modes]: /docs/reference/modes
diff --git a/docs/input/docs/reference/modes/manual-deployment.md b/docs/input/docs/reference/modes/manual-deployment.md
new file mode 100644
index 0000000000..75e0fb9d74
--- /dev/null
+++ b/docs/input/docs/reference/modes/manual-deployment.md
@@ -0,0 +1,39 @@
+---
+Order: 10
+Title: Manual Deployment
+Description: |
+ The Manual Deployment mode can be used to remain on the same pre-released
+ version until it has been deployed dedicatedly.
+RedirectFrom: docs/reference/versioning-modes/manual-deployment
+---
+
+Having not the necessity to deploy the build artifacts on every commit is an
+indecation of using the **Manual Deployment** mode. This mode can be used to
+remain on the same pre-released version until it has been deployed dedicatedly.
+
+## How Manual Deployment affects GitVersion
+
+The thing about manual deployment is that there will be _multiple_ candidates
+to deploy on testing and it is a human choice to deploy. This means that
+GitVersion will build **the same semantic version** until that version is
+deployed. For instance:
+
+* 1.1.0-2+1
+* 1.1.0-1+2 (tag: 1.1.0-1) <-- This is the version which has been deployed on testing
+* 1.1.0-1+1
+* 1.1.0-1+0
+
+Tags are required in this mode to communicate when the release is done as it's
+an external manual process.
+
+## Resources
+
+* [Configuration][configuration]
+* [Continuous Delivery on Wikipedia][wikipedia]
+* [Continuous Delivery, the book][book]
+
+[configuration]: /docs/reference/configuration
+
+[book]: https://www.amazon.com/Continuous-Delivery-Deployment-Automation-Addison-Wesley/dp/0321601912
+
+[wikipedia]: https://en.wikipedia.org/wiki/Continuous_delivery
diff --git a/docs/input/docs/reference/requirements.md b/docs/input/docs/reference/requirements.md
index 91a2785b80..68acfb00d5 100644
--- a/docs/input/docs/reference/requirements.md
+++ b/docs/input/docs/reference/requirements.md
@@ -14,8 +14,9 @@ build server, needs to adhere to the below requirements.
### Unshallow
-The repository needs to be an [unshallow][git-unshallow] clone. This means
-that the `fetch-depth` in GitHub Actions needs to be set to `0`, for instance.
+The repository should be an [unshallow][git-unshallow] clone. This means
+that the `fetch-depth` in GitHub Actions should set to `0`, unless
+the `allowshallow` flag is used.
Check with your [build server][build-servers] to see how it can be configured
appropriately.
@@ -42,8 +43,10 @@ If it is ambigous which reference (branch or tag) is being built, which is often
the case on build servers, the `Git_Branch` environment variable needs to be
defined and set to the reference being built.
-[git-switch]: https://git-scm.com/docs/git-switch
[git-unshallow]: https://git-scm.com/docs/git-fetch#Documentation/git-fetch.txt---unshallow
+
[gitflow]: /docs/learn/branching-strategies/gitflow
+
[build-servers]: /docs/reference/build-servers
+
[configuration]: /docs/reference/configuration
diff --git a/docs/input/docs/reference/variables.md b/docs/input/docs/reference/variables.md
index bb52759a96..158891797a 100644
--- a/docs/input/docs/reference/variables.md
+++ b/docs/input/docs/reference/variables.md
@@ -21,12 +21,9 @@ what is available. For the `release/3.0.0` branch of GitVersion it shows:
"PreReleaseNumber": 99,
"WeightedPreReleaseNumber": 1099,
"BuildMetaData": 88,
- "BuildMetaDataPadded": "0088",
"FullBuildMetaData": "99.Branch.release/3.22.11.Sha.28c853159a46b5a87e6cc9c4f6e940c59d6bc68a",
"MajorMinorPatch": "3.22.11",
"SemVer": "3.22.11-beta.99",
- "LegacySemVer": "3.22.11-beta99",
- "LegacySemVerPadded": "3.22.11-beta0099",
"AssemblySemVer": "3.22.11.0",
"AssemblySemFileVer": "3.22.11.0",
"InformationalVersion": "3.22.11-beta.99+88.Branch.release/3.022.011.Sha.28c853159a46b5a87e6cc9c4f6e940c59d6bc68a",
@@ -35,13 +32,8 @@ what is available. For the `release/3.0.0` branch of GitVersion it shows:
"EscapedBranchName": "release-3.022.011",
"Sha": "28c853159a46b5a87e6cc9c4f6e940c59d6bc68a",
"ShortSha": "28c8531",
- "NuGetVersionV2": "3.22.11-beta0099",
- "NuGetVersion": "3.22.11-beta0099",
- "NuGetPreReleaseTagV2": "beta0099",
- "NuGetPreReleaseTag": "beta0099",
"VersionSourceSha": "28c853159a46b5a87e6cc9c4f6e940c59d6bc68a",
"CommitsSinceVersionSource": 7,
- "CommitsSinceVersionSourcePadded": "0007",
"CommitDate": "2021-12-31",
"UncommittedChanges": 0
}
@@ -61,12 +53,9 @@ Each property of the above JSON document is described in the below table.
| `PreReleaseNumber` | The pre-release number. |
| `WeightedPreReleaseNumber` | A summation of branch specific `pre-release-weight` and the `PreReleaseNumber`. Can be used to obtain a monotonically increasing version number across the branches. |
| `BuildMetaData` | The build metadata, usually representing number of commits since the `VersionSourceSha`. Despite its name, will not increment for every build. |
-| `BuildMetaDataPadded` | The `BuildMetaData` padded with `0` up to 4 digits. |
| `FullBuildMetaData` | The `BuildMetaData` suffixed with `BranchName` and `Sha`. |
| `MajorMinorPatch` | `Major`, `Minor` and `Patch` joined together, separated by `.`. |
| `SemVer` | The semantical version number, including `PreReleaseTagWithDash` for pre-release version numbers. |
-| `LegacySemVer` | Equal to `SemVer`, but without a `.` separating `PreReleaseLabel` and `PreReleaseNumber`. |
-| `LegacySemVerPadded` | Equal to `LegacySemVer`, but with `PreReleaseNumber` padded with `0` up to 4 digits. |
| `AssemblySemVer` | Suitable for .NET `AssemblyVersion`. Defaults to `Major.Minor.0.0` to allow the assembly to be hotfixed without breaking existing applications that may be referencing it. |
| `AssemblySemFileVer` | Suitable for .NET `AssemblyFileVersion`. Defaults to `Major.Minor.Patch.0`. |
| `InformationalVersion` | Suitable for .NET `AssemblyInformationalVersion`. Defaults to `FullSemVer` suffixed by `FullBuildMetaData`. |
@@ -75,13 +64,8 @@ Each property of the above JSON document is described in the below table.
| `EscapedBranchName` | Equal to `BranchName`, but with `/` replaced with `-`. |
| `Sha` | The SHA of the Git commit. |
| `ShortSha` | The `Sha` limited to 7 characters. |
-| `NuGetVersionV2` | A NuGet 2.0 compatible version number. |
-| `NuGetVersion` | A NuGet 1.0 compatible version number. |
-| `NuGetPreReleaseTagV2` | A NuGet 2.0 compatible `PreReleaseTag`. |
-| `NuGetPreReleaseTag` | A NuGet 1.0 compatible `PreReleaseTag`. |
| `VersionSourceSha` | The SHA of the commit used as version source. |
| `CommitsSinceVersionSource` | The number of commits since the version source. |
-| `CommitsSinceVersionSourcePadded` | The `CommitsSinceVersionSource` padded with `0` up to 4 digits. |
| `CommitDate` | The ISO-8601 formatted date of the commit identified by `Sha`. |
| `UncommittedChanges` | The number of uncommitted changes present in the repository. |
@@ -90,4 +74,8 @@ within a [supported build server][build-servers]), the above version variables
may be exposed automatically as **environment variables** in the format
`GitVersion_FullSemVer`.
+## Formatting Variables
+
+GitVersion variables can be formatted using C# format strings. See [Format Strings](/docs/reference/custom-formatting) for details.
+
[build-servers]: ./build-servers/
diff --git a/docs/input/docs/reference/version-increments.md b/docs/input/docs/reference/version-increments.md
index f6e31f3cf2..3098cad889 100644
--- a/docs/input/docs/reference/version-increments.md
+++ b/docs/input/docs/reference/version-increments.md
@@ -83,11 +83,6 @@ If the incrementing `mode` is set to `MergeMessageOnly` you can add this
information when merging a pull request. This prevents commits within a PR to
bump the version number.
-One thing to be aware of: If the current version is an alpha-version (i.e.
-`0.x.y`.), attempting to bump the major version will merely bump the minor (eg
-from `0.2.0` to `0.3.0` instead of `1.0.0`). Once the current version is greater
-than `1.0.0`, bumping the major version works as expected.
-
#### Conventional commit messages
If you want to use the [Conventional Commits][conventional-commits] standard,
@@ -95,14 +90,25 @@ you can leverage this feature as follows:
```yaml
mode: MainLine # Only add this if you want every version to be created automatically on your main branch.
-major-version-bump-message: "^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test)(\\([\\w\\s-]*\\))?(!:|:.*\\n\\n((.+\\n)+\\n)?BREAKING CHANGE:\\s.+)"
-minor-version-bump-message: "^(feat)(\\([\\w\\s-]*\\))?:"
-patch-version-bump-message: "^(build|chore|ci|docs|fix|perf|refactor|revert|style|test)(\\([\\w\\s-]*\\))?:"
+major-version-bump-message: "^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test)(\\([\\w\\s-,/\\\\]*\\))?(!:|:.*\\n\\n((.+\\n)+\\n)?BREAKING CHANGE:\\s.+)"
+minor-version-bump-message: "^(feat)(\\([\\w\\s-,/\\\\]*\\))?:"
+patch-version-bump-message: "^(fix|perf)(\\([\\w\\s-,/\\\\]*\\))?:"
```
This will ensure that your version gets bumped according to the commits you've
created.
+If your CI/CD workflow uses semantic-release's commit-analyzer, change
+`(fix|perf)` to `(fix|perf|revert)`.
+[Why?](https://github.com/semantic-release/commit-analyzer/blob/75c9c87c88772d7ded4ca9614852b42519e41931/lib/default-release-rules.js#L8C1-L8C38)
+
+Alternatively, you can override this rule in the
+[configuration](https://github.com/semantic-release/commit-analyzer/tree/master#usage)
+of @semantic-release/commit-analyzer. If you intend to write rules with
+patterns, note that instead of using Regular Expression,
+@semantic-release/commit-analyzer uses
+[micromatch's glob implementation](https://github.com/micromatch/micromatch#matching-features).
+
### GitVersion.yml
The first is by setting the `next-version` property in the GitVersion.yml file.
@@ -116,9 +122,10 @@ from the branch name as a source. However, GitVersion can't use the [branch
name as a version source for _other branches_][faq-branch-name-source].
### Detached HEAD
-If HEAD is in detached state tag will be `-no-branch-`.
-Example: `0.1.0--no-branch-.1+4`
+If HEAD is in detached state tag will be `-no-branch-`.
+
+Example: `0.0.1--no-branch-.1+4`
### Tagging commit
@@ -126,11 +133,16 @@ By tagging a commit, GitVersion will use that tag for the version of that
commit, then increment the next commit automatically based on the increment
rules for that branch (some branches bump patch, some minor).
+Be aware that tags are local to a repository and will not be transferred when
+you perform a default `git push`. Instead, tags can be pushed separately with
+their own command. For more information, read the [git documentation on
+tagging][git-tagging].
+
### Incrementing per commit
-When using the continuous deployment `mode` (which will increment the SemVer every
-commit) all builds _must_ have a pre-release tag, except for builds that are
-explicitly tagged as stable.
+When using the continuous deployment `mode` (which will increment the SemVer
+every commit) all builds _must_ have a pre-release tag, except for builds that
+are explicitly tagged as stable.
Then the build metadata (which is the commit count) is promoted to the
pre-release tag. Applying these rules, the above commit-graph would produce:
@@ -148,12 +160,18 @@ b5d142 -> 2.0.0-ci.0 (2.0.0 branch was merged, so main is now at 2.0.0)
As you can see, the versions now no longer conflict. When you want to create a
stable `2.0.0` release you simply `git tag 2.0.0`, then build the tag, and it
-will produce a stable `2.0.0` package.
+will produce a stable `2.0.0` package. Be aware that
+[tags are not transferred with `git push`](#tagging-commit)
For more information/background on why we have come to this conclusion, read
[Xavier Decoster's blog post on the subject][auto-incremented-nuget-package].
[auto-incremented-nuget-package]: https://www.xavierdecoster.com/semantic-versioning-auto-incremented-nuget-package-versions
+
[continuous-delivery]: /docs/reference/modes/continuous-delivery
+
[conventional-commits]: https://www.conventionalcommits.org/
+
[faq-branch-name-source]: /docs/learn/faq#merged-branch-names-as-version-source
+
+[git-tagging]: https://git-scm.com/book/en/v2/Git-Basics-Tagging
diff --git a/docs/input/docs/reference/version-sources.md b/docs/input/docs/reference/version-sources.md
index e58b7c4beb..dcdae9f82d 100644
--- a/docs/input/docs/reference/version-sources.md
+++ b/docs/input/docs/reference/version-sources.md
@@ -11,13 +11,13 @@ version should be.
The logic of GitVersion is something like this:
-* Is the current commit tagged
- * Yes: Use the tag as the version
- * No: continue
-* Calculate the base version (highest version from all the sources)
-* Increment version if needed based on branch config
-* Calculate the build metadata (everything after the +) and append to the
- calculated version
+* Is the current commit tagged
+ * Yes: Use the tag as the version
+ * No: continue
+* Calculate the base version (highest version from all the sources)
+* Increment version if needed based on branch config
+* Calculate the build metadata (everything after the +) and append to the
+ calculated version
## Version Sources
@@ -50,9 +50,9 @@ Will increment: false
For the develop branch, i.e. marked with `is-develop: true`
-* Returns the version number extracted from any child release-branches, i.e.
- those marked with `is-release-branch: true`
-* Returns the version number of any tags on the main branch
+* Returns the version number extracted from any child release-branches, i.e.
+ those marked with `is-release-branch: true`
+* Returns the version number of any tags on the main branch
Will increment: true
diff --git a/docs/input/docs/usage/ci.md b/docs/input/docs/usage/ci.md
index 95b4106329..6affabd81b 100644
--- a/docs/input/docs/usage/ci.md
+++ b/docs/input/docs/usage/ci.md
@@ -32,5 +32,7 @@ GitVersion into an Azure DevOps build pipeline.
The GitLab CI example [gitlab-sample][] implements GitVersion support at the pipeline level by using a single job that runs the GitVersion container and passes the version number downstream into both _pipeline_ and _job_ level variables. It is also implemented as a reusable CI/CD Extension that can be included in many different projects.
[gittools-actions]: https://github.com/marketplace/actions/gittools
+
[gittools-task]: https://marketplace.visualstudio.com/items?itemName=gittools.gittools
+
[gitlab-sample]: https://gitlab.com/guided-explorations/devops-patterns/utterly-automated-versioning/
diff --git a/docs/input/docs/usage/cli/arguments.md b/docs/input/docs/usage/cli/arguments.md
index 14d7c8f996..c8a95ddbc5 100644
--- a/docs/input/docs/usage/cli/arguments.md
+++ b/docs/input/docs/usage/cli/arguments.md
@@ -23,7 +23,6 @@ GitVersion [path]
path The directory containing .git. If not defined current
directory is used. (Must be first argument)
- init Configuration utility for gitversion
/version Displays the version of GitVersion
/diag Runs GitVersion with additional diagnostic information
(requires git.exe to be installed)
@@ -31,22 +30,31 @@ GitVersion [path]
/targetpath Same as 'path', but not positional
/output Determines the output to the console. Can be either 'json',
- 'file' or 'buildserver', will default to 'json'.
+ 'file', 'buildserver' or 'dotenv', will default to 'json'.
/outputfile Path to output file. It is used in combination with /output
'file'.
- /showvariable Used in conjuntion with /output json, will output just a
+ /showvariable Used in conjunction with /output json, will output just a
particular variable. E.g. /output json /showvariable SemVer
- will output `1.2.3+beta.4`
+ /format Used in conjunction with /output json, will output a format
+ containing version variables.
+ Supports C# format strings - see [Format Strings](/docs/reference/custom-formatting) for details.
+ E.g. /output json /format {SemVer} - will output `1.2.3+beta.4`
+ /output json /format {Major}.{Minor} - will output `1.2`
/l Path to logfile.
- /config Path to config file (defaults to GitVersion.yml)
+ /config Path to config file (defaults to GitVersion.yml, GitVersion.yaml, .GitVersion.yml or .GitVersion.yaml)
/showconfig Outputs the effective GitVersion config (defaults + custom
- from GitVersion.yml) in yaml format
+ from GitVersion.yml, GitVersion.yaml, .GitVersion.yml or .GitVersion.yaml) in yaml format
/overrideconfig Overrides GitVersion config values inline (semicolon-
separated key value pairs e.g. /overrideconfig
tag-prefix=Foo)
Currently supported config overrides: tag-prefix
/nocache Bypasses the cache, result will not be written to the cache.
/nonormalize Disables normalize step on a build server.
+ /allowshallow Allows GitVersion to run on a shallow clone.
+ This is not recommended, but can be used if you are sure
+ that the shallow clone contains all the information needed
+ to calculate the version.
/verbosity Specifies the amount of information to be displayed.
(Quiet, Minimal, Normal, Verbose, Diagnostic)
Default is Normal
@@ -58,16 +66,13 @@ GitVersion [path]
the git repo and update them
/updateprojectfiles
Will recursively search for all project files
- (.csproj/.vbproj/.fsproj) files in the git repo and update
+ (.csproj/.vbproj/.fsproj/.sqlproj) files in the git repo and update
them
Note: This is only compatible with the newer Sdk projects
- /updateassemblyinfofilename
- Specify name of AssemblyInfo file. Can also
- /updateAssemblyInfo GlobalAssemblyInfo.cs as a shorthand
/ensureassemblyinfo
If the assembly info file specified with
- /updateassemblyinfo or /updateassemblyinfofilename is not
- found, it be created with these attributes:
+ /updateassemblyinfo is not
+ found, it will be created with these attributes:
AssemblyFileVersion, AssemblyVersion and
AssemblyInformationalVersion.
Supports writing version info for: C#, F#, VB
@@ -93,13 +98,11 @@ GitVersion [path]
Use this switch to override
/nofetch Disables 'git fetch' during version calculation. Might cause
GitVersion to not calculate your version as expected.
-
-gitversion init Configuration utility for gitversion
```
## Override config
-`/overrideconfig [key=value]` will override appropriate `key` from 'GitVersion.yml'.
+`/overrideconfig [key=value]` will override appropriate `key` from 'GitVersion.yml', 'GitVersion.yaml', '.GitVersion.yml' or '.GitVersion.yaml'.
To specify multiple options add multiple `/overrideconfig [key=value]` entries:
`/overrideconfig key1=value1 /overrideconfig key2=value2`.
@@ -110,31 +113,28 @@ Double quote character inside of the double quoted `value` has to be be escaped
Following options are supported:
-1. `assembly-file-versioning-format`
-2. `assembly-file-versioning-scheme`
-3. `assembly-informational-format`
-4. `assembly-versioning-format`
-5. `assembly-versioning-scheme`
-6. `build-metadata-padding`
-7. `commit-date-format`
-8. `commit-message-incrementing`
-9. `commits-since-version-source-padding`
-10. `continuous-delivery-fallback-tag`
-11. `increment`
-12. `legacy-semver-padding`
-13. `major-version-bump-message`
-14. `minor-version-bump-message`
-15. `mode`
-16. `next-version`
-17. `no-bump-message`
-18. `patch-version-bump-message`
-19. `tag-prefix`
-20. `tag-pre-release-weight`
-21. `update-build-number`
+1. `assembly-file-versioning-format`
+2. `assembly-file-versioning-scheme`
+3. `assembly-informational-format`
+4. `assembly-versioning-format`
+5. `assembly-versioning-scheme`
+6. `commit-date-format`
+7. `commit-message-incrementing`
+8. `label`
+9. `increment`
+10. `major-version-bump-message`
+11. `minor-version-bump-message`
+12. `mode`
+13. `next-version`
+14. `no-bump-message`
+15. `patch-version-bump-message`
+16. `tag-prefix`
+17. `tag-pre-release-weight`
+18. `update-build-number`
Read more about [Configuration](/docs/reference/configuration).
-Using `override-config` on the command line will not change the contents of the config file `GitVersion.yml`.
+Using `override-config` on the command line will not change the contents of the config file `GitVersion.yml`, `GitVersion.yaml`, `.GitVersion.yml` or `.GitVersion.yaml`.
### Example: How to override configuration option 'tag-prefix' to use prefix 'custom'
diff --git a/docs/input/docs/usage/cli/assembly-patch.md b/docs/input/docs/usage/cli/assembly-patch.md
index 704044e0fd..94509e65c8 100644
--- a/docs/input/docs/usage/cli/assembly-patch.md
+++ b/docs/input/docs/usage/cli/assembly-patch.md
@@ -10,11 +10,11 @@ Description: |
`AssemblyInfo.cs` or `AssemblyInfo.vb` files in the git repo and update them.
It will update the following assembly attributes:
-* `AssemblyVersion` will be set to the `AssemblySemVer` variable.
-* `AssemblyFileVersion` will be set to the `MajorMinorPatch` variable with an
- appended `.0`.
-* `AssemblyInformationalVersion` will be set to the `InformationalVersion`
- variable.
+* `AssemblyVersion` will be set to the `AssemblySemVer` variable.
+* `AssemblyFileVersion` will be set to the `MajorMinorPatch` variable with an
+ appended `.0`.
+* `AssemblyInformationalVersion` will be set to the `InformationalVersion`
+ variable.
Note that contrary to when using the [MSBuild Task][msbuild-task] the
attributes must already exist in the `AssemblyInfo.cs` or `AssemblyInfo.vb`
@@ -29,11 +29,11 @@ already exist. Use the `/ensureassemblyinfo` switch alongside
`/updateassemblyinfo `, if the filename specified does not exist it
will be generated based on a known template that adds:
-* `AssemblyVersion` will be set to the `AssemblySemVer` variable.
-* `AssemblyFileVersion` will be set to the `MajorMinorPatch` variable with an
- appended `.0`.
-* `AssemblyInformationalVersion` will be set to the `InformationalVersion`
- variable.
+* `AssemblyVersion` will be set to the `AssemblySemVer` variable.
+* `AssemblyFileVersion` will be set to the `MajorMinorPatch` variable with an
+ appended `.0`.
+* `AssemblyInformationalVersion` will be set to the `InformationalVersion`
+ variable.
This can be done for \*.cs, \*.vb and \*.fs files.
@@ -81,4 +81,5 @@ To support integration with WiX projects, use `GitVersion.exe
referenced in the WiX project files.
[msbuild-task]: /docs/usage/msbuild
+
[variables]: /docs/reference/variables
diff --git a/docs/input/docs/usage/cli/installation.md b/docs/input/docs/usage/cli/installation.md
index 1ea0ac2aab..e90f53a940 100644
--- a/docs/input/docs/usage/cli/installation.md
+++ b/docs/input/docs/usage/cli/installation.md
@@ -13,9 +13,15 @@ GitVersion can be installed as a [.NET global tool][dotnet-tool] under the name
[`GitVersion.Tool`][tool] by executing the following in a terminal:
```shell
-dotnet tool install --global GitVersion.Tool --version 5.*
+dotnet tool install --global GitVersion.Tool
```
+:::{.alert .alert-info}
+**Hint:** To install an older version of GitVersion.Tools, use the --version flag of dotnet tool install
+
+Example: `dotnet tool install GitVersion.Tool --global --version 5.*`
+:::
+
If you want to pin to a specific version of GitVersion, you can find the available
versions of [`GitVersion.Tool` on NuGet](https://www.nuget.org/packages/GitVersion.Tool/).
@@ -36,7 +42,7 @@ enter the following into a terminal:
brew install gitversion
```
-Switches are available with `gitversion --help`. Even though the documentation
+Switches are available with `gitversion -h`. Even though the documentation
uses a slash `/` for all switches, you need to use a dash `-` instead, since `/`
is interpreted as a root path on POSIX based operating systems.
@@ -62,15 +68,15 @@ without installing any other dependencies. To use the Docker image, execute
the following:
```shell
-docker run --rm -v "$(pwd):/repo" gittools/gitversion:5.6.6 /repo
+docker run --rm -v "$(pwd):/repo" gittools/gitversion:latest-debian.12 /repo
```
The important arguments here are:
| Argument | Description |
-| --------------------------: | :----------------------------------------------------------------------------------------------------------- |
+|----------------------------:|:-------------------------------------------------------------------------------------------------------------|
| `"$(pwd):/repo"` | Maps the output of `pwd` (the working directory) to the `/repo` directory within the Docker container. |
-| `gittools/gitversion:5.6.6` | The name and tag of the GitVersion container to use. |
+| `gittools/gitversion:{tag}` | The name and tag of the GitVersion container to use. |
| `/repo` | The directory within the Docker container GitVersion should use as its working directory. Don't change this. |
:::{.alert .alert-warning}
@@ -83,8 +89,13 @@ This should work on all operating systems supported by Docker (at the time
of writing: Linux, macOS, Windows).
[dotnet-tool]: https://docs.microsoft.com/en-us/dotnet/core/tools/global-tools#install-a-global-tool
+
[tool]: https://www.nuget.org/packages/GitVersion.Tool/
+
[brew]: https://formulae.brew.sh/formula/gitversion
+
[homebrew]: https://brew.sh/
+
[docker]: https://hub.docker.com/r/gittools/gitversion
+
[choco]: https://chocolatey.org/packages/GitVersion.Portable
diff --git a/docs/input/docs/usage/cli/output.md b/docs/input/docs/usage/cli/output.md
index 52a03daba1..e8cdaf051d 100644
--- a/docs/input/docs/usage/cli/output.md
+++ b/docs/input/docs/usage/cli/output.md
@@ -14,3 +14,24 @@ out the variables to whatever build server it is running in. You can then use
those variables in your build scripts or run different tools to create versioned
NuGet packages or whatever you would like to do. See [build
servers](/docs/reference/build-servers) for more information about this.
+
+You can even store the [variables](/docs/reference/variables) in a Dotenv file
+and load it to have the variables available in your environment.
+For that you have to run `GitVersion.exe /output dotenv` and store the output
+into e.g. a `gitversion.env` file. These files can also be passed around in CI environments
+like [GitHub](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/store-information-in-variables#passing-values-between-steps-and-jobs-in-a-workflow)
+or [GitLab](https://docs.gitlab.com/ee/ci/variables/#pass-an-environment-variable-to-another-job).
+Below are some examples of using the Dotenv format in the Unix command line:
+```bash
+# Output version variables in Dotenv format
+gitversion /output dotenv
+
+# Show only a subset of the version variables in Dotenv format
+gitversion /output dotenv | grep -i "prerelease"
+
+# Show only a subset of the version variables that match the regex in Dotenv format
+gitversion /output dotenv | grep -iE "major|sha=|_prerelease"
+
+# Write version variables in Dotenv format into a file
+gitversion /output dotenv > gitversion.env
+```
diff --git a/docs/input/docs/usage/docker.md b/docs/input/docs/usage/docker.md
new file mode 100644
index 0000000000..f7d7c2cb96
--- /dev/null
+++ b/docs/input/docs/usage/docker.md
@@ -0,0 +1,50 @@
+---
+Order: 50
+Title: Docker
+Description: |
+ Use GitVersion through one of its many published Docker containers.
+---
+
+The recommended image to run is `alpine`, as they are the smallest Docker images we provide. This will execute GitVersion for the current working directory (`$(pwd)`) on Linux and Unix or powershell on Windows:
+
+```sh
+docker run --rm -v "$(pwd):/repo" gittools/gitversion:{tag} /repo
+```
+
+The following command will execute GitVersion for the current working directory (`%CD%`) on Windows with CMD:
+
+```sh
+docker run --rm -v "%CD%:/repo" gittools/gitversion:{tag} /repo
+```
+
+Note that the path `/repo` needs to be passed as an argument since the `gitversion` executable within the container is not aware of the fact that it's running inside a container.
+
+### CI Agents
+
+If you are running GitVersion on a CI agent, you may need to specify environment variables to allow GitVersion to work correctly.
+For example, on Azure DevOps you may need to set the following environment variables:
+
+```sh
+docker run --rm -v "$(pwd):/repo" --env TF_BUILD=true --env BUILD_SOURCEBRANCH=$(Build.SourceBranch) gittools/gitversion:{tag} /repo
+```
+
+On GitHub Actions, you may need to set the following environment variables:
+
+```sh
+docker run --rm -v "$(pwd):/repo" --env GITHUB_ACTIONS=true --env GITHUB_REF=$(GITHUB_REF) gittools/gitversion:{tag} /repo
+```
+
+### Tags
+
+Most of the tags we provide have both arm64 and amd64 variants. If you need to pull a architecture specific tag you can do that like:
+
+```sh
+docker run --rm -v "$(pwd):/repo" gittools/gitversion:{tag}-amd64 /repo
+docker run --rm -v "$(pwd):/repo" gittools/gitversion:{tag}-arm64 /repo
+```
+
+The list of available containers can be found on [Docker Hub][docker-hub].
+
+[Explore GitVersion on Docker Hub][docker-hub]{.btn .btn-primary}
+
+[docker-hub]: https://hub.docker.com/r/gittools/gitversion
diff --git a/docs/input/docs/usage/library.md b/docs/input/docs/usage/library.md
index cec061ecdb..0eaeb6a481 100644
--- a/docs/input/docs/usage/library.md
+++ b/docs/input/docs/usage/library.md
@@ -15,9 +15,9 @@ patch releases, it's a useful option to some.
:::{.alert .alert-warning}
**Warning**
-
-We are not semantically versioning this library and it should be considered
-unstable.
+The library API is not stable and does not follow the semantic versioning
+of the GitVersion tool. A patch release of the tool may break the library
+and we will refactor and change the library API without notice.
:::
Explore the GitVersion library API
diff --git a/docs/input/docs/usage/msbuild.md b/docs/input/docs/usage/msbuild.md
index 64e06e9b9b..5cacea82fd 100644
--- a/docs/input/docs/usage/msbuild.md
+++ b/docs/input/docs/usage/msbuild.md
@@ -15,12 +15,11 @@ modifying your build process.
Just install with NuGet and GitVersion will automatically generate assembly
version information that is compiled into the resulting artifact.
-It currently works with desktop `MSBuild`. Support for CoreCLR with `dotnet build`
-is coming soon.
+Since version 6.0 only MSBuild running on .NET Core (`dotnet msbuild`) is supported.
-> **Note**\
-> The nuget package was "_[GitVersionTask](https://www.nuget.org/packages/GitVersionTask/)_" up until version 5.5.1.\
-> From version 5.6.0 it has been called "_[GitVersion.MsBuild](https://www.nuget.org/packages/GitVersion.MsBuild/)_"
+Unfortunately, up until at least Visual Studio 2022 17.11, Visual Studio runs all builds
+using the .NET Framework version of MSBuild, and therefore **Visual Studio is not supported**.
+For more information see [this discussion](https://github.com/GitTools/GitVersion/discussions/4130).
## TL;DR
@@ -40,7 +39,7 @@ If you're using `PackageReference` style NuGet dependencies (VS 2017+), add
dependency of your package:
```xml
-
+
All
```
@@ -51,39 +50,6 @@ The next thing you need to do is to remove the `Assembly*Version` attributes fro
your `Properties\AssemblyInfo.cs` files. This puts GitVersion.MsBuild in charge of
versioning your assemblies.
-### WPF specific concerns
-
-One further step needs to be taken for SDK-style WPF projects.
-
-Building projects with .NET Core SDK with a version lower than v5.0.200
-requires turning off automatic generation of the different versioning attributes.
-GitVersion usually controls these properties but cannot during WPF specific
-targets that generate a temporary project.
-
-```xml
-
-
- false
- false
- false
-
-```
-
-For .NET Core SDK v5.0.200 to v6.0.0-preview.1, a opt-in flag was introduced to
-allow package references to be imported to the temporary project.
-You can now remove the previous versioning attributes and replace them with
-a single property.
-
-```xml
-
-
- true
-
-```
-
-You can remove all workarounds if you are building with .NET Core SDK
-v6.0.0-preview.2 or later as the flag is now opt-out.
-
### Done!
The setup process is now complete and GitVersion.MsBuild should be working its magic,
@@ -91,6 +57,12 @@ versioning your assemblies like a champ. However, more can be done to further
customize the build process. Keep reading to find out how the version variables
are set and how you can use them in MSBuild tasks.
+## Configuration
+
+The [configuration file](/docs/reference/configuration), if any, is read from a file
+the `GitVersion.yml` the root of the repository or the project directory. Since version 3,
+the path to the configuration file itself [cannot be configured](https://github.com/GitTools/GitVersion/issues/3009).
+
## How does it work?
After being installed into a project, the MSBuild task will wire GitVersion into
@@ -121,10 +93,12 @@ Default sample:
Now, when you build:
-* `AssemblyVersion` will be set to the `AssemblySemVer` variable.
-* `AssemblyFileVersion` will be set to the `MajorMinorPatch` variable with `.0`
- appended to it.
-* `AssemblyInformationalVersion` will be set to the `InformationalVersion` variable.
+* `AssemblyVersion` will be set to the `AssemblySemVer` variable.
+* `AssemblyFileVersion` will be set to the `MajorMinorPatch` variable with `.0`
+ appended to it.
+* `AssemblyInformationalVersion` will be set to the `InformationalVersion` variable.
+
+Assembly version formatting can use C# format strings. See [Format Strings](/docs/reference/custom-formatting) for available options.
#### Other injected Variables
@@ -258,14 +232,40 @@ For SDK-style projects, `UpdateVersionProperties` controls setting the default
variables: `Version`, `VersionPrefix`, `VersionSuffix`, `PackageVersion`,
`InformationalVersion`, `AssemblyVersion` and `FileVersion`.
+## Overriding Target Framework
+
+If you want to override the target framework that GitVersion uses to determine the version, you can set the `GitVersionTargetFramework` property in your MSBuild script, like this:
+
+```xml
+
+ ...
+ net8.0
+ ...
+
+```
+
+### Namespace generation
+
+You can configure GitVersion to generate the `GitVersionInformation` class in a namespace that matches the current assembly. By default this class is created in the global namespace. If `UseProjectNamespaceForGitVersionInformation` is set to true, the `GitVersionInfomation` class will instead be generated in a namespace matching the current project. If the property `` is set that value will be used, otherwise the name of the project file is used.
+
+```xml
+
+ ...
+ true
+ ...
+
+```
+
## Extra properties
-There are properties that correspont to certain
+There are properties that correspond to certain
[command line arguments](/docs/usage/cli/arguments) for GetVersion task.
-In particular, setting `GitVersion_NoFetchEnabled` to `true` disables `git fetch`
-during version calculation, setting `GitVersion_NoNormalizeEnabled` to `true` disables
+In particular, setting `GitVersion_NoFetchEnabled` to `true` disables `git fetch`
+during version calculation, setting `GitVersion_NoNormalizeEnabled` to `true` disables
normalize step on a build server, setting `GitVersion_NoCacheEnabled` to `true`
-makes GetVersion ignore cache. All the rest command line arguments can be passed via
+makes GetVersion ignore cache, setting `GitVersion_AllowShallowEnabled` to `true`
+does not mandate a full clone of the repository to determine the version.
+All the rest command line arguments can be passed via
`GitVersion_CommandLineArguments` variable.
## My Git repository requires authentication. What should I do?
diff --git a/docs/input/docs/workflows/GitFlow/v1.yml b/docs/input/docs/workflows/GitFlow/v1.yml
new file mode 100644
index 0000000000..dd44250ac5
--- /dev/null
+++ b/docs/input/docs/workflows/GitFlow/v1.yml
@@ -0,0 +1,167 @@
+assembly-versioning-scheme: MajorMinorPatch
+assembly-file-versioning-scheme: MajorMinorPatch
+tag-prefix: '[vV]?'
+version-in-branch-pattern: (?[vV]?\d+(\.\d+)?(\.\d+)?).*
+major-version-bump-message: \+semver:\s?(breaking|major)
+minor-version-bump-message: \+semver:\s?(feature|minor)
+patch-version-bump-message: \+semver:\s?(fix|patch)
+no-bump-message: \+semver:\s?(none|skip)
+tag-pre-release-weight: 60000
+commit-date-format: yyyy-MM-dd
+merge-message-formats: {}
+update-build-number: true
+semantic-version-format: Strict
+strategies:
+- Fallback
+- ConfiguredNextVersion
+- MergeMessage
+- TaggedCommit
+- TrackReleaseBranches
+- VersionInBranchName
+branches:
+ develop:
+ mode: ContinuousDelivery
+ label: alpha
+ increment: Minor
+ prevent-increment:
+ when-current-commit-tagged: false
+ track-merge-target: true
+ track-merge-message: true
+ regex: ^dev(elop)?(ment)?$
+ source-branches:
+ - main
+ is-source-branch-for: []
+ tracks-release-branches: true
+ is-release-branch: false
+ is-main-branch: false
+ pre-release-weight: 0
+ main:
+ label: ''
+ increment: Patch
+ prevent-increment:
+ of-merged-branch: true
+ track-merge-target: false
+ track-merge-message: true
+ regex: ^master$|^main$
+ source-branches: []
+ is-source-branch-for: []
+ tracks-release-branches: false
+ is-release-branch: false
+ is-main-branch: true
+ pre-release-weight: 55000
+ release:
+ mode: ManualDeployment
+ label: beta
+ increment: Minor
+ prevent-increment:
+ of-merged-branch: true
+ when-current-commit-tagged: false
+ track-merge-target: false
+ regex: ^releases?[\/-](?.+)
+ source-branches:
+ - main
+ - support
+ is-source-branch-for: []
+ tracks-release-branches: false
+ is-release-branch: true
+ is-main-branch: false
+ pre-release-weight: 30000
+ feature:
+ mode: ManualDeployment
+ label: '{BranchName}'
+ increment: Inherit
+ prevent-increment:
+ when-current-commit-tagged: false
+ track-merge-message: true
+ regex: ^features?[\/-](?.+)
+ source-branches:
+ - develop
+ - main
+ - release
+ - support
+ - hotfix
+ is-source-branch-for: []
+ is-main-branch: false
+ pre-release-weight: 30000
+ pull-request:
+ mode: ContinuousDelivery
+ label: PullRequest{Number}
+ increment: Inherit
+ prevent-increment:
+ of-merged-branch: true
+ when-current-commit-tagged: false
+ track-merge-message: true
+ regex: ^(pull-requests|pull|pr)[\/-](?\d*)
+ source-branches:
+ - develop
+ - main
+ - release
+ - feature
+ - support
+ - hotfix
+ is-source-branch-for: []
+ pre-release-weight: 30000
+ hotfix:
+ mode: ManualDeployment
+ label: beta
+ increment: Inherit
+ prevent-increment:
+ when-current-commit-tagged: false
+ regex: ^hotfix(es)?[\/-](?.+)
+ source-branches:
+ - main
+ - support
+ is-source-branch-for: []
+ is-release-branch: true
+ is-main-branch: false
+ pre-release-weight: 30000
+ support:
+ label: ''
+ increment: Patch
+ prevent-increment:
+ of-merged-branch: true
+ track-merge-target: false
+ regex: ^support[\/-](?.+)
+ source-branches:
+ - main
+ is-source-branch-for: []
+ tracks-release-branches: false
+ is-release-branch: false
+ is-main-branch: true
+ pre-release-weight: 55000
+ unknown:
+ mode: ManualDeployment
+ label: '{BranchName}'
+ increment: Inherit
+ prevent-increment:
+ when-current-commit-tagged: true
+ regex: (?.+)
+ source-branches:
+ - main
+ - develop
+ - release
+ - feature
+ - pull-request
+ - hotfix
+ - support
+ is-source-branch-for: []
+ is-main-branch: false
+ignore:
+ sha: []
+ paths: []
+mode: ContinuousDelivery
+label: '{BranchName}'
+increment: Inherit
+prevent-increment:
+ of-merged-branch: false
+ when-branch-merged: false
+ when-current-commit-tagged: true
+track-merge-target: false
+track-merge-message: true
+commit-message-incrementing: Enabled
+regex: ''
+source-branches: []
+is-source-branch-for: []
+tracks-release-branches: false
+is-release-branch: false
+is-main-branch: false
diff --git a/docs/input/docs/workflows/GitHubFlow/v1.yml b/docs/input/docs/workflows/GitHubFlow/v1.yml
new file mode 100644
index 0000000000..be7da3a729
--- /dev/null
+++ b/docs/input/docs/workflows/GitHubFlow/v1.yml
@@ -0,0 +1,116 @@
+assembly-versioning-scheme: MajorMinorPatch
+assembly-file-versioning-scheme: MajorMinorPatch
+tag-prefix: '[vV]?'
+version-in-branch-pattern: (?[vV]?\d+(\.\d+)?(\.\d+)?).*
+major-version-bump-message: \+semver:\s?(breaking|major)
+minor-version-bump-message: \+semver:\s?(feature|minor)
+patch-version-bump-message: \+semver:\s?(fix|patch)
+no-bump-message: \+semver:\s?(none|skip)
+tag-pre-release-weight: 60000
+commit-date-format: yyyy-MM-dd
+merge-message-formats: {}
+update-build-number: true
+semantic-version-format: Strict
+strategies:
+- Fallback
+- ConfiguredNextVersion
+- MergeMessage
+- TaggedCommit
+- TrackReleaseBranches
+- VersionInBranchName
+branches:
+ main:
+ label: ''
+ increment: Patch
+ prevent-increment:
+ of-merged-branch: true
+ track-merge-target: false
+ track-merge-message: true
+ regex: ^master$|^main$
+ source-branches: []
+ is-source-branch-for: []
+ tracks-release-branches: false
+ is-release-branch: false
+ is-main-branch: true
+ pre-release-weight: 55000
+ release:
+ mode: ManualDeployment
+ label: beta
+ increment: Patch
+ prevent-increment:
+ of-merged-branch: true
+ when-branch-merged: false
+ when-current-commit-tagged: false
+ track-merge-target: false
+ track-merge-message: true
+ regex: ^releases?[\/-](?.+)
+ source-branches:
+ - main
+ is-source-branch-for: []
+ tracks-release-branches: false
+ is-release-branch: true
+ is-main-branch: false
+ pre-release-weight: 30000
+ feature:
+ mode: ManualDeployment
+ label: '{BranchName}'
+ increment: Inherit
+ prevent-increment:
+ when-current-commit-tagged: false
+ track-merge-message: true
+ regex: ^features?[\/-](?.+)
+ source-branches:
+ - main
+ - release
+ is-source-branch-for: []
+ is-main-branch: false
+ pre-release-weight: 30000
+ pull-request:
+ mode: ContinuousDelivery
+ label: PullRequest{Number}
+ increment: Inherit
+ prevent-increment:
+ of-merged-branch: true
+ when-current-commit-tagged: false
+ track-merge-message: true
+ regex: ^(pull-requests|pull|pr)[\/-](?\d*)
+ source-branches:
+ - main
+ - release
+ - feature
+ is-source-branch-for: []
+ pre-release-weight: 30000
+ unknown:
+ mode: ManualDeployment
+ label: '{BranchName}'
+ increment: Inherit
+ prevent-increment:
+ when-current-commit-tagged: false
+ track-merge-message: false
+ regex: (?.+)
+ source-branches:
+ - main
+ - release
+ - feature
+ - pull-request
+ is-source-branch-for: []
+ is-main-branch: false
+ignore:
+ sha: []
+ paths: []
+mode: ContinuousDelivery
+label: '{BranchName}'
+increment: Inherit
+prevent-increment:
+ of-merged-branch: false
+ when-branch-merged: false
+ when-current-commit-tagged: true
+track-merge-target: false
+track-merge-message: true
+commit-message-incrementing: Enabled
+regex: ''
+source-branches: []
+is-source-branch-for: []
+tracks-release-branches: false
+is-release-branch: false
+is-main-branch: false
diff --git a/docs/input/docs/workflows/TrunkBased/preview1.yml b/docs/input/docs/workflows/TrunkBased/preview1.yml
new file mode 100644
index 0000000000..c261444d9f
--- /dev/null
+++ b/docs/input/docs/workflows/TrunkBased/preview1.yml
@@ -0,0 +1,101 @@
+assembly-versioning-scheme: MajorMinorPatch
+assembly-file-versioning-scheme: MajorMinorPatch
+tag-prefix: '[vV]?'
+version-in-branch-pattern: (?[vV]?\d+(\.\d+)?(\.\d+)?).*
+major-version-bump-message: \+semver:\s?(breaking|major)
+minor-version-bump-message: \+semver:\s?(feature|minor)
+patch-version-bump-message: \+semver:\s?(fix|patch)
+no-bump-message: \+semver:\s?(none|skip)
+tag-pre-release-weight: 60000
+commit-date-format: yyyy-MM-dd
+merge-message-formats: {}
+update-build-number: true
+semantic-version-format: Strict
+strategies:
+- ConfiguredNextVersion
+- Mainline
+branches:
+ main:
+ mode: ContinuousDeployment
+ label: ''
+ increment: Patch
+ prevent-increment:
+ of-merged-branch: true
+ track-merge-target: false
+ track-merge-message: true
+ regex: ^master$|^main$
+ source-branches: []
+ is-source-branch-for: []
+ tracks-release-branches: false
+ is-release-branch: false
+ is-main-branch: true
+ pre-release-weight: 55000
+ feature:
+ mode: ContinuousDelivery
+ label: '{BranchName}'
+ increment: Minor
+ prevent-increment:
+ when-current-commit-tagged: false
+ track-merge-message: true
+ regex: ^features?[\/-](?.+)
+ source-branches:
+ - main
+ is-source-branch-for: []
+ is-main-branch: false
+ pre-release-weight: 30000
+ hotfix:
+ mode: ContinuousDelivery
+ label: '{BranchName}'
+ increment: Patch
+ prevent-increment:
+ when-current-commit-tagged: false
+ regex: ^hotfix(es)?[\/-](?.+)
+ source-branches:
+ - main
+ is-source-branch-for: []
+ is-release-branch: true
+ is-main-branch: false
+ pre-release-weight: 30000
+ pull-request:
+ mode: ContinuousDelivery
+ label: PullRequest{Number}
+ increment: Inherit
+ prevent-increment:
+ of-merged-branch: true
+ when-current-commit-tagged: false
+ track-merge-message: true
+ regex: ^(pull-requests|pull|pr)[\/-](?\d*)
+ source-branches:
+ - main
+ - feature
+ - hotfix
+ is-source-branch-for: []
+ pre-release-weight: 30000
+ unknown:
+ increment: Patch
+ prevent-increment:
+ when-current-commit-tagged: false
+ regex: (?.+)
+ source-branches:
+ - main
+ is-source-branch-for: []
+ pre-release-weight: 30000
+ignore:
+ sha: []
+ paths: []
+mode: ContinuousDelivery
+label: '{BranchName}'
+increment: Inherit
+prevent-increment:
+ of-merged-branch: false
+ when-branch-merged: false
+ when-current-commit-tagged: true
+track-merge-target: false
+track-merge-message: true
+commit-message-incrementing: Enabled
+regex: ''
+source-branches: []
+is-source-branch-for: []
+tracks-release-branches: false
+is-release-branch: false
+is-main-branch: false
diff --git a/docs/readme.md b/docs/readme.md
index a35ed62c43..8898e0691b 100644
--- a/docs/readme.md
+++ b/docs/readme.md
@@ -17,32 +17,45 @@ expected.
## Serving the documentation locally
-To serve up the documentation locally, you need to run the `build.ps1` script
-with the arguments `-Target Preview-Documentation`.
+To serve up the documentation locally, you need to run the following
+commands:
+
+```shell
+./build.ps1 -Stage build -Target BuildPrepare
+./build.ps1 -Stage build -Target Build
+./build.ps1 -Stage docs -Target PreviewDocs
+```
### On Windows
-On Windows, you need to run the following build command in a PowerShell
+On Windows, you need to run the following commands in a PowerShell
terminal:
```shell
-.\build.ps1 -Target Preview-Documentation
+./build.ps1 -Stage build -Target BuildPrepare
+./build.ps1 -Stage build -Target Build
+./build.ps1 -Stage docs -Target PreviewDocs
```
### On Unix
First you need to [install PowerShell on macOS][ps-mac] or [Linux][ps-linux],
-then execute the following command:
+then execute the following commands:
```shell
-pwsh build.ps1 -Target Preview-Documentation
+./build.ps1 -Stage build -Target BuildPrepare
+./build.ps1 -Stage build -Target Build
+./build.ps1 -Stage docs -Target PreviewDocs
```
After pressing enter, the documentation will be generated and then served under
-a local web server. Information about the URL that can be used to view the docs
-will be shown in the output. Copy/paste this URL into a browser window.
+a local web server. Information about the URL that can be used to view the docs
+will be shown in the output. Copy/paste this URL into a browser window.
[gitversion.net]: https://gitversion.net/
+
[forking]: https://guides.github.com/activities/forking/
+
[ps-mac]: https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-macos?view=powershell-7.1
+
[ps-linux]: https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-linux?view=powershell-7.1
diff --git a/dotnet-tools.json b/dotnet-tools.json
deleted file mode 100644
index 4c6f94aa79..0000000000
--- a/dotnet-tools.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "version": 1,
- "isRoot": true,
- "tools": {
- "codecov.tool": {
- "version": "1.13.0",
- "commands": [
- "codecov"
- ]
- },
- "gitversion.tool": {
- "version": "5.10.1",
- "commands": [
- "dotnet-gitversion"
- ]
- },
- "gitreleasemanager.tool": {
- "version": "0.13.0",
- "commands": [
- "dotnet-gitreleasemanager"
- ]
- },
- "Wyam2.Tool": {
- "version": "3.0.0-rc3",
- "commands": [
- "wyam2"
- ]
- }
- }
-}
diff --git a/global.json b/global.json
new file mode 100644
index 0000000000..83a2010aca
--- /dev/null
+++ b/global.json
@@ -0,0 +1,10 @@
+{
+ "projects": [
+ "build",
+ "new-cli",
+ "src"
+ ],
+ "sdk": {
+ "version": "9.0.306"
+ }
+}
diff --git a/mkdocs.yml b/mkdocs.yml
deleted file mode 100644
index 6215b58620..0000000000
--- a/mkdocs.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-site_name: GitVersion
-theme: readthedocs
-repo_url: https://github.com/GitTools/GitVersion
-
-pages:
-- Home: index.md
diff --git a/new-cli/.idea/.idea.GitVersion/.idea/icon.svg b/new-cli/.idea/.idea.GitVersion/.idea/icon.svg
new file mode 100644
index 0000000000..f8bfb01f26
--- /dev/null
+++ b/new-cli/.idea/.idea.GitVersion/.idea/icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/new-cli/.idea/.idea.GitVersion/.idea/indexLayout.xml b/new-cli/.idea/.idea.GitVersion/.idea/indexLayout.xml
new file mode 100644
index 0000000000..db942041e6
--- /dev/null
+++ b/new-cli/.idea/.idea.GitVersion/.idea/indexLayout.xml
@@ -0,0 +1,10 @@
+
+
+
+
+ docs
+
+
+
+
+
\ No newline at end of file
diff --git a/new-cli/.run/Calculate.run.xml b/new-cli/.run/Calculate.run.xml
new file mode 100644
index 0000000000..018cb7f4fc
--- /dev/null
+++ b/new-cli/.run/Calculate.run.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/new-cli/.run/Config Help.run.xml b/new-cli/.run/Config Help.run.xml
new file mode 100644
index 0000000000..4e0be82dd7
--- /dev/null
+++ b/new-cli/.run/Config Help.run.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/new-cli/.run/Config Init.run.xml b/new-cli/.run/Config Init.run.xml
new file mode 100644
index 0000000000..f188a379c1
--- /dev/null
+++ b/new-cli/.run/Config Init.run.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/new-cli/.run/Config Show.run.xml b/new-cli/.run/Config Show.run.xml
new file mode 100644
index 0000000000..72e1fdcd29
--- /dev/null
+++ b/new-cli/.run/Config Show.run.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/new-cli/.run/Help.run.xml b/new-cli/.run/Help.run.xml
new file mode 100644
index 0000000000..1baa8e5ef1
--- /dev/null
+++ b/new-cli/.run/Help.run.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/new-cli/.run/Normalize.run.xml b/new-cli/.run/Normalize.run.xml
new file mode 100644
index 0000000000..f77ee611de
--- /dev/null
+++ b/new-cli/.run/Normalize.run.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/new-cli/.run/Output AssemblyInfo.run.xml b/new-cli/.run/Output AssemblyInfo.run.xml
new file mode 100644
index 0000000000..514f75ccfe
--- /dev/null
+++ b/new-cli/.run/Output AssemblyInfo.run.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/new-cli/.run/Output Help.run.xml b/new-cli/.run/Output Help.run.xml
new file mode 100644
index 0000000000..eb86159ea7
--- /dev/null
+++ b/new-cli/.run/Output Help.run.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/new-cli/.run/Output Project.run.xml b/new-cli/.run/Output Project.run.xml
new file mode 100644
index 0000000000..23976608fd
--- /dev/null
+++ b/new-cli/.run/Output Project.run.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/new-cli/.run/Output Wix.run.xml b/new-cli/.run/Output Wix.run.xml
new file mode 100644
index 0000000000..7c35b9079a
--- /dev/null
+++ b/new-cli/.run/Output Wix.run.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/new-cli/.run/TestCommand.run.xml b/new-cli/.run/TestCommand.run.xml
new file mode 100644
index 0000000000..6d8c05c0fb
--- /dev/null
+++ b/new-cli/.run/TestCommand.run.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/new-cli/.run/Tester.run.xml b/new-cli/.run/Tester.run.xml
new file mode 100644
index 0000000000..d59e277cea
--- /dev/null
+++ b/new-cli/.run/Tester.run.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/new-cli/.run/Version.run.xml b/new-cli/.run/Version.run.xml
new file mode 100644
index 0000000000..1c5607e906
--- /dev/null
+++ b/new-cli/.run/Version.run.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/new-cli/Directory.Build.props b/new-cli/Directory.Build.props
new file mode 100644
index 0000000000..986cfabbd7
--- /dev/null
+++ b/new-cli/Directory.Build.props
@@ -0,0 +1,40 @@
+
+
+ net9.0
+ GitVersion
+
+ latest
+ enable
+ enable
+ 8625;2254;IDE0005
+
+ en
+ true
+ latest
+ true
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props
new file mode 100644
index 0000000000..0173907d76
--- /dev/null
+++ b/new-cli/Directory.Packages.props
@@ -0,0 +1,37 @@
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/new-cli/GitVersion.Calculation/CalculateCommand.cs b/new-cli/GitVersion.Calculation/CalculateCommand.cs
new file mode 100644
index 0000000000..6b3dbb798a
--- /dev/null
+++ b/new-cli/GitVersion.Calculation/CalculateCommand.cs
@@ -0,0 +1,30 @@
+using GitVersion.Extensions;
+using GitVersion.Git;
+using Microsoft.Extensions.Logging;
+
+namespace GitVersion.Commands;
+
+public record CalculateSettings : GitVersionSettings;
+
+[Command("calculate", "Calculates the version object from the git history.")]
+public class CalculateCommand(ILogger logger, IService service, IGitRepository repository) : ICommand
+{
+ private readonly ILogger _logger = logger.NotNull();
+ private readonly IService _service = service.NotNull();
+ private readonly IGitRepository _repository = repository.NotNull();
+
+ public Task InvokeAsync(CalculateSettings settings, CancellationToken cancellationToken = default)
+ {
+ var value = _service.Call();
+ if (settings.WorkDir != null)
+ {
+ _repository.DiscoverRepository(settings.WorkDir.FullName);
+ var branches = _repository.Branches.ToList();
+ _logger.LogInformation("Command : 'calculate', LogFile : '{logFile}', WorkDir : '{workDir}' ",
+ settings.LogFile, settings.WorkDir);
+ _logger.LogInformation("Found {count} branches", branches.Count);
+ }
+
+ return Task.FromResult(value);
+ }
+}
diff --git a/new-cli/GitVersion.Calculation/GitVersion.Calculation.csproj b/new-cli/GitVersion.Calculation/GitVersion.Calculation.csproj
new file mode 100644
index 0000000000..01f48f5e20
--- /dev/null
+++ b/new-cli/GitVersion.Calculation/GitVersion.Calculation.csproj
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/new-cli/GitVersion.Cli.Generator.Tests/GitVersion.Cli.Generator.Tests.csproj b/new-cli/GitVersion.Cli.Generator.Tests/GitVersion.Cli.Generator.Tests.csproj
new file mode 100644
index 0000000000..13dd134bbf
--- /dev/null
+++ b/new-cli/GitVersion.Cli.Generator.Tests/GitVersion.Cli.Generator.Tests.csproj
@@ -0,0 +1,36 @@
+
+
+
+ GitVersion.Cli.Generator.Tests
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/new-cli/GitVersion.Cli.Generator.Tests/SystemCommandlineGeneratorTests.cs b/new-cli/GitVersion.Cli.Generator.Tests/SystemCommandlineGeneratorTests.cs
new file mode 100644
index 0000000000..6e3775e48d
--- /dev/null
+++ b/new-cli/GitVersion.Cli.Generator.Tests/SystemCommandlineGeneratorTests.cs
@@ -0,0 +1,288 @@
+using System.CommandLine;
+using GitVersion.Infrastructure;
+using Microsoft.CodeAnalysis;
+using Microsoft.CodeAnalysis.CSharp;
+using Microsoft.CodeAnalysis.CSharp.Testing;
+using Microsoft.CodeAnalysis.Testing;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Logging;
+
+namespace GitVersion.Cli.Generator.Tests;
+
+public class SystemCommandlineGeneratorTests
+{
+ /*language=cs*/
+ private const string GlobalUsingsCode =
+"""
+//
+global using global::System;
+global using global::System.Collections.Generic;
+global using global::System.IO;
+global using global::System.Linq;
+global using global::System.Net.Http;
+global using global::System.Threading;
+global using global::System.Threading.Tasks;
+""";
+
+ /*language=cs*/
+ private const string ExpectedCommandImplText =
+$$"""
+{{Constants.GeneratedHeader}}
+using System.CommandLine;
+using System.CommandLine.Binding;
+
+using {{Constants.CommandNamespaceName}};
+
+namespace {{Constants.GeneratedNamespaceName}};
+
+public class TestCommandImpl : Command, ICommandImpl
+{
+ public string CommandImplName => nameof(TestCommandImpl);
+ public string ParentCommandImplName => string.Empty;
+ // Options list
+ protected readonly Option LogFileOption;
+ protected readonly Option OutputFileOption;
+ protected readonly Option VerbosityOption;
+ protected readonly Option WorkDirOption;
+
+ public TestCommandImpl(TestCommand command)
+ : base("test", "Test description.")
+ {
+ LogFileOption = new Option("--log-file", "-l")
+ {
+ Required = false,
+ Description = "The log file",
+ };
+ OutputFileOption = new Option("--output-file")
+ {
+ Required = true,
+ Description = "The output file",
+ };
+ VerbosityOption = new Option("--verbosity")
+ {
+ Required = false,
+ Description = "The verbosity of the logging information",
+ };
+ WorkDirOption = new Option("--work-dir")
+ {
+ Required = false,
+ Description = "The working directory with the git repository",
+ };
+ Add(LogFileOption);
+ Add(OutputFileOption);
+ Add(VerbosityOption);
+ Add(WorkDirOption);
+
+ this.SetAction(Run);
+ return;
+
+ Task Run(ParseResult parseResult, CancellationToken cancellationToken)
+ {
+ var settings = new TestCommandSettings
+ {
+ LogFile = parseResult.GetValue(LogFileOption),
+ OutputFile = parseResult.GetValue(OutputFileOption)!,
+ Verbosity = parseResult.GetValue(VerbosityOption),
+ WorkDir = parseResult.GetValue(WorkDirOption),
+ };
+ return command.InvokeAsync(settings, cancellationToken);
+ }
+ }
+}
+""";
+
+ /*language=cs*/
+ private const string ExpectedCommandsModuleText =
+$$"""
+{{Constants.GeneratedHeader}}
+using System.CommandLine;
+using {{Constants.InfrastructureNamespaceName}};
+using {{Constants.CommandNamespaceName}};
+using {{Constants.CommonNamespaceName}};
+using Microsoft.Extensions.DependencyInjection;
+
+namespace {{Constants.GeneratedNamespaceName}};
+
+public class CommandsModule : IGitVersionModule
+{
+ public IServiceCollection RegisterTypes(IServiceCollection services)
+ {
+ services.AddSingleton();
+ services.AddSingleton();
+
+ services.AddSingleton();
+ services.AddSingleton();
+ return services;
+ }
+}
+""";
+
+ /*language=cs*/
+ private const string ExpectedRootCommandImplText =
+$$"""
+{{Constants.GeneratedHeader}}
+using System.CommandLine;
+
+using {{Constants.CommonNamespaceName}};
+using {{Constants.ExtensionsNamespaceName}};
+
+namespace {{Constants.GeneratedNamespaceName}};
+
+public class RootCommandImpl(IEnumerable commands) : RootCommand
+{
+ private readonly IEnumerable _commands = commands.NotNull();
+
+ public void Configure()
+ {
+ var map = _commands.ToDictionary(c => c.CommandImplName);
+ foreach (var command in map.Values)
+ {
+ AddCommand(command, map);
+ }
+ }
+
+ private void AddCommand(ICommandImpl command, Dictionary map)
+ {
+ if (!string.IsNullOrWhiteSpace(command.ParentCommandImplName))
+ {
+ var parent = map[command.ParentCommandImplName] as Command;
+ parent?.Add((Command)command);
+ }
+ else
+ {
+ Add((Command)command);
+ }
+ }
+}
+""";
+
+ /*language=cs*/
+ private const string ExpectedCliAppImplText =
+$$"""
+{{Constants.GeneratedHeader}}
+using System.CommandLine;
+using {{Constants.ExtensionsNamespaceName}};
+using {{Constants.InfrastructureNamespaceName}};
+
+namespace {{Constants.GeneratedNamespaceName}};
+
+internal class CliAppImpl : ICliApp
+{
+ private readonly RootCommandImpl _rootCommand;
+
+ public CliAppImpl(RootCommandImpl rootCommand)
+ {
+ _rootCommand = rootCommand.NotNull();
+ _rootCommand.Configure();
+ }
+
+ public Task RunAsync(string[] args, CancellationToken cancellationToken)
+ {
+ // Note: there are 2 locations to watch for the dotnet-suggest tool
+ // - sentinel file:
+ // $env:TEMP\system-commandline-sentinel-files\ and
+ // - registration file:
+ // $env:LOCALAPPDATA\.dotnet-suggest-registration.txt or $HOME/.dotnet-suggest-registration.txt
+
+ var parseResult = _rootCommand.Parse(args);
+
+ var logFile = parseResult.GetValue(GitVersionSettings.LogFileOption);
+ var verbosity = parseResult.GetValue(GitVersionSettings.VerbosityOption) ?? Verbosity.Normal;
+
+ LoggingEnricher.Configure(logFile?.FullName, verbosity);
+
+ return parseResult.InvokeAsync(cancellationToken: cancellationToken);
+ }
+}
+""";
+
+ /*language=cs*/
+ private const string TestCommandSourceCode =
+$$"""
+using {{Constants.InfrastructureNamespaceName}};
+using Microsoft.Extensions.Logging;
+
+namespace {{Constants.CommandNamespaceName}};
+
+[CommandAttribute("test", "Test description.")]
+public class TestCommand(ILogger logger): ICommand
+{
+ public Task InvokeAsync(TestCommandSettings settings, CancellationToken cancellationToken = default)
+ {
+ return Task.FromResult(0);
+ }
+}
+
+""";
+
+ /*language=cs*/
+ private const string TestCommandSettingsSourceCode =
+$$"""
+using {{Constants.InfrastructureNamespaceName}};
+using Microsoft.Extensions.Logging;
+
+namespace {{Constants.CommandNamespaceName}};
+
+public record TestCommandSettings : GitVersionSettings
+{
+ [Option("--output-file", "The output file")]
+ public required string OutputFile { get; init; }
+}
+
+""";
+
+ [Test]
+ public async Task ValidateGeneratedCommandImplementation()
+ {
+ var generatorType = typeof(SystemCommandlineGenerator);
+ var sourceGeneratorTest = new CSharpSourceGeneratorTest
+ {
+ TestState =
+ {
+ Sources =
+ {
+ (generatorType, "GlobalUsings.cs", GlobalUsingsCode),
+ (generatorType, "TestCommand.cs", TestCommandSourceCode),
+ (generatorType, "TestCommandSettings.cs", TestCommandSettingsSourceCode)
+ },
+ GeneratedSources =
+ {
+ (generatorType,"TestCommandImpl.g.cs", ExpectedCommandImplText),
+ (generatorType,"CommandsModule.g.cs", ExpectedCommandsModuleText),
+ (generatorType,"RootCommandImpl.g.cs", ExpectedRootCommandImplText),
+ (generatorType,"CliAppImpl.g.cs", ExpectedCliAppImplText),
+ },
+ ReferenceAssemblies = ReferenceAssemblies.Net.Net90,
+ AdditionalReferences =
+ {
+ MetadataReference.CreateFromFile(typeof(ILogger).Assembly.Location),
+ MetadataReference.CreateFromFile(typeof(IServiceCollection).Assembly.Location),
+ MetadataReference.CreateFromFile(typeof(RootCommand).Assembly.Location),
+ MetadataReference.CreateFromFile(typeof(CommandAttribute).Assembly.Location),
+ MetadataReference.CreateFromFile(typeof(IGitVersionModule).Assembly.Location),
+ MetadataReference.CreateFromFile(typeof(LoggingEnricher).Assembly.Location),
+ }
+ }
+ };
+
+ sourceGeneratorTest.SolutionTransforms.Add(
+ // make sure the ImplicitUsage is enabled
+ (solution, projectId) =>
+ {
+ var project = solution.GetProject(projectId)!;
+
+ // Enable ImplicitUsings
+ var parseOptions = (CSharpParseOptions)project.ParseOptions!;
+ var compilationOptions = (CSharpCompilationOptions)project.CompilationOptions!;
+
+ // Enable implicit usings (same as `enable ` in .csproj)
+ compilationOptions = compilationOptions.WithNullableContextOptions(NullableContextOptions.Enable);
+
+ return project
+ .WithParseOptions(parseOptions.WithLanguageVersion(LanguageVersion.Latest))
+ .WithCompilationOptions(compilationOptions)
+ .Solution;
+ });
+ await sourceGeneratorTest.RunAsync();
+ }
+}
diff --git a/new-cli/GitVersion.Cli.Generator/CommandBaseGenerator.cs b/new-cli/GitVersion.Cli.Generator/CommandBaseGenerator.cs
new file mode 100644
index 0000000000..1afd040bd9
--- /dev/null
+++ b/new-cli/GitVersion.Cli.Generator/CommandBaseGenerator.cs
@@ -0,0 +1,115 @@
+using GitVersion.Polyfill;
+
+namespace GitVersion;
+
+public abstract class CommandBaseGenerator : IIncrementalGenerator
+{
+ private const string CommandInterfaceFullName = $"{Constants.CommonNamespaceName}.ICommand";
+ private const string CommandAttributeFullName = $"{Constants.CommonNamespaceName}.CommandAttribute";
+ private const string CommandAttributeGenericFullName = $"{Constants.CommonNamespaceName}.CommandAttribute";
+ private const string OptionAttributeFullName = $"{Constants.CommonNamespaceName}.OptionAttribute";
+
+ public void Initialize(IncrementalGeneratorInitializationContext context)
+ {
+ var commandTypes = context.CompilationProvider.Select(SelectCommandTypes);
+
+ context.RegisterImplementationSourceOutput(commandTypes, GenerateSourceCode);
+ }
+
+ internal abstract void GenerateSourceCode(SourceProductionContext context, ImmutableArray commandInfos);
+
+ private static ImmutableArray SelectCommandTypes(Compilation compilation, CancellationToken ct)
+ {
+ ct.ThrowIfCancellationRequested();
+
+ var visitor = new TypeVisitor(SearchQuery, ct);
+ visitor.Visit(compilation.GlobalNamespace);
+ var selectCommandTypes = visitor.GetResults();
+
+ return [.. selectCommandTypes.Select(selectCommandType => MapToCommandInfo(selectCommandType, ct))];
+
+ static bool SearchQuery(INamedTypeSymbol typeSymbol)
+ {
+ var attributeData = typeSymbol.GetAttributeData(CommandAttributeFullName) ?? typeSymbol.GetAttributeData(CommandAttributeGenericFullName);
+ return attributeData is not null;
+ }
+ }
+
+ private static CommandInfo? MapToCommandInfo(ITypeSymbol classSymbol, CancellationToken ct)
+ {
+ ct.ThrowIfCancellationRequested();
+
+ var commandAttribute = classSymbol.GetAttributeData(CommandAttributeFullName) ?? classSymbol.GetAttributeData(CommandAttributeGenericFullName);
+ if (commandAttribute is null) return null;
+
+ var ctorArguments = commandAttribute.ConstructorArguments;
+
+ var name = Convert.ToString(ctorArguments[0].Value);
+ var description = Convert.ToString(ctorArguments[1].Value);
+
+ name.NotNull();
+ description.NotNull();
+
+ ITypeSymbol? parentCommandType = null;
+ if (commandAttribute.AttributeClass?.TypeArguments.Any() == true)
+ {
+ parentCommandType = commandAttribute.AttributeClass.TypeArguments.Single();
+ }
+
+ var commandBase = classSymbol.AllInterfaces.SingleOrDefault(x => x.OriginalDefinition.ToDisplayString() == CommandInterfaceFullName);
+ if (commandBase is null) return null;
+
+ var settingsType = commandBase.TypeArguments.Single();
+
+ var properties = settingsType.GetAllMembers().ToArray();
+
+ var settingsPropertyInfos =
+ from propertySymbol in properties
+ let optionAttribute = propertySymbol.GetAttributeData(OptionAttributeFullName)
+ where optionAttribute is not null
+ select MapToPropertyInfo(propertySymbol, optionAttribute);
+
+ var commandInfo = new CommandInfo
+ {
+ ParentCommand = parentCommandType?.Name,
+ CommandTypeName = classSymbol.Name,
+ CommandTypeNamespace = classSymbol.ContainingNamespace.ToDisplayString(),
+ CommandName = name,
+ CommandDescription = description,
+ SettingsTypeName = settingsType.Name,
+ SettingsTypeNamespace = settingsType.ContainingNamespace.ToDisplayString(),
+ SettingsProperties = [.. settingsPropertyInfos]
+ };
+ return commandInfo;
+ }
+ private static SettingsPropertyInfo MapToPropertyInfo(IPropertySymbol propertySymbol, AttributeData attribute)
+ {
+ var ctorArguments = attribute.ConstructorArguments;
+
+ var name = Convert.ToString(ctorArguments[0].Value);
+ var description = Convert.ToString(ctorArguments[1].Value);
+
+ name.NotNull();
+ description.NotNull();
+
+ string[] aliases = [];
+ if (ctorArguments.Length == 3)
+ {
+ var aliasesArgs = ctorArguments[2];
+ aliases = (aliasesArgs.Kind == TypedConstantKind.Array
+ ? aliasesArgs.Values.Select(x => Convert.ToString(x.Value)).ToArray()
+ : [Convert.ToString(aliasesArgs.Value)]);
+ }
+
+ var isRequired = propertySymbol.IsRequired;
+ return new()
+ {
+ Name = propertySymbol.Name,
+ TypeName = propertySymbol.Type.ToDisplayString(),
+ OptionName = name,
+ Aliases = aliases,
+ Description = description,
+ Required = isRequired
+ };
+ }
+}
diff --git a/new-cli/GitVersion.Cli.Generator/Constants.cs b/new-cli/GitVersion.Cli.Generator/Constants.cs
new file mode 100644
index 0000000000..0732f0ee48
--- /dev/null
+++ b/new-cli/GitVersion.Cli.Generator/Constants.cs
@@ -0,0 +1,24 @@
+namespace GitVersion;
+
+public static class Constants
+{
+ internal const string GeneratedNamespaceName = "GitVersion.Generated";
+ internal const string CommonNamespaceName = "GitVersion";
+ internal const string InfrastructureNamespaceName = "GitVersion.Infrastructure";
+ internal const string CommandNamespaceName = "GitVersion.Commands";
+ internal const string ExtensionsNamespaceName = "GitVersion.Extensions";
+
+ /*language=cs*/
+ internal const string GeneratedHeader =
+"""
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+#nullable enable
+""";
+}
diff --git a/new-cli/GitVersion.Cli.Generator/GitVersion.Cli.Generator.csproj b/new-cli/GitVersion.Cli.Generator/GitVersion.Cli.Generator.csproj
new file mode 100644
index 0000000000..d93d7009bb
--- /dev/null
+++ b/new-cli/GitVersion.Cli.Generator/GitVersion.Cli.Generator.csproj
@@ -0,0 +1,22 @@
+
+
+
+ netstandard2.0
+ true
+ true
+ en
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/new-cli/GitVersion.Cli.Generator/GlobalUsings.cs b/new-cli/GitVersion.Cli.Generator/GlobalUsings.cs
new file mode 100644
index 0000000000..8199d6a28c
--- /dev/null
+++ b/new-cli/GitVersion.Cli.Generator/GlobalUsings.cs
@@ -0,0 +1,5 @@
+global using System.Collections.Immutable;
+global using System.Diagnostics.CodeAnalysis;
+global using System.Runtime.CompilerServices;
+global using Microsoft.CodeAnalysis;
+global using Scriban;
diff --git a/new-cli/GitVersion.Cli.Generator/Models.cs b/new-cli/GitVersion.Cli.Generator/Models.cs
new file mode 100644
index 0000000000..8e75c59fb9
--- /dev/null
+++ b/new-cli/GitVersion.Cli.Generator/Models.cs
@@ -0,0 +1,23 @@
+namespace GitVersion;
+
+internal record CommandInfo
+{
+ public string? ParentCommand { get; init; }
+ public required string CommandTypeNamespace { get; init; }
+ public required string CommandTypeName { get; init; }
+ public required string CommandName { get; init; }
+ public required string CommandDescription { get; init; }
+ public required string SettingsTypeName { get; init; }
+ public required string SettingsTypeNamespace { get; init; }
+ public required SettingsPropertyInfo[] SettingsProperties { get; init; } = [];
+}
+
+internal record SettingsPropertyInfo
+{
+ public required string Name { get; init; }
+ public required string TypeName { get; init; }
+ public required string OptionName { get; init; }
+ public required string[] Aliases { get; init; }
+ public required string Description { get; init; }
+ public required bool Required { get; init; }
+}
diff --git a/new-cli/GitVersion.Cli.Generator/Polyfill/CallerArgumentExpressionAttribute.cs b/new-cli/GitVersion.Cli.Generator/Polyfill/CallerArgumentExpressionAttribute.cs
new file mode 100644
index 0000000000..a1f589114f
--- /dev/null
+++ b/new-cli/GitVersion.Cli.Generator/Polyfill/CallerArgumentExpressionAttribute.cs
@@ -0,0 +1,40 @@
+//
+#pragma warning disable
+
+#if NETFRAMEWORK || NETSTANDARD || NETCOREAPP2X
+
+namespace System.Runtime.CompilerServices;
+
+using System.Diagnostics;
+using System.Diagnostics.CodeAnalysis;
+using Link = System.ComponentModel.DescriptionAttribute;
+
+///
+/// Indicates that a parameter captures the expression passed for another parameter as a string.
+///
+[ExcludeFromCodeCoverage]
+[DebuggerNonUserCode]
+[AttributeUsage(AttributeTargets.Parameter)]
+[Link("https://learn.microsoft.com/en-us/dotnet/api/system.runtime.compilerservices.callerargumentexpressionattribute")]
+#if PolyPublic
+public
+#endif
+sealed class CallerArgumentExpressionAttribute :
+ Attribute
+{
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ ///
+ /// The name of the parameter whose expression should be captured as a string.
+ ///
+ public CallerArgumentExpressionAttribute(string parameterName) =>
+ ParameterName = parameterName;
+
+ ///
+ /// Gets the name of the parameter whose expression should be captured as a string.
+ ///
+ public string ParameterName { get; }
+}
+
+#endif
diff --git a/new-cli/GitVersion.Cli.Generator/Polyfill/CommonExtensions.cs b/new-cli/GitVersion.Cli.Generator/Polyfill/CommonExtensions.cs
new file mode 100644
index 0000000000..350913fa6b
--- /dev/null
+++ b/new-cli/GitVersion.Cli.Generator/Polyfill/CommonExtensions.cs
@@ -0,0 +1,7 @@
+namespace GitVersion.Polyfill;
+
+public static class CommonExtensions
+{
+ public static T NotNull([NotNull] this T? value, [CallerArgumentExpression(nameof(value))] string name = "")
+ where T : class => value ?? throw new ArgumentNullException(name);
+}
diff --git a/new-cli/GitVersion.Cli.Generator/Polyfill/CompilerFeatureRequiredAttribute.cs b/new-cli/GitVersion.Cli.Generator/Polyfill/CompilerFeatureRequiredAttribute.cs
new file mode 100644
index 0000000000..37cf5ccc71
--- /dev/null
+++ b/new-cli/GitVersion.Cli.Generator/Polyfill/CompilerFeatureRequiredAttribute.cs
@@ -0,0 +1,56 @@
+//
+#pragma warning disable
+
+#if !NET7_0_OR_GREATER
+
+namespace System.Runtime.CompilerServices;
+
+using System.Diagnostics;
+using System.Diagnostics.CodeAnalysis;
+using Link = System.ComponentModel.DescriptionAttribute;
+
+///
+/// Indicates that compiler support for a particular feature is required for the location where this attribute is applied.
+///
+[ExcludeFromCodeCoverage]
+[DebuggerNonUserCode]
+[AttributeUsage(
+ validOn: AttributeTargets.All,
+ AllowMultiple = true,
+ Inherited = false)]
+[Link("https://learn.microsoft.com/en-us/dotnet/api/system.runtime.compilerservices.compilerfeaturerequiredattribute")]
+#if PolyPublic
+public
+#endif
+sealed class CompilerFeatureRequiredAttribute :
+ Attribute
+{
+ ///
+ /// Initialize a new instance of
+ ///
+ /// The name of the required compiler feature.
+ public CompilerFeatureRequiredAttribute(string featureName) =>
+ FeatureName = featureName;
+
+ ///
+ /// The name of the compiler feature.
+ ///
+ public string FeatureName { get; }
+
+ ///
+ /// If true, the compiler can choose to allow access to the location where this attribute is applied if it does not understand .
+ ///
+ public bool IsOptional { get; init; }
+
+ ///
+ /// The used for the ref structs C# feature.
+ ///
+ public const string RefStructs = nameof(RefStructs);
+
+ ///
+ /// The used for the required members C# feature.
+ ///
+ public const string RequiredMembers = nameof(RequiredMembers);
+}
+
+#endif
diff --git a/new-cli/GitVersion.Cli.Generator/Polyfill/IsExternalInit.cs b/new-cli/GitVersion.Cli.Generator/Polyfill/IsExternalInit.cs
new file mode 100644
index 0000000000..f7221c6dda
--- /dev/null
+++ b/new-cli/GitVersion.Cli.Generator/Polyfill/IsExternalInit.cs
@@ -0,0 +1,21 @@
+//
+#pragma warning disable
+
+#if !NET5_0_OR_GREATER
+
+namespace System.Runtime.CompilerServices;
+
+using System.Diagnostics;
+using System.Diagnostics.CodeAnalysis;
+
+///
+/// Reserved to be used by the compiler for tracking metadata. This class should not be used by developers in source code.
+///
+[ExcludeFromCodeCoverage]
+[DebuggerNonUserCode]
+#if PolyPublic
+public
+#endif
+static class IsExternalInit;
+
+#endif
diff --git a/new-cli/GitVersion.Cli.Generator/Polyfill/NotNullAttribute.cs b/new-cli/GitVersion.Cli.Generator/Polyfill/NotNullAttribute.cs
new file mode 100644
index 0000000000..827063a13d
--- /dev/null
+++ b/new-cli/GitVersion.Cli.Generator/Polyfill/NotNullAttribute.cs
@@ -0,0 +1,26 @@
+//
+#pragma warning disable
+
+#if NETSTANDARD2_0 || NETFRAMEWORK || NETCOREAPP2X
+
+namespace System.Diagnostics.CodeAnalysis;
+
+using Targets = AttributeTargets;
+
+///
+/// Specifies that an output is not even if the
+/// corresponding type allows it.
+///
+[ExcludeFromCodeCoverage]
+[DebuggerNonUserCode]
+[AttributeUsage(
+ validOn: Targets.Field |
+ Targets.Parameter |
+ Targets.Property |
+ Targets.ReturnValue)]
+#if PolyPublic
+public
+#endif
+sealed class NotNullAttribute :
+ Attribute;
+#endif
diff --git a/new-cli/GitVersion.Cli.Generator/Polyfill/RequiredMemberAttribute.cs b/new-cli/GitVersion.Cli.Generator/Polyfill/RequiredMemberAttribute.cs
new file mode 100644
index 0000000000..a38ca389fd
--- /dev/null
+++ b/new-cli/GitVersion.Cli.Generator/Polyfill/RequiredMemberAttribute.cs
@@ -0,0 +1,29 @@
+//
+#pragma warning disable
+
+#if !NET7_0_OR_GREATER
+
+namespace System.Runtime.CompilerServices;
+
+using System.Diagnostics;
+using System.Diagnostics.CodeAnalysis;
+
+using Targets = AttributeTargets;
+
+///
+/// Specifies that a type has required members or that a member is required.
+///
+[ExcludeFromCodeCoverage]
+[DebuggerNonUserCode]
+[AttributeUsage(
+ validOn: Targets.Class |
+ Targets.Struct |
+ Targets.Field |
+ Targets.Property,
+ Inherited = false)]
+#if PolyPublic
+public
+#endif
+sealed class RequiredMemberAttribute :
+ Attribute;
+#endif
diff --git a/new-cli/GitVersion.Cli.Generator/Polyfill/SetsRequiredMembersAttribute.cs b/new-cli/GitVersion.Cli.Generator/Polyfill/SetsRequiredMembersAttribute.cs
new file mode 100644
index 0000000000..a3cdfc8608
--- /dev/null
+++ b/new-cli/GitVersion.Cli.Generator/Polyfill/SetsRequiredMembersAttribute.cs
@@ -0,0 +1,20 @@
+//
+#pragma warning disable
+
+#if !NET7_0_OR_GREATER
+
+namespace System.Diagnostics.CodeAnalysis;
+
+///
+/// Specifies that this constructor sets all required members for the current type, and callers
+/// do not need to set any required members themselves.
+///
+[ExcludeFromCodeCoverage]
+[DebuggerNonUserCode]
+[AttributeUsage(AttributeTargets.Constructor)]
+#if PolyPublic
+public
+#endif
+sealed class SetsRequiredMembersAttribute :
+ Attribute;
+#endif
diff --git a/new-cli/GitVersion.Cli.Generator/Properties/launchSettings.json b/new-cli/GitVersion.Cli.Generator/Properties/launchSettings.json
new file mode 100644
index 0000000000..5470135d61
--- /dev/null
+++ b/new-cli/GitVersion.Cli.Generator/Properties/launchSettings.json
@@ -0,0 +1,8 @@
+{
+ "profiles": {
+ "SourceGenerator": {
+ "commandName": "DebugRoslynComponent",
+ "targetProject": "../GitVersion.Cli/GitVersion.Cli.csproj"
+ }
+ }
+}
diff --git a/new-cli/GitVersion.Cli.Generator/RoslynExtensions.cs b/new-cli/GitVersion.Cli.Generator/RoslynExtensions.cs
new file mode 100644
index 0000000000..fe83125599
--- /dev/null
+++ b/new-cli/GitVersion.Cli.Generator/RoslynExtensions.cs
@@ -0,0 +1,31 @@
+namespace GitVersion;
+
+public static class RoslynExtensions
+{
+ private static IEnumerable GetBaseTypesAndThis(this ITypeSymbol type)
+ {
+ var current = type;
+ while (current != null)
+ {
+ yield return current;
+ current = current.BaseType;
+ }
+ }
+
+ public static IEnumerable GetBaseTypes(this ITypeSymbol type)
+ {
+ var current = type.BaseType;
+ while (current != null)
+ {
+ yield return current;
+ current = current.BaseType;
+ }
+ }
+
+ public static IEnumerable GetAllMembers(this ITypeSymbol type) where T : ISymbol
+ => type.GetBaseTypesAndThis().SelectMany(n => n.GetMembers().OfType());
+
+ public static AttributeData? GetAttributeData(this ISymbol namedType, string fullName)
+ => namedType.GetAttributes()
+ .SingleOrDefault(a => a.AttributeClass?.OriginalDefinition.ToDisplayString() == fullName);
+}
diff --git a/new-cli/GitVersion.Cli.Generator/SystemCommandlineContent.cs b/new-cli/GitVersion.Cli.Generator/SystemCommandlineContent.cs
new file mode 100644
index 0000000000..ce2fa4fd75
--- /dev/null
+++ b/new-cli/GitVersion.Cli.Generator/SystemCommandlineContent.cs
@@ -0,0 +1,166 @@
+namespace GitVersion;
+
+public static class SystemCommandlineContent
+{
+ /*language=cs*/
+ public const string CommandImplContent = $$$"""
+{{{Constants.GeneratedHeader}}}
+using System.CommandLine;
+using System.CommandLine.Binding;
+
+using {{Model.CommandTypeNamespace}};
+
+namespace {{GeneratedNamespaceName}};
+
+public class {{Model.CommandTypeName}}Impl : Command, ICommandImpl
+{
+ public string CommandImplName => nameof({{Model.CommandTypeName}}Impl);
+ {{- if (Model.ParentCommand | string.empty) }}
+ public string ParentCommandImplName => string.Empty;
+ {{- else }}
+ public string ParentCommandImplName => nameof({{Model.ParentCommand}}Impl);
+ {{ end }}
+ {{- $settingsProperties = Model.SettingsProperties | array.sort "Name" }}
+ // Options list
+ {{~ for $prop in $settingsProperties ~}}
+ protected readonly Option<{{$prop.TypeName}}> {{$prop.Name}}Option;
+ {{~ end ~}}
+
+ public {{Model.CommandTypeName}}Impl({{Model.CommandTypeName}} command)
+ : base("{{Model.CommandName}}", "{{Model.CommandDescription}}")
+ {
+ {{~ for $prop in $settingsProperties ~}}
+ {{$prop.Name}}Option = new Option<{{$prop.TypeName}}>("{{$prop.OptionName}}"{{if $prop.Aliases.size == 0}}{{else}}, {{for $alias in $prop.Aliases}}"{{$alias}}"{{if !for.last}}, {{end}}{{end}}{{end}})
+ {
+ Required = {{$prop.Required}},
+ Description = "{{$prop.Description}}",
+ };
+ {{~ end ~}}
+
+ {{- for $prop in $settingsProperties ~}}
+ Add({{$prop.Name}}Option);
+ {{~ end ~}}
+
+ this.SetAction(Run);
+ return;
+
+ Task Run(ParseResult parseResult, CancellationToken cancellationToken)
+ {
+ var settings = new {{ if Model.SettingsTypeNamespace != Model.CommandTypeNamespace }}{{Model.SettingsTypeNamespace}}.{{ end }}{{Model.SettingsTypeName}}
+ {
+ {{~ for $prop in $settingsProperties ~}}
+ {{$prop.Name}} = parseResult.GetValue({{$prop.Name}}Option){{ if $prop.Required }}!{{ end}},
+ {{~ end ~}}
+ };
+ return command.InvokeAsync(settings, cancellationToken);
+ }
+ }
+}
+""";
+
+ /*language=cs*/
+ public const string RootCommandImplContent = $$$"""
+{{{Constants.GeneratedHeader}}}
+using System.CommandLine;
+
+using {{CommonNamespaceName}};
+using {{ExtensionsNamespaceName}};
+
+namespace {{GeneratedNamespaceName}};
+
+public class RootCommandImpl(IEnumerable commands) : RootCommand
+{
+ private readonly IEnumerable _commands = commands.NotNull();
+
+ public void Configure()
+ {
+ var map = _commands.ToDictionary(c => c.CommandImplName);
+ foreach (var command in map.Values)
+ {
+ AddCommand(command, map);
+ }
+ }
+
+ private void AddCommand(ICommandImpl command, Dictionary map)
+ {
+ if (!string.IsNullOrWhiteSpace(command.ParentCommandImplName))
+ {
+ var parent = map[command.ParentCommandImplName] as Command;
+ parent?.Add((Command)command);
+ }
+ else
+ {
+ Add((Command)command);
+ }
+ }
+}
+""";
+
+ /*language=cs*/
+ public const string CommandsModuleContent = $$$"""
+{{{Constants.GeneratedHeader}}}
+using System.CommandLine;
+using {{InfrastructureNamespaceName}};
+using {{CommandNamespaceName}};
+using {{CommonNamespaceName}};
+using Microsoft.Extensions.DependencyInjection;
+
+namespace {{GeneratedNamespaceName}};
+
+public class CommandsModule : IGitVersionModule
+{
+ public IServiceCollection RegisterTypes(IServiceCollection services)
+ {
+ services.AddSingleton();
+ services.AddSingleton();
+
+ {{- $commands = Model | array.sort "CommandTypeName" }}
+
+ {{~ for $command in $commands ~}}
+ services.AddSingleton<{{ if $command.CommandTypeNamespace != CommandNamespaceName }}{{$command.CommandTypeNamespace}}.{{ end }}{{$command.CommandTypeName}}>();
+ services.AddSingleton();
+ {{~ end ~}}
+ return services;
+ }
+}
+""";
+
+ /*language=cs*/
+ public const string CliAppContent = $$$"""
+{{{Constants.GeneratedHeader}}}
+using System.CommandLine;
+using {{ExtensionsNamespaceName}};
+using {{InfrastructureNamespaceName}};
+
+namespace {{GeneratedNamespaceName}};
+
+internal class CliAppImpl : ICliApp
+{
+ private readonly RootCommandImpl _rootCommand;
+
+ public CliAppImpl(RootCommandImpl rootCommand)
+ {
+ _rootCommand = rootCommand.NotNull();
+ _rootCommand.Configure();
+ }
+
+ public Task RunAsync(string[] args, CancellationToken cancellationToken)
+ {
+ // Note: there are 2 locations to watch for the dotnet-suggest tool
+ // - sentinel file:
+ // $env:TEMP\system-commandline-sentinel-files\ and
+ // - registration file:
+ // $env:LOCALAPPDATA\.dotnet-suggest-registration.txt or $HOME/.dotnet-suggest-registration.txt
+
+ var parseResult = _rootCommand.Parse(args);
+
+ var logFile = parseResult.GetValue(GitVersionSettings.LogFileOption);
+ var verbosity = parseResult.GetValue(GitVersionSettings.VerbosityOption) ?? Verbosity.Normal;
+
+ LoggingEnricher.Configure(logFile?.FullName, verbosity);
+
+ return parseResult.InvokeAsync(cancellationToken: cancellationToken);
+ }
+}
+""";
+}
diff --git a/new-cli/GitVersion.Cli.Generator/SystemCommandlineGenerator.cs b/new-cli/GitVersion.Cli.Generator/SystemCommandlineGenerator.cs
new file mode 100644
index 0000000000..6902afaf44
--- /dev/null
+++ b/new-cli/GitVersion.Cli.Generator/SystemCommandlineGenerator.cs
@@ -0,0 +1,54 @@
+namespace GitVersion;
+
+[Generator(LanguageNames.CSharp)]
+public class SystemCommandlineGenerator : CommandBaseGenerator
+{
+ internal override void GenerateSourceCode(SourceProductionContext context, ImmutableArray commandInfos)
+ {
+ foreach (var commandInfo in commandInfos)
+ {
+ if (commandInfo == null)
+ continue;
+
+ var commandHandlerTemplate = Template.Parse(SystemCommandlineContent.CommandImplContent);
+
+ var commandHandlerSource = commandHandlerTemplate.Render(new
+ {
+ Model = commandInfo,
+ Constants.GeneratedNamespaceName
+ }, member => member.Name);
+
+ context.AddSource($"{commandInfo.CommandTypeName}Impl.g.cs", string.Join("\n", commandHandlerSource));
+ }
+
+ var commandHandlersModuleTemplate = Template.Parse(SystemCommandlineContent.CommandsModuleContent);
+ var commandHandlersModuleSource = commandHandlersModuleTemplate.Render(new
+ {
+ Model = commandInfos,
+ Constants.GeneratedNamespaceName,
+ Constants.CommonNamespaceName,
+ Constants.InfrastructureNamespaceName,
+ Constants.CommandNamespaceName
+ }, member => member.Name);
+ context.AddSource("CommandsModule.g.cs", string.Join("\n", commandHandlersModuleSource));
+
+ var rootCommandHandlerTemplate = Template.Parse(SystemCommandlineContent.RootCommandImplContent);
+ var rootCommandHandlerSource = rootCommandHandlerTemplate.Render(new
+ {
+ Constants.GeneratedNamespaceName,
+ Constants.CommonNamespaceName,
+ Constants.ExtensionsNamespaceName
+ }, member => member.Name);
+ context.AddSource("RootCommandImpl.g.cs", string.Join("\n", rootCommandHandlerSource));
+
+ var cliAppTemplate = Template.Parse(SystemCommandlineContent.CliAppContent);
+ var cliAppSource = cliAppTemplate.Render(new
+ {
+ Constants.GeneratedNamespaceName,
+ Constants.InfrastructureNamespaceName,
+ Constants.CommonNamespaceName,
+ Constants.ExtensionsNamespaceName
+ }, member => member.Name);
+ context.AddSource("CliAppImpl.g.cs", string.Join("\n", cliAppSource));
+ }
+}
diff --git a/new-cli/GitVersion.Cli.Generator/TypeVisitor.cs b/new-cli/GitVersion.Cli.Generator/TypeVisitor.cs
new file mode 100644
index 0000000000..6507afdd7d
--- /dev/null
+++ b/new-cli/GitVersion.Cli.Generator/TypeVisitor.cs
@@ -0,0 +1,34 @@
+namespace GitVersion;
+
+internal class TypeVisitor(Func searchQuery, CancellationToken cancellation)
+ : SymbolVisitor
+{
+ private readonly HashSet _exportedTypes = new(SymbolEqualityComparer.Default);
+
+ public ImmutableArray GetResults() => [.. _exportedTypes];
+
+ public override void VisitAssembly(IAssemblySymbol symbol)
+ {
+ cancellation.ThrowIfCancellationRequested();
+ symbol.GlobalNamespace.Accept(this);
+ }
+
+ public override void VisitNamespace(INamespaceSymbol symbol)
+ {
+ foreach (var namespaceOrType in symbol.GetMembers())
+ {
+ cancellation.ThrowIfCancellationRequested();
+ namespaceOrType.Accept(this);
+ }
+ }
+
+ public override void VisitNamedType(INamedTypeSymbol type)
+ {
+ cancellation.ThrowIfCancellationRequested();
+
+ if (searchQuery(type))
+ {
+ _exportedTypes.Add(type);
+ }
+ }
+}
diff --git a/new-cli/GitVersion.Cli/GitVersion.Cli.csproj b/new-cli/GitVersion.Cli/GitVersion.Cli.csproj
new file mode 100644
index 0000000000..cb8d1fadd6
--- /dev/null
+++ b/new-cli/GitVersion.Cli/GitVersion.Cli.csproj
@@ -0,0 +1,34 @@
+
+
+
+ Exe
+ gitversion
+
+
+
+ dotnet-gitversion
+ GitVersion.Tool
+ Derives SemVer information from a repository following GitFlow or GitHubFlow. This is the .NET Core Global Tool allowing usage of GitVersion from command line.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/new-cli/GitVersion.Cli/Program.cs b/new-cli/GitVersion.Cli/Program.cs
new file mode 100644
index 0000000000..2eb3756218
--- /dev/null
+++ b/new-cli/GitVersion.Cli/Program.cs
@@ -0,0 +1,37 @@
+using GitVersion;
+using GitVersion.Extensions;
+using GitVersion.Git;
+using GitVersion.Infrastructure;
+using Microsoft.Extensions.DependencyInjection;
+
+var modules = new IGitVersionModule[]
+{
+ new CoreModule(),
+ new LibGit2SharpCoreModule(),
+ new GitVersion.Generated.CommandsModule()
+};
+
+var cts = new CancellationTokenSource();
+Console.CancelKeyPress += (_, _) =>
+{
+ cts.Cancel();
+ cts.Dispose();
+};
+
+await using var serviceProvider = RegisterModules(modules);
+var app = serviceProvider.GetRequiredService();
+
+var result = await app.RunAsync(args, cts.Token).ConfigureAwait(false);
+if (!Console.IsInputRedirected) Console.ReadKey();
+
+return result;
+
+static ServiceProvider RegisterModules(IEnumerable gitVersionModules)
+{
+ var serviceProvider = new ServiceCollection()
+ .RegisterModules(gitVersionModules)
+ .RegisterLogging()
+ .BuildServiceProvider();
+
+ return serviceProvider;
+}
diff --git a/new-cli/GitVersion.Cli/TestCommand.cs b/new-cli/GitVersion.Cli/TestCommand.cs
new file mode 100644
index 0000000000..15c8452124
--- /dev/null
+++ b/new-cli/GitVersion.Cli/TestCommand.cs
@@ -0,0 +1,13 @@
+using GitVersion.Commands.Test.Settings;
+
+namespace GitVersion.Commands.Test;
+
+[Command("test", "Test command.")]
+public class TestCommand : ICommand
+{
+ public Task InvokeAsync(TestCommandSettings settings, CancellationToken cancellationToken = default)
+ {
+ Console.WriteLine("Input file: {0}", settings.InputFile);
+ return Task.FromResult(0);
+ }
+}
diff --git a/new-cli/GitVersion.Cli/TestCommandSettings.cs b/new-cli/GitVersion.Cli/TestCommandSettings.cs
new file mode 100644
index 0000000000..cd6166e187
--- /dev/null
+++ b/new-cli/GitVersion.Cli/TestCommandSettings.cs
@@ -0,0 +1,7 @@
+namespace GitVersion.Commands.Test.Settings;
+
+public record TestCommandSettings : GitVersionSettings
+{
+ [Option("--input-file", description: "The input version file", aliases: ["-i"])]
+ public required string InputFile { get; init; }
+}
diff --git a/new-cli/GitVersion.Common.Command/CommandAttribute.cs b/new-cli/GitVersion.Common.Command/CommandAttribute.cs
new file mode 100644
index 0000000000..e00f116ba4
--- /dev/null
+++ b/new-cli/GitVersion.Common.Command/CommandAttribute.cs
@@ -0,0 +1,11 @@
+namespace GitVersion;
+
+[AttributeUsage(AttributeTargets.Class, Inherited = false)]
+public class CommandAttribute(string name, string description = "") : Attribute
+{
+ public string Name { get; } = name;
+ public string Description { get; } = description;
+}
+
+[AttributeUsage(AttributeTargets.Class, Inherited = false)]
+public class CommandAttribute(string name, string description = "") : CommandAttribute(name, description);
diff --git a/new-cli/GitVersion.Common.Command/GitVersion.Common.Command.csproj b/new-cli/GitVersion.Common.Command/GitVersion.Common.Command.csproj
new file mode 100644
index 0000000000..9f1b9ee5f6
--- /dev/null
+++ b/new-cli/GitVersion.Common.Command/GitVersion.Common.Command.csproj
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/new-cli/GitVersion.Common.Command/GitVersionSettings.cs b/new-cli/GitVersion.Common.Command/GitVersionSettings.cs
new file mode 100644
index 0000000000..254532441b
--- /dev/null
+++ b/new-cli/GitVersion.Common.Command/GitVersionSettings.cs
@@ -0,0 +1,18 @@
+using GitVersion.Infrastructure;
+
+namespace GitVersion;
+
+public record GitVersionSettings
+{
+ public const string LogFileOption = "--log-file";
+ public const string VerbosityOption = "--verbosity";
+
+ [Option(LogFileOption, "The log file", "-l")]
+ public FileInfo? LogFile { get; init; }
+
+ [Option(VerbosityOption, "The verbosity of the logging information")]
+ public Verbosity? Verbosity { get; init; } = GitVersion.Infrastructure.Verbosity.Normal;
+
+ [Option("--work-dir", "The working directory with the git repository")]
+ public DirectoryInfo? WorkDir { get; init; } = new(Environment.CurrentDirectory);
+}
diff --git a/new-cli/GitVersion.Common.Command/ICommand.cs b/new-cli/GitVersion.Common.Command/ICommand.cs
new file mode 100644
index 0000000000..d8bcb1eebf
--- /dev/null
+++ b/new-cli/GitVersion.Common.Command/ICommand.cs
@@ -0,0 +1,12 @@
+namespace GitVersion;
+
+public interface ICommand
+{
+ Task InvokeAsync(T settings, CancellationToken cancellationToken = default);
+}
+
+public interface ICommandImpl
+{
+ string CommandImplName { get; }
+ string ParentCommandImplName { get; }
+}
diff --git a/new-cli/GitVersion.Common.Command/OptionAttribute.cs b/new-cli/GitVersion.Common.Command/OptionAttribute.cs
new file mode 100644
index 0000000000..7122ccd4ad
--- /dev/null
+++ b/new-cli/GitVersion.Common.Command/OptionAttribute.cs
@@ -0,0 +1,14 @@
+namespace GitVersion;
+
+[AttributeUsage(AttributeTargets.Property)]
+public class OptionAttribute(string name, string description = "", params string[] aliases) : Attribute
+{
+ public string Name { get; } = name;
+ public string[] Aliases { get; } = aliases;
+ public string Description { get; } = description;
+
+ public OptionAttribute(string name, string description = "")
+ : this(name, description, [])
+ {
+ }
+}
diff --git a/new-cli/GitVersion.Common/GitVersion.Common.csproj b/new-cli/GitVersion.Common/GitVersion.Common.csproj
new file mode 100644
index 0000000000..065fa33110
--- /dev/null
+++ b/new-cli/GitVersion.Common/GitVersion.Common.csproj
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/new-cli/GitVersion.Common/IService.cs b/new-cli/GitVersion.Common/IService.cs
new file mode 100644
index 0000000000..19a00ca2d8
--- /dev/null
+++ b/new-cli/GitVersion.Common/IService.cs
@@ -0,0 +1,6 @@
+namespace GitVersion;
+
+public interface IService
+{
+ int Call();
+}
diff --git a/new-cli/GitVersion.Common/Infrastructure/ICliApp.cs b/new-cli/GitVersion.Common/Infrastructure/ICliApp.cs
new file mode 100644
index 0000000000..fc2a63aafe
--- /dev/null
+++ b/new-cli/GitVersion.Common/Infrastructure/ICliApp.cs
@@ -0,0 +1,6 @@
+namespace GitVersion.Infrastructure;
+
+public interface ICliApp
+{
+ Task RunAsync(string[] args, CancellationToken cancellationToken);
+}
diff --git a/new-cli/GitVersion.Common/Infrastructure/IGitVersionModule.cs b/new-cli/GitVersion.Common/Infrastructure/IGitVersionModule.cs
new file mode 100644
index 0000000000..bbac2d24a2
--- /dev/null
+++ b/new-cli/GitVersion.Common/Infrastructure/IGitVersionModule.cs
@@ -0,0 +1,8 @@
+using Microsoft.Extensions.DependencyInjection;
+
+namespace GitVersion.Infrastructure;
+
+public interface IGitVersionModule
+{
+ IServiceCollection RegisterTypes(IServiceCollection services);
+}
diff --git a/new-cli/GitVersion.Common/Infrastructure/Verbosity.cs b/new-cli/GitVersion.Common/Infrastructure/Verbosity.cs
new file mode 100644
index 0000000000..18ea6a2cfe
--- /dev/null
+++ b/new-cli/GitVersion.Common/Infrastructure/Verbosity.cs
@@ -0,0 +1,32 @@
+namespace GitVersion.Infrastructure;
+
+///
+/// Represents verbosity.
+///
+public enum Verbosity
+{
+ ///
+ /// Quiet verbosity.
+ ///
+ Quiet = 0,
+
+ ///
+ /// Minimal verbosity.
+ ///
+ Minimal = 1,
+
+ ///
+ /// Normal verbosity.
+ ///
+ Normal = 2,
+
+ ///
+ /// Verbose verbosity.
+ ///
+ Verbose = 3,
+
+ ///
+ /// Diagnostic verbosity.
+ ///
+ Diagnostic = 4
+}
diff --git a/new-cli/GitVersion.Configuration/ConfigCommand.cs b/new-cli/GitVersion.Configuration/ConfigCommand.cs
new file mode 100644
index 0000000000..7fde5361e2
--- /dev/null
+++ b/new-cli/GitVersion.Configuration/ConfigCommand.cs
@@ -0,0 +1,20 @@
+using GitVersion.Extensions;
+using Microsoft.Extensions.Logging;
+
+namespace GitVersion.Commands;
+
+public record ConfigSettings : GitVersionSettings;
+
+[Command("config", "Manages the GitVersion configuration file.")]
+public class ConfigCommand(ILogger logger, IService service) : ICommand
+{
+ private readonly ILogger _logger = logger.NotNull();
+ private readonly IService _service = service.NotNull();
+
+ public Task InvokeAsync(ConfigSettings settings, CancellationToken cancellationToken = default)
+ {
+ var value = _service.Call();
+ _logger.LogInformation($"Command : 'config', LogFile : '{settings.LogFile}', WorkDir : '{settings.WorkDir}' ");
+ return Task.FromResult(value);
+ }
+}
diff --git a/new-cli/GitVersion.Configuration/GitVersion.Configuration.csproj b/new-cli/GitVersion.Configuration/GitVersion.Configuration.csproj
new file mode 100644
index 0000000000..01f48f5e20
--- /dev/null
+++ b/new-cli/GitVersion.Configuration/GitVersion.Configuration.csproj
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/new-cli/GitVersion.Configuration/Init/ConfigInitCommand.cs b/new-cli/GitVersion.Configuration/Init/ConfigInitCommand.cs
new file mode 100644
index 0000000000..1a1298e3be
--- /dev/null
+++ b/new-cli/GitVersion.Configuration/Init/ConfigInitCommand.cs
@@ -0,0 +1,20 @@
+using GitVersion.Extensions;
+using Microsoft.Extensions.Logging;
+
+namespace GitVersion.Commands;
+
+public record ConfigInitSettings : ConfigSettings;
+
+[Command("init", "Inits the configuration for current repository.")]
+public class ConfigInitCommand(ILogger logger, IService service) : ICommand
+{
+ private readonly ILogger _logger = logger.NotNull();
+ private readonly IService _service = service.NotNull();
+
+ public Task InvokeAsync(ConfigInitSettings settings, CancellationToken cancellationToken = default)
+ {
+ var value = _service.Call();
+ _logger.LogInformation($"Command : 'config init', LogFile : '{settings.LogFile}', WorkDir : '{settings.WorkDir}' ");
+ return Task.FromResult(value);
+ }
+}
diff --git a/new-cli/GitVersion.Configuration/Show/ConfigShowCommand.cs b/new-cli/GitVersion.Configuration/Show/ConfigShowCommand.cs
new file mode 100644
index 0000000000..6da714ca22
--- /dev/null
+++ b/new-cli/GitVersion.Configuration/Show/ConfigShowCommand.cs
@@ -0,0 +1,20 @@
+using GitVersion.Extensions;
+using Microsoft.Extensions.Logging;
+
+namespace GitVersion.Commands;
+
+public record ConfigShowSettings : ConfigSettings;
+
+[Command("show", "Shows the effective configuration.")]
+public class ConfigShowCommand(ILogger logger, IService service) : ICommand
+{
+ private readonly ILogger _logger = logger.NotNull();
+ private readonly IService _service = service.NotNull();
+
+ public Task InvokeAsync(ConfigShowSettings settings, CancellationToken cancellationToken = default)
+ {
+ var value = _service.Call();
+ _logger.LogInformation($"Command : 'config show', LogFile : '{settings.LogFile}', WorkDir : '{settings.WorkDir}' ");
+ return Task.FromResult(value);
+ }
+}
diff --git a/new-cli/GitVersion.Core.Libgit2Sharp/Git/GitRepository.extended.cs b/new-cli/GitVersion.Core.Libgit2Sharp/Git/GitRepository.extended.cs
new file mode 100644
index 0000000000..c7286ff0fb
--- /dev/null
+++ b/new-cli/GitVersion.Core.Libgit2Sharp/Git/GitRepository.extended.cs
@@ -0,0 +1,3 @@
+namespace GitVersion.Git;
+
+internal sealed partial class GitRepository : IGitRepository;
diff --git a/new-cli/GitVersion.Core.Libgit2Sharp/GitVersion.Core.Libgit2Sharp.csproj b/new-cli/GitVersion.Core.Libgit2Sharp/GitVersion.Core.Libgit2Sharp.csproj
new file mode 100644
index 0000000000..a42d02992f
--- /dev/null
+++ b/new-cli/GitVersion.Core.Libgit2Sharp/GitVersion.Core.Libgit2Sharp.csproj
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/new-cli/GitVersion.Core.Libgit2Sharp/LibGit2SharpCoreModule.cs b/new-cli/GitVersion.Core.Libgit2Sharp/LibGit2SharpCoreModule.cs
new file mode 100644
index 0000000000..40572492dc
--- /dev/null
+++ b/new-cli/GitVersion.Core.Libgit2Sharp/LibGit2SharpCoreModule.cs
@@ -0,0 +1,9 @@
+using GitVersion.Infrastructure;
+using Microsoft.Extensions.DependencyInjection;
+
+namespace GitVersion.Git;
+
+public class LibGit2SharpCoreModule : IGitVersionModule
+{
+ public IServiceCollection RegisterTypes(IServiceCollection services) => services.AddSingleton();
+}
diff --git a/new-cli/GitVersion.Core.Libgit2Sharp/LockedFileException.cs b/new-cli/GitVersion.Core.Libgit2Sharp/LockedFileException.cs
new file mode 100644
index 0000000000..3cef30a364
--- /dev/null
+++ b/new-cli/GitVersion.Core.Libgit2Sharp/LockedFileException.cs
@@ -0,0 +1,20 @@
+namespace GitVersion;
+
+public class LockedFileException : Exception
+{
+ public LockedFileException(Exception inner) : base(inner.Message, inner)
+ {
+ }
+
+ public LockedFileException()
+ {
+ }
+
+ public LockedFileException(string? message) : base(message)
+ {
+ }
+
+ public LockedFileException(string? message, Exception? innerException) : base(message, innerException)
+ {
+ }
+}
diff --git a/new-cli/GitVersion.Core.Tester/GitVersion.Core.Tester.csproj b/new-cli/GitVersion.Core.Tester/GitVersion.Core.Tester.csproj
new file mode 100644
index 0000000000..cf6cd1370c
--- /dev/null
+++ b/new-cli/GitVersion.Core.Tester/GitVersion.Core.Tester.csproj
@@ -0,0 +1,13 @@
+
+
+
+ Exe
+ gv
+
+
+
+
+
+
+
+
diff --git a/new-cli/GitVersion.Core.Tester/GitVersionApp.cs b/new-cli/GitVersion.Core.Tester/GitVersionApp.cs
new file mode 100644
index 0000000000..e4696ff783
--- /dev/null
+++ b/new-cli/GitVersion.Core.Tester/GitVersionApp.cs
@@ -0,0 +1,17 @@
+using GitVersion.Git;
+using GitVersion.Infrastructure;
+using Microsoft.Extensions.Logging;
+
+namespace GitVersion;
+
+public class GitVersionApp(ILogger logger, IGitRepository repository) : ICliApp
+{
+ public Task RunAsync(string[] args, CancellationToken cancellationToken)
+ {
+ repository.DiscoverRepository(Directory.GetCurrentDirectory());
+ var branches = repository.Branches.ToList();
+ logger.LogInformation("Found {count} branches", branches.Count);
+ logger.LogInformation("Testing application for the GitVersion.Core without the command processing");
+ return ValueTask.FromResult(0).AsTask();
+ }
+}
diff --git a/new-cli/GitVersion.Core.Tester/Program.cs b/new-cli/GitVersion.Core.Tester/Program.cs
new file mode 100644
index 0000000000..6ace9730e2
--- /dev/null
+++ b/new-cli/GitVersion.Core.Tester/Program.cs
@@ -0,0 +1,37 @@
+using GitVersion;
+using GitVersion.Extensions;
+using GitVersion.Git;
+using GitVersion.Infrastructure;
+using Microsoft.Extensions.DependencyInjection;
+
+var modules = new IGitVersionModule[]
+{
+ new CoreModule(),
+ new LibGit2SharpCoreModule(),
+};
+
+var cts = new CancellationTokenSource();
+Console.CancelKeyPress += (_, _) =>
+{
+ cts.Cancel();
+ cts.Dispose();
+};
+
+await using var serviceProvider = RegisterModules(modules);
+var app = serviceProvider.GetRequiredService();
+
+var result = await app.RunAsync(args, cts.Token).ConfigureAwait(false);
+if (!Console.IsInputRedirected) Console.ReadKey();
+
+return result;
+
+static ServiceProvider RegisterModules(IEnumerable gitVersionModules)
+{
+ var serviceProvider = new ServiceCollection()
+ .RegisterModules(gitVersionModules)
+ .AddSingleton()
+ .RegisterLogging()
+ .BuildServiceProvider();
+
+ return serviceProvider;
+}
diff --git a/new-cli/GitVersion.Core/CoreModule.cs b/new-cli/GitVersion.Core/CoreModule.cs
new file mode 100644
index 0000000000..eddf57e325
--- /dev/null
+++ b/new-cli/GitVersion.Core/CoreModule.cs
@@ -0,0 +1,16 @@
+using System.IO.Abstractions;
+using GitVersion.Infrastructure;
+using Microsoft.Extensions.DependencyInjection;
+
+namespace GitVersion;
+
+public class CoreModule : IGitVersionModule
+{
+ public IServiceCollection RegisterTypes(IServiceCollection services)
+ {
+ services.AddSingleton();
+ services.AddSingleton();
+ services.AddSingleton();
+ return services;
+ }
+}
diff --git a/new-cli/GitVersion.Core/Extensions/ServiceCollectionExtensions.cs b/new-cli/GitVersion.Core/Extensions/ServiceCollectionExtensions.cs
new file mode 100644
index 0000000000..e7e5ac36a9
--- /dev/null
+++ b/new-cli/GitVersion.Core/Extensions/ServiceCollectionExtensions.cs
@@ -0,0 +1,41 @@
+using GitVersion.Infrastructure;
+using Microsoft.Extensions.DependencyInjection;
+using Serilog;
+
+namespace GitVersion.Extensions;
+
+public static class ServiceCollectionExtensions
+{
+ public static IServiceCollection RegisterModules(this IServiceCollection services, IEnumerable gitVersionModules)
+ => gitVersionModules.Aggregate(services, (current, gitVersionModule) => gitVersionModule.RegisterTypes(current));
+
+ public static IServiceCollection RegisterLogging(this IServiceCollection services)
+ {
+ services.AddLogging(builder =>
+ {
+ var logger = CreateLogger();
+ builder.AddSerilog(logger, dispose: true);
+ });
+
+ return services;
+ }
+
+ private static Serilog.Core.Logger CreateLogger()
+ {
+ var logger = new LoggerConfiguration()
+ // log level will dynamically be controlled by our log interceptor upon running
+ .MinimumLevel.ControlledBy(LoggingEnricher.LogLevel)
+ // the log enricher will add a new property with the log file path from the settings
+ // that we can use to set the path dynamically
+ .Enrich.With()
+ // serilog.sinks.map will defer the configuration of the sink to be on demand,
+ // allowing us to look at the properties set by the enricher to set the path appropriately
+ .WriteTo.Console()
+ .WriteTo.Map(LoggingEnricher.LogFilePathPropertyName, (logFilePath, sinkConfiguration) =>
+ {
+ if (!string.IsNullOrEmpty(logFilePath)) sinkConfiguration.File(logFilePath);
+ }, 1)
+ .CreateLogger();
+ return logger;
+ }
+}
diff --git a/new-cli/GitVersion.Core/GitVersion.Core.csproj b/new-cli/GitVersion.Core/GitVersion.Core.csproj
new file mode 100644
index 0000000000..47fe040631
--- /dev/null
+++ b/new-cli/GitVersion.Core/GitVersion.Core.csproj
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Infrastructure\Environment.cs
+
+
+
diff --git a/new-cli/GitVersion.Core/Infrastructure/LoggingEnricher.cs b/new-cli/GitVersion.Core/Infrastructure/LoggingEnricher.cs
new file mode 100644
index 0000000000..c20dadce14
--- /dev/null
+++ b/new-cli/GitVersion.Core/Infrastructure/LoggingEnricher.cs
@@ -0,0 +1,55 @@
+using Serilog.Core;
+using Serilog.Events;
+
+namespace GitVersion.Infrastructure;
+
+public class LoggingEnricher : ILogEventEnricher
+{
+ public static readonly LoggingLevelSwitch LogLevel = new();
+ private string? _cachedLogFilePath;
+ private LogEventProperty? _cachedLogFilePathProp;
+
+ // this path and level will be set by the LogInterceptor.cs after parsing the settings
+ private static string _path = string.Empty;
+
+ public const string LogFilePathPropertyName = "LogFilePath";
+
+ public void Enrich(LogEvent logEvent, ILogEventPropertyFactory propFactory)
+ {
+ // the settings might not have a path, or we might not be within a command, in which case
+ // we won't have the setting, so a default value for the log file will be required
+ LogEventProperty logFilePathProp;
+
+ if (_cachedLogFilePathProp != null && _path.Equals(_cachedLogFilePath))
+ {
+ // The Path hasn't changed, so let's use the cached property
+ logFilePathProp = _cachedLogFilePathProp;
+ }
+ else
+ {
+ // We've got a new path for the log. Let's create a new property
+ // and cache it for future log events to use
+ _cachedLogFilePath = _path;
+ _cachedLogFilePathProp = logFilePathProp = propFactory.CreateProperty(LogFilePathPropertyName, _path);
+ }
+
+ logEvent.AddPropertyIfAbsent(logFilePathProp);
+ }
+
+ public static void Configure(string? logFile, Verbosity verbosity)
+ {
+ if (!string.IsNullOrWhiteSpace(logFile)) _path = logFile;
+ LogLevel.MinimumLevel = GetLevelForVerbosity(verbosity);
+ }
+
+ private static LogEventLevel GetLevelForVerbosity(Verbosity verbosity) => VerbosityMaps[verbosity];
+
+ private static readonly Dictionary VerbosityMaps = new()
+ {
+ { Verbosity.Verbose, LogEventLevel.Verbose },
+ { Verbosity.Diagnostic, LogEventLevel.Debug },
+ { Verbosity.Normal, LogEventLevel.Information },
+ { Verbosity.Minimal, LogEventLevel.Warning },
+ { Verbosity.Quiet, LogEventLevel.Error },
+ };
+}
diff --git a/new-cli/GitVersion.Core/Service.cs b/new-cli/GitVersion.Core/Service.cs
new file mode 100644
index 0000000000..4cbcecd974
--- /dev/null
+++ b/new-cli/GitVersion.Core/Service.cs
@@ -0,0 +1,6 @@
+namespace GitVersion;
+
+public class Service : IService
+{
+ public int Call() => 13;
+}
diff --git a/new-cli/GitVersion.Normalization/GitVersion.Normalization.csproj b/new-cli/GitVersion.Normalization/GitVersion.Normalization.csproj
new file mode 100644
index 0000000000..01f48f5e20
--- /dev/null
+++ b/new-cli/GitVersion.Normalization/GitVersion.Normalization.csproj
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/new-cli/GitVersion.Normalization/NormalizeCommand.cs b/new-cli/GitVersion.Normalization/NormalizeCommand.cs
new file mode 100644
index 0000000000..ed38ea327b
--- /dev/null
+++ b/new-cli/GitVersion.Normalization/NormalizeCommand.cs
@@ -0,0 +1,20 @@
+using GitVersion.Extensions;
+using Microsoft.Extensions.Logging;
+
+namespace GitVersion.Commands;
+
+public record NormalizeSettings : GitVersionSettings;
+
+[Command("normalize", "Normalizes the git repository for GitVersion calculations.")]
+public class NormalizeCommand(ILogger logger, IService service) : ICommand
+{
+ private readonly ILogger _logger = logger.NotNull();
+ private readonly IService _service = service.NotNull();
+
+ public Task InvokeAsync(NormalizeSettings settings, CancellationToken cancellationToken = default)
+ {
+ var value = _service.Call();
+ _logger.LogInformation($"Command : 'normalize', LogFile : '{settings.LogFile}', WorkDir : '{settings.WorkDir}' ");
+ return Task.FromResult(value);
+ }
+}
diff --git a/new-cli/GitVersion.Output/AssemblyInfo/OutputAssemblyInfoCommand.cs b/new-cli/GitVersion.Output/AssemblyInfo/OutputAssemblyInfoCommand.cs
new file mode 100644
index 0000000000..44c373ef46
--- /dev/null
+++ b/new-cli/GitVersion.Output/AssemblyInfo/OutputAssemblyInfoCommand.cs
@@ -0,0 +1,20 @@
+using GitVersion.Extensions;
+using Microsoft.Extensions.Logging;
+
+namespace GitVersion.Commands;
+
+[Command("assemblyinfo", "Outputs version to assembly")]
+public class OutputAssemblyInfoCommand(ILogger logger, IService service) : ICommand
+{
+ private readonly ILogger _logger = logger.NotNull();
+ private readonly IService _service = service.NotNull();
+
+ public Task InvokeAsync(OutputAssemblyInfoSettings settings, CancellationToken cancellationToken = default)
+ {
+ var value = _service.Call();
+ var versionInfo = settings.VersionInfo.Value;
+ _logger.LogInformation($"Command : 'output assemblyinfo', LogFile : '{settings.LogFile}', WorkDir : '{settings.OutputDir}', InputFile: '{settings.InputFile}', AssemblyInfo: '{settings.AssemblyinfoFile}' ");
+ _logger.LogInformation($"Version info: {versionInfo}");
+ return Task.FromResult(value);
+ }
+}
diff --git a/new-cli/GitVersion.Output/AssemblyInfo/OutputAssemblyInfoSettings.cs b/new-cli/GitVersion.Output/AssemblyInfo/OutputAssemblyInfoSettings.cs
new file mode 100644
index 0000000000..b1bf5a1fc9
--- /dev/null
+++ b/new-cli/GitVersion.Output/AssemblyInfo/OutputAssemblyInfoSettings.cs
@@ -0,0 +1,7 @@
+namespace GitVersion.Commands;
+
+public record OutputAssemblyInfoSettings : OutputSettings
+{
+ [Option("--assemblyinfo-file", "The assembly file")]
+ public required string AssemblyinfoFile { get; init; }
+}
diff --git a/new-cli/GitVersion.Output/GitVersion.Output.csproj b/new-cli/GitVersion.Output/GitVersion.Output.csproj
new file mode 100644
index 0000000000..01f48f5e20
--- /dev/null
+++ b/new-cli/GitVersion.Output/GitVersion.Output.csproj
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/new-cli/GitVersion.Output/OutputCommand.cs b/new-cli/GitVersion.Output/OutputCommand.cs
new file mode 100644
index 0000000000..2791d211cf
--- /dev/null
+++ b/new-cli/GitVersion.Output/OutputCommand.cs
@@ -0,0 +1,18 @@
+using GitVersion.Extensions;
+using Microsoft.Extensions.Logging;
+
+namespace GitVersion.Commands;
+
+[Command("output", "Outputs the version object.")]
+public class OutputCommand(ILogger logger, IService service) : ICommand
+{
+ private readonly ILogger _logger = logger.NotNull();
+ private readonly IService _service = service.NotNull();
+
+ public Task InvokeAsync(OutputSettings settings, CancellationToken cancellationToken = default)
+ {
+ var value = _service.Call();
+ _logger.LogInformation($"Command : 'output', LogFile : '{settings.LogFile}', WorkDir : '{settings.WorkDir}' ");
+ return Task.FromResult(value);
+ }
+}
diff --git a/new-cli/GitVersion.Output/OutputSettings.cs b/new-cli/GitVersion.Output/OutputSettings.cs
new file mode 100644
index 0000000000..6b79fd728f
--- /dev/null
+++ b/new-cli/GitVersion.Output/OutputSettings.cs
@@ -0,0 +1,12 @@
+namespace GitVersion.Commands;
+
+public record OutputSettings : GitVersionSettings
+{
+ public Lazy VersionInfo { get; } = new(() => Console.IsInputRedirected ? Console.ReadLine() ?? string.Empty : string.Empty);
+
+ [Option("--input-file", "The input version file")]
+ public required FileInfo InputFile { get; init; }
+
+ [Option("--output-dir", "The output directory with the git repository")]
+ public required DirectoryInfo OutputDir { get; init; }
+}
diff --git a/new-cli/GitVersion.Output/Project/OutputProjectCommand.cs b/new-cli/GitVersion.Output/Project/OutputProjectCommand.cs
new file mode 100644
index 0000000000..2608bc51fb
--- /dev/null
+++ b/new-cli/GitVersion.Output/Project/OutputProjectCommand.cs
@@ -0,0 +1,18 @@
+using GitVersion.Extensions;
+using Microsoft.Extensions.Logging;
+
+namespace GitVersion.Commands;
+
+[Command("project", "Outputs version to project")]
+public class OutputProjectCommand(ILogger logger, IService service) : ICommand
+{
+ private readonly ILogger _logger = logger.NotNull();
+ private readonly IService _service = service.NotNull();
+
+ public Task InvokeAsync(OutputProjectSettings settings, CancellationToken cancellationToken = default)
+ {
+ var value = _service.Call();
+ _logger.LogInformation($"Command : 'output project', LogFile : '{settings.LogFile}', WorkDir : '{settings.OutputDir}', InputFile: '{settings.InputFile}', Project: '{settings.ProjectFile}' ");
+ return Task.FromResult(value);
+ }
+}
diff --git a/new-cli/GitVersion.Output/Project/OutputProjectSettings.cs b/new-cli/GitVersion.Output/Project/OutputProjectSettings.cs
new file mode 100644
index 0000000000..ec096cd7a7
--- /dev/null
+++ b/new-cli/GitVersion.Output/Project/OutputProjectSettings.cs
@@ -0,0 +1,7 @@
+namespace GitVersion.Commands;
+
+public record OutputProjectSettings : OutputSettings
+{
+ [Option("--project-file", "The project file")]
+ public required string ProjectFile { get; init; }
+}
diff --git a/new-cli/GitVersion.Output/Wix/OutputWixCommand.cs b/new-cli/GitVersion.Output/Wix/OutputWixCommand.cs
new file mode 100644
index 0000000000..abe89f7e9e
--- /dev/null
+++ b/new-cli/GitVersion.Output/Wix/OutputWixCommand.cs
@@ -0,0 +1,18 @@
+using GitVersion.Extensions;
+using Microsoft.Extensions.Logging;
+
+namespace GitVersion.Commands;
+
+[Command("wix", "Outputs version to wix file")]
+public class OutputWixCommand(ILogger logger, IService service) : ICommand
+{
+ private readonly ILogger _logger = logger.NotNull();
+ private readonly IService _service = service.NotNull();
+
+ public Task InvokeAsync(OutputWixSettings settings, CancellationToken cancellationToken = default)
+ {
+ var value = _service.Call();
+ _logger.LogInformation($"Command : 'output wix', LogFile : '{settings.LogFile}', WorkDir : '{settings.OutputDir}', InputFile: '{settings.InputFile}', WixFile: '{settings.WixFile}' ");
+ return Task.FromResult(value);
+ }
+}
diff --git a/new-cli/GitVersion.Output/Wix/OutputWixSettings.cs b/new-cli/GitVersion.Output/Wix/OutputWixSettings.cs
new file mode 100644
index 0000000000..745f44759d
--- /dev/null
+++ b/new-cli/GitVersion.Output/Wix/OutputWixSettings.cs
@@ -0,0 +1,7 @@
+namespace GitVersion.Commands;
+
+public record OutputWixSettings : OutputSettings
+{
+ [Option("--wix-file", "The wix file")]
+ public required string WixFile { get; init; }
+}
diff --git a/new-cli/GitVersion.sln.DotSettings b/new-cli/GitVersion.sln.DotSettings
new file mode 100644
index 0000000000..ca580a27b8
--- /dev/null
+++ b/new-cli/GitVersion.sln.DotSettings
@@ -0,0 +1,2 @@
+
+ True
\ No newline at end of file
diff --git a/new-cli/GitVersion.slnx b/new-cli/GitVersion.slnx
new file mode 100644
index 0000000000..5fad617683
--- /dev/null
+++ b/new-cli/GitVersion.slnx
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/new-cli/command.md b/new-cli/command.md
new file mode 100644
index 0000000000..c137381b07
--- /dev/null
+++ b/new-cli/command.md
@@ -0,0 +1,72 @@
+```sh
+# Write version to stdout
+gitversion --version
+
+# Write help to stdout
+gitversion --help
+
+# Normalize the repository to its required state:
+gitversion normalize
+
+# Normalize the repository inside `./project/` to its required state:
+gitversion normalize --work-dir ./project/
+
+# Initialize GitVersion.yml
+gitversion config init
+
+# Write the effective GitVersion configuration (defaults + custom from GitVersion.yml) in yaml format to stdout
+gitversion config show
+
+# Calculate the version number and output to stdout. Only the JSON with the version variables will go to stdout, errors and warnings will be logged to stderr
+gitversion calculate
+
+# Calculate the version number and write it gitversion.json
+gitversion calculate > gitversion.json
+
+# Calculate the version number and output to stdout. Include logging information depending on the verbosity level in the logging to stderr.
+gitversion calculate --verbosity verbose
+
+# Calculate the version number and output to stdout. Include diagnostics info in the logging to stderr (requires `git` executable on PATH).
+gitversion [diag] calculate
+
+# Calculate the version number and log to the file `/var/logs/gitversion.log`
+gitversion calculate --logfile /var/logs/gitversion.log
+
+# Calculate the version number based on the configuration file `/etc/gitversion.yml`
+gitversion calculate --configfile /etc/gitversion.yml
+
+# Calculate the version and override the `tag-prefix` configuration.
+gitversion calculate --override-config tag-prefix=foo
+
+# Calculate the version with caching disabled.
+gitversion calculate --no-cache
+
+# Read version variables from stdin and write to globbed AssemblyInfo.cs files
+cat gitversion.json | gitversion output assemblyinfo --path ./**/AssemblyInfo.cs
+
+# Read version variables from stdin and write to globbed .csproj files
+cat gitversion.json | gitversion output projectfiles --path ./**/*.csproj
+
+# Read version variables from stdin and write to an auto-detected build server. Without an `--in` argument, stdin is the default input.
+cat gitversion.json | gitversion output buildserver
+
+# Read version variables from stdin and write to Jenkins.
+cat gitversion.json | gitversion output buildserver --buildserver Jenkins
+
+# Read version variables from stdin and write to globbed .wxi files.
+cat gitversion.json | gitversion output wix --path ./**/*.wxi
+
+# Read version variables from stdin and output them to environment variables
+cat gitversion.json | gitversion output environment
+
+# Read version variables from stdin and output them to environment variables
+cat gitversion.json | gitversion output environment --property FullSemVer
+
+# Read version variables from stdin and output only the `FullSemVer` property to stdout.
+cat gitversion.json | gitversion output --property FullSemVer
+
+# Pipe the output of calculate to gitversion output
+gitversion calculate | gitversion output assemblyinfo --path ./**/AssemblyInfo.cs
+
+#NOTES [diag] can be used only with calculate command
+```
diff --git a/new-cli/docs/calculate.rsp b/new-cli/docs/calculate.rsp
new file mode 100644
index 0000000000..a8a006be0c
--- /dev/null
+++ b/new-cli/docs/calculate.rsp
@@ -0,0 +1 @@
+calculate -l ./logs/log.txt --work-dir . --verbosity verbose
diff --git a/new-cli/docs/config-help.rsp b/new-cli/docs/config-help.rsp
new file mode 100644
index 0000000000..e3f8dfac56
--- /dev/null
+++ b/new-cli/docs/config-help.rsp
@@ -0,0 +1 @@
+config --help
diff --git a/new-cli/docs/config-init.rsp b/new-cli/docs/config-init.rsp
new file mode 100644
index 0000000000..3219c72c12
--- /dev/null
+++ b/new-cli/docs/config-init.rsp
@@ -0,0 +1 @@
+config init
diff --git a/new-cli/docs/config-show.rsp b/new-cli/docs/config-show.rsp
new file mode 100644
index 0000000000..3971d07a4b
--- /dev/null
+++ b/new-cli/docs/config-show.rsp
@@ -0,0 +1 @@
+config show
diff --git a/new-cli/docs/help.rsp b/new-cli/docs/help.rsp
new file mode 100644
index 0000000000..2255a80a73
--- /dev/null
+++ b/new-cli/docs/help.rsp
@@ -0,0 +1 @@
+--help
diff --git a/new-cli/docs/normalize.rsp b/new-cli/docs/normalize.rsp
new file mode 100644
index 0000000000..f9a8b6aa16
--- /dev/null
+++ b/new-cli/docs/normalize.rsp
@@ -0,0 +1 @@
+normalize
diff --git a/new-cli/docs/output-assemblyinfo.rsp b/new-cli/docs/output-assemblyinfo.rsp
new file mode 100644
index 0000000000..d632da45c7
--- /dev/null
+++ b/new-cli/docs/output-assemblyinfo.rsp
@@ -0,0 +1 @@
+output assemblyinfo --input-file version.json --assemblyinfo-file assembly.cs
diff --git a/new-cli/docs/output-help.rsp b/new-cli/docs/output-help.rsp
new file mode 100644
index 0000000000..c0cbbfae24
--- /dev/null
+++ b/new-cli/docs/output-help.rsp
@@ -0,0 +1 @@
+output --help
diff --git a/new-cli/docs/output-project.rsp b/new-cli/docs/output-project.rsp
new file mode 100644
index 0000000000..734d7e3736
--- /dev/null
+++ b/new-cli/docs/output-project.rsp
@@ -0,0 +1 @@
+output --output-dir ./output --input-file version.json project --project-file project.csproj
diff --git a/new-cli/docs/output-wix.rsp b/new-cli/docs/output-wix.rsp
new file mode 100644
index 0000000000..91992af5b6
--- /dev/null
+++ b/new-cli/docs/output-wix.rsp
@@ -0,0 +1 @@
+output --output-dir ./output --input-file version.json wix --wix-file project.wix
diff --git a/new-cli/docs/version.rsp b/new-cli/docs/version.rsp
new file mode 100644
index 0000000000..32776d21bd
--- /dev/null
+++ b/new-cli/docs/version.rsp
@@ -0,0 +1 @@
+--version
diff --git a/package-lock.json b/package-lock.json
index ece3dcb744..b2349ae19b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -7,105 +7,175 @@
"name": "gitversion",
"license": "MIT",
"devDependencies": {
- "remark": "^14.0.2",
- "remark-cli": "^10.0.1",
- "remark-frontmatter": "^4.0.1",
- "remark-heading-gap": "^5.0.1",
- "remark-lint": "^9.1.1",
- "remark-lint-blockquote-indentation": "^3.1.1",
- "remark-lint-checkbox-character-style": "^4.1.1",
- "remark-lint-checkbox-content-indent": "^4.1.1",
+ "remark": "^15.0.1",
+ "remark-cli": "^12.0.1",
+ "remark-frontmatter": "^5.0.0",
+ "remark-heading-gap": "^6.0.0",
+ "remark-lint": "^10.0.1",
+ "remark-lint-blockquote-indentation": "^4.0.1",
+ "remark-lint-checkbox-character-style": "^5.0.1",
+ "remark-lint-checkbox-content-indent": "^5.0.1",
"remark-lint-code": "^2.0.0",
- "remark-lint-code-block-style": "^3.1.0",
- "remark-lint-definition-case": "^3.1.1",
- "remark-lint-definition-spacing": "^3.1.1",
- "remark-lint-fenced-code-flag": "^3.1.1",
- "remark-lint-fenced-code-marker": "^3.1.1",
- "remark-lint-file-extension": "^2.1.1",
- "remark-lint-final-definition": "^3.1.1",
- "remark-lint-final-newline": "^2.1.1",
- "remark-lint-hard-break-spaces": "^3.1.1",
- "remark-lint-heading-increment": "^3.1.1",
- "remark-lint-heading-style": "^3.1.1",
+ "remark-lint-code-block-style": "^4.0.1",
+ "remark-lint-definition-case": "^4.0.1",
+ "remark-lint-definition-spacing": "^4.0.1",
+ "remark-lint-fenced-code-flag": "^4.2.0",
+ "remark-lint-fenced-code-marker": "^4.0.1",
+ "remark-lint-file-extension": "^3.0.1",
+ "remark-lint-final-definition": "^4.0.2",
+ "remark-lint-final-newline": "^3.0.1",
+ "remark-lint-hard-break-spaces": "^4.1.1",
+ "remark-lint-heading-increment": "^4.0.1",
+ "remark-lint-heading-style": "^4.0.1",
"remark-lint-heading-whitespace": "^1.0.0",
- "remark-lint-link-title-style": "^3.1.1",
- "remark-lint-list-item-bullet-indent": "^4.1.1",
- "remark-lint-list-item-content-indent": "^3.1.1",
- "remark-lint-list-item-indent": "^3.1.1",
- "remark-lint-maximum-heading-length": "^3.1.1",
- "remark-lint-no-auto-link-without-protocol": "^3.1.1",
- "remark-lint-no-blockquote-without-marker": "^5.1.1",
- "remark-lint-no-consecutive-blank-lines": "^4.1.2",
- "remark-lint-no-dead-urls": "^1.1.0",
- "remark-lint-no-duplicate-definitions": "^3.1.1",
- "remark-lint-no-duplicate-headings": "^3.1.1",
- "remark-lint-no-emphasis-as-heading": "^3.1.1",
+ "remark-lint-link-title-style": "^4.0.1",
+ "remark-lint-list-item-bullet-indent": "^5.0.1",
+ "remark-lint-list-item-content-indent": "^4.0.1",
+ "remark-lint-list-item-indent": "^4.0.1",
+ "remark-lint-maximum-heading-length": "^4.1.1",
+ "remark-lint-no-blockquote-without-marker": "^6.0.1",
+ "remark-lint-no-consecutive-blank-lines": "^5.0.1",
+ "remark-lint-no-dead-urls": "^2.0.1",
+ "remark-lint-no-duplicate-definitions": "^4.0.1",
+ "remark-lint-no-duplicate-headings": "^4.0.1",
+ "remark-lint-no-emphasis-as-heading": "^4.0.1",
"remark-lint-no-empty-sections": "^4.0.0",
- "remark-lint-no-empty-url": "^3.1.1",
- "remark-lint-no-file-name-articles": "^2.1.1",
- "remark-lint-no-file-name-consecutive-dashes": "^2.1.1",
- "remark-lint-no-file-name-irregular-characters": "^2.1.1",
- "remark-lint-no-file-name-mixed-case": "^2.1.1",
- "remark-lint-no-file-name-outer-dashes": "^2.1.1",
- "remark-lint-no-heading-content-indent": "^4.1.1",
- "remark-lint-no-heading-indent": "^4.1.1",
- "remark-lint-no-heading-like-paragraph": "^3.1.1",
- "remark-lint-no-inline-padding": "^4.1.1",
- "remark-lint-no-literal-urls": "^3.1.1",
- "remark-lint-no-multiple-toplevel-headings": "^3.1.1",
- "remark-lint-no-reference-like-url": "^3.1.1",
+ "remark-lint-no-empty-url": "^4.0.1",
+ "remark-lint-no-file-name-articles": "^3.0.1",
+ "remark-lint-no-file-name-consecutive-dashes": "^3.0.1",
+ "remark-lint-no-file-name-irregular-characters": "^3.0.1",
+ "remark-lint-no-file-name-mixed-case": "^3.0.1",
+ "remark-lint-no-file-name-outer-dashes": "^3.0.1",
+ "remark-lint-no-heading-content-indent": "^5.0.1",
+ "remark-lint-no-heading-indent": "^5.0.1",
+ "remark-lint-no-heading-like-paragraph": "^4.0.1",
+ "remark-lint-no-literal-urls": "^4.0.1",
+ "remark-lint-no-multiple-toplevel-headings": "^4.0.1",
+ "remark-lint-no-reference-like-url": "^4.0.1",
"remark-lint-no-repeat-punctuation": "^0.1.4",
- "remark-lint-no-shell-dollars": "^3.1.1",
- "remark-lint-no-shortcut-reference-image": "^3.1.1",
- "remark-lint-no-table-indentation": "^4.1.1",
- "remark-lint-no-tabs": "^3.1.1",
- "remark-lint-no-unused-definitions": "^3.1.1",
- "remark-lint-ordered-list-marker-style": "^3.1.1",
- "remark-lint-ordered-list-marker-value": "^3.1.1",
- "remark-lint-rule-style": "^3.1.1",
- "remark-lint-strong-marker": "^3.1.1",
- "remark-lint-table-cell-padding": "^4.1.2",
- "remark-lint-table-pipe-alignment": "^3.1.1",
- "remark-lint-table-pipes": "^4.1.1",
- "remark-lint-unordered-list-marker-style": "^3.1.1",
+ "remark-lint-no-shell-dollars": "^4.0.1",
+ "remark-lint-no-shortcut-reference-image": "^4.0.1",
+ "remark-lint-no-table-indentation": "^5.0.1",
+ "remark-lint-no-tabs": "^4.0.1",
+ "remark-lint-no-unused-definitions": "^4.0.2",
+ "remark-lint-ordered-list-marker-style": "^4.0.1",
+ "remark-lint-ordered-list-marker-value": "^4.0.1",
+ "remark-lint-rule-style": "^4.0.1",
+ "remark-lint-strong-marker": "^4.0.1",
+ "remark-lint-table-cell-padding": "^5.1.1",
+ "remark-lint-table-pipe-alignment": "^4.1.1",
+ "remark-lint-table-pipes": "^5.0.1",
+ "remark-lint-unordered-list-marker-style": "^4.0.1",
"remark-lint-write-good": "^1.2.0",
- "remark-preset-lint-consistent": "^5.1.1",
- "remark-preset-lint-markdown-style-guide": "^5.1.2",
- "remark-preset-lint-recommended": "^6.1.2",
- "remark-retext": "^5.0.1",
- "remark-textr": "^5.0.1",
- "remark-validate-links": "^11.0.2"
+ "remark-preset-lint-consistent": "^6.0.1",
+ "remark-preset-lint-markdown-style-guide": "^6.0.1",
+ "remark-preset-lint-recommended": "^7.0.1",
+ "remark-retext": "^6.0.1",
+ "remark-textr": "^6.1.0",
+ "remark-validate-links": "^13.1.0"
}
},
"node_modules/@babel/code-frame": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz",
- "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==",
+ "version": "7.22.13",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
+ "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
"dev": true,
"dependencies": {
- "@babel/highlight": "^7.16.7"
+ "@babel/highlight": "^7.22.13",
+ "chalk": "^2.4.2"
},
"engines": {
"node": ">=6.9.0"
}
},
+ "node_modules/@babel/code-frame/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true
+ },
+ "node_modules/@babel/code-frame/node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz",
- "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/highlight": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz",
- "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
+ "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
"dev": true,
"dependencies": {
- "@babel/helper-validator-identifier": "^7.16.7",
- "chalk": "^2.0.0",
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "chalk": "^2.4.2",
"js-tokens": "^4.0.0"
},
"engines": {
@@ -150,13 +220,13 @@
"node_modules/@babel/highlight/node_modules/color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
"dev": true
},
"node_modules/@babel/highlight/node_modules/escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
"dev": true,
"engines": {
"node": ">=0.8.0"
@@ -165,7 +235,7 @@
"node_modules/@babel/highlight/node_modules/has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
"dev": true,
"engines": {
"node": ">=4"
@@ -263,37 +333,176 @@
"dev": true,
"peer": true
},
+ "node_modules/@isaacs/cliui": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "dev": true,
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/@leichtgewicht/ip-codec": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz",
+ "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==",
+ "dev": true
+ },
+ "node_modules/@npmcli/config": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@npmcli/config/-/config-4.1.0.tgz",
+ "integrity": "sha512-cPQmIQ2Q0vuOfrenrA3isikdMFMAHgzlXV+EmvZ8f2JeJsU5xTU2bG7ipXECiMvPF9nM+QDnMLuIg8QLw9H4xg==",
+ "dev": true,
+ "dependencies": {
+ "@npmcli/map-workspaces": "^2.0.2",
+ "ini": "^3.0.0",
+ "mkdirp-infer-owner": "^2.0.0",
+ "nopt": "^5.0.0",
+ "proc-log": "^2.0.0",
+ "read-package-json-fast": "^2.0.3",
+ "semver": "^7.3.5",
+ "walk-up-path": "^1.0.0"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@npmcli/map-workspaces": {
"version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz",
- "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==",
+ "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-2.0.3.tgz",
+ "integrity": "sha512-X6suAun5QyupNM8iHkNPh0AHdRC2rb1W+MTdMvvA/2ixgmqZwlq5cGUBgmKHUHT2LgrkKJMAXbfAoTxOigpK8Q==",
+ "dev": true,
+ "dependencies": {
+ "@npmcli/name-from-folder": "^1.0.1",
+ "glob": "^8.0.1",
+ "minimatch": "^5.0.1",
+ "read-package-json-fast": "^2.0.3"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@npmcli/map-workspaces/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/@npmcli/map-workspaces/node_modules/glob": {
+ "version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz",
+ "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==",
+ "dev": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^5.0.1",
+ "once": "^1.3.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@npmcli/map-workspaces/node_modules/minimatch": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz",
+ "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@npmcli/name-from-folder": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz",
+ "integrity": "sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==",
"dev": true
},
+ "node_modules/@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+ "dev": true,
+ "optional": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
"node_modules/@sindresorhus/is": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
- "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz",
+ "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==",
"dev": true,
"engines": {
- "node": ">=6"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/is?sponsor=1"
}
},
"node_modules/@szmarczak/http-timer": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
- "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz",
+ "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==",
"dev": true,
"dependencies": {
- "defer-to-connect": "^1.0.1"
+ "defer-to-connect": "^2.0.0"
},
"engines": {
- "node": ">=6"
+ "node": ">=10"
+ }
+ },
+ "node_modules/@types/cacheable-request": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz",
+ "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==",
+ "dev": true,
+ "dependencies": {
+ "@types/http-cache-semantics": "*",
+ "@types/keyv": "^3.1.4",
+ "@types/node": "*",
+ "@types/responselike": "^1.0.0"
}
},
"node_modules/@types/concat-stream": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz",
- "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-2.0.0.tgz",
+ "integrity": "sha512-t3YCerNM7NTVjLuICZo5gYAXYoDvpuuTceCcFQWcDQz26kxUR5uIWolxbIR5jRNIXpMqhOpW/b8imCR1LEmuJw==",
"dev": true,
"dependencies": {
"@types/node": "*"
@@ -309,32 +518,47 @@
}
},
"node_modules/@types/estree": {
- "version": "0.0.50",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz",
- "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
+ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
"dev": true
},
"node_modules/@types/estree-jsx": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-0.0.1.tgz",
- "integrity": "sha512-gcLAYiMfQklDCPjQegGn0TBAn9it05ISEsEhlKQUddIk7o2XDokOcTN7HBO8tznM0D9dGezvHEfRZBfZf6me0A==",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz",
+ "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==",
"dev": true,
"dependencies": {
"@types/estree": "*"
}
},
+ "node_modules/@types/hast": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.1.tgz",
+ "integrity": "sha512-hs/iBJx2aydugBQx5ETV3ZgeSS0oIreQrFJ4bjBl0XvM4wAmDjFEALY7p0rTSLt2eL+ibjRAAs9dTPiCLtmbqQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/@types/hosted-git-info": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@types/hosted-git-info/-/hosted-git-info-3.0.5.tgz",
+ "integrity": "sha512-Dmngh7U003cOHPhKGyA7LWqrnvcTyILNgNPmNCxlx7j8MIi54iBliiT8XqVLIQ3GchoOjVAyBzNJVyuaJjqokg==",
+ "dev": true
+ },
+ "node_modules/@types/http-cache-semantics": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz",
+ "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==",
+ "dev": true
+ },
"node_modules/@types/is-empty": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/@types/is-empty/-/is-empty-1.2.1.tgz",
"integrity": "sha512-a3xgqnFTuNJDm1fjsTjHocYJ40Cz3t8utYpi5GNaxzrJC2HSD08ym+whIL7fNqiqBCdM9bcqD1H/tORWAFXoZw==",
"dev": true
},
- "node_modules/@types/js-yaml": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.5.tgz",
- "integrity": "sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==",
- "dev": true
- },
"node_modules/@types/json5": {
"version": "0.0.29",
"resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
@@ -342,13 +566,13 @@
"dev": true,
"peer": true
},
- "node_modules/@types/mdast": {
- "version": "3.0.10",
- "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz",
- "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==",
+ "node_modules/@types/keyv": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz",
+ "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==",
"dev": true,
"dependencies": {
- "@types/unist": "*"
+ "@types/node": "*"
}
},
"node_modules/@types/ms": {
@@ -358,20 +582,29 @@
"dev": true
},
"node_modules/@types/nlcst": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@types/nlcst/-/nlcst-1.0.0.tgz",
- "integrity": "sha512-3TGCfOcy8R8mMQ4CNSNOe3PG66HttvjcLzCoOpvXvDtfWOTi+uT/rxeOKm/qEwbM4SNe1O/PjdiBK2YcTjU4OQ==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/nlcst/-/nlcst-2.0.1.tgz",
+ "integrity": "sha512-+hL97wfmdLW/unulVgdR+e+8PXbbtZgoYOq3C12H3RKgAZZ38D55Jwej7JBttJ6+oFuwIRYy5qTbE/WugMsCxw==",
"dev": true,
"dependencies": {
"@types/unist": "*"
}
},
"node_modules/@types/node": {
- "version": "17.0.8",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.8.tgz",
- "integrity": "sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg==",
+ "version": "20.8.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.0.tgz",
+ "integrity": "sha512-LzcWltT83s1bthcvjBmiBvGJiiUe84NWRHkw+ZV6Fr41z2FbIzvc815dk2nQ3RAKMuN2fkenM/z3Xv2QzEpYxQ==",
"dev": true
},
+ "node_modules/@types/responselike": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz",
+ "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
"node_modules/@types/supports-color": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/@types/supports-color/-/supports-color-8.1.1.tgz",
@@ -379,9 +612,9 @@
"dev": true
},
"node_modules/@types/text-table": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/@types/text-table/-/text-table-0.2.2.tgz",
- "integrity": "sha512-dGoI5Af7To0R2XE8wJuc6vwlavWARsCh3UKJPjWs1YEqGUqfgBI/j/4GX0yf19/DsDPPf0YAXWAp8psNeIehLg==",
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@types/text-table/-/text-table-0.2.3.tgz",
+ "integrity": "sha512-MUW7DN7e178wJ2dB9rHuhwUWRUJGrl8fCng37BEWV0r2r5VpzkRFRiMfnX6sjXlu4tMn41lrjzsVh/z1XrKc+A==",
"dev": true
},
"node_modules/@types/unist": {
@@ -390,6 +623,18 @@
"integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==",
"dev": true
},
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
+ "dev": true
+ },
+ "node_modules/abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+ "dev": true
+ },
"node_modules/acorn": {
"version": "8.7.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz",
@@ -424,16 +669,19 @@
}
},
"node_modules/aggregate-error": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
- "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz",
+ "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==",
"dev": true,
"dependencies": {
- "clean-stack": "^2.0.0",
- "indent-string": "^4.0.0"
+ "clean-stack": "^4.0.0",
+ "indent-string": "^5.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/ajv": {
@@ -491,9 +739,9 @@
}
},
"node_modules/anymatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
- "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
"dev": true,
"dependencies": {
"normalize-path": "^3.0.0",
@@ -507,7 +755,8 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
+ "dev": true,
+ "peer": true
},
"node_modules/aria-query": {
"version": "4.2.2",
@@ -543,6 +792,16 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/array-iterate": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-2.0.1.tgz",
+ "integrity": "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==",
+ "dev": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
"node_modules/array.prototype.flat": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz",
@@ -619,6 +878,16 @@
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true
},
+ "node_modules/bcp-47-match": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-2.0.3.tgz",
+ "integrity": "sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==",
+ "dev": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
"node_modules/binary-extensions": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
@@ -628,23 +897,30 @@
"node": ">=8"
}
},
+ "node_modules/boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
+ "dev": true
+ },
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
+ "peer": true,
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"node_modules/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"dev": true,
"dependencies": {
- "fill-range": "^7.0.1"
+ "fill-range": "^7.1.1"
},
"engines": {
"node": ">=8"
@@ -657,52 +933,37 @@
"dev": true
},
"node_modules/builtins": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/builtins/-/builtins-4.0.0.tgz",
- "integrity": "sha512-qC0E2Dxgou1IHhvJSLwGDSTvokbRovU5zZFuDY6oY8Y2lF3nGt5Ad8YZK7GMtqzY84Wu7pXTPeHQeHcXSXsRhw==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz",
+ "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==",
"dev": true,
"dependencies": {
"semver": "^7.0.0"
}
},
+ "node_modules/cacheable-lookup": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz",
+ "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10.6.0"
+ }
+ },
"node_modules/cacheable-request": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
- "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz",
+ "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==",
"dev": true,
"dependencies": {
"clone-response": "^1.0.2",
"get-stream": "^5.1.0",
"http-cache-semantics": "^4.0.0",
- "keyv": "^3.0.0",
+ "keyv": "^4.0.0",
"lowercase-keys": "^2.0.0",
- "normalize-url": "^4.1.0",
- "responselike": "^1.0.2"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cacheable-request/node_modules/get-stream": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
- "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
- "dev": true,
- "dependencies": {
- "pump": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
+ "normalize-url": "^6.0.1",
+ "responselike": "^2.0.0"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/cacheable-request/node_modules/lowercase-keys": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
- "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
- "dev": true,
"engines": {
"node": ">=8"
}
@@ -731,16 +992,14 @@
"node": ">=6"
}
},
- "node_modules/camelcase": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
- "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "node_modules/ccount": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz",
+ "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==",
"dev": true,
- "engines": {
- "node": ">=10"
- },
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/chalk": {
@@ -748,6 +1007,7 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "peer": true,
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -769,26 +1029,47 @@
"url": "https://github.com/sponsors/wooorm"
}
},
- "node_modules/check-links": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/check-links/-/check-links-1.1.8.tgz",
- "integrity": "sha512-lxt1EeQ1CVkmiZzPfbPufperYK0t7MvhdLs3zlRH9areA6NVT1tcGymAdJONolNWQBdCFU/sek59RpeLmVHCnw==",
+ "node_modules/character-entities-html4": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz",
+ "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==",
"dev": true,
- "dependencies": {
- "got": "^9.6.0",
- "is-relative-url": "^2.0.0",
- "p-map": "^2.0.0",
- "p-memoize": "^2.1.0"
- },
- "engines": {
- "node": ">=8"
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/character-entities-legacy": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
+ "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
+ "dev": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/character-reference-invalid": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz",
+ "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==",
+ "dev": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/chokidar": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz",
- "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==",
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
"dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ],
"dependencies": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
@@ -805,22 +1086,67 @@
"fsevents": "~2.3.2"
}
},
+ "node_modules/chownr": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/clean-stack": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
- "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz",
+ "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==",
"dev": true,
+ "dependencies": {
+ "escape-string-regexp": "5.0.0"
+ },
"engines": {
- "node": ">=6"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/clean-stack/node_modules/escape-string-regexp": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
+ "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/clone-regexp": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-3.0.0.tgz",
+ "integrity": "sha512-ujdnoq2Kxb8s3ItNBtnYeXdm07FcU0u8ARAT1lQ2YdMwQC+cdiXX8KoqMVuglztILivceTtp4ivqGSmEmhBUJw==",
+ "dev": true,
+ "dependencies": {
+ "is-regexp": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/clone-response": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
- "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz",
+ "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==",
"dev": true,
"dependencies": {
"mimic-response": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/co": {
@@ -829,6 +1155,16 @@
"integrity": "sha1-TqVOpaCJOBUxheFSEMaNkJK8G3g=",
"dev": true
},
+ "node_modules/collapse-white-space": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz",
+ "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==",
+ "dev": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
"node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
@@ -847,6 +1183,16 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
+ "node_modules/comma-separated-tokens": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
+ "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
+ "dev": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
"node_modules/commander": {
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
@@ -857,7 +1203,8 @@
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
- "dev": true
+ "dev": true,
+ "peer": true
},
"node_modules/concat-stream": {
"version": "2.0.0",
@@ -874,6 +1221,18 @@
"typedarray": "^0.0.6"
}
},
+ "node_modules/convert-hrtime": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-5.0.0.tgz",
+ "integrity": "sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/core-js-pure": {
"version": "3.20.2",
"resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.2.tgz",
@@ -891,7 +1250,6 @@
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
"integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
"dev": true,
- "peer": true,
"dependencies": {
"path-key": "^3.1.0",
"shebang-command": "^2.0.0",
@@ -901,6 +1259,22 @@
"node": ">= 8"
}
},
+ "node_modules/css-selector-parser": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-3.0.5.tgz",
+ "integrity": "sha512-3itoDFbKUNx1eKmVpYMFyqKX04Ww9osZ+dLgrk6GEv6KMVeXUhUnp4I5X+evw+u3ZxVU6RFXSSRxlTeMh8bA+g==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/mdevils"
+ },
+ {
+ "type": "patreon",
+ "url": "https://patreon.com/mdevils"
+ }
+ ]
+ },
"node_modules/damerau-levenshtein": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
@@ -908,6 +1282,89 @@
"dev": true,
"peer": true
},
+ "node_modules/dead-or-alive": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/dead-or-alive/-/dead-or-alive-1.0.3.tgz",
+ "integrity": "sha512-LJ2tGXmux1dx6FcuhwKcbHJPiR2OKiPWBY/6Yj6EfFdObK3nue69DlGFr1cUeRmtalqRhWXMztXMcEXJP59XKw==",
+ "dev": true,
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "fast-content-type-parse": "^2.0.0",
+ "hast-util-from-html-isomorphic": "^2.0.0",
+ "hast-util-is-element": "^3.0.0",
+ "hast-util-select": "^6.0.0",
+ "html-url-attributes": "^3.0.0",
+ "levenshtein-edit-distance": "^3.0.0",
+ "undici": "^6.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/dead-or-alive/node_modules/@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "dev": true
+ },
+ "node_modules/dead-or-alive/node_modules/levenshtein-edit-distance": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/levenshtein-edit-distance/-/levenshtein-edit-distance-3.0.1.tgz",
+ "integrity": "sha512-/qMCkZbrAF7jZP/voqlkfNrBtEn0TMdhCK7OEBh/zb39t/c3wCnTjwU1ZvrMfQ3OxB8sBQXIpWRMM6FiQJVG3g==",
+ "dev": true,
+ "bin": {
+ "levenshtein-edit-distance": "cli.js"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/dead-or-alive/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/dead-or-alive/node_modules/unist-util-visit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/dead-or-alive/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
"node_modules/debug": {
"version": "4.3.3",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
@@ -939,15 +1396,30 @@
}
},
"node_modules/decompress-response": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
- "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
+ "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
"dev": true,
"dependencies": {
- "mimic-response": "^1.0.0"
+ "mimic-response": "^3.1.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/decompress-response/node_modules/mimic-response": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
+ "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/deep-is": {
@@ -958,10 +1430,13 @@
"peer": true
},
"node_modules/defer-to-connect": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
- "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==",
- "dev": true
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
+ "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
},
"node_modules/define-properties": {
"version": "1.1.3",
@@ -985,19 +1460,36 @@
"node": ">=6"
}
},
- "node_modules/diff": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
- "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
+ "node_modules/devlop": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz",
+ "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==",
"dev": true,
- "engines": {
- "node": ">=0.3.1"
+ "dependencies": {
+ "dequal": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/direction": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/direction/-/direction-2.0.1.tgz",
+ "integrity": "sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA==",
+ "dev": true,
+ "bin": {
+ "direction": "cli.js"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/dns-packet": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.3.1.tgz",
- "integrity": "sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz",
+ "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==",
"dev": true,
"dependencies": {
"@leichtgewicht/ip-codec": "^2.0.1"
@@ -1031,12 +1523,6 @@
"node": ">=6.0.0"
}
},
- "node_modules/duplexer3": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
- "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
- "dev": true
- },
"node_modules/e-prime": {
"version": "0.10.4",
"resolved": "https://registry.npmjs.org/e-prime/-/e-prime-0.10.4.tgz",
@@ -1077,6 +1563,18 @@
"node": ">=8.6"
}
},
+ "node_modules/entities": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
"node_modules/error-ex": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
@@ -1471,10 +1969,11 @@
}
},
"node_modules/eslint-plugin-react/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
+ "license": "ISC",
"peer": true,
"bin": {
"semver": "bin/semver.js"
@@ -1646,6 +2145,12 @@
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
"dev": true
},
+ "node_modules/fast-content-type-parse": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-2.0.0.tgz",
+ "integrity": "sha512-fCqg/6Sps8tqk8p+kqyKqYfOF0VjPNYrqpLiqNl0RBKmD80B080AJWVV6EkSkscjToNExcXg1+Mfzftrx6+iSA==",
+ "dev": true
+ },
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -1680,12 +2185,6 @@
"url": "https://github.com/sponsors/wooorm"
}
},
- "node_modules/figgy-pudding": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz",
- "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==",
- "dev": true
- },
"node_modules/file-entry-cache": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
@@ -1700,9 +2199,9 @@
}
},
"node_modules/fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"dev": true,
"dependencies": {
"to-regex-range": "^5.0.1"
@@ -1711,18 +2210,6 @@
"node": ">=8"
}
},
- "node_modules/find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
- "dependencies": {
- "locate-path": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/flat-cache": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
@@ -1744,6 +2231,22 @@
"dev": true,
"peer": true
},
+ "node_modules/foreground-child": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
+ "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.0",
+ "signal-exit": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
"node_modules/format": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz",
@@ -1760,9 +2263,9 @@
"dev": true
},
"node_modules/fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
"dev": true,
"hasInstallScript": true,
"optional": true,
@@ -1780,6 +2283,18 @@
"dev": true,
"peer": true
},
+ "node_modules/function-timeout": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/function-timeout/-/function-timeout-0.1.1.tgz",
+ "integrity": "sha512-0NVVC0TaP7dSTvn1yMiy6d6Q8gifzbvQafO46RtLG/kHJUBNd+pVRGOBoK44wNBvtSPUJRfdVvkFdD3p0xvyZg==",
+ "dev": true,
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/functional-red-black-tree": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
@@ -1803,15 +2318,18 @@
}
},
"node_modules/get-stream": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
- "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
"dev": true,
"dependencies": {
"pump": "^3.0.0"
},
"engines": {
- "node": ">=6"
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/get-symbol-description": {
@@ -1832,9 +2350,9 @@
}
},
"node_modules/github-slugger": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.4.0.tgz",
- "integrity": "sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz",
+ "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==",
"dev": true
},
"node_modules/glob": {
@@ -1842,6 +2360,7 @@
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
"integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
"dev": true,
+ "peer": true,
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -1899,25 +2418,28 @@
}
},
"node_modules/got": {
- "version": "9.6.0",
- "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
- "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
- "dev": true,
- "dependencies": {
- "@sindresorhus/is": "^0.14.0",
- "@szmarczak/http-timer": "^1.1.2",
- "cacheable-request": "^6.0.0",
- "decompress-response": "^3.3.0",
- "duplexer3": "^0.1.4",
- "get-stream": "^4.1.0",
- "lowercase-keys": "^1.0.1",
- "mimic-response": "^1.0.1",
- "p-cancelable": "^1.0.0",
- "to-readable-stream": "^1.0.0",
- "url-parse-lax": "^3.0.0"
+ "version": "11.8.6",
+ "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz",
+ "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==",
+ "dev": true,
+ "dependencies": {
+ "@sindresorhus/is": "^4.0.0",
+ "@szmarczak/http-timer": "^4.0.5",
+ "@types/cacheable-request": "^6.0.1",
+ "@types/responselike": "^1.0.0",
+ "cacheable-lookup": "^5.0.3",
+ "cacheable-request": "^7.0.2",
+ "decompress-response": "^6.0.0",
+ "http2-wrapper": "^1.0.0-beta.5.2",
+ "lowercase-keys": "^2.0.0",
+ "p-cancelable": "^2.0.0",
+ "responselike": "^2.0.0"
},
"engines": {
- "node": ">=8.6"
+ "node": ">=10.19.0"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/got?sponsor=1"
}
},
"node_modules/has": {
@@ -1948,6 +2470,7 @@
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
+ "peer": true,
"engines": {
"node": ">=8"
}
@@ -1981,24 +2504,350 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/hosted-git-info": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
- "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
+ "node_modules/hast-util-from-dom": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-from-dom/-/hast-util-from-dom-5.0.0.tgz",
+ "integrity": "sha512-d6235voAp/XR3Hh5uy7aGLbM3S4KamdW0WEgOaU1YoewnuYw4HXb5eRtv9g65m/RFGEfUY1Mw4UqCc5Y8L4Stg==",
"dev": true,
"dependencies": {
- "lru-cache": "^6.0.0"
+ "@types/hast": "^3.0.0",
+ "hastscript": "^8.0.0",
+ "web-namespaces": "^2.0.0"
},
- "engines": {
- "node": ">=10"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-from-html": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.3.tgz",
+ "integrity": "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==",
+ "dev": true,
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "devlop": "^1.1.0",
+ "hast-util-from-parse5": "^8.0.0",
+ "parse5": "^7.0.0",
+ "vfile": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-from-html-isomorphic": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-from-html-isomorphic/-/hast-util-from-html-isomorphic-2.0.0.tgz",
+ "integrity": "sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==",
+ "dev": true,
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "hast-util-from-dom": "^5.0.0",
+ "hast-util-from-html": "^2.0.0",
+ "unist-util-remove-position": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-from-html/node_modules/@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "dev": true
+ },
+ "node_modules/hast-util-from-html/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-from-html/node_modules/vfile": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz",
+ "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-from-html/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-from-parse5": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz",
+ "integrity": "sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/unist": "^3.0.0",
+ "devlop": "^1.0.0",
+ "hastscript": "^8.0.0",
+ "property-information": "^6.0.0",
+ "vfile": "^6.0.0",
+ "vfile-location": "^5.0.0",
+ "web-namespaces": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-from-parse5/node_modules/@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "dev": true
+ },
+ "node_modules/hast-util-from-parse5/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-from-parse5/node_modules/vfile": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz",
+ "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-from-parse5/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-has-property": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-3.0.0.tgz",
+ "integrity": "sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==",
+ "dev": true,
+ "dependencies": {
+ "@types/hast": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-is-element": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz",
+ "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==",
+ "dev": true,
+ "dependencies": {
+ "@types/hast": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-parse-selector": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz",
+ "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==",
+ "dev": true,
+ "dependencies": {
+ "@types/hast": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-select": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/hast-util-select/-/hast-util-select-6.0.2.tgz",
+ "integrity": "sha512-hT/SD/d/Meu+iobvgkffo1QecV8WeKWxwsNMzcTJsKw1cKTQKSR/7ArJeURLNJF9HDjp9nVoORyNNJxrvBye8Q==",
+ "dev": true,
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/unist": "^3.0.0",
+ "bcp-47-match": "^2.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "css-selector-parser": "^3.0.0",
+ "devlop": "^1.0.0",
+ "direction": "^2.0.0",
+ "hast-util-has-property": "^3.0.0",
+ "hast-util-to-string": "^3.0.0",
+ "hast-util-whitespace": "^3.0.0",
+ "not": "^0.1.0",
+ "nth-check": "^2.0.0",
+ "property-information": "^6.0.0",
+ "space-separated-tokens": "^2.0.0",
+ "unist-util-visit": "^5.0.0",
+ "zwitch": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-select/node_modules/@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "dev": true
+ },
+ "node_modules/hast-util-select/node_modules/unist-util-visit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-to-string": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.1.tgz",
+ "integrity": "sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==",
+ "dev": true,
+ "dependencies": {
+ "@types/hast": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-whitespace": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz",
+ "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==",
+ "dev": true,
+ "dependencies": {
+ "@types/hast": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hastscript": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-8.0.0.tgz",
+ "integrity": "sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==",
+ "dev": true,
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "hast-util-parse-selector": "^4.0.0",
+ "property-information": "^6.0.0",
+ "space-separated-tokens": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hosted-git-info": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz",
+ "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^10.0.1"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/hosted-git-info/node_modules/lru-cache": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz",
+ "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==",
+ "dev": true,
+ "engines": {
+ "node": "14 || >=16.14"
+ }
+ },
+ "node_modules/html-url-attributes": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.1.tgz",
+ "integrity": "sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==",
+ "dev": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/http-cache-semantics": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
+ "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==",
+ "dev": true
+ },
+ "node_modules/http2-wrapper": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz",
+ "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==",
+ "dev": true,
+ "dependencies": {
+ "quick-lru": "^5.1.1",
+ "resolve-alpn": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=10.19.0"
}
},
- "node_modules/http-cache-semantics": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
- "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
- "dev": true
- },
"node_modules/ignore": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
@@ -2026,12 +2875,12 @@
}
},
"node_modules/import-meta-resolve": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-1.1.1.tgz",
- "integrity": "sha512-JiTuIvVyPaUg11eTrNDx5bgQ/yMKMZffc7YSjvQeSMXy58DO2SQ8BtAf3xteZvmzvjYh14wnqNjL8XVeDy2o9A==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-2.0.3.tgz",
+ "integrity": "sha512-fpAppnBpZ3ymQ/dPP97TNsco1HB5+V9SYJ3chY50PP8xn4U/w+Y6ovWBmTImB/prmGsTjzPh8pQYY+EVBlr9mw==",
"dev": true,
"dependencies": {
- "builtins": "^4.0.0"
+ "builtins": "^5.0.0"
},
"funding": {
"type": "github",
@@ -2049,14 +2898,23 @@
}
},
"node_modules/indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz",
+ "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/infer-owner": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
+ "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
+ "dev": true
+ },
"node_modules/inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -2074,10 +2932,13 @@
"dev": true
},
"node_modules/ini": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
- "dev": true
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.0.tgz",
+ "integrity": "sha512-TxYQaeNW/N8ymDvwAxPyRbhMBtnEwuvaTYpOQkFx1nSeusgezHniEc/l35Vo4iCq/mMiTJbpD7oYxN98hFlfmw==",
+ "dev": true,
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
},
"node_modules/internal-slot": {
"version": "1.0.3",
@@ -2095,27 +2956,45 @@
}
},
"node_modules/ip-regex": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz",
- "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-5.0.0.tgz",
+ "integrity": "sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/is-absolute-url": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
- "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=",
+ "node_modules/is-alphabetical": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz",
+ "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==",
"dev": true,
- "engines": {
- "node": ">=0.10.0"
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-alphanumerical": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz",
+ "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==",
+ "dev": true,
+ "dependencies": {
+ "is-alphabetical": "^2.0.0",
+ "is-decimal": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/is-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
"dev": true
},
"node_modules/is-bigint": {
@@ -2160,29 +3039,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-buffer": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
- "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/is-callable": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz",
@@ -2225,6 +3081,16 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-decimal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz",
+ "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==",
+ "dev": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
"node_modules/is-empty": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/is-empty/-/is-empty-1.2.0.tgz",
@@ -2240,10 +3106,19 @@
"node": ">=0.10.0"
}
},
- "node_modules/is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"dev": true,
"dependencies": {
"is-extglob": "^2.1.1"
@@ -2252,16 +3127,30 @@
"node": ">=0.10.0"
}
},
+ "node_modules/is-hexadecimal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz",
+ "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==",
+ "dev": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
"node_modules/is-ip": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz",
- "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-5.0.1.tgz",
+ "integrity": "sha512-FCsGHdlrOnZQcp0+XT5a+pYowf33itBalCl+7ovNXC/7o5BhIpG14M3OrpPPdBSIQJCm+0M5+9mO7S9VVTTCFw==",
"dev": true,
"dependencies": {
- "ip-regex": "^4.0.0"
+ "ip-regex": "^5.0.0",
+ "super-regex": "^0.2.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/is-negative-zero": {
@@ -2303,18 +3192,18 @@
}
},
"node_modules/is-online": {
- "version": "8.5.1",
- "resolved": "https://registry.npmjs.org/is-online/-/is-online-8.5.1.tgz",
- "integrity": "sha512-RKyTQx/rJqw2QOXHwy7TmXdlkpe0Hhj7GBsr6TQJaj4ebNOfameZCMspU5vYbwBBzJ2brWArdSvNVox6T6oCTQ==",
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/is-online/-/is-online-11.0.0.tgz",
+ "integrity": "sha512-LY3UOlRGCofw5RMhsEFHQ9xQ6jJXL9wFWWIfmSdNo8vO+DrIvan3G9hAPZiMRXddVZS2v9+CV4z9PslLhBGIyA==",
"dev": true,
"dependencies": {
- "got": "^9.6.0",
- "p-any": "^2.0.0",
- "p-timeout": "^3.0.0",
- "public-ip": "^4.0.1"
+ "got": "^13.0.0",
+ "p-any": "^4.0.0",
+ "p-timeout": "^6.1.2",
+ "public-ip": "^7.0.1"
},
"engines": {
- "node": ">=8"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -2349,16 +3238,16 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-relative-url": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-relative-url/-/is-relative-url-2.0.0.tgz",
- "integrity": "sha1-cpAtf+BLPUeS59sV+duEtyBMnO8=",
+ "node_modules/is-regexp": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-3.1.0.tgz",
+ "integrity": "sha512-rbku49cWloU5bSMI+zaRaXdQHXnthP6DZ/vLnfdSKyL4zUzuWnomtOEiZZOd+ioQ+avFo/qau3KPTc7Fjy1uPA==",
"dev": true,
- "dependencies": {
- "is-absolute-url": "^2.0.0"
- },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/is-shared-array-buffer": {
@@ -2420,8 +3309,25 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "node_modules/jackspeak": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
+ "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "@isaacs/cliui": "^8.0.2"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "optionalDependencies": {
+ "@pkgjs/parseargs": "^0.11.0"
+ }
},
"node_modules/js-tokens": {
"version": "4.0.0",
@@ -2434,6 +3340,7 @@
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dev": true,
+ "peer": true,
"dependencies": {
"argparse": "^2.0.1"
},
@@ -2442,9 +3349,9 @@
}
},
"node_modules/json-buffer": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
- "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
"dev": true
},
"node_modules/json-parse-even-better-errors": {
@@ -2468,13 +3375,10 @@
"peer": true
},
"node_modules/json5": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
- "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==",
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"dev": true,
- "dependencies": {
- "minimist": "^1.2.5"
- },
"bin": {
"json5": "lib/cli.js"
},
@@ -2497,21 +3401,12 @@
}
},
"node_modules/keyv": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
- "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
"dev": true,
"dependencies": {
- "json-buffer": "3.0.0"
- }
- },
- "node_modules/kleur": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz",
- "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==",
- "dev": true,
- "engines": {
- "node": ">=6"
+ "json-buffer": "3.0.1"
}
},
"node_modules/language-subtag-registry": {
@@ -2554,17 +3449,6 @@
"node": ">= 0.8.0"
}
},
- "node_modules/libnpmconfig": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/libnpmconfig/-/libnpmconfig-1.2.1.tgz",
- "integrity": "sha512-9esX8rTQAHqarx6qeZqmGQKBNZR5OIbl/Ayr0qQDy3oXja2iFVQQI81R6GZ2a02bSNZ9p3YOGX1O6HHCb1X7kA==",
- "dev": true,
- "dependencies": {
- "figgy-pudding": "^3.5.1",
- "find-up": "^3.0.0",
- "ini": "^1.3.5"
- }
- },
"node_modules/lines-and-columns": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz",
@@ -2575,32 +3459,19 @@
}
},
"node_modules/load-plugin": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/load-plugin/-/load-plugin-4.0.1.tgz",
- "integrity": "sha512-4kMi+mOSn/TR51pDo4tgxROHfBHXsrcyEYSGHcJ1o6TtRaP2PsRM5EwmYbj1uiLDvbfA/ohwuSWZJzqGiai8Dw==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/load-plugin/-/load-plugin-5.0.0.tgz",
+ "integrity": "sha512-jTz8tvC0BTMtof27lTSV5SAOnCRT0Z++k+S3QeQ5CrF8ZAS5L2nhi3euf4ZhJyDkds+nOQGyPcFqdQZ9s8ELkg==",
"dev": true,
"dependencies": {
- "import-meta-resolve": "^1.0.0",
- "libnpmconfig": "^1.0.0"
+ "@npmcli/config": "^4.0.0",
+ "import-meta-resolve": "^2.0.0"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
- "node_modules/locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "dev": true,
- "dependencies": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/lodash.merge": {
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
@@ -2632,349 +3503,608 @@
}
},
"node_modules/lowercase-keys": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
- "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
"dev": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
}
},
- "node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "node_modules/markdown-extensions": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz",
+ "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==",
"dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
"engines": {
- "node": ">=10"
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/map-age-cleaner": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
- "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
+ "node_modules/mdast-comment-marker": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-comment-marker/-/mdast-comment-marker-3.0.0.tgz",
+ "integrity": "sha512-bt08sLmTNg00/UtVDiqZKocxqvQqqyQZAg1uaRuO/4ysXV5motg7RolF5o5yy/sY1rG0v2XgZEqFWho1+2UquA==",
"dev": true,
"dependencies": {
- "p-defer": "^1.0.0"
+ "@types/mdast": "^4.0.0",
+ "mdast-util-mdx-expression": "^2.0.0"
},
- "engines": {
- "node": ">=6"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/mdast-comment-marker": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mdast-comment-marker/-/mdast-comment-marker-2.1.0.tgz",
- "integrity": "sha512-/+Cfm8A83PjkqjQDB9iYqHESGuXlriCWAwRGPJjkYmxXrF4r6saxeUlOKNrf+SogTwg9E8uyHRCFHLG6/BAAdA==",
+ "node_modules/mdast-comment-marker/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/mdast-util-directive": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.0.0.tgz",
+ "integrity": "sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==",
"dev": true,
"dependencies": {
- "mdast-util-mdx-expression": "^1.1.0"
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "parse-entities": "^4.0.0",
+ "stringify-entities": "^4.0.0",
+ "unist-util-visit-parents": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/mdast-util-directive/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/mdast-util-directive/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
"node_modules/mdast-util-from-markdown": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz",
- "integrity": "sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz",
+ "integrity": "sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "@types/unist": "^2.0.0",
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
"decode-named-character-reference": "^1.0.0",
- "mdast-util-to-string": "^3.1.0",
- "micromark": "^3.0.0",
- "micromark-util-decode-numeric-character-reference": "^1.0.0",
- "micromark-util-decode-string": "^1.0.0",
- "micromark-util-normalize-identifier": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0",
- "unist-util-stringify-position": "^3.0.0",
- "uvu": "^0.5.0"
+ "devlop": "^1.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "micromark": "^4.0.0",
+ "micromark-util-decode-numeric-character-reference": "^2.0.0",
+ "micromark-util-decode-string": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0",
+ "unist-util-stringify-position": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/mdast-util-frontmatter": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-1.0.0.tgz",
- "integrity": "sha512-7itKvp0arEVNpCktOET/eLFAYaZ+0cNjVtFtIPxgQ5tV+3i+D4SDDTjTzPWl44LT59PC+xdx+glNTawBdF98Mw==",
+ "node_modules/mdast-util-from-markdown/node_modules/@types/mdast": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.1.tgz",
+ "integrity": "sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/mdast-util-from-markdown/node_modules/@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "node_modules/mdast-util-from-markdown/node_modules/mdast-util-to-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
+ "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
"dev": true,
"dependencies": {
- "micromark-extension-frontmatter": "^1.0.0"
+ "@types/mdast": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/mdast-util-heading-style": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-heading-style/-/mdast-util-heading-style-2.0.0.tgz",
- "integrity": "sha512-q9+WW2hJduW51LgV2r/fcU5wIt2GLFf0yYHxyi0f2aaxnC63ErBSOAJlhP6nbQ6yeG5rTCozbwOi4QNDPKV0zw==",
+ "node_modules/mdast-util-from-markdown/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0"
+ "@types/unist": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/mdast-util-mdx-expression": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.1.1.tgz",
- "integrity": "sha512-RDLRkBFmBKCJl6/fQdxxKL2BqNtoPFoNBmQAlj5ZNKOijIWRKjdhPkeufsUOaexLj+78mhJc+L7d1MYka8/LdQ==",
+ "node_modules/mdast-util-frontmatter": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz",
+ "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==",
"dev": true,
"dependencies": {
- "@types/estree-jsx": "^0.0.1"
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "escape-string-regexp": "^5.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "micromark-extension-frontmatter": "^2.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/mdast-util-to-markdown": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.2.6.tgz",
- "integrity": "sha512-doJZmTEGagHypWvJ8ltinmwUsT9ZaNgNIQW6Gl7jNdsI1QZkTHTimYW561Niy2s8AEPAqEgV0dIh2UOVlSXUJA==",
+ "node_modules/mdast-util-frontmatter/node_modules/@types/mdast": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.1.tgz",
+ "integrity": "sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "@types/unist": "^2.0.0",
- "longest-streak": "^3.0.0",
- "mdast-util-to-string": "^3.0.0",
- "micromark-util-decode-string": "^1.0.0",
- "unist-util-visit": "^4.0.0",
- "zwitch": "^2.0.0"
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/mdast-util-frontmatter/node_modules/@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "node_modules/mdast-util-frontmatter/node_modules/escape-string-regexp": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
+ "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/mdast-util-to-nlcst": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/mdast-util-to-nlcst/-/mdast-util-to-nlcst-5.2.1.tgz",
- "integrity": "sha512-Xznpj85MsJnLQjBboajOovT2fAAvbbbmYutpFgzLi9pjZEOkgGzjq+t6fHcge8uzZ5uEkj5pigzw2QrnIVq/kw==",
+ "node_modules/mdast-util-mdx": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz",
+ "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "@types/nlcst": "^1.0.0",
- "@types/unist": "^2.0.0",
- "nlcst-to-string": "^3.0.0",
- "unist-util-position": "^4.0.0",
- "vfile": "^5.0.0",
- "vfile-location": "^4.0.0"
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-mdx-expression": "^2.0.0",
+ "mdast-util-mdx-jsx": "^3.0.0",
+ "mdast-util-mdxjs-esm": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/mdast-util-to-nlcst/node_modules/nlcst-to-string": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-3.1.0.tgz",
- "integrity": "sha512-Y8HQWKw/zrHTCnu2zcFBN1dV6vN0NUG7s5fkEj380G8tF3R+vA2KG+tDl2QoHVQCTHGHVXwoni2RQkDSFQb1PA==",
+ "node_modules/mdast-util-mdx-expression": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.0.tgz",
+ "integrity": "sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==",
"dev": true,
"dependencies": {
- "@types/nlcst": "^1.0.0"
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/mdast-util-to-string": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz",
- "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==",
+ "node_modules/mdast-util-mdx-expression/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/mdast-util-mdx-jsx": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.2.tgz",
+ "integrity": "sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==",
+ "dev": true,
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "ccount": "^2.0.0",
+ "devlop": "^1.1.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "parse-entities": "^4.0.0",
+ "stringify-entities": "^4.0.0",
+ "unist-util-remove-position": "^5.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/mem": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
- "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
+ "node_modules/mdast-util-mdx-jsx/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
"dependencies": {
- "map-age-cleaner": "^0.1.1",
- "mimic-fn": "^2.0.0",
- "p-is-promise": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
+ "@types/unist": "*"
}
},
- "node_modules/mem/node_modules/mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
+ "node_modules/mdast-util-mdx-jsx/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
},
- "node_modules/micromark": {
- "version": "3.0.10",
- "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.0.10.tgz",
- "integrity": "sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg==",
+ "node_modules/mdast-util-mdx-jsx/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
"dependencies": {
- "@types/debug": "^4.0.0",
- "debug": "^4.0.0",
- "decode-named-character-reference": "^1.0.0",
- "micromark-core-commonmark": "^1.0.1",
- "micromark-factory-space": "^1.0.0",
- "micromark-util-character": "^1.0.0",
- "micromark-util-chunked": "^1.0.0",
- "micromark-util-combine-extensions": "^1.0.0",
- "micromark-util-decode-numeric-character-reference": "^1.0.0",
- "micromark-util-encode": "^1.0.0",
- "micromark-util-normalize-identifier": "^1.0.0",
- "micromark-util-resolve-all": "^1.0.0",
- "micromark-util-sanitize-uri": "^1.0.0",
- "micromark-util-subtokenize": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.1",
- "uvu": "^0.5.0"
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/micromark-core-commonmark": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz",
- "integrity": "sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==",
+ "node_modules/mdast-util-mdx-jsx/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
"dependencies": {
- "decode-named-character-reference": "^1.0.0",
- "micromark-factory-destination": "^1.0.0",
- "micromark-factory-label": "^1.0.0",
- "micromark-factory-space": "^1.0.0",
- "micromark-factory-title": "^1.0.0",
- "micromark-factory-whitespace": "^1.0.0",
- "micromark-util-character": "^1.0.0",
- "micromark-util-chunked": "^1.0.0",
- "micromark-util-classify-character": "^1.0.0",
- "micromark-util-html-tag-name": "^1.0.0",
- "micromark-util-normalize-identifier": "^1.0.0",
- "micromark-util-resolve-all": "^1.0.0",
- "micromark-util-subtokenize": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.1",
- "uvu": "^0.5.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/micromark-extension-frontmatter": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-1.0.0.tgz",
- "integrity": "sha512-EXjmRnupoX6yYuUJSQhrQ9ggK0iQtQlpi6xeJzVD5xscyAI+giqco5fdymayZhJMbIFecjnE2yz85S9NzIgQpg==",
+ "node_modules/mdast-util-mdxjs-esm": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz",
+ "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==",
"dev": true,
"dependencies": {
- "fault": "^2.0.0",
- "micromark-util-character": "^1.0.0",
- "micromark-util-symbol": "^1.0.0"
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/micromark-factory-destination": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz",
- "integrity": "sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==",
+ "node_modules/mdast-util-mdxjs-esm/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
"dependencies": {
- "micromark-util-character": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0"
+ "@types/unist": "*"
}
},
- "node_modules/micromark-factory-label": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz",
- "integrity": "sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==",
+ "node_modules/mdast-util-phrasing": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.0.0.tgz",
+ "integrity": "sha512-xadSsJayQIucJ9n053dfQwVu1kuXg7jCTdYsMK8rqzKZh52nLfSH/k0sAxE0u+pj/zKZX+o5wB+ML5mRayOxFA==",
"dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
"dependencies": {
- "micromark-util-character": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0",
- "uvu": "^0.5.0"
+ "@types/mdast": "^4.0.0",
+ "unist-util-is": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/micromark-factory-space": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz",
- "integrity": "sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==",
+ "node_modules/mdast-util-phrasing/node_modules/@types/mdast": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.1.tgz",
+ "integrity": "sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==",
"dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
"dependencies": {
- "micromark-util-character": "^1.0.0",
- "micromark-util-types": "^1.0.0"
+ "@types/unist": "*"
}
},
- "node_modules/micromark-factory-title": {
+ "node_modules/mdast-util-phrasing/node_modules/@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "node_modules/mdast-util-to-hast": {
+ "version": "13.0.2",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.0.2.tgz",
+ "integrity": "sha512-U5I+500EOOw9e3ZrclN3Is3fRpw8c19SMyNZlZ2IS+7vLsNzb2Om11VpIVOR+/0137GhZsFEF6YiKD5+0Hr2Og==",
+ "dev": true,
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "@ungap/structured-clone": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-util-sanitize-uri": "^2.0.0",
+ "trim-lines": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-hast/node_modules/@types/mdast": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.1.tgz",
+ "integrity": "sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/mdast-util-to-hast/node_modules/@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "node_modules/mdast-util-to-hast/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-hast/node_modules/unist-util-visit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-markdown": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz",
+ "integrity": "sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "longest-streak": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "micromark-util-decode-string": "^2.0.0",
+ "unist-util-visit": "^5.0.0",
+ "zwitch": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-markdown/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/mdast-util-to-markdown/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/mdast-util-to-markdown/node_modules/mdast-util-to-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
+ "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
+ "dev": true,
+ "dependencies": {
+ "@types/mdast": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-markdown/node_modules/unist-util-visit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-nlcst": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-nlcst/-/mdast-util-to-nlcst-7.0.0.tgz",
+ "integrity": "sha512-YfWgABD6izaK7Tzx37V4268THKeusHU+S2qet98h9vrffMxwd/2jqFKxNYz9cCAPYA8p/5BXQuF313JuVFDC9A==",
+ "dev": true,
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "@types/nlcst": "^2.0.0",
+ "@types/unist": "^3.0.0",
+ "nlcst-to-string": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "vfile": "^6.0.0",
+ "vfile-location": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-nlcst/node_modules/@types/mdast": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.1.tgz",
+ "integrity": "sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/mdast-util-to-nlcst/node_modules/@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "node_modules/mdast-util-to-nlcst/node_modules/nlcst-to-string": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-3.1.1.tgz",
+ "integrity": "sha512-63mVyqaqt0cmn2VcI2aH6kxe1rLAmSROqHMA0i4qqg1tidkfExgpb0FGMikMCn86mw5dFtBtEANfmSSK7TjNHw==",
+ "dev": true,
+ "dependencies": {
+ "@types/nlcst": "^1.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-nlcst/node_modules/nlcst-to-string/node_modules/@types/nlcst": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz",
- "integrity": "sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==",
+ "resolved": "https://registry.npmjs.org/@types/nlcst/-/nlcst-1.0.2.tgz",
+ "integrity": "sha512-ykxL/GDDUhqikjU0LIywZvEwb1NTYXTEWf+XgMSS2o6IXIakafPccxZmxgZcvJPZ3yFl2kdL1gJZz3U3iZF3QA==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^2"
+ }
+ },
+ "node_modules/mdast-util-to-nlcst/node_modules/nlcst-to-string/node_modules/@types/unist": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.8.tgz",
+ "integrity": "sha512-d0XxK3YTObnWVp6rZuev3c49+j4Lo8g4L1ZRm9z5L0xpoZycUPshHgczK5gsUMaZOstjVYYi09p5gYvUtfChYw==",
+ "dev": true
+ },
+ "node_modules/mdast-util-to-nlcst/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-nlcst/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-nlcst/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-nlcst/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz",
+ "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==",
"dev": true,
"funding": [
{
@@ -2987,17 +4117,29 @@
}
],
"dependencies": {
- "micromark-factory-space": "^1.0.0",
- "micromark-util-character": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0",
- "uvu": "^0.5.0"
+ "@types/debug": "^4.0.0",
+ "debug": "^4.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-core-commonmark": "^2.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-combine-extensions": "^2.0.0",
+ "micromark-util-decode-numeric-character-reference": "^2.0.0",
+ "micromark-util-encode": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "micromark-util-resolve-all": "^2.0.0",
+ "micromark-util-sanitize-uri": "^2.0.0",
+ "micromark-util-subtokenize": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
}
},
- "node_modules/micromark-factory-whitespace": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz",
- "integrity": "sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==",
+ "node_modules/micromark-core-commonmark": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.0.tgz",
+ "integrity": "sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==",
"dev": true,
"funding": [
{
@@ -3010,16 +4152,44 @@
}
],
"dependencies": {
- "micromark-factory-space": "^1.0.0",
- "micromark-util-character": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0"
+ "decode-named-character-reference": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-factory-destination": "^2.0.0",
+ "micromark-factory-label": "^2.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-factory-title": "^2.0.0",
+ "micromark-factory-whitespace": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-classify-character": "^2.0.0",
+ "micromark-util-html-tag-name": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "micromark-util-resolve-all": "^2.0.0",
+ "micromark-util-subtokenize": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
}
},
- "node_modules/micromark-util-character": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.1.0.tgz",
- "integrity": "sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==",
+ "node_modules/micromark-extension-frontmatter": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz",
+ "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==",
+ "dev": true,
+ "dependencies": {
+ "fault": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-factory-destination": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz",
+ "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==",
"dev": true,
"funding": [
{
@@ -3032,14 +4202,15 @@
}
],
"dependencies": {
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0"
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
}
},
- "node_modules/micromark-util-chunked": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz",
- "integrity": "sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==",
+ "node_modules/micromark-factory-label": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz",
+ "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==",
"dev": true,
"funding": [
{
@@ -3052,13 +4223,16 @@
}
],
"dependencies": {
- "micromark-util-symbol": "^1.0.0"
+ "devlop": "^1.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
}
},
- "node_modules/micromark-util-classify-character": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz",
- "integrity": "sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==",
+ "node_modules/micromark-factory-space": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz",
+ "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==",
"dev": true,
"funding": [
{
@@ -3071,15 +4245,14 @@
}
],
"dependencies": {
- "micromark-util-character": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0"
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
}
},
- "node_modules/micromark-util-combine-extensions": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz",
- "integrity": "sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==",
+ "node_modules/micromark-factory-title": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz",
+ "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==",
"dev": true,
"funding": [
{
@@ -3092,14 +4265,16 @@
}
],
"dependencies": {
- "micromark-util-chunked": "^1.0.0",
- "micromark-util-types": "^1.0.0"
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
}
},
- "node_modules/micromark-util-decode-numeric-character-reference": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz",
- "integrity": "sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==",
+ "node_modules/micromark-factory-whitespace": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz",
+ "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==",
"dev": true,
"funding": [
{
@@ -3112,13 +4287,16 @@
}
],
"dependencies": {
- "micromark-util-symbol": "^1.0.0"
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
}
},
- "node_modules/micromark-util-decode-string": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz",
- "integrity": "sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==",
+ "node_modules/micromark-util-character": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz",
+ "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==",
"dev": true,
"funding": [
{
@@ -3131,16 +4309,14 @@
}
],
"dependencies": {
- "decode-named-character-reference": "^1.0.0",
- "micromark-util-character": "^1.0.0",
- "micromark-util-decode-numeric-character-reference": "^1.0.0",
- "micromark-util-symbol": "^1.0.0"
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
}
},
- "node_modules/micromark-util-encode": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz",
- "integrity": "sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==",
+ "node_modules/micromark-util-chunked": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz",
+ "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==",
"dev": true,
"funding": [
{
@@ -3151,12 +4327,15 @@
"type": "OpenCollective",
"url": "https://opencollective.com/unified"
}
- ]
+ ],
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0"
+ }
},
- "node_modules/micromark-util-html-tag-name": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.0.0.tgz",
- "integrity": "sha512-NenEKIshW2ZI/ERv9HtFNsrn3llSPZtY337LID/24WeLqMzeZhBEE6BQ0vS2ZBjshm5n40chKtJ3qjAbVV8S0g==",
+ "node_modules/micromark-util-classify-character": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz",
+ "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==",
"dev": true,
"funding": [
{
@@ -3167,12 +4346,17 @@
"type": "OpenCollective",
"url": "https://opencollective.com/unified"
}
- ]
+ ],
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
},
- "node_modules/micromark-util-normalize-identifier": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz",
- "integrity": "sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==",
+ "node_modules/micromark-util-combine-extensions": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz",
+ "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==",
"dev": true,
"funding": [
{
@@ -3185,13 +4369,14 @@
}
],
"dependencies": {
- "micromark-util-symbol": "^1.0.0"
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
}
},
- "node_modules/micromark-util-resolve-all": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz",
- "integrity": "sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==",
+ "node_modules/micromark-util-decode-numeric-character-reference": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz",
+ "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==",
"dev": true,
"funding": [
{
@@ -3204,13 +4389,13 @@
}
],
"dependencies": {
- "micromark-util-types": "^1.0.0"
+ "micromark-util-symbol": "^2.0.0"
}
},
- "node_modules/micromark-util-sanitize-uri": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.0.0.tgz",
- "integrity": "sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg==",
+ "node_modules/micromark-util-decode-string": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz",
+ "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==",
"dev": true,
"funding": [
{
@@ -3223,15 +4408,16 @@
}
],
"dependencies": {
- "micromark-util-character": "^1.0.0",
- "micromark-util-encode": "^1.0.0",
- "micromark-util-symbol": "^1.0.0"
+ "decode-named-character-reference": "^1.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-decode-numeric-character-reference": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0"
}
},
- "node_modules/micromark-util-subtokenize": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz",
- "integrity": "sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==",
+ "node_modules/micromark-util-encode": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz",
+ "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==",
"dev": true,
"funding": [
{
@@ -3242,18 +4428,12 @@
"type": "OpenCollective",
"url": "https://opencollective.com/unified"
}
- ],
- "dependencies": {
- "micromark-util-chunked": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0",
- "uvu": "^0.5.0"
- }
+ ]
},
- "node_modules/micromark-util-symbol": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz",
- "integrity": "sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==",
+ "node_modules/micromark-util-html-tag-name": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz",
+ "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==",
"dev": true,
"funding": [
{
@@ -3266,10 +4446,10 @@
}
]
},
- "node_modules/micromark-util-types": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.2.tgz",
- "integrity": "sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==",
+ "node_modules/micromark-util-normalize-identifier": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz",
+ "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==",
"dev": true,
"funding": [
{
@@ -3280,17 +4460,105 @@
"type": "OpenCollective",
"url": "https://opencollective.com/unified"
}
- ]
- },
- "node_modules/mimic-fn": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
- "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+ ],
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-resolve-all": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz",
+ "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==",
"dev": true,
- "engines": {
- "node": ">=4"
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-sanitize-uri": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz",
+ "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-encode": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-subtokenize": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.0.tgz",
+ "integrity": "sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
}
},
+ "node_modules/micromark-util-symbol": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz",
+ "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ]
+ },
+ "node_modules/micromark-util-types": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz",
+ "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ]
+ },
"node_modules/mimic-response": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
@@ -3301,10 +4569,12 @@
}
},
"node_modules/minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
+ "license": "ISC",
+ "peer": true,
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -3318,13 +4588,39 @@
"integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
"dev": true
},
- "node_modules/mri": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
- "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
+ "node_modules/minipass": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
+ "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
"dev": true,
"engines": {
- "node": ">=4"
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "dev": true,
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/mkdirp-infer-owner": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz",
+ "integrity": "sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==",
+ "dev": true,
+ "dependencies": {
+ "chownr": "^2.0.0",
+ "infer-owner": "^1.0.4",
+ "mkdirp": "^1.0.3"
+ },
+ "engines": {
+ "node": ">=10"
}
},
"node_modules/ms": {
@@ -3366,6 +4662,21 @@
"eslint-plugin-react-hooks": "^4.0.0"
}
},
+ "node_modules/nopt": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
+ "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
+ "dev": true,
+ "dependencies": {
+ "abbrev": "1"
+ },
+ "bin": {
+ "nopt": "bin/nopt.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/normalize-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
@@ -3376,12 +4687,39 @@
}
},
"node_modules/normalize-url": {
- "version": "4.5.1",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
- "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
+ "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/not": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/not/-/not-0.1.0.tgz",
+ "integrity": "sha512-5PDmaAsVfnWUgTUbJ3ERwn7u79Z0dYxN9ErxCpVJJqe2RK0PJ3z+iFUxuqjwtlDDegXvtWoxD/3Fzxox7tFGWA==",
+ "dev": true
+ },
+ "node_modules/npm-normalize-package-bin": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz",
+ "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==",
+ "dev": true
+ },
+ "node_modules/nth-check": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
+ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
+ "dev": true,
+ "dependencies": {
+ "boolbase": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/nth-check?sponsor=1"
}
},
"node_modules/object-assign": {
@@ -3524,155 +4862,117 @@
"node": ">= 0.8.0"
}
},
- "node_modules/p-any": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-any/-/p-any-2.1.0.tgz",
- "integrity": "sha512-JAERcaMBLYKMq+voYw36+x5Dgh47+/o7yuv2oQYuSSUml4YeqJEFznBrY2UeEkoSHqBua6hz518n/PsowTYLLg==",
+ "node_modules/p-all": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-all/-/p-all-5.0.0.tgz",
+ "integrity": "sha512-pofqu/1FhCVa+78xNAptCGc9V45exFz2pvBRyIvgXkNM0Rh18Py7j8pQuSjA+zpabI46v9hRjNWmL9EAFcEbpw==",
"dev": true,
"dependencies": {
- "p-cancelable": "^2.0.0",
- "p-some": "^4.0.0",
- "type-fest": "^0.3.0"
+ "p-map": "^6.0.0"
},
"engines": {
- "node": ">=8"
- }
- },
- "node_modules/p-any/node_modules/p-cancelable": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz",
- "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/p-cancelable": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
- "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
- "dev": true,
- "engines": {
- "node": ">=6"
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/p-defer": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
- "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=",
+ "node_modules/p-any": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/p-any/-/p-any-4.0.0.tgz",
+ "integrity": "sha512-S/B50s+pAVe0wmEZHmBs/9yJXeZ5KhHzOsgKzt0hRdgkoR3DxW9ts46fcsWi/r3VnzsnkKS7q4uimze+zjdryw==",
"dev": true,
+ "dependencies": {
+ "p-cancelable": "^3.0.0",
+ "p-some": "^6.0.0"
+ },
"engines": {
- "node": ">=4"
+ "node": ">=12.20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/p-finally": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
- "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+ "node_modules/p-any/node_modules/p-cancelable": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz",
+ "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==",
"dev": true,
"engines": {
- "node": ">=4"
+ "node": ">=12.20"
}
},
- "node_modules/p-is-promise": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
- "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==",
+ "node_modules/p-cancelable": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz",
+ "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==",
"dev": true,
"engines": {
- "node": ">=6"
+ "node": ">=8"
}
},
"node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-6.1.0.tgz",
+ "integrity": "sha512-H0jc0q1vOzlEk0TqAKXKZxdl7kX3OFUzCnNVUnq5Pc3DGo0kpeaMuPqxQn235HibwBEb0/pm9dgKTjXy66fBkg==",
"dev": true,
"dependencies": {
- "p-try": "^2.0.0"
+ "yocto-queue": "^1.1.1"
},
"engines": {
- "node": ">=6"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "dev": true,
- "dependencies": {
- "p-limit": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/p-map": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
- "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-6.0.0.tgz",
+ "integrity": "sha512-T8BatKGY+k5rU+Q/GTYgrEf2r4xRMevAN5mtXc2aPc4rS1j3s+vWTaO2Wag94neXuCAUAs8cxBL9EeB5EA6diw==",
"dev": true,
"engines": {
- "node": ">=6"
- }
- },
- "node_modules/p-memoize": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-memoize/-/p-memoize-2.1.0.tgz",
- "integrity": "sha512-c6+a2iV4JyX0r4+i2IBJYO0r6LZAT2fg/tcB6GQbv1uzZsfsmKT7Ej5DRT1G6Wi7XUJSV2ZiP9+YEtluvhCmkg==",
- "dev": true,
- "dependencies": {
- "mem": "^4.0.0",
- "mimic-fn": "^1.0.0"
+ "node": ">=16"
},
- "engines": {
- "node": ">=6"
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/p-some": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-some/-/p-some-4.1.0.tgz",
- "integrity": "sha512-MF/HIbq6GeBqTrTIl5OJubzkGU+qfFhAFi0gnTAK6rgEIJIknEiABHOTtQu4e6JiXjIwuMPMUFQzyHh5QjCl1g==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/p-some/-/p-some-6.0.0.tgz",
+ "integrity": "sha512-CJbQCKdfSX3fIh8/QKgS+9rjm7OBNUTmwWswAFQAhc8j1NR1dsEDETUEuVUtQHZpV+J03LqWBEwvu0g1Yn+TYg==",
"dev": true,
"dependencies": {
- "aggregate-error": "^3.0.0",
- "p-cancelable": "^2.0.0"
+ "aggregate-error": "^4.0.0",
+ "p-cancelable": "^3.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=12.20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/p-some/node_modules/p-cancelable": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz",
- "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz",
+ "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=12.20"
}
},
"node_modules/p-timeout": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz",
- "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==",
- "dev": true,
- "dependencies": {
- "p-finally": "^1.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.2.tgz",
+ "integrity": "sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==",
"dev": true,
"engines": {
- "node": ">=6"
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/parent-module": {
@@ -3688,54 +4988,188 @@
"node": ">=6"
}
},
+ "node_modules/parse-entities": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz",
+ "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "character-entities": "^2.0.0",
+ "character-entities-legacy": "^3.0.0",
+ "character-reference-invalid": "^2.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "is-alphanumerical": "^2.0.0",
+ "is-decimal": "^2.0.0",
+ "is-hexadecimal": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
"node_modules/parse-json": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-6.0.2.tgz",
- "integrity": "sha512-SA5aMiaIjXkAiBrW/yPgLgQAQg42f7K3ACO+2l/zOvtQBwX58DMUsFJXelW2fx3yMBmWOVkR6j1MGsdSbCA4UA==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.1.0.tgz",
+ "integrity": "sha512-ihtdrgbqdONYD156Ap6qTcaGcGdkdAxodO1wLqQ/j7HP1u2sFYppINiq4jyC8F+Nm+4fVufylCV00QmkTHkSUg==",
"dev": true,
"dependencies": {
- "@babel/code-frame": "^7.16.0",
+ "@babel/code-frame": "^7.21.4",
"error-ex": "^1.3.2",
- "json-parse-even-better-errors": "^2.3.1",
- "lines-and-columns": "^2.0.2"
+ "json-parse-even-better-errors": "^3.0.0",
+ "lines-and-columns": "^2.0.3",
+ "type-fest": "^3.8.0"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": ">=16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/passive-voice": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/passive-voice/-/passive-voice-0.1.0.tgz",
- "integrity": "sha1-Fv+RrkC6DpLEPmcXY/3IQqcCcLE=",
- "dev": true
- },
- "node_modules/path-exists": {
+ "node_modules/parse-json/node_modules/json-parse-even-better-errors": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz",
+ "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==",
"dev": true,
"engines": {
- "node": ">=4"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "node_modules/parse-json/node_modules/type-fest": {
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz",
+ "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
"dev": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/path-key": {
- "version": "3.1.1",
+ "node_modules/parse-latin": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-7.0.0.tgz",
+ "integrity": "sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/nlcst": "^2.0.0",
+ "@types/unist": "^3.0.0",
+ "nlcst-to-string": "^4.0.0",
+ "unist-util-modify-children": "^4.0.0",
+ "unist-util-visit-children": "^3.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/parse-latin/node_modules/@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "node_modules/parse-latin/node_modules/nlcst-to-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-4.0.0.tgz",
+ "integrity": "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==",
+ "dev": true,
+ "dependencies": {
+ "@types/nlcst": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/parse-latin/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/parse-latin/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/parse-latin/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/parse5": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
+ "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==",
+ "dev": true,
+ "dependencies": {
+ "entities": "^4.4.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
+ "node_modules/passive-voice": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/passive-voice/-/passive-voice-0.1.0.tgz",
+ "integrity": "sha1-Fv+RrkC6DpLEPmcXY/3IQqcCcLE=",
+ "dev": true
+ },
+ "node_modules/path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
"dev": true,
- "peer": true,
"engines": {
"node": ">=8"
}
@@ -3747,6 +5181,31 @@
"dev": true,
"peer": true
},
+ "node_modules/path-scurry": {
+ "version": "1.10.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
+ "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^9.1.1 || ^10.0.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/path-scurry/node_modules/lru-cache": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz",
+ "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==",
+ "dev": true,
+ "engines": {
+ "node": "14 || >=16.14"
+ }
+ },
"node_modules/picomatch": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
@@ -3778,13 +5237,13 @@
"node": ">= 0.8.0"
}
},
- "node_modules/prepend-http": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
- "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=",
+ "node_modules/proc-log": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-2.0.1.tgz",
+ "integrity": "sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==",
"dev": true,
"engines": {
- "node": ">=4"
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
}
},
"node_modules/progress": {
@@ -3809,6 +5268,16 @@
"react-is": "^16.13.1"
}
},
+ "node_modules/property-information": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz",
+ "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==",
+ "dev": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
"node_modules/propose": {
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/propose/-/propose-0.0.5.tgz",
@@ -3819,26 +5288,26 @@
}
},
"node_modules/public-ip": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/public-ip/-/public-ip-4.0.4.tgz",
- "integrity": "sha512-EJ0VMV2vF6Cu7BIPo3IMW1Maq6ME+fbR0NcPmqDfpfNGIRPue1X8QrGjrg/rfjDkOsIkKHIf2S5FlEa48hFMTA==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/public-ip/-/public-ip-7.0.1.tgz",
+ "integrity": "sha512-DdNcqcIbI0wEeCBcqX+bmZpUCvrDMJHXE553zgyG1MZ8S1a/iCCxmK9iTjjql+SpHSv4cZkmRv5/zGYW93AlCw==",
"dev": true,
"dependencies": {
"dns-socket": "^4.2.2",
- "got": "^9.6.0",
- "is-ip": "^3.1.0"
+ "got": "^13.0.0",
+ "is-ip": "^5.0.1"
},
"engines": {
- "node": ">=8"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/pump": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
- "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz",
+ "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==",
"dev": true,
"dependencies": {
"end-of-stream": "^1.1.0",
@@ -3855,6 +5324,28 @@
"node": ">=6"
}
},
+ "node_modules/quick-lru": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
+ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/quotation": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/quotation/-/quotation-2.0.3.tgz",
+ "integrity": "sha512-yEc24TEgCFLXx7D4JHJJkK4JFVtatO8fziwUxY4nB/Jbea9o9CVS3gt22mA0W7rPYAGW2fWzYDSOtD94PwOyqA==",
+ "dev": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
"node_modules/react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
@@ -3862,6 +5353,19 @@
"dev": true,
"peer": true
},
+ "node_modules/read-package-json-fast": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz",
+ "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==",
+ "dev": true,
+ "dependencies": {
+ "json-parse-even-better-errors": "^2.3.0",
+ "npm-normalize-package-bin": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/readable-stream": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
@@ -3926,15 +5430,15 @@
}
},
"node_modules/remark": {
- "version": "14.0.2",
- "resolved": "https://registry.npmjs.org/remark/-/remark-14.0.2.tgz",
- "integrity": "sha512-A3ARm2V4BgiRXaUo5K0dRvJ1lbogrbXnhkJRmD0yw092/Yl0kOCZt1k9ZeElEwkZsWGsMumz6qL5MfNJH9nOBA==",
+ "version": "15.0.1",
+ "resolved": "https://registry.npmjs.org/remark/-/remark-15.0.1.tgz",
+ "integrity": "sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "remark-parse": "^10.0.0",
- "remark-stringify": "^10.0.0",
- "unified": "^10.0.0"
+ "@types/mdast": "^4.0.0",
+ "remark-parse": "^11.0.0",
+ "remark-stringify": "^11.0.0",
+ "unified": "^11.0.0"
},
"funding": {
"type": "opencollective",
@@ -3942,13 +5446,15 @@
}
},
"node_modules/remark-cli": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/remark-cli/-/remark-cli-10.0.1.tgz",
- "integrity": "sha512-+eln31zLE69JwBMoa8nd2sPC0DFZyiWgBrshL8aKb3L2XXTRMuEKWE/IAtNPYEtcktceAQw+OpmqVy8pAmGOwQ==",
+ "version": "12.0.1",
+ "resolved": "https://registry.npmjs.org/remark-cli/-/remark-cli-12.0.1.tgz",
+ "integrity": "sha512-2NAEOACoTgo+e+YAaCTODqbrWyhMVmlUyjxNCkTrDRHHQvH6+NbrnqVvQaLH/Q8Ket3v90A43dgAJmXv8y5Tkw==",
"dev": true,
"dependencies": {
- "remark": "^14.0.0",
- "unified-args": "^9.0.0"
+ "import-meta-resolve": "^4.0.0",
+ "markdown-extensions": "^2.0.0",
+ "remark": "^15.0.0",
+ "unified-args": "^11.0.0"
},
"bin": {
"remark": "cli.js"
@@ -3958,745 +5464,721 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/remark-cli/node_modules/import-meta-resolve": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz",
+ "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==",
+ "dev": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
"node_modules/remark-frontmatter": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-4.0.1.tgz",
- "integrity": "sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz",
+ "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "mdast-util-frontmatter": "^1.0.0",
- "micromark-extension-frontmatter": "^1.0.0",
- "unified": "^10.0.0"
+ "@types/mdast": "^4.0.0",
+ "mdast-util-frontmatter": "^2.0.0",
+ "micromark-extension-frontmatter": "^2.0.0",
+ "unified": "^11.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-heading-gap": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/remark-heading-gap/-/remark-heading-gap-5.0.1.tgz",
- "integrity": "sha512-Jt2Jh9K5tS7+gpMwddv7hQFpFiYYwB1LkcpvElx7DuNHIfx7LglMKVM/j0DojEVbSCX9U8wV4IotMYzdjk1++A==",
+ "node_modules/remark-frontmatter/node_modules/@types/mdast": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.1.tgz",
+ "integrity": "sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-frontmatter/node_modules/@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "node_modules/remark-frontmatter/node_modules/unified": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.3.tgz",
+ "integrity": "sha512-jlCV402P+YDcFcB2VcN/n8JasOddqIiaxv118wNBoZXEhOn+lYG7BR4Bfg2BwxvlK58dwbuH2w7GX2esAjL6Mg==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "mdast-util-to-markdown": "^1.0.0",
- "unified": "^10.0.0"
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint": {
- "version": "9.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-9.1.1.tgz",
- "integrity": "sha512-zhe6twuqgkx/9KgZyNyaO0cceA4jQuJcyzMOBC+JZiAzMN6mFUmcssWZyY30ko8ut9vQDMX/pyQnolGn+Fg/Tw==",
+ "node_modules/remark-frontmatter/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "remark-message-control": "^7.0.0",
- "unified": "^10.1.0"
+ "@types/unist": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-blockquote-indentation": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-3.1.1.tgz",
- "integrity": "sha512-u9cjedM6zcK8vRicis5n/xeOSDIC3FGBCKc3K9pqw+nNrOjY85FwxDQKZZ/kx7rmkdRZEhgyHak+wzPBllcxBQ==",
+ "node_modules/remark-frontmatter/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "pluralize": "^8.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-checkbox-character-style": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-checkbox-character-style/-/remark-lint-checkbox-character-style-4.1.1.tgz",
- "integrity": "sha512-KPSW3wfHfB8m9hzrtHiBHCTUIsOPX5nZR7VM+2pMjwqnhI6Mp94DKprkNo1ekNZALNeoZIDWZUSYxSiiwFfmVQ==",
+ "node_modules/remark-frontmatter/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-checkbox-content-indent": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-checkbox-content-indent/-/remark-lint-checkbox-content-indent-4.1.1.tgz",
- "integrity": "sha512-apkM6sqCwAHwNV0v6KuEbq50fH3mTAV4wKTwI1nWgEj33/nf4+RvLLPgznoc2olZyeAIHR69EKPQiernjCXPOw==",
+ "node_modules/remark-heading-gap": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/remark-heading-gap/-/remark-heading-gap-6.0.0.tgz",
+ "integrity": "sha512-xsJJZ0BC9J6XFY0c7segxuSKrJ95EDHEh06+b5FOgbhyJ9Z7yWKxWEJpsa2Bp4gkeMAEkoODH4mjWIV0JD2Urg==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0",
- "vfile-location": "^4.0.0"
+ "@types/mdast": "^4.0.0",
+ "unified": "^11.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-code": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/remark-lint-code/-/remark-lint-code-2.0.0.tgz",
- "integrity": "sha1-A+DC6Qru2+h1qHlf6s9XmIt9lXw=",
+ "node_modules/remark-heading-gap/node_modules/@types/mdast": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.1.tgz",
+ "integrity": "sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==",
"dev": true,
"dependencies": {
- "unified-lint-rule": "^1.0.0",
- "unist-util-visit": "^1.0.0"
+ "@types/unist": "*"
}
},
- "node_modules/remark-lint-code-block-style": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/remark-lint-code-block-style/-/remark-lint-code-block-style-3.1.0.tgz",
- "integrity": "sha512-Hv4YQ8ueLGpjItla4CkcOkcfGj+nlquqylDgCm1/xKnW+Ke2a4qVTMVJrP9Krp4FWmXgktJLDHjhRH+pzhDXLg==",
+ "node_modules/remark-heading-gap/node_modules/@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "node_modules/remark-heading-gap/node_modules/unified": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.3.tgz",
+ "integrity": "sha512-jlCV402P+YDcFcB2VcN/n8JasOddqIiaxv118wNBoZXEhOn+lYG7BR4Bfg2BwxvlK58dwbuH2w7GX2esAjL6Mg==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-code/node_modules/unified-lint-rule": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-1.0.6.tgz",
- "integrity": "sha512-YPK15YBFwnsVorDFG/u0cVVQN5G2a3V8zv5/N6KN3TCG+ajKtaALcy7u14DCSrJI+gZeyYquFL9cioJXOGXSvg==",
+ "node_modules/remark-heading-gap/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
"dependencies": {
- "wrapped": "^1.0.1"
+ "@types/unist": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-code/node_modules/unist-util-is": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
- "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==",
- "dev": true
- },
- "node_modules/remark-lint-code/node_modules/unist-util-visit": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
- "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
- "dev": true,
- "dependencies": {
- "unist-util-visit-parents": "^2.0.0"
- }
- },
- "node_modules/remark-lint-code/node_modules/unist-util-visit-parents": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
- "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
- "dev": true,
- "dependencies": {
- "unist-util-is": "^3.0.0"
- }
- },
- "node_modules/remark-lint-definition-case": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-definition-case/-/remark-lint-definition-case-3.1.1.tgz",
- "integrity": "sha512-dirX0BSfbm1Ixx4Hv4xRQliEP1rw8dDitw2Om3XcO2QqF8bWrzF06/xeMlDNAaT77Cxqb9S7bODo/q+CYUxyWQ==",
+ "node_modules/remark-heading-gap/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-definition-spacing": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-definition-spacing/-/remark-lint-definition-spacing-3.1.1.tgz",
- "integrity": "sha512-PR+cYvc0FMtFWjkaXePysW88r7Y7eIwbpUGPFDIWE48fiRiz8U3VIk05P3loQCpCkbmUeInAAYD8tIFPTg4Jlg==",
+ "node_modules/remark-heading-gap/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-emphasis-marker": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-emphasis-marker/-/remark-lint-emphasis-marker-3.1.1.tgz",
- "integrity": "sha512-VduuT+KAr0vA78xBLJdIcenCQja4mAd81aNACfdz7BUPLphIQa84D5uzl+nZatSaCXLebCNp5jP/bzVUsBmRKw==",
+ "node_modules/remark-lint": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-10.0.1.tgz",
+ "integrity": "sha512-1+PYGFziOg4pH7DDf1uMd4AR3YuO2EMnds/SdIWMPGT7CAfDRSnAmpxPsJD0Ds3IKpn97h3d5KPGf1WFOg6hXQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/mdast": "^4.0.0",
+ "remark-message-control": "^8.0.0",
+ "unified": "^11.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-fenced-code-flag": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-3.1.1.tgz",
- "integrity": "sha512-FFVZmYsBccKIIEgOtgdZEpQdARtAat1LTLBydnIpyNIvcntzWwtrtlj9mtjL8ZoSRre8HtwmEnBFyOfmM/NWaA==",
+ "node_modules/remark-lint-blockquote-indentation": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-4.0.1.tgz",
+ "integrity": "sha512-7BhOsImFgTD7IIliu2tt+yJbx5gbMbXCOspc3VdYf/87iLJdWKqJoMy2V6DZG7kBjBlBsIZi38fDDngJttXt4w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-fenced-code-marker": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-3.1.1.tgz",
- "integrity": "sha512-x/t8sJWPvE46knKz6zW03j9VX5477srHUmRFbnXhZ3K8e37cYVUIvfbPhcPCAosSsOki9+dvGfZsWQiKuUNNfQ==",
+ "node_modules/remark-lint-blockquote-indentation/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-lint-blockquote-indentation/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-blockquote-indentation/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-file-extension": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-file-extension/-/remark-lint-file-extension-2.1.1.tgz",
- "integrity": "sha512-r6OMe27YZzr2NFjPMbBxgm8RZxigRwzeFSjapPlqcxk0Q0w/6sosJsceBNlGGlk00pltvv7NPqSexbXUjirrQQ==",
+ "node_modules/remark-lint-blockquote-indentation/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0"
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-final-definition": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-final-definition/-/remark-lint-final-definition-3.1.1.tgz",
- "integrity": "sha512-94hRV+EBIuLVFooiimsZwh5ZPEcTqjy5wr7LgqxoUUWy+srTanndaLoki7bxQJeIcWUnomZncsJAyL0Lo7toxw==",
+ "node_modules/remark-lint-blockquote-indentation/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-final-newline": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-final-newline/-/remark-lint-final-newline-2.1.1.tgz",
- "integrity": "sha512-cgKYaI7ujUse/kV4KajLv2j1kmi1CxpAu+w7wIU0/Faihhb3sZAf4a5ACf2Wu8NoTSIr1Q//3hDysG507PIoDg==",
+ "node_modules/remark-lint-blockquote-indentation/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0"
+ "@types/unist": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-hard-break-spaces": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-3.1.1.tgz",
- "integrity": "sha512-UfwFvESpX32qwyHJeluuUuRPWmxJDTkmjnWv2r49G9fC4Jrzm4crdJMs3sWsrGiQ3mSex6bgp/8rqDgtBng2IA==",
+ "node_modules/remark-lint-blockquote-indentation/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-heading-increment": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-heading-increment/-/remark-lint-heading-increment-3.1.1.tgz",
- "integrity": "sha512-DtiMwZNAE/iAZWuZGjTXxYjNDQ375r59C99aVeVp1nKaovIufKuHWAm9U/9FAGBJNgBx6Ovfdej4YwIxd0yAPw==",
+ "node_modules/remark-lint-blockquote-indentation/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-heading-style": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-heading-style/-/remark-lint-heading-style-3.1.1.tgz",
- "integrity": "sha512-Qm7ZAF+s46ns0Wo5TlHGIn/PPMMynytn8SSLEdMIo6Uo/+8PAcmQ3zU1pj57KYxfyDoN5iQPgPIwPYMLYQ2TSQ==",
+ "node_modules/remark-lint-checkbox-character-style": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-checkbox-character-style/-/remark-lint-checkbox-character-style-5.0.1.tgz",
+ "integrity": "sha512-6qilm7XQXOcTvjFEqqNY57Ki7md9rkSdpMIfIzVXdEnI4Npl2BnUff6ANrGRM7qTgJTrloaf8H0eQ91urcU6Og==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/mdast": "^3.0.0",
- "mdast-util-heading-style": "^2.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-heading-whitespace": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/remark-lint-heading-whitespace/-/remark-lint-heading-whitespace-1.0.0.tgz",
- "integrity": "sha512-DykoBIXNbkihg64D+mztSOv3l82RTH4tIZW/HUB4QM4NpIEB+pVIPQpCYD0K4pTgvKiwoqsj4NY8qJ1EhNHAmQ==",
+ "node_modules/remark-lint-checkbox-character-style/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
"dependencies": {
- "mdast-util-to-string": "^1.0.4",
- "unified-lint-rule": "^1.0.2",
- "unist-util-visit": "^1.3.0"
+ "@types/unist": "*"
}
},
- "node_modules/remark-lint-heading-whitespace/node_modules/mdast-util-to-string": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz",
- "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==",
- "dev": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
+ "node_modules/remark-lint-checkbox-character-style/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
},
- "node_modules/remark-lint-heading-whitespace/node_modules/unified-lint-rule": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-1.0.6.tgz",
- "integrity": "sha512-YPK15YBFwnsVorDFG/u0cVVQN5G2a3V8zv5/N6KN3TCG+ajKtaALcy7u14DCSrJI+gZeyYquFL9cioJXOGXSvg==",
+ "node_modules/remark-lint-checkbox-character-style/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
"dependencies": {
- "wrapped": "^1.0.1"
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-heading-whitespace/node_modules/unist-util-is": {
+ "node_modules/remark-lint-checkbox-character-style/node_modules/unified-lint-rule": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
- "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==",
- "dev": true
- },
- "node_modules/remark-lint-heading-whitespace/node_modules/unist-util-visit": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
- "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
"dependencies": {
- "unist-util-visit-parents": "^2.0.0"
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-heading-whitespace/node_modules/unist-util-visit-parents": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
- "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
+ "node_modules/remark-lint-checkbox-character-style/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
"dev": true,
"dependencies": {
- "unist-util-is": "^3.0.0"
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-link-title-style": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-link-title-style/-/remark-lint-link-title-style-3.1.1.tgz",
- "integrity": "sha512-JWWiuUFy/N2iwQ3eWIxFy6olX8D7xCFw8LoM0vZI2CHTZJrmDMaWwnl8jziP+HHHheFX3wkVqsoaYod536ArRw==",
+ "node_modules/remark-lint-checkbox-character-style/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0",
- "vfile-location": "^4.0.0"
+ "@types/unist": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-list-item-bullet-indent": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-list-item-bullet-indent/-/remark-lint-list-item-bullet-indent-4.1.1.tgz",
- "integrity": "sha512-NFvXVj1Nm12+Ma48NOjZCGb/D0IhmUcxyrTCpPp+UNJhEWrmFxM8nSyIiZgXadgXErnuv+xm2Atw7TAcZ9a1Cg==",
+ "node_modules/remark-lint-checkbox-character-style/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "pluralize": "^8.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-list-item-content-indent": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-list-item-content-indent/-/remark-lint-list-item-content-indent-3.1.1.tgz",
- "integrity": "sha512-gcZhAXLd1onkutTEqQTybyANjdxvlOlu0y/AU4H3f6L99UGC85ymRhEeu5vGSkvsKKPR1FrMTEH6G2nNgtavgg==",
+ "node_modules/remark-lint-checkbox-character-style/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "pluralize": "^8.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-list-item-indent": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-list-item-indent/-/remark-lint-list-item-indent-3.1.1.tgz",
- "integrity": "sha512-OSTG64e52v8XBmmeT0lefpiAfCMYHJxMMUrMnhTjLVyWAbEO0vqqR5bLvfLwzK+P4nY2D/8XKku0hw35dM86Rw==",
+ "node_modules/remark-lint-checkbox-content-indent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-checkbox-content-indent/-/remark-lint-checkbox-content-indent-5.0.1.tgz",
+ "integrity": "sha512-R1gV4vGkgJQZQFIGve1paj4mVDUWlgX0KAHhjNpSyzuwuSIDoxWpEuSJSxcnczESgcjM4yVrZqEGMYi/fqZK0w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/mdast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
"pluralize": "^8.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-list-item-spacing": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-list-item-spacing/-/remark-lint-list-item-spacing-4.1.1.tgz",
- "integrity": "sha512-MqXmahPgYrvfA7SPqmcAC6fI40jIgXG33EeE/MhFvMLWh04k+fqGf2O2aH1KT664MlwM4oETbTI4xj3/KCIHZA==",
+ "node_modules/remark-lint-checkbox-content-indent/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-lint-checkbox-content-indent/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-checkbox-content-indent/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-maximum-heading-length": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-maximum-heading-length/-/remark-lint-maximum-heading-length-3.1.1.tgz",
- "integrity": "sha512-hTOvRDnULpu0S+k51lovT28TLBgtw8XR0qq+mECSsoyuT4C38UBjQRic5OPo68AZMH0ad/93uj6yvfFtH0K8Lg==",
+ "node_modules/remark-lint-checkbox-content-indent/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "mdast-util-to-string": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-maximum-line-length": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-3.1.2.tgz",
- "integrity": "sha512-KwddpVmNifTHNXwTQQgVufuUvv0hhu9kJVvmpNdEvfEc7tc3wBkaavyi3kKsUB8WwMhGtZuXVWy6OdPC1axzhw==",
+ "node_modules/remark-lint-checkbox-content-indent/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-auto-link-without-protocol": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-auto-link-without-protocol/-/remark-lint-no-auto-link-without-protocol-3.1.1.tgz",
- "integrity": "sha512-lCjBuoSUWjN1kO0J7vqQgn7HUF/WeOHOqc3oiq9LMRXIovKWqPCBi77o8Npv8KfV+JXeRl+hrupfbhJXlLturA==",
+ "node_modules/remark-lint-checkbox-content-indent/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "mdast-util-to-string": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-blockquote-without-marker": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-5.1.1.tgz",
- "integrity": "sha512-7jL7eKS25kKRhQ7SKKB5eRfNleDMWKWAmZ5Y/votJdDoM+6qsopLLumPWaSzP0onyV3dyHRhPfBtqelt3hvcyA==",
+ "node_modules/remark-lint-checkbox-content-indent/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0",
- "vfile-location": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-consecutive-blank-lines": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-4.1.2.tgz",
- "integrity": "sha512-wRsR3kFgHaZ4mO3KASU43oXGLGezNZ64yNs1ChPUacKh0Bm7cwGnxN9GHGAbOXspwrYrN2eCDxzCbdPEZi2qKw==",
+ "node_modules/remark-lint-checkbox-content-indent/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "@types/unist": "^2.0.0",
- "pluralize": "^8.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-dead-urls": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/remark-lint-no-dead-urls/-/remark-lint-no-dead-urls-1.1.0.tgz",
- "integrity": "sha512-it3EZmMQ+hwGhUf60NkXN0mMIFuFkS0cxdbgEbhZ/Fj1PlUBpe3gDBtWJ/sqNwSNvQlNSzpvMQkNHSoAhlsVjA==",
+ "node_modules/remark-lint-code": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/remark-lint-code/-/remark-lint-code-2.0.0.tgz",
+ "integrity": "sha1-A+DC6Qru2+h1qHlf6s9XmIt9lXw=",
"dev": true,
"dependencies": {
- "check-links": "^1.1.8",
- "is-online": "^8.2.1",
- "unified-lint-rule": "^1.0.4",
- "unist-util-visit": "^2.0.1"
- },
- "engines": {
- "node": ">=6"
+ "unified-lint-rule": "^1.0.0",
+ "unist-util-visit": "^1.0.0"
}
},
- "node_modules/remark-lint-no-dead-urls/node_modules/unified-lint-rule": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-1.0.6.tgz",
- "integrity": "sha512-YPK15YBFwnsVorDFG/u0cVVQN5G2a3V8zv5/N6KN3TCG+ajKtaALcy7u14DCSrJI+gZeyYquFL9cioJXOGXSvg==",
+ "node_modules/remark-lint-code-block-style": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-code-block-style/-/remark-lint-code-block-style-4.0.1.tgz",
+ "integrity": "sha512-d4mHsEpv1yqXWl2dd+28tGRX0Lzk5qw7cfxAQVkOXPUONhsMFwXJEBeeqZokeG4lOKtkKdIJR7ezScDfWR0X4w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "wrapped": "^1.0.1"
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-dead-urls/node_modules/unist-util-is": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz",
- "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==",
+ "node_modules/remark-lint-code-block-style/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
+ "dependencies": {
+ "@types/unist": "*"
}
},
- "node_modules/remark-lint-no-dead-urls/node_modules/unist-util-visit": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz",
- "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==",
+ "node_modules/remark-lint-code-block-style/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-code-block-style/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
"dependencies": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^4.0.0",
- "unist-util-visit-parents": "^3.0.0"
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-dead-urls/node_modules/unist-util-visit-parents": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz",
- "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==",
+ "node_modules/remark-lint-code-block-style/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
"dependencies": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-duplicate-definitions": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-definitions/-/remark-lint-no-duplicate-definitions-3.1.1.tgz",
- "integrity": "sha512-9p+nBz8VvV+t4g/ALNLVN8naV+ffAzC4ADyg9QivzmKwLjyF93Avt4HYNlb2GZ+aoXRQSVG1wjjWFeDC9c7Tdg==",
+ "node_modules/remark-lint-code-block-style/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-stringify-position": "^3.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-duplicate-headings": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-headings/-/remark-lint-no-duplicate-headings-3.1.1.tgz",
- "integrity": "sha512-gSO/BngGkxF35Fsctzt3YMwGEZ8F7f71zx7h0Y97DylyL6WXVuWP4saCmQTlbB4FpD0UXEnRROJ6fBFDvJlzOA==",
+ "node_modules/remark-lint-code-block-style/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "mdast-util-to-string": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-stringify-position": "^3.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-emphasis-as-heading": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-emphasis-as-heading/-/remark-lint-no-emphasis-as-heading-3.1.1.tgz",
- "integrity": "sha512-F45yuLsYVP4r6OjVtePKk7Aymnf3rBLHXYjnSJggEaYn0j+72xOBLrqmj6ii5YGfDsBwG2pDNTBx4vm3xM7P0Q==",
+ "node_modules/remark-lint-code-block-style/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-empty-sections": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/remark-lint-no-empty-sections/-/remark-lint-no-empty-sections-4.0.0.tgz",
- "integrity": "sha512-Tx1nCu7Dq3dsJ500402sSvM0uVK/6khSuEjx8K8u9aHN+Y4vjL6h88xVzdzCmZq2J2yqyFnvMjG1y7lQv+DRvg==",
+ "node_modules/remark-lint-code-block-style/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
"dependencies": {
- "mdast-util-to-string": "^1.0.2",
- "unified-lint-rule": "^1.0.0",
- "unist-util-visit": "^1.0.0"
- }
- },
- "node_modules/remark-lint-no-empty-sections/node_modules/mdast-util-to-string": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz",
- "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==",
- "dev": true,
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-empty-sections/node_modules/unified-lint-rule": {
+ "node_modules/remark-lint-code/node_modules/unified-lint-rule": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-1.0.6.tgz",
"integrity": "sha512-YPK15YBFwnsVorDFG/u0cVVQN5G2a3V8zv5/N6KN3TCG+ajKtaALcy7u14DCSrJI+gZeyYquFL9cioJXOGXSvg==",
@@ -4709,13 +6191,13 @@
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-empty-sections/node_modules/unist-util-is": {
+ "node_modules/remark-lint-code/node_modules/unist-util-is": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
"integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==",
"dev": true
},
- "node_modules/remark-lint-no-empty-sections/node_modules/unist-util-visit": {
+ "node_modules/remark-lint-code/node_modules/unist-util-visit": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
"integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
@@ -4724,7 +6206,7 @@
"unist-util-visit-parents": "^2.0.0"
}
},
- "node_modules/remark-lint-no-empty-sections/node_modules/unist-util-visit-parents": {
+ "node_modules/remark-lint-code/node_modules/unist-util-visit-parents": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
"integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
@@ -4733,1444 +6215,1366 @@
"unist-util-is": "^3.0.0"
}
},
- "node_modules/remark-lint-no-empty-url": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-empty-url/-/remark-lint-no-empty-url-3.1.1.tgz",
- "integrity": "sha512-zxIkDMggf6R/NCDkYAsaVHaFhklkp6WvV/wdeJAzT3BverGFnM8QIHUAv8YIQvCGqYWov275SVN1eu81DoU95g==",
+ "node_modules/remark-lint-definition-case": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-definition-case/-/remark-lint-definition-case-4.0.1.tgz",
+ "integrity": "sha512-BItJMeXyEBKW/beM7gFLMt3flnyNoRDd8yNFq+7pIeFjO7KWGRxBWUaNgk/tFEPyQcGeCqrNS3nS0ic7qi7I2w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-file-name-articles": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-2.1.1.tgz",
- "integrity": "sha512-7fiHKQUGvP4WOsieZ1dxm8WQWWjXjPj0Uix6pk2dSTJqxvaosjKH1AV0J/eVvliat0BGH8Cz4SUbuz5vG6YbdQ==",
+ "node_modules/remark-lint-definition-case/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
+ "@types/unist": "*"
}
},
- "node_modules/remark-lint-no-file-name-consecutive-dashes": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-2.1.1.tgz",
- "integrity": "sha512-tM4IpURGuresyeIBsXT5jsY3lZakgO6IO59ixcFt015bFjTOW54MrBvdJxA60QHhf5DAyHzD8wGeULPSs7ZQfg==",
+ "node_modules/remark-lint-definition-case/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-definition-case/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0"
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-file-name-irregular-characters": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-irregular-characters/-/remark-lint-no-file-name-irregular-characters-2.1.1.tgz",
- "integrity": "sha512-rVeCv1XRdLtp/rxLaiFKElaIHuIlokypV/c2aCG3VVYcQ4+ZmJxq018kEsolR2+Dv9m3vKp8Fy1482US4g4WKA==",
+ "node_modules/remark-lint-definition-case/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0"
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-file-name-mixed-case": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-mixed-case/-/remark-lint-no-file-name-mixed-case-2.1.1.tgz",
- "integrity": "sha512-mJU3hYzyXNo8NkoSafPcsgr+Gema+vDCzNWlLw05UdFXJK/cVy+6DVsbrEFjrz8L+WF7uQmUHBtTvd91SqoItg==",
+ "node_modules/remark-lint-definition-case/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0"
+ "@types/unist": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-file-name-outer-dashes": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-2.1.1.tgz",
- "integrity": "sha512-2kRcVNzZb0zS3jE+Iaa6MEpplhqXSdsHBILS+BxJ4cDGAAIdeipY8hKaDLdZi+34wvrfnDxNgvNLcHpgqO+OZA==",
+ "node_modules/remark-lint-definition-case/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-heading-content-indent": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-heading-content-indent/-/remark-lint-no-heading-content-indent-4.1.1.tgz",
- "integrity": "sha512-W4zF7MA72IDC5JB0qzciwsnioL5XlnoE0r1F7sDS0I5CJfQtHYOLlxb3UAIlgRCkBokPWCp0E4o1fsY/gQUKVg==",
+ "node_modules/remark-lint-definition-case/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "mdast-util-heading-style": "^2.0.0",
- "pluralize": "^8.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-heading-indent": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-heading-indent/-/remark-lint-no-heading-indent-4.1.1.tgz",
- "integrity": "sha512-3vIfT7gPdpE9D7muIQ6YzSF1q27H9SbsDD7ClJRkEWxMiAzBg0obOZFOIBYukUkmGWdOR5P1EDn5n9TEzS1Fyg==",
+ "node_modules/remark-lint-definition-spacing": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-definition-spacing/-/remark-lint-definition-spacing-4.0.1.tgz",
+ "integrity": "sha512-ZjShKaBUGeHrZyIZWwOZOxX3guj/P7gRR5wbDADQctL4oK+ZLQfOvJFmAsF1nD4gNr0Ficjd0AuiWxQcc1qTMA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/mdast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "longest-streak": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
"pluralize": "^8.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-heading-like-paragraph": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-heading-like-paragraph/-/remark-lint-no-heading-like-paragraph-3.1.1.tgz",
- "integrity": "sha512-eDQkw1ir0j2VVmZd60Hy3CUAj85U7zKf59bGEBdXr2OQYJQhvme7XqKwY8QfMlBqn9lYg1/DxsGWt0+5ESIogw==",
+ "node_modules/remark-lint-definition-spacing/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-lint-definition-spacing/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-definition-spacing/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-heading-punctuation": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-heading-punctuation/-/remark-lint-no-heading-punctuation-3.1.1.tgz",
- "integrity": "sha512-ZexHx4rmsjKVF1/Fvdig0yOgpWl0wFa43+sqg880HT3PW9KmEczjSRkwlMaTlVgDzC0paNn2FXfQMuEQW4YDLg==",
+ "node_modules/remark-lint-definition-spacing/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "mdast-util-to-string": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-inline-padding": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-4.1.1.tgz",
- "integrity": "sha512-++IMm6ohOPKNOrybqjP9eiclEtVX/Rd2HpF2UD9icrC1X5nvrI6tlfN55tePaFvWAB7pe6MW4LzNEMnWse61Lw==",
+ "node_modules/remark-lint-definition-spacing/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "mdast-util-to-string": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-literal-urls": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-3.1.1.tgz",
- "integrity": "sha512-tZZ4gtZMA//ZAf7GJTE8S9yjzqXUfUTlR/lvU7ffc7NeSurqCBwAtHqeXVCHiD39JnlHVSW2MLYhvHp53lBGvA==",
+ "node_modules/remark-lint-definition-spacing/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "mdast-util-to-string": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-multiple-toplevel-headings": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-3.1.1.tgz",
- "integrity": "sha512-bM//SIBvIkoGUpA8hR5QibJ+7C2R50PTIRrc4te93YNRG+ie8bJzjwuO9jIMedoDfJB6/+7EqO9FYBivjBZ3MA==",
+ "node_modules/remark-lint-definition-spacing/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-stringify-position": "^3.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-reference-like-url": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-reference-like-url/-/remark-lint-no-reference-like-url-3.1.1.tgz",
- "integrity": "sha512-ELO2uez1NO9wEb2nNRY4uVBfw4TYYUHWOnLajExGY92+i3Ylt3EmMwRONT2maJX5qKj4cu8uPi7HAkMIxq8jFg==",
+ "node_modules/remark-lint-emphasis-marker": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/remark-lint-emphasis-marker/-/remark-lint-emphasis-marker-4.0.0.tgz",
+ "integrity": "sha512-xIRiB4PFWUOyIslN/UOPL6Lh+J0VD4R11+jo+W4hpGMNsg58l+2SgtdbinlXzDeoBxmaaka9n/sYpJ7cJWEIPQ==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-repeat-punctuation": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/remark-lint-no-repeat-punctuation/-/remark-lint-no-repeat-punctuation-0.1.4.tgz",
- "integrity": "sha512-JJduCs4FimdBcR1AB576SqIYOjt+7t8OjTnnlZMvjnw7lzkuL0+nNNHyNXVPaK6jxaLjEUhrH2/smU6vZFUT7g==",
+ "node_modules/remark-lint-emphasis-marker/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
"dependencies": {
- "unified-lint-rule": "^1.0.3",
- "unist-util-map": "^1.0.4",
- "unist-util-to-list-of-char": "^0.1.3"
+ "@types/unist": "*"
}
},
- "node_modules/remark-lint-no-repeat-punctuation/node_modules/unified-lint-rule": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-1.0.6.tgz",
- "integrity": "sha512-YPK15YBFwnsVorDFG/u0cVVQN5G2a3V8zv5/N6KN3TCG+ajKtaALcy7u14DCSrJI+gZeyYquFL9cioJXOGXSvg==",
+ "node_modules/remark-lint-emphasis-marker/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-emphasis-marker/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
"dependencies": {
- "wrapped": "^1.0.1"
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-shell-dollars": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-3.1.1.tgz",
- "integrity": "sha512-Q3Ad1TaOPxbYog5+Of/quPG3Fy+dMKiHjT8KsU7NDiHG6YJOnAJ3f3w+y13CIlNIaKc/MrisgcthhrZ7NsgXfA==",
+ "node_modules/remark-lint-emphasis-marker/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-shortcut-reference-image": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-3.1.1.tgz",
- "integrity": "sha512-m8tH+loDagd1JUns/T4eyulVXgVvE+ZSs7owRUOmP+dgsKJuO5sl1AdN9eyKDVMEvxHF3Pm5WqE62QIRNM48mA==",
+ "node_modules/remark-lint-emphasis-marker/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-shortcut-reference-link": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-3.1.1.tgz",
- "integrity": "sha512-oDJ92/jXQ842HgrBGgZdP7FA+N2jBMCBU2+jRElkS+OWVut0UaDILtNavNy/e85B3SLPj3RoXKF96M4vfJ7B2A==",
+ "node_modules/remark-lint-emphasis-marker/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-table-indentation": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-4.1.1.tgz",
- "integrity": "sha512-eklvBxUSrkVbJxeokepOvFZ3n2V6zaJERIiOowR+y/Bz4dRHDMij1Ojg55AMO9yUMvxWPV3JPOeThliAcPmrMg==",
+ "node_modules/remark-lint-emphasis-marker/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0",
- "vfile-location": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-tabs": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-tabs/-/remark-lint-no-tabs-3.1.1.tgz",
- "integrity": "sha512-+MjXoHSSqRFUUz6XHgB1z7F5zIETxhkY+lC5LsOYb1r2ZdujZQWzBzNW5ya4HH5JiDVBPhp8MrqM9cP1v7tB5g==",
+ "node_modules/remark-lint-emphasis-marker/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "vfile-location": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-undefined-references": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-undefined-references/-/remark-lint-no-undefined-references-4.1.1.tgz",
- "integrity": "sha512-J20rKfTGflLiTI3T5JlLZSmINk6aDGmZi1y70lpU69LDfAyHAKgDK6sSW9XDeFmCPPdm8Ybxe5Gf2a70k+GcVQ==",
+ "node_modules/remark-lint-fenced-code-flag": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-4.2.0.tgz",
+ "integrity": "sha512-QWGTrnYbcopOFZR98djDREmKApLonJ7hmXE7pEcOGee9JY/EUIVS7Lq54Hy9CtU3cVIvQQmiMTxCwUhfddDJFA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/mdast": "^3.0.0",
- "micromark-util-normalize-identifier": "^1.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0",
- "vfile-location": "^4.0.0"
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "quotation": "^2.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-no-unused-definitions": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-unused-definitions/-/remark-lint-no-unused-definitions-3.1.1.tgz",
- "integrity": "sha512-/GtyBukhAxi5MEX/g/m+FzDEflSbTe2/cpe2H+tJZyDmiLhjGXRdwWnPRDp+mB9g1iIZgVRCk7T4v90RbQX/mw==",
+ "node_modules/remark-lint-fenced-code-flag/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-lint-fenced-code-flag/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-fenced-code-flag/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-ordered-list-marker-style": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-3.1.1.tgz",
- "integrity": "sha512-IWcWaJoaSb4yoSOuvDbj9B2uXp9kSj58DqtrMKo8MoRShmbj1onVfulTxoTLeLtI11NvW+mj3jPSpqjMjls+5Q==",
+ "node_modules/remark-lint-fenced-code-flag/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-ordered-list-marker-value": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-value/-/remark-lint-ordered-list-marker-value-3.1.1.tgz",
- "integrity": "sha512-+bQZbo+v/A8CuLrO71gobJuKR4/sfnPgWyEggSa+zq+LXPK1HiMDjap0Wr07uYgcUXsXIPh+HD/5J5by6JL+vg==",
+ "node_modules/remark-lint-fenced-code-flag/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-rule-style": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-rule-style/-/remark-lint-rule-style-3.1.1.tgz",
- "integrity": "sha512-+oZe0ph4DWHGwPkQ/FpqiGp4WULTXB1edftnnNbizYT+Wr+/ux7GNTx78oXH/PHwlnOtVIExMc4W/vDXrUj/DQ==",
+ "node_modules/remark-lint-fenced-code-flag/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-strong-marker": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-strong-marker/-/remark-lint-strong-marker-3.1.1.tgz",
- "integrity": "sha512-tX9Os2C48Hh8P8CouY4dcnAhGnR3trL+NCDqIvJvFDR9Rvm9yfNQaY2N4ZHWVY0iUicq9DpqEiJTgUsT8AGv/w==",
+ "node_modules/remark-lint-fenced-code-flag/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-table-cell-padding": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-4.1.2.tgz",
- "integrity": "sha512-cx5BXjHtpACa7Z51Vuqzy9BI4Z8Hnxz7vklhhrubkoB7mbctP/mR+Nh4B8eE5VtgFYJNHFwIltl96PuoctFCeQ==",
+ "node_modules/remark-lint-fenced-code-flag/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "@types/unist": "^2.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-table-pipe-alignment": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-table-pipe-alignment/-/remark-lint-table-pipe-alignment-3.1.1.tgz",
- "integrity": "sha512-WOHv2yL4ZwXHM06MIyQNnGFYKz9m2k/GFIA/6hpArF8Ph/3v8CF0J/Hb3Yyfg39e5nODw3D2G3okCO+xgyGQGA==",
+ "node_modules/remark-lint-fenced-code-marker": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-4.0.1.tgz",
+ "integrity": "sha512-uI91OcVPKjNxV+vpjDW9T64hkE0a/CRn3JhwdMxUAJYpVsKnA7PFPSFJOx/abNsVZHNSe7ZFGgGdaH/lqgSizA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-table-pipes": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-table-pipes/-/remark-lint-table-pipes-4.1.1.tgz",
- "integrity": "sha512-mJnB2FpjJTE4s9kE1JX8gcCjCFvtGPjzXUiQy0sbPHn2YM9EWG7kvFWYoqWK4w569CEQJyxZraEPltmhDjQTjg==",
+ "node_modules/remark-lint-fenced-code-marker/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-lint-fenced-code-marker/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-fenced-code-marker/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-unordered-list-marker-style": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-3.1.1.tgz",
- "integrity": "sha512-JwH8oIDi9f5Z8cTQLimhJ/fkbPwI3OpNSifjYyObNNuc4PG4/NUoe5ZuD10uPmPYHZW+713RZ8S5ucVCkI8dDA==",
+ "node_modules/remark-lint-fenced-code-marker/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-write-good": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/remark-lint-write-good/-/remark-lint-write-good-1.2.0.tgz",
- "integrity": "sha512-HYiwM16RRBm979yDb/IVwPe1eFhzA1HATe1WucRiYWS10jcPRgJe9FihH7W5uzQFDqX5aRbTtu/yPdq+hPnYkw==",
+ "node_modules/remark-lint-fenced-code-marker/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
"dev": true,
"dependencies": {
- "nlcst-to-string": "^2.0.0",
- "unified-lint-rule": "^1.0.1",
- "unist-util-visit": "^1.1.1",
- "write-good": "^1.0.2"
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-write-good/node_modules/unified-lint-rule": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-1.0.6.tgz",
- "integrity": "sha512-YPK15YBFwnsVorDFG/u0cVVQN5G2a3V8zv5/N6KN3TCG+ajKtaALcy7u14DCSrJI+gZeyYquFL9cioJXOGXSvg==",
+ "node_modules/remark-lint-fenced-code-marker/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
"dependencies": {
- "wrapped": "^1.0.1"
+ "@types/unist": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-write-good/node_modules/unist-util-is": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
- "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==",
- "dev": true
- },
- "node_modules/remark-lint-write-good/node_modules/unist-util-visit": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
- "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
+ "node_modules/remark-lint-fenced-code-marker/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
"dependencies": {
- "unist-util-visit-parents": "^2.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-lint-write-good/node_modules/unist-util-visit-parents": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
- "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
+ "node_modules/remark-lint-fenced-code-marker/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
"dependencies": {
- "unist-util-is": "^3.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-message-control": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-7.1.1.tgz",
- "integrity": "sha512-xKRWl1NTBOKed0oEtCd8BUfH5m4s8WXxFFSoo7uUwx6GW/qdCy4zov5LfPyw7emantDmhfWn5PdIZgcbVcWMDQ==",
+ "node_modules/remark-lint-file-extension": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-file-extension/-/remark-lint-file-extension-3.0.1.tgz",
+ "integrity": "sha512-1Ca5Dgu9J/j1fb7nvzNXh2xy4ija03igiP5i4le64LfrlloGax4VWcG/M7uL+CpRTFVqEJMWw0iKDEZxYSgImg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/mdast": "^3.0.0",
- "mdast-comment-marker": "^2.0.0",
- "unified": "^10.0.0",
- "unified-message-control": "^4.0.0",
- "vfile": "^5.0.0"
+ "@types/mdast": "^4.0.0",
+ "quotation": "^2.0.0",
+ "unified-lint-rule": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-parse": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.1.tgz",
- "integrity": "sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==",
+ "node_modules/remark-lint-file-extension/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-lint-file-extension/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-file-extension/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "mdast-util-from-markdown": "^1.0.0",
- "unified": "^10.0.0"
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-preset-lint-consistent": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/remark-preset-lint-consistent/-/remark-preset-lint-consistent-5.1.1.tgz",
- "integrity": "sha512-DZQfomiVi/1x7NRByWrOiIC+olEGa1PpyykKrowvYp5qr/Seq60FqU7OjBJxtcOLzgnQcu9Y2JXdHxFi4AAPXQ==",
+ "node_modules/remark-lint-file-extension/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "remark-lint": "^9.0.0",
- "remark-lint-blockquote-indentation": "^3.0.0",
- "remark-lint-checkbox-character-style": "^4.0.0",
- "remark-lint-code-block-style": "^3.0.0",
- "remark-lint-emphasis-marker": "^3.0.0",
- "remark-lint-fenced-code-marker": "^3.0.0",
- "remark-lint-heading-style": "^3.0.0",
- "remark-lint-link-title-style": "^3.0.0",
- "remark-lint-list-item-content-indent": "^3.0.0",
- "remark-lint-ordered-list-marker-style": "^3.0.0",
- "remark-lint-rule-style": "^3.0.0",
- "remark-lint-strong-marker": "^3.0.0",
- "remark-lint-table-cell-padding": "^4.0.0",
- "unified": "^10.0.0"
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-preset-lint-markdown-style-guide": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/remark-preset-lint-markdown-style-guide/-/remark-preset-lint-markdown-style-guide-5.1.2.tgz",
- "integrity": "sha512-MIAhnz0wDOq/MqLucSaAPquKGFE2I5SxqRjgWT+ZGK7TmqTxrro53e11/Pc19xPX4evmzI5CZdvaRnIoxP3ysQ==",
- "dev": true,
- "dependencies": {
- "@types/mdast": "^3.0.0",
- "remark-lint": "^9.0.0",
- "remark-lint-blockquote-indentation": "^3.0.0",
- "remark-lint-code-block-style": "^3.0.0",
- "remark-lint-definition-case": "^3.0.0",
- "remark-lint-definition-spacing": "^3.0.0",
- "remark-lint-emphasis-marker": "^3.0.0",
- "remark-lint-fenced-code-flag": "^3.0.0",
- "remark-lint-fenced-code-marker": "^3.0.0",
- "remark-lint-file-extension": "^2.0.0",
- "remark-lint-final-definition": "^3.0.0",
- "remark-lint-hard-break-spaces": "^3.0.0",
- "remark-lint-heading-increment": "^3.0.0",
- "remark-lint-heading-style": "^3.0.0",
- "remark-lint-link-title-style": "^3.0.0",
- "remark-lint-list-item-content-indent": "^3.0.0",
- "remark-lint-list-item-indent": "^3.0.0",
- "remark-lint-list-item-spacing": "^4.0.0",
- "remark-lint-maximum-heading-length": "^3.0.0",
- "remark-lint-maximum-line-length": "^3.0.0",
- "remark-lint-no-blockquote-without-marker": "^5.0.0",
- "remark-lint-no-consecutive-blank-lines": "^4.0.0",
- "remark-lint-no-duplicate-headings": "^3.0.0",
- "remark-lint-no-emphasis-as-heading": "^3.0.0",
- "remark-lint-no-file-name-articles": "^2.0.0",
- "remark-lint-no-file-name-consecutive-dashes": "^2.0.0",
- "remark-lint-no-file-name-irregular-characters": "^2.0.0",
- "remark-lint-no-file-name-mixed-case": "^2.0.0",
- "remark-lint-no-file-name-outer-dashes": "^2.0.0",
- "remark-lint-no-heading-punctuation": "^3.0.0",
- "remark-lint-no-inline-padding": "^4.0.0",
- "remark-lint-no-literal-urls": "^3.0.0",
- "remark-lint-no-multiple-toplevel-headings": "^3.0.0",
- "remark-lint-no-shell-dollars": "^3.0.0",
- "remark-lint-no-shortcut-reference-image": "^3.0.0",
- "remark-lint-no-shortcut-reference-link": "^3.0.0",
- "remark-lint-no-table-indentation": "^4.0.0",
- "remark-lint-ordered-list-marker-style": "^3.0.0",
- "remark-lint-ordered-list-marker-value": "^3.0.0",
- "remark-lint-rule-style": "^3.0.0",
- "remark-lint-strong-marker": "^3.0.0",
- "remark-lint-table-cell-padding": "^4.0.0",
- "remark-lint-table-pipe-alignment": "^3.0.0",
- "remark-lint-table-pipes": "^4.0.0",
- "remark-lint-unordered-list-marker-style": "^3.0.0",
- "unified": "^10.0.0"
+ "node_modules/remark-lint-file-extension/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-preset-lint-recommended": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/remark-preset-lint-recommended/-/remark-preset-lint-recommended-6.1.2.tgz",
- "integrity": "sha512-x9kWufNY8PNAhY4fsl+KD3atgQdo4imP3GDAQYbQ6ylWVyX13suPRLkqnupW0ODRynfUg8ZRt8pVX0wMHwgPAg==",
+ "node_modules/remark-lint-file-extension/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "remark-lint": "^9.0.0",
- "remark-lint-final-newline": "^2.0.0",
- "remark-lint-hard-break-spaces": "^3.0.0",
- "remark-lint-list-item-bullet-indent": "^4.0.0",
- "remark-lint-list-item-indent": "^3.0.0",
- "remark-lint-no-blockquote-without-marker": "^5.0.0",
- "remark-lint-no-duplicate-definitions": "^3.0.0",
- "remark-lint-no-heading-content-indent": "^4.0.0",
- "remark-lint-no-inline-padding": "^4.0.0",
- "remark-lint-no-literal-urls": "^3.0.0",
- "remark-lint-no-shortcut-reference-image": "^3.0.0",
- "remark-lint-no-shortcut-reference-link": "^3.0.0",
- "remark-lint-no-undefined-references": "^4.0.0",
- "remark-lint-no-unused-definitions": "^3.0.0",
- "remark-lint-ordered-list-marker-style": "^3.0.0",
- "unified": "^10.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-retext": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/remark-retext/-/remark-retext-5.0.1.tgz",
- "integrity": "sha512-h3kOjKNy7oJfohqXlKp+W4YDigHD3rw01x91qvQP/cUkK5nJrDl6yEYwTujQCAXSLZrsBxywlK3ntzIX6c29aA==",
+ "node_modules/remark-lint-file-extension/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "@types/unist": "^2.0.0",
- "mdast-util-to-nlcst": "^5.0.0",
- "unified": "^10.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-stringify": {
- "version": "10.0.2",
- "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-10.0.2.tgz",
- "integrity": "sha512-6wV3pvbPvHkbNnWB0wdDvVFHOe1hBRAx1Q/5g/EpH4RppAII6J8Gnwe7VbHuXaoKIF6LAg6ExTel/+kNqSQ7lw==",
+ "node_modules/remark-lint-final-definition": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/remark-lint-final-definition/-/remark-lint-final-definition-4.0.2.tgz",
+ "integrity": "sha512-fz3UAcFQef77Zb8rz4za2R6y7pdyJot22iGtFoNIKdtbcNa8IKKEVoY3NIfrsLfhrjwzcha1Sp3fFA9NF6lc4w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/mdast": "^3.0.0",
- "mdast-util-to-markdown": "^1.0.0",
- "unified": "^10.0.0"
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-textr": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/remark-textr/-/remark-textr-5.0.1.tgz",
- "integrity": "sha512-Kd5q7I1LsZ04meMZJJwBze/wxiLhAItRTGevDeyx3K/WMd4juO6WbGLro0/99Ui6I+lYx/l90v0Ax4dVPj3/0Q==",
+ "node_modules/remark-lint-final-definition/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "textr": "^0.3.0",
- "unified": "^10.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-lint-final-definition/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-final-definition/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/remark-validate-links": {
- "version": "11.0.2",
- "resolved": "https://registry.npmjs.org/remark-validate-links/-/remark-validate-links-11.0.2.tgz",
- "integrity": "sha512-SfVDWgF/Albdou1TmrCpq4AvJyvMnPflnaLLPUuFFxKO4Jp1o7fK2sinqPt+WW0DXS4JmtXPXm2FOkB8FJ08tQ==",
+ "node_modules/remark-lint-final-definition/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
"dependencies": {
- "@types/mdast": "^3.0.0",
- "github-slugger": "^1.0.0",
- "hosted-git-info": "^4.0.0",
- "mdast-util-to-string": "^3.0.0",
- "propose": "0.0.5",
- "to-vfile": "^7.0.0",
+ "@types/unist": "^3.0.0",
"trough": "^2.0.0",
- "unified": "^10.0.0",
- "unified-engine": "^9.0.0",
- "unist-util-visit": "^4.0.0",
- "vfile": "^5.0.0"
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/resolve": {
- "version": "1.21.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz",
- "integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==",
+ "node_modules/remark-lint-final-definition/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
"dev": true,
- "peer": true,
"dependencies": {
- "is-core-module": "^2.8.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
+ "@types/unist": "^3.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/resolve-from": {
+ "node_modules/remark-lint-final-definition/node_modules/unist-util-stringify-position": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
- "peer": true,
- "engines": {
- "node": ">=4"
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/responselike": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
- "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
+ "node_modules/remark-lint-final-definition/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
"dependencies": {
- "lowercase-keys": "^1.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "node_modules/remark-lint-final-definition/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
- "peer": true,
"dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/sade": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz",
- "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==",
+ "node_modules/remark-lint-final-newline": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-final-newline/-/remark-lint-final-newline-3.0.1.tgz",
+ "integrity": "sha512-q5diKHD6BMbzqWqgvYPOB8AJgLrMzEMBAprNXjcpKoZ/uCRqly+gxjco+qVUMtMWSd+P+KXZZEqoa7Y6QiOudw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "mri": "^1.1.0"
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "vfile-location": "^5.0.0"
},
- "engines": {
- "node": ">=6"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "node_modules/remark-lint-final-newline/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
+ "dependencies": {
+ "@types/unist": "*"
+ }
},
- "node_modules/semver": {
- "version": "7.3.5",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
- "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "node_modules/remark-lint-final-newline/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-final-newline/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
"dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
},
- "engines": {
- "node": ">=10"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "node_modules/remark-lint-final-newline/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
- "peer": true,
"dependencies": {
- "shebang-regex": "^3.0.0"
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
},
- "engines": {
- "node": ">=8"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "node_modules/remark-lint-final-newline/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
- "peer": true,
- "engines": {
- "node": ">=8"
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "node_modules/remark-lint-final-newline/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
- "peer": true,
"dependencies": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/sliced": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz",
- "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=",
- "dev": true
- },
- "node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "node_modules/remark-lint-final-newline/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
"dependencies": {
- "safe-buffer": "~5.2.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/string-width": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.0.tgz",
- "integrity": "sha512-7x54QnN21P+XL/v8SuNKvfgsUre6PXpN7mc77N3HlZv+f1SBRGmjxtOud2Z6FZ8DmdkD/IdjCaf9XXbnqmTZGQ==",
+ "node_modules/remark-lint-hard-break-spaces": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-4.1.1.tgz",
+ "integrity": "sha512-AKDPDt39fvmr3yk38OKZEWJxxCOOUBE+96AsBfs+ExS5LW6oLa9041X5ahFDQHvHGzdoremEIaaElursaPEkNg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit": "^5.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/string.prototype.matchall": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz",
- "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==",
+ "node_modules/remark-lint-hard-break-spaces/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
- "peer": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1",
- "get-intrinsic": "^1.1.1",
- "has-symbols": "^1.0.2",
- "internal-slot": "^1.0.3",
- "regexp.prototype.flags": "^1.3.1",
- "side-channel": "^1.0.4"
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-lint-hard-break-spaces/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-hard-break-spaces/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/string.prototype.trimend": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
- "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
+ "node_modules/remark-lint-hard-break-spaces/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
- "peer": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/string.prototype.trimstart": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
- "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
+ "node_modules/remark-lint-hard-break-spaces/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
"dev": true,
- "peer": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
+ "@types/unist": "^3.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/strip-ansi": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz",
- "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
+ "node_modules/remark-lint-hard-break-spaces/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
"dependencies": {
- "ansi-regex": "^6.0.1"
- },
- "engines": {
- "node": ">=12"
+ "@types/unist": "^3.0.0"
},
"funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "node_modules/remark-lint-hard-break-spaces/node_modules/unist-util-visit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
"dev": true,
- "peer": true,
- "engines": {
- "node": ">=4"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "node_modules/remark-lint-hard-break-spaces/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
- "peer": true,
- "engines": {
- "node": ">=8"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "node_modules/remark-lint-hard-break-spaces/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
"dependencies": {
- "has-flag": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
},
- "engines": {
- "node": ">=8"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "node_modules/remark-lint-heading-increment": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-heading-increment/-/remark-lint-heading-increment-4.0.1.tgz",
+ "integrity": "sha512-uat7RTQn0hGlMv62p7yjLlg3tO3RljFbH6C+0M+5BNEF+s3NrA8jJgqW0UwLLNdCd3EABCKaWloHumT57ND7PQ==",
"dev": true,
- "peer": true,
- "engines": {
- "node": ">= 0.4"
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/text-table": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
- "dev": true
+ "node_modules/remark-lint-heading-increment/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
},
- "node_modules/textr": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/textr/-/textr-0.3.0.tgz",
- "integrity": "sha1-cXNhKGlirI3za3omGft3OhW5t/c=",
+ "node_modules/remark-lint-heading-increment/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
"dev": true
},
- "node_modules/to-readable-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
- "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==",
+ "node_modules/remark-lint-heading-increment/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
- "engines": {
- "node": ">=6"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "node_modules/remark-lint-heading-increment/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
"dependencies": {
- "is-number": "^7.0.0"
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
},
- "engines": {
- "node": ">=8.0"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/to-vfile": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-7.2.3.tgz",
- "integrity": "sha512-QO0A9aE6Z/YkmQadJ0syxpmNXtcQiu0qAtCKYKD5cS3EfgfFTAXfgLX6AOaBrSfWSek5nfsMf3gBZ9KGVFcLuw==",
+ "node_modules/remark-lint-heading-increment/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
"dependencies": {
- "is-buffer": "^2.0.0",
- "vfile": "^5.1.0"
+ "@types/unist": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/too-wordy": {
- "version": "0.3.4",
- "resolved": "https://registry.npmjs.org/too-wordy/-/too-wordy-0.3.4.tgz",
- "integrity": "sha512-EU+UA4zHc06TkVQaravNNVdqX763/ENTIOKiKlqSJ6WKCPwLxHjvY3d0uEJYaq92iojyHPwD2iaYbZKjdw3icA==",
+ "node_modules/remark-lint-heading-increment/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
- "engines": {
- "node": ">=6",
- "npm": ">=5"
- }
- },
- "node_modules/trough": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz",
- "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==",
- "dev": true,
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/tsconfig-paths": {
- "version": "3.12.0",
- "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz",
- "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@types/json5": "^0.0.29",
- "json5": "^1.0.1",
- "minimist": "^1.2.0",
- "strip-bom": "^3.0.0"
- }
- },
- "node_modules/tsconfig-paths/node_modules/json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
- "dev": true,
- "peer": true,
"dependencies": {
- "minimist": "^1.2.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
},
- "bin": {
- "json5": "lib/cli.js"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/type-check": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "node_modules/remark-lint-heading-increment/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
- "peer": true,
"dependencies": {
- "prelude-ls": "^1.2.1"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
},
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/type-fest": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz",
- "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/typedarray": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
- "dev": true
- },
- "node_modules/unbox-primitive": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
- "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
+ "node_modules/remark-lint-heading-style": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-heading-style/-/remark-lint-heading-style-4.0.1.tgz",
+ "integrity": "sha512-+rUpJ/N2CGC5xPgZ18XgsCsUBtadgEhdTi0BJPrsFmHPzL22BUHajeg9im8Y7zphUcbi1qFiKuxZd2nzDgZSXQ==",
"dev": true,
- "peer": true,
+ "license": "MIT",
"dependencies": {
- "function-bind": "^1.1.1",
- "has-bigints": "^1.0.1",
- "has-symbols": "^1.0.2",
- "which-boxed-primitive": "^1.0.2"
+ "@types/mdast": "^4.0.0",
+ "mdast-util-heading-style": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/unified": {
- "version": "10.1.1",
- "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.1.tgz",
- "integrity": "sha512-v4ky1+6BN9X3pQrOdkFIPWAaeDsHPE1svRDxq7YpTc2plkIqFMwukfqM+l0ewpP9EfwARlt9pPFAeWYhHm8X9w==",
+ "node_modules/remark-lint-heading-style/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
"dependencies": {
- "@types/unist": "^2.0.0",
- "bail": "^2.0.0",
- "extend": "^3.0.0",
- "is-buffer": "^2.0.0",
- "is-plain-obj": "^4.0.0",
- "trough": "^2.0.0",
- "vfile": "^5.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
+ "@types/unist": "*"
}
},
- "node_modules/unified-args": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/unified-args/-/unified-args-9.0.2.tgz",
- "integrity": "sha512-qSqryjoqfJSII4E4Z2Jx7MhXX2MuUIn6DsrlmL8UnWFdGtrWvEtvm7Rx5fKT5TPUz7q/Fb4oxwIHLCttvAuRLQ==",
+ "node_modules/remark-lint-heading-style/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-heading-style/node_modules/mdast-util-heading-style": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-heading-style/-/mdast-util-heading-style-3.0.0.tgz",
+ "integrity": "sha512-tsUfM9Kj9msjlemA/38Z3pvraQay880E3zP2NgIthMoGcpU9bcPX9oSM6QC/+eFXGGB4ba+VCB1dKAPHB7Veug==",
"dev": true,
"dependencies": {
- "@types/text-table": "^0.2.0",
- "camelcase": "^6.0.0",
- "chalk": "^4.0.0",
- "chokidar": "^3.0.0",
- "fault": "^2.0.0",
- "json5": "^2.0.0",
- "minimist": "^1.0.0",
- "text-table": "^0.2.0",
- "unified-engine": "^9.0.0"
+ "@types/mdast": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/unified-engine": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/unified-engine/-/unified-engine-9.0.5.tgz",
- "integrity": "sha512-frQ6lUNlkTwVC0JELJqSSITpE7MLrLJqAWmDrUFj5Do6A4/3n6eX5Jyg8fhe4Dbwwh38spqUJd39FtRFG34QWg==",
+ "node_modules/remark-lint-heading-style/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
"dependencies": {
- "@types/concat-stream": "^1.0.0",
- "@types/debug": "^4.0.0",
- "@types/is-empty": "^1.0.0",
- "@types/js-yaml": "^4.0.0",
- "@types/node": "^17.0.0",
- "@types/unist": "^2.0.0",
- "concat-stream": "^2.0.0",
- "debug": "^4.0.0",
- "fault": "^2.0.0",
- "glob": "^7.0.0",
- "ignore": "^5.0.0",
- "is-buffer": "^2.0.0",
- "is-empty": "^1.0.0",
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
"is-plain-obj": "^4.0.0",
- "js-yaml": "^4.0.0",
- "load-plugin": "^4.0.0",
- "parse-json": "^6.0.0",
- "to-vfile": "^7.0.0",
"trough": "^2.0.0",
- "unist-util-inspect": "^7.0.0",
- "vfile-message": "^3.0.0",
- "vfile-reporter": "^7.0.0",
- "vfile-statistics": "^2.0.0"
+ "vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/unified-lint-rule": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.1.1.tgz",
- "integrity": "sha512-vsLHyLZFstqtGse2gvrGwasOmH8M2y+r2kQMoDSWzSqUkQx2MjHjvZuGSv5FUaiv4RQO1bHRajy7lSGp7XWq5A==",
+ "node_modules/remark-lint-heading-style/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
"dependencies": {
- "@types/unist": "^2.0.0",
+ "@types/unist": "^3.0.0",
"trough": "^2.0.0",
- "unified": "^10.0.0",
- "vfile": "^5.0.0"
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/unified-message-control": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/unified-message-control/-/unified-message-control-4.0.0.tgz",
- "integrity": "sha512-1b92N+VkPHftOsvXNOtkJm4wHlr+UDmTBF2dUzepn40oy9NxanJ9xS1RwUBTjXJwqr2K0kMbEyv1Krdsho7+Iw==",
+ "node_modules/remark-lint-heading-style/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
"dev": true,
"dependencies": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^5.0.0",
- "unist-util-visit": "^3.0.0",
- "vfile": "^5.0.0",
- "vfile-location": "^4.0.0",
- "vfile-message": "^3.0.0"
+ "@types/unist": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/unified-message-control/node_modules/unist-util-visit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-3.1.0.tgz",
- "integrity": "sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==",
+ "node_modules/remark-lint-heading-style/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
"dependencies": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^5.0.0",
- "unist-util-visit-parents": "^4.0.0"
+ "@types/unist": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/unified-message-control/node_modules/unist-util-visit-parents": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz",
- "integrity": "sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==",
+ "node_modules/remark-lint-heading-style/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
"dependencies": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^5.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/unist-util-generated": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.0.tgz",
- "integrity": "sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw==",
- "dev": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-inspect": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-inspect/-/unist-util-inspect-7.0.0.tgz",
- "integrity": "sha512-2Utgv78I7PUu461Y9cdo+IUiiKSKpDV5CE/XD6vTj849a3xlpDAScvSJ6cQmtFBGgAmCn2wR7jLuXhpg1XLlJw==",
+ "node_modules/remark-lint-heading-style/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
"dependencies": {
- "@types/unist": "^2.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/unist-util-is": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz",
- "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==",
- "dev": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-map": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/unist-util-map/-/unist-util-map-1.0.5.tgz",
- "integrity": "sha512-dFil/AN6vqhnQWNCZk0GF/G3+Q5YwsB+PqjnzvpO2wzdRtUJ1E8PN+XRE/PRr/G3FzKjRTJU0haqE0Ekl+O3Ag==",
+ "node_modules/remark-lint-heading-whitespace": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/remark-lint-heading-whitespace/-/remark-lint-heading-whitespace-1.0.0.tgz",
+ "integrity": "sha512-DykoBIXNbkihg64D+mztSOv3l82RTH4tIZW/HUB4QM4NpIEB+pVIPQpCYD0K4pTgvKiwoqsj4NY8qJ1EhNHAmQ==",
"dev": true,
"dependencies": {
- "object-assign": "^4.0.1"
+ "mdast-util-to-string": "^1.0.4",
+ "unified-lint-rule": "^1.0.2",
+ "unist-util-visit": "^1.3.0"
}
},
- "node_modules/unist-util-position": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz",
- "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==",
+ "node_modules/remark-lint-heading-whitespace/node_modules/mdast-util-to-string": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz",
+ "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==",
"dev": true,
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/unist-util-stringify-position": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz",
- "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==",
+ "node_modules/remark-lint-heading-whitespace/node_modules/unified-lint-rule": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-1.0.6.tgz",
+ "integrity": "sha512-YPK15YBFwnsVorDFG/u0cVVQN5G2a3V8zv5/N6KN3TCG+ajKtaALcy7u14DCSrJI+gZeyYquFL9cioJXOGXSvg==",
"dev": true,
"dependencies": {
- "@types/unist": "^2.0.0"
+ "wrapped": "^1.0.1"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/unist-util-to-list-of-char": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/unist-util-to-list-of-char/-/unist-util-to-list-of-char-0.1.3.tgz",
- "integrity": "sha512-f8GrLHdhBKfaW6mzJc25BKeUOqhsuiRXlGrXBtb3pmRT3QCuYS+jH4g7Uf52hjV7TLQN4PGnjzrTFMFXAQaprA==",
- "dev": true,
- "dependencies": {
- "unist-util-generated": "^1.1.6",
- "unist-util-visit": "^1.4.0"
- }
- },
- "node_modules/unist-util-to-list-of-char/node_modules/unist-util-generated": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz",
- "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==",
- "dev": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-to-list-of-char/node_modules/unist-util-is": {
+ "node_modules/remark-lint-heading-whitespace/node_modules/unist-util-is": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
"integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==",
"dev": true
},
- "node_modules/unist-util-to-list-of-char/node_modules/unist-util-visit": {
+ "node_modules/remark-lint-heading-whitespace/node_modules/unist-util-visit": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
"integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
@@ -6179,7 +7583,7 @@
"unist-util-visit-parents": "^2.0.0"
}
},
- "node_modules/unist-util-to-list-of-char/node_modules/unist-util-visit-parents": {
+ "node_modules/remark-lint-heading-whitespace/node_modules/unist-util-visit-parents": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
"integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
@@ -6188,3969 +7592,17283 @@
"unist-util-is": "^3.0.0"
}
},
- "node_modules/unist-util-visit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.0.tgz",
- "integrity": "sha512-n7lyhFKJfVZ9MnKtqbsqkQEk5P1KShj0+//V7mAcoI6bpbUjh3C/OG8HVD+pBihfh6Ovl01m8dkcv9HNqYajmQ==",
+ "node_modules/remark-lint-link-title-style": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-link-title-style/-/remark-lint-link-title-style-4.0.1.tgz",
+ "integrity": "sha512-MtmnYrhjhRXR0zeiyYf/7GBlUF5KAPypJb345KjyDluOhI4Wj4VAXvVQuov/MFc3y8p/1yVwv3QDYv6yue8/wQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^5.0.0",
- "unist-util-visit-parents": "^5.0.0"
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/unist-util-visit-parents": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.0.tgz",
- "integrity": "sha512-y+QVLcY5eR/YVpqDsLf/xh9R3Q2Y4HxkZTp7ViLDU6WtJCEcPmRzW1gpdWDCDIqIlhuPDXOgttqPlykrHYDekg==",
+ "node_modules/remark-lint-link-title-style/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
"dependencies": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^5.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
+ "@types/unist": "*"
}
},
- "node_modules/uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "node_modules/remark-lint-link-title-style/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-link-title-style/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
- "peer": true,
"dependencies": {
- "punycode": "^2.1.0"
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/url-parse-lax": {
+ "node_modules/remark-lint-link-title-style/node_modules/unified-lint-rule": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
- "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
"dependencies": {
- "prepend-http": "^2.0.0"
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
},
- "engines": {
- "node": ">=4"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
- "dev": true
- },
- "node_modules/uvu": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.3.tgz",
- "integrity": "sha512-brFwqA3FXzilmtnIyJ+CxdkInkY/i4ErvP7uV0DnUVxQcQ55reuHphorpF+tZoVHK2MniZ/VJzI7zJQoc9T9Yw==",
+ "node_modules/remark-lint-link-title-style/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
"dev": true,
"dependencies": {
- "dequal": "^2.0.0",
- "diff": "^5.0.0",
- "kleur": "^4.0.3",
- "sade": "^1.7.3"
- },
- "bin": {
- "uvu": "bin.js"
+ "@types/unist": "^3.0.0"
},
- "engines": {
- "node": ">=8"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/v8-compile-cache": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
- "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
- "dev": true,
- "peer": true
- },
- "node_modules/vfile": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.0.tgz",
- "integrity": "sha512-Tj44nY/48OQvarrE4FAjUfrv7GZOYzPbl5OD65HxVKwLJKMPU7zmfV8cCgCnzKWnSfYG2f3pxu+ALqs7j22xQQ==",
+ "node_modules/remark-lint-link-title-style/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
"dependencies": {
- "@types/unist": "^2.0.0",
- "is-buffer": "^2.0.0",
- "unist-util-stringify-position": "^3.0.0",
- "vfile-message": "^3.0.0"
+ "@types/unist": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/vfile-location": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz",
- "integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==",
+ "node_modules/remark-lint-link-title-style/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
"dependencies": {
- "@types/unist": "^2.0.0",
- "vfile": "^5.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/vfile-message": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.0.tgz",
- "integrity": "sha512-4QJbBk+DkPEhBXq3f260xSaWtjE4gPKOfulzfMFF8ZNwaPZieWsg3iVlcmF04+eebzpcpeXOOFMfrYzJHVYg+g==",
+ "node_modules/remark-lint-link-title-style/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
"dependencies": {
- "@types/unist": "^2.0.0",
- "unist-util-stringify-position": "^3.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/vfile-reporter": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-7.0.3.tgz",
- "integrity": "sha512-q+ruTWxFHbow359TDqoNJn5THdwRDeV+XUOtzdT/OESgaGw05CjL68ImlbzRzqS5xL62Y1IaIWb8x+RbaNjayA==",
+ "node_modules/remark-lint-list-item-bullet-indent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-list-item-bullet-indent/-/remark-lint-list-item-bullet-indent-5.0.1.tgz",
+ "integrity": "sha512-LKuTxkw5aYChzZoF3BkfaBheSCHs0T8n8dPHLQEuOLo6iC5wy98iyryz0KZ61GD8stlZgQO2KdWSdnP6vr40Iw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/supports-color": "^8.0.0",
- "string-width": "^5.0.0",
- "supports-color": "^9.0.0",
- "unist-util-stringify-position": "^3.0.0",
- "vfile-sort": "^3.0.0",
- "vfile-statistics": "^2.0.0"
+ "@types/mdast": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/vfile-reporter/node_modules/supports-color": {
- "version": "9.2.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.2.1.tgz",
- "integrity": "sha512-Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ==",
+ "node_modules/remark-lint-list-item-bullet-indent/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
- "engines": {
- "node": ">=12"
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-lint-list-item-bullet-indent/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-list-item-bullet-indent/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
},
"funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/vfile-sort": {
+ "node_modules/remark-lint-list-item-bullet-indent/node_modules/unified-lint-rule": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-3.0.0.tgz",
- "integrity": "sha512-fJNctnuMi3l4ikTVcKpxTbzHeCgvDhnI44amA3NVDvA6rTC6oKCFpCVyT5n2fFMr3ebfr+WVQZedOCd73rzSxg==",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
"dependencies": {
- "vfile-message": "^3.0.0"
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/vfile-statistics": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-2.0.0.tgz",
- "integrity": "sha512-foOWtcnJhKN9M2+20AOTlWi2dxNfAoeNIoxD5GXcO182UJyId4QrXa41fWrgcfV3FWTjdEDy3I4cpLVcQscIMA==",
+ "node_modules/remark-lint-list-item-bullet-indent/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
"dev": true,
"dependencies": {
- "vfile-message": "^3.0.0"
+ "@types/unist": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
- "node_modules/weasel-words": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/weasel-words/-/weasel-words-0.1.1.tgz",
- "integrity": "sha1-cTeUZYXHP+RIggE4U70ADF1oek4=",
- "dev": true
- },
- "node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "node_modules/remark-lint-list-item-bullet-indent/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
- "peer": true,
"dependencies": {
- "isexe": "^2.0.0"
+ "@types/unist": "^3.0.0"
},
- "bin": {
- "node-which": "bin/node-which"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-list-item-bullet-indent/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
},
- "engines": {
- "node": ">= 8"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/which-boxed-primitive": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
- "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+ "node_modules/remark-lint-list-item-bullet-indent/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
- "peer": true,
"dependencies": {
- "is-bigint": "^1.0.1",
- "is-boolean-object": "^1.1.0",
- "is-number-object": "^1.0.4",
- "is-string": "^1.0.5",
- "is-symbol": "^1.0.3"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/word-wrap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
- "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+ "node_modules/remark-lint-list-item-content-indent": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-list-item-content-indent/-/remark-lint-list-item-content-indent-4.0.1.tgz",
+ "integrity": "sha512-KSopxxp64O6dLuTQ2sWaTqgjKWr1+AoB1QCTektMJ3mfHfn0QyZzC2CZbBU22KGzBhiYXv9cIxlJlxUtq2NqHg==",
"dev": true,
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/wrapped": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/wrapped/-/wrapped-1.0.1.tgz",
- "integrity": "sha1-x4PZ2Aeyc+mwHoUWgKk4yHyQckI=",
+ "node_modules/remark-lint-list-item-content-indent/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
"dependencies": {
- "co": "3.1.0",
- "sliced": "^1.0.1"
+ "@types/unist": "*"
}
},
- "node_modules/wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "node_modules/remark-lint-list-item-content-indent/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
"dev": true
},
- "node_modules/write-good": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/write-good/-/write-good-1.0.8.tgz",
- "integrity": "sha512-P1Ct7+DNrOcr2JAxDZ3Q5i5sx2LSveu7iLaoUL0A+YiG0GKf0l5+9j3rwMeyh6JeTL1+HfQV1rnwEvzhNIvpFw==",
+ "node_modules/remark-lint-list-item-content-indent/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
"dependencies": {
- "adverb-where": "^0.2.2",
- "commander": "^2.19.0",
- "e-prime": "^0.10.4",
- "no-cliches": "^0.3.0",
- "passive-voice": "^0.1.0",
- "too-wordy": "^0.3.1",
- "weasel-words": "^0.1.1"
- },
- "bin": {
- "write-good": "bin/write-good.js",
- "writegood": "bin/write-good.js"
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
},
- "engines": {
- "node": ">=6",
- "npm": ">=5"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- },
- "node_modules/zwitch": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.2.tgz",
- "integrity": "sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA==",
+ "node_modules/remark-lint-list-item-content-indent/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
"funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
- }
- },
- "dependencies": {
- "@babel/code-frame": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz",
- "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==",
+ },
+ "node_modules/remark-lint-list-item-content-indent/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
"dev": true,
- "requires": {
- "@babel/highlight": "^7.16.7"
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "@babel/helper-validator-identifier": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz",
- "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==",
- "dev": true
- },
- "@babel/highlight": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz",
- "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==",
+ "node_modules/remark-lint-list-item-content-indent/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.16.7",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
- },
"dependencies": {
- "ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "requires": {
- "color-convert": "^1.9.0"
- }
- },
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "requires": {
- "color-name": "1.1.3"
- }
- },
- "color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
- "dev": true
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
- "dev": true
- },
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
- "dev": true
- },
- "supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "requires": {
- "has-flag": "^3.0.0"
- }
- }
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "@babel/runtime": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz",
- "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==",
+ "node_modules/remark-lint-list-item-content-indent/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
- "peer": true,
- "requires": {
- "regenerator-runtime": "^0.13.4"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "@babel/runtime-corejs3": {
- "version": "7.16.8",
- "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.8.tgz",
- "integrity": "sha512-3fKhuICS1lMz0plI5ktOE/yEtBRMVxplzRkdn6mJQ197XiY0JnrzYV0+Mxozq3JZ8SBV9Ecurmw1XsGbwOf+Sg==",
+ "node_modules/remark-lint-list-item-content-indent/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
- "peer": true,
- "requires": {
- "core-js-pure": "^3.20.2",
- "regenerator-runtime": "^0.13.4"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "@eslint/eslintrc": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz",
- "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==",
+ "node_modules/remark-lint-list-item-indent": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-list-item-indent/-/remark-lint-list-item-indent-4.0.1.tgz",
+ "integrity": "sha512-gJd1Q+jOAeTgmGRsdMpnRh01DUrAm0O5PCQxE8ttv1QZOV015p/qJH+B4N6QSmcUuPokHLAh9USuq05C73qpiA==",
"dev": true,
- "peer": true,
- "requires": {
- "ajv": "^6.12.4",
- "debug": "^4.3.2",
- "espree": "^9.2.0",
- "globals": "^13.9.0",
- "ignore": "^4.0.6",
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "minimatch": "^3.0.4",
- "strip-json-comments": "^3.1.1"
- },
+ "license": "MIT",
"dependencies": {
- "ignore": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
- "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
- "dev": true,
- "peer": true
- }
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "@humanwhocodes/config-array": {
- "version": "0.9.2",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz",
- "integrity": "sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==",
+ "node_modules/remark-lint-list-item-indent/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
- "peer": true,
- "requires": {
- "@humanwhocodes/object-schema": "^1.2.1",
- "debug": "^4.1.1",
- "minimatch": "^3.0.4"
+ "dependencies": {
+ "@types/unist": "*"
}
},
- "@humanwhocodes/object-schema": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
- "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
- "dev": true,
- "peer": true
- },
- "@leichtgewicht/ip-codec": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz",
- "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==",
- "dev": true
- },
- "@sindresorhus/is": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
- "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
+ "node_modules/remark-lint-list-item-indent/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
"dev": true
},
- "@szmarczak/http-timer": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
- "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
+ "node_modules/remark-lint-list-item-indent/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
- "requires": {
- "defer-to-connect": "^1.0.1"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "@types/concat-stream": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz",
- "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==",
+ "node_modules/remark-lint-list-item-indent/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
- "requires": {
- "@types/node": "*"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "@types/debug": {
- "version": "4.1.7",
- "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz",
- "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==",
+ "node_modules/remark-lint-list-item-indent/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
"dev": true,
- "requires": {
- "@types/ms": "*"
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "@types/estree": {
- "version": "0.0.50",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz",
- "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==",
- "dev": true
- },
- "@types/estree-jsx": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-0.0.1.tgz",
- "integrity": "sha512-gcLAYiMfQklDCPjQegGn0TBAn9it05ISEsEhlKQUddIk7o2XDokOcTN7HBO8tznM0D9dGezvHEfRZBfZf6me0A==",
+ "node_modules/remark-lint-list-item-indent/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
- "requires": {
- "@types/estree": "*"
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "@types/is-empty": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@types/is-empty/-/is-empty-1.2.1.tgz",
- "integrity": "sha512-a3xgqnFTuNJDm1fjsTjHocYJ40Cz3t8utYpi5GNaxzrJC2HSD08ym+whIL7fNqiqBCdM9bcqD1H/tORWAFXoZw==",
- "dev": true
- },
- "@types/js-yaml": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.5.tgz",
- "integrity": "sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==",
- "dev": true
- },
- "@types/json5": {
- "version": "0.0.29",
- "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
- "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=",
+ "node_modules/remark-lint-list-item-indent/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "@types/mdast": {
- "version": "3.0.10",
- "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz",
- "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==",
+ "node_modules/remark-lint-list-item-indent/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
- "requires": {
- "@types/unist": "*"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "@types/ms": {
- "version": "0.7.31",
- "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz",
- "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==",
- "dev": true
+ "node_modules/remark-lint-list-item-spacing": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/remark-lint-list-item-spacing/-/remark-lint-list-item-spacing-5.0.0.tgz",
+ "integrity": "sha512-d6p+1tcwNE+Pp6Tu2DwiKlyC1zYY3f1igL6AlcBIH0RmROVEfZR4IDFH/LcVyTkzqh1lPMFAJXWK4bpScpcO3g==",
+ "dev": true,
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "@types/nlcst": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@types/nlcst/-/nlcst-1.0.0.tgz",
- "integrity": "sha512-3TGCfOcy8R8mMQ4CNSNOe3PG66HttvjcLzCoOpvXvDtfWOTi+uT/rxeOKm/qEwbM4SNe1O/PjdiBK2YcTjU4OQ==",
+ "node_modules/remark-lint-list-item-spacing/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
- "requires": {
+ "dependencies": {
"@types/unist": "*"
}
},
- "@types/node": {
- "version": "17.0.8",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.8.tgz",
- "integrity": "sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg==",
- "dev": true
- },
- "@types/supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/@types/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-dPWnWsf+kzIG140B8z2w3fr5D03TLWbOAFQl45xUpI3vcizeXriNR5VYkWZ+WTMsUHqZ9Xlt3hrxGNANFyNQfw==",
- "dev": true
- },
- "@types/text-table": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/@types/text-table/-/text-table-0.2.2.tgz",
- "integrity": "sha512-dGoI5Af7To0R2XE8wJuc6vwlavWARsCh3UKJPjWs1YEqGUqfgBI/j/4GX0yf19/DsDPPf0YAXWAp8psNeIehLg==",
- "dev": true
- },
- "@types/unist": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz",
- "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==",
+ "node_modules/remark-lint-list-item-spacing/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
"dev": true
},
- "acorn": {
- "version": "8.7.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz",
- "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==",
- "dev": true,
- "peer": true
- },
- "acorn-jsx": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "node_modules/remark-lint-list-item-spacing/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
- "peer": true,
- "requires": {}
- },
- "adverb-where": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/adverb-where/-/adverb-where-0.2.5.tgz",
- "integrity": "sha512-JiQe2U1UR8l10jPrXv/PmlDhOLZpsxqjvTp+k6Dm5wYDUULdMZytDRmovkXU8X6V9o0sg0FBdetv3VXHAZZK5Q==",
- "dev": true
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "aggregate-error": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
- "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
+ "node_modules/remark-lint-list-item-spacing/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
- "requires": {
- "clean-stack": "^2.0.0",
- "indent-string": "^4.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "node_modules/remark-lint-list-item-spacing/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
"dev": true,
- "peer": true,
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "ansi-colors": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
- "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
+ "node_modules/remark-lint-list-item-spacing/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "ansi-regex": {
+ "node_modules/remark-lint-list-item-spacing/node_modules/vfile": {
"version": "6.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
- "dev": true
- },
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
- "requires": {
- "color-convert": "^2.0.1"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "anymatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
- "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
+ "node_modules/remark-lint-list-item-spacing/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
- "requires": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
- },
- "aria-query": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz",
- "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==",
+ "node_modules/remark-lint-maximum-heading-length": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-maximum-heading-length/-/remark-lint-maximum-heading-length-4.1.1.tgz",
+ "integrity": "sha512-99yonukJ+e0uhx0zGH4uq6H9mhO7FA1ufmuToODH1N+X3ja61Grvlvvlq9UbP9+gbfbWgN97QGKPaTlE29FpaQ==",
"dev": true,
- "peer": true,
- "requires": {
- "@babel/runtime": "^7.10.2",
- "@babel/runtime-corejs3": "^7.10.2"
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "array-includes": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz",
- "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==",
+ "node_modules/remark-lint-maximum-heading-length/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1",
- "get-intrinsic": "^1.1.1",
- "is-string": "^1.0.7"
+ "dependencies": {
+ "@types/unist": "*"
}
},
- "array.prototype.flat": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz",
- "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==",
+ "node_modules/remark-lint-maximum-heading-length/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-maximum-heading-length/node_modules/mdast-util-to-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
+ "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
"dev": true,
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.0"
+ "dependencies": {
+ "@types/mdast": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "array.prototype.flatmap": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz",
- "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==",
+ "node_modules/remark-lint-maximum-heading-length/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
- "peer": true,
- "requires": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "ast-types-flow": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
- "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=",
+ "node_modules/remark-lint-maximum-heading-length/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "axe-core": {
- "version": "4.3.5",
- "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.3.5.tgz",
- "integrity": "sha512-WKTW1+xAzhMS5dJsxWkliixlO/PqC4VhmO9T4juNYcaTg9jzWiJsou6m5pxWYGfigWbwzJWeFY6z47a+4neRXA==",
+ "node_modules/remark-lint-maximum-heading-length/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "axobject-query": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
- "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==",
+ "node_modules/remark-lint-maximum-heading-length/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
- "peer": true
- },
- "bail": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz",
- "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==",
- "dev": true
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dev": true
+ "node_modules/remark-lint-maximum-heading-length/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
- "dev": true
+ "node_modules/remark-lint-maximum-heading-length/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "node_modules/remark-lint-maximum-line-length": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-4.0.1.tgz",
+ "integrity": "sha512-hQlh8UrRfhkO4FU7z7t1Bu5ethj1y2iBncO5AOWF38RAmlHaZdB2lQxNA8IvUZITGJYpT1aThdFTEf+58lv08Q==",
"dev": true,
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "node_modules/remark-lint-maximum-line-length/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
- "requires": {
- "fill-range": "^7.0.1"
+ "dependencies": {
+ "@types/unist": "*"
}
},
- "buffer-from": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+ "node_modules/remark-lint-maximum-line-length/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
"dev": true
},
- "builtins": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/builtins/-/builtins-4.0.0.tgz",
- "integrity": "sha512-qC0E2Dxgou1IHhvJSLwGDSTvokbRovU5zZFuDY6oY8Y2lF3nGt5Ad8YZK7GMtqzY84Wu7pXTPeHQeHcXSXsRhw==",
+ "node_modules/remark-lint-maximum-line-length/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
- "requires": {
- "semver": "^7.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "cacheable-request": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
- "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
+ "node_modules/remark-lint-maximum-line-length/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
- "requires": {
- "clone-response": "^1.0.2",
- "get-stream": "^5.1.0",
- "http-cache-semantics": "^4.0.0",
- "keyv": "^3.0.0",
- "lowercase-keys": "^2.0.0",
- "normalize-url": "^4.1.0",
- "responselike": "^1.0.2"
- },
"dependencies": {
- "get-stream": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
- "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
- "dev": true,
- "requires": {
- "pump": "^3.0.0"
- }
- },
- "lowercase-keys": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
- "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
- "dev": true
- }
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "node_modules/remark-lint-maximum-line-length/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
"dev": true,
- "peer": true,
- "requires": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "node_modules/remark-lint-maximum-line-length/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
- "peer": true
- },
- "camelcase": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
- "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
- "dev": true
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "node_modules/remark-lint-maximum-line-length/node_modules/unist-util-visit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
"dev": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "character-entities": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.1.tgz",
- "integrity": "sha512-OzmutCf2Kmc+6DrFrrPS8/tDh2+DpnrfzdICHWhcVC9eOd0N1PXmQEE1a8iM4IziIAG+8tmTq3K+oo0ubH6RRQ==",
- "dev": true
- },
- "check-links": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/check-links/-/check-links-1.1.8.tgz",
- "integrity": "sha512-lxt1EeQ1CVkmiZzPfbPufperYK0t7MvhdLs3zlRH9areA6NVT1tcGymAdJONolNWQBdCFU/sek59RpeLmVHCnw==",
+ "node_modules/remark-lint-maximum-line-length/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
- "requires": {
- "got": "^9.6.0",
- "is-relative-url": "^2.0.0",
- "p-map": "^2.0.0",
- "p-memoize": "^2.1.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "chokidar": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz",
- "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==",
+ "node_modules/remark-lint-maximum-line-length/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
- "requires": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "fsevents": "~2.3.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "clean-stack": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
- "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
- "dev": true
- },
- "clone-response": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
- "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
+ "node_modules/remark-lint-no-blockquote-without-marker": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-6.0.1.tgz",
+ "integrity": "sha512-b4IOkNcG7C16HYAdKUeAhO7qPt45m+v7SeYbVrqvbSFtlD3EUBL8fgHRgLK1mdujFXDP1VguOEMx+Txv8JOT4w==",
"dev": true,
- "requires": {
- "mimic-response": "^1.0.0"
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-directive": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-location": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "co": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/co/-/co-3.1.0.tgz",
- "integrity": "sha1-TqVOpaCJOBUxheFSEMaNkJK8G3g=",
- "dev": true
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "node_modules/remark-lint-no-blockquote-without-marker/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
- "requires": {
- "color-name": "~1.1.4"
+ "dependencies": {
+ "@types/unist": "*"
}
},
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "commander": {
- "version": "2.20.3",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
- "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
- "dev": true
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "node_modules/remark-lint-no-blockquote-without-marker/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
"dev": true
},
- "concat-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz",
- "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==",
+ "node_modules/remark-lint-no-blockquote-without-marker/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
- "requires": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^3.0.2",
- "typedarray": "^0.0.6"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "core-js-pure": {
- "version": "3.20.2",
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.2.tgz",
- "integrity": "sha512-CmWHvSKn2vNL6p6StNp1EmMIfVY/pqn3JLAjfZQ8WZGPOlGoO92EkX9/Mk81i6GxvoPXjUqEQnpM3rJ5QxxIOg==",
+ "node_modules/remark-lint-no-blockquote-without-marker/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "node_modules/remark-lint-no-blockquote-without-marker/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
"dev": true,
- "peer": true,
- "requires": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "damerau-levenshtein": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
- "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==",
+ "node_modules/remark-lint-no-blockquote-without-marker/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "debug": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
- "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
+ "node_modules/remark-lint-no-blockquote-without-marker/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
- "requires": {
- "ms": "2.1.2"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "decode-named-character-reference": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.1.tgz",
- "integrity": "sha512-YV/0HQHreRwKb7uBopyIkLG17jG6Sv2qUchk9qSoVJ2f+flwRsPNBO0hAnjt6mTNYUT+vw9Gy2ihXg4sUWPi2w==",
+ "node_modules/remark-lint-no-blockquote-without-marker/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
- "requires": {
- "character-entities": "^2.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "decompress-response": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
- "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
+ "node_modules/remark-lint-no-consecutive-blank-lines": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-5.0.1.tgz",
+ "integrity": "sha512-yLtYCrEBtGDao4ozmZruRzjMYAcBVFK69PoYjPfNwFO8pQ/LPt8KCq6oyg1ronNyRbDYEGqVdLIHcT/zL3LjPA==",
"dev": true,
- "requires": {
- "mimic-response": "^1.0.0"
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-directive": "^3.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "deep-is": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "@types/unist": "*"
+ }
},
- "defer-to-connect": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
- "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==",
+ "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
"dev": true
},
- "define-properties": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
- "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
- "peer": true,
- "requires": {
- "object-keys": "^1.0.12"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "dequal": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.2.tgz",
- "integrity": "sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==",
- "dev": true
+ "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "diff": {
+ "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/unist-util-position": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
- "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
- "dev": true
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "dns-packet": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.3.1.tgz",
- "integrity": "sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw==",
+ "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
- "requires": {
- "@leichtgewicht/ip-codec": "^2.0.1"
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "dns-socket": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/dns-socket/-/dns-socket-4.2.2.tgz",
- "integrity": "sha512-BDeBd8najI4/lS00HSKpdFia+OvUMytaVjfzR9n5Lq8MlZRSvtbI+uLtx1+XmQFls5wFU9dssccTmQQ6nfpjdg==",
+ "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
- "requires": {
- "dns-packet": "^5.2.4"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "doctrine": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
- "peer": true,
- "requires": {
- "esutils": "^2.0.2"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "duplexer3": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
- "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
- "dev": true
+ "node_modules/remark-lint-no-dead-urls": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-dead-urls/-/remark-lint-no-dead-urls-2.0.1.tgz",
+ "integrity": "sha512-8+uY2GWENktvnTnmDHsAW/DxuPiAmZiKoW5HGuCrGmlqEVh4jPZJ2IGbQgfpyrMKIwp32NYo7Jt+aKb52QJ6sQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "dead-or-alive": "^1.0.0",
+ "devlop": "^1.0.0",
+ "is-online": "^11.0.0",
+ "p-all": "^5.0.0",
+ "p-limit": "^6.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "e-prime": {
- "version": "0.10.4",
- "resolved": "https://registry.npmjs.org/e-prime/-/e-prime-0.10.4.tgz",
- "integrity": "sha512-tzBmM2mFSnAq5BuxPSyin6qXb3yMe1wufJN7L7ZPcEWS5S+jI2dhKQEoqHVEcSMMXo/j5lcWpX5jzA6wLSmX6w==",
+ "node_modules/remark-lint-no-dead-urls/node_modules/@types/mdast": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
+ "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-lint-no-dead-urls/node_modules/@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
"dev": true
},
- "eastasianwidth": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
- "dev": true
- },
- "emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
- "dev": true
- },
- "end-of-stream": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
- "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "node_modules/remark-lint-no-dead-urls/node_modules/unified": {
+ "version": "11.0.5",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz",
+ "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==",
"dev": true,
- "requires": {
- "once": "^1.4.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "enquirer": {
- "version": "2.3.6",
- "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
- "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
+ "node_modules/remark-lint-no-dead-urls/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
- "peer": true,
- "requires": {
- "ansi-colors": "^4.1.1"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "node_modules/remark-lint-no-dead-urls/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
- "requires": {
- "is-arrayish": "^0.2.1"
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "es-abstract": {
- "version": "1.19.1",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz",
- "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==",
+ "node_modules/remark-lint-no-dead-urls/node_modules/unist-util-visit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
"dev": true,
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.1.1",
- "get-symbol-description": "^1.0.0",
- "has": "^1.0.3",
- "has-symbols": "^1.0.2",
- "internal-slot": "^1.0.3",
- "is-callable": "^1.2.4",
- "is-negative-zero": "^2.0.1",
- "is-regex": "^1.1.4",
- "is-shared-array-buffer": "^1.0.1",
- "is-string": "^1.0.7",
- "is-weakref": "^1.0.1",
- "object-inspect": "^1.11.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.2",
- "string.prototype.trimend": "^1.0.4",
- "string.prototype.trimstart": "^1.0.4",
- "unbox-primitive": "^1.0.1"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "node_modules/remark-lint-no-dead-urls/node_modules/vfile": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz",
+ "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
"dev": true,
- "peer": true,
- "requires": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "node_modules/remark-lint-no-dead-urls/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "eslint": {
- "version": "8.6.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.6.0.tgz",
- "integrity": "sha512-UvxdOJ7mXFlw7iuHZA4jmzPaUqIw54mZrv+XPYKNbKdLR0et4rf60lIZUU9kiNtnzzMzGWxMV+tQ7uG7JG8DPw==",
+ "node_modules/remark-lint-no-duplicate-definitions": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-definitions/-/remark-lint-no-duplicate-definitions-4.0.1.tgz",
+ "integrity": "sha512-Ek+A/xDkv5Nn+BXCFmf+uOrFSajCHj6CjhsHjtROgVUeEPj726yYekDBoDRA0Y3+z+U30AsJoHgf/9Jj1IFSug==",
"dev": true,
- "peer": true,
- "requires": {
- "@eslint/eslintrc": "^1.0.5",
- "@humanwhocodes/config-array": "^0.9.2",
- "ajv": "^6.10.0",
- "chalk": "^4.0.0",
- "cross-spawn": "^7.0.2",
- "debug": "^4.3.2",
- "doctrine": "^3.0.0",
- "enquirer": "^2.3.5",
- "escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.1.0",
- "eslint-utils": "^3.0.0",
- "eslint-visitor-keys": "^3.1.0",
- "espree": "^9.3.0",
- "esquery": "^1.4.0",
- "esutils": "^2.0.2",
- "fast-deep-equal": "^3.1.3",
- "file-entry-cache": "^6.0.1",
- "functional-red-black-tree": "^1.0.1",
- "glob-parent": "^6.0.1",
- "globals": "^13.6.0",
- "ignore": "^4.0.6",
- "import-fresh": "^3.0.0",
- "imurmurhash": "^0.1.4",
- "is-glob": "^4.0.0",
- "js-yaml": "^4.1.0",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.4.1",
- "lodash.merge": "^4.6.2",
- "minimatch": "^3.0.4",
- "natural-compare": "^1.4.0",
- "optionator": "^0.9.1",
- "progress": "^2.0.0",
- "regexpp": "^3.2.0",
- "semver": "^7.2.1",
- "strip-ansi": "^6.0.1",
- "strip-json-comments": "^3.1.0",
- "text-table": "^0.2.0",
- "v8-compile-cache": "^2.0.3"
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
},
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-duplicate-definitions/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
"dependencies": {
- "ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
- "peer": true
- },
- "glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "dev": true,
- "peer": true,
- "requires": {
- "is-glob": "^4.0.3"
- }
- },
- "ignore": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
- "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
- "dev": true,
- "peer": true
- },
- "strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "peer": true,
- "requires": {
- "ansi-regex": "^5.0.1"
- }
- }
+ "@types/unist": "*"
}
},
- "eslint-import-resolver-node": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz",
- "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==",
+ "node_modules/remark-lint-no-duplicate-definitions/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-no-duplicate-definitions/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
- "peer": true,
- "requires": {
- "debug": "^3.2.7",
- "resolve": "^1.20.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
},
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-duplicate-definitions/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
"dependencies": {
- "debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dev": true,
- "peer": true,
- "requires": {
- "ms": "^2.1.1"
- }
- }
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "eslint-module-utils": {
- "version": "2.7.2",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz",
- "integrity": "sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg==",
+ "node_modules/remark-lint-no-duplicate-definitions/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
- "peer": true,
- "requires": {
- "debug": "^3.2.7",
- "find-up": "^2.1.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0"
},
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-duplicate-definitions/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
"dependencies": {
- "debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dev": true,
- "peer": true,
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
- "dev": true,
- "peer": true,
- "requires": {
- "locate-path": "^2.0.0"
- }
- },
- "locate-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
- "dev": true,
- "peer": true,
- "requires": {
- "p-locate": "^2.0.0",
- "path-exists": "^3.0.0"
- }
- },
- "p-limit": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
- "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
- "dev": true,
- "peer": true,
- "requires": {
- "p-try": "^1.0.0"
- }
- },
- "p-locate": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
- "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
- "dev": true,
- "peer": true,
- "requires": {
- "p-limit": "^1.1.0"
- }
- },
- "p-try": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
- "dev": true,
- "peer": true
- }
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "eslint-plugin-import": {
- "version": "2.25.4",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz",
- "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==",
+ "node_modules/remark-lint-no-duplicate-definitions/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
- "peer": true,
- "requires": {
- "array-includes": "^3.1.4",
- "array.prototype.flat": "^1.2.5",
- "debug": "^2.6.9",
- "doctrine": "^2.1.0",
- "eslint-import-resolver-node": "^0.3.6",
- "eslint-module-utils": "^2.7.2",
- "has": "^1.0.3",
- "is-core-module": "^2.8.0",
- "is-glob": "^4.0.3",
- "minimatch": "^3.0.4",
- "object.values": "^1.1.5",
- "resolve": "^1.20.0",
- "tsconfig-paths": "^3.12.0"
- },
"dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "peer": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
- "dev": true,
- "peer": true,
- "requires": {
- "esutils": "^2.0.2"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "dev": true,
- "peer": true
- }
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "eslint-plugin-jsx-a11y": {
- "version": "6.5.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz",
- "integrity": "sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==",
+ "node_modules/remark-lint-no-duplicate-headings": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-headings/-/remark-lint-no-duplicate-headings-4.0.1.tgz",
+ "integrity": "sha512-6lggqnpIe5FepikjYF2me3ovKV4oD/rAz8WmwVbLR2cLkce1iH+PB7jyxk/A2gQQqrDcIlRMA5Ct2Yj56cEwhQ==",
"dev": true,
- "peer": true,
- "requires": {
- "@babel/runtime": "^7.16.3",
- "aria-query": "^4.2.2",
- "array-includes": "^3.1.4",
- "ast-types-flow": "^0.0.7",
- "axe-core": "^4.3.5",
- "axobject-query": "^2.2.0",
- "damerau-levenshtein": "^1.0.7",
- "emoji-regex": "^9.2.2",
- "has": "^1.0.3",
- "jsx-ast-utils": "^3.2.1",
- "language-tags": "^1.0.5",
- "minimatch": "^3.0.4"
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "eslint-plugin-react": {
- "version": "7.28.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.28.0.tgz",
- "integrity": "sha512-IOlFIRHzWfEQQKcAD4iyYDndHwTQiCMcJVJjxempf203jnNLUnW34AXLrV33+nEXoifJE2ZEGmcjKPL8957eSw==",
+ "node_modules/remark-lint-no-duplicate-headings/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
- "peer": true,
- "requires": {
- "array-includes": "^3.1.4",
- "array.prototype.flatmap": "^1.2.5",
- "doctrine": "^2.1.0",
- "estraverse": "^5.3.0",
- "jsx-ast-utils": "^2.4.1 || ^3.0.0",
- "minimatch": "^3.0.4",
- "object.entries": "^1.1.5",
- "object.fromentries": "^2.0.5",
- "object.hasown": "^1.1.0",
- "object.values": "^1.1.5",
- "prop-types": "^15.7.2",
- "resolve": "^2.0.0-next.3",
- "semver": "^6.3.0",
- "string.prototype.matchall": "^4.0.6"
- },
"dependencies": {
- "doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
- "dev": true,
- "peer": true,
- "requires": {
- "esutils": "^2.0.2"
- }
- },
- "resolve": {
- "version": "2.0.0-next.3",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz",
- "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==",
- "dev": true,
- "peer": true,
- "requires": {
- "is-core-module": "^2.2.0",
- "path-parse": "^1.0.6"
- }
- },
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true,
- "peer": true
- }
+ "@types/unist": "*"
}
},
- "eslint-plugin-react-hooks": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz",
- "integrity": "sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==",
+ "node_modules/remark-lint-no-duplicate-headings/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-no-duplicate-headings/node_modules/mdast-util-to-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
+ "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
"dev": true,
- "peer": true,
- "requires": {}
+ "dependencies": {
+ "@types/mdast": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "eslint-scope": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz",
- "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==",
+ "node_modules/remark-lint-no-duplicate-headings/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
- "peer": true,
- "requires": {
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "eslint-utils": {
+ "node_modules/remark-lint-no-duplicate-headings/node_modules/unified-lint-rule": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
- "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
- "peer": true,
- "requires": {
- "eslint-visitor-keys": "^2.0.0"
- },
"dependencies": {
- "eslint-visitor-keys": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
- "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
- "dev": true,
- "peer": true
- }
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "eslint-visitor-keys": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz",
- "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==",
+ "node_modules/remark-lint-no-duplicate-headings/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "espree": {
- "version": "9.3.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz",
- "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==",
+ "node_modules/remark-lint-no-duplicate-headings/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
- "peer": true,
- "requires": {
- "acorn": "^8.7.0",
- "acorn-jsx": "^5.3.1",
- "eslint-visitor-keys": "^3.1.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "esquery": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
- "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
+ "node_modules/remark-lint-no-duplicate-headings/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
- "peer": true,
- "requires": {
- "estraverse": "^5.1.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "node_modules/remark-lint-no-emphasis-as-heading": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-emphasis-as-heading/-/remark-lint-no-emphasis-as-heading-4.0.1.tgz",
+ "integrity": "sha512-zzI/C330qdKO9FB3h6IUtOG36FSrS5nfJ7qxp0atXGYtHyg+Ag7dPC/0FzchOVsxofQm0QTstVoIARt/9TiN5g==",
"dev": true,
- "peer": true,
- "requires": {
- "estraverse": "^5.2.0"
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true,
- "peer": true
- },
- "esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "node_modules/remark-lint-no-emphasis-as-heading/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "@types/unist": "*"
+ }
},
- "extend": {
+ "node_modules/remark-lint-no-emphasis-as-heading/node_modules/@types/unist": {
"version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
"dev": true
},
- "fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
- "dev": true,
- "peer": true
- },
- "fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "node_modules/remark-lint-no-emphasis-as-heading/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+ "node_modules/remark-lint-no-emphasis-as-heading/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "fault": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz",
- "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==",
+ "node_modules/remark-lint-no-emphasis-as-heading/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
- "requires": {
- "format": "^0.2.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "figgy-pudding": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz",
- "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==",
- "dev": true
- },
- "file-entry-cache": {
+ "node_modules/remark-lint-no-emphasis-as-heading/node_modules/vfile": {
"version": "6.0.1",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
- "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
- "peer": true,
- "requires": {
- "flat-cache": "^3.0.4"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "node_modules/remark-lint-no-emphasis-as-heading/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
- "requires": {
- "to-regex-range": "^5.0.1"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "node_modules/remark-lint-no-empty-sections": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-empty-sections/-/remark-lint-no-empty-sections-4.0.0.tgz",
+ "integrity": "sha512-Tx1nCu7Dq3dsJ500402sSvM0uVK/6khSuEjx8K8u9aHN+Y4vjL6h88xVzdzCmZq2J2yqyFnvMjG1y7lQv+DRvg==",
"dev": true,
- "requires": {
- "locate-path": "^3.0.0"
+ "dependencies": {
+ "mdast-util-to-string": "^1.0.2",
+ "unified-lint-rule": "^1.0.0",
+ "unist-util-visit": "^1.0.0"
}
},
- "flat-cache": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
- "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "node_modules/remark-lint-no-empty-sections/node_modules/mdast-util-to-string": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz",
+ "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==",
"dev": true,
- "peer": true,
- "requires": {
- "flatted": "^3.1.0",
- "rimraf": "^3.0.2"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "flatted": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz",
- "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==",
+ "node_modules/remark-lint-no-empty-sections/node_modules/unified-lint-rule": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-1.0.6.tgz",
+ "integrity": "sha512-YPK15YBFwnsVorDFG/u0cVVQN5G2a3V8zv5/N6KN3TCG+ajKtaALcy7u14DCSrJI+gZeyYquFL9cioJXOGXSvg==",
"dev": true,
- "peer": true
- },
- "format": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz",
- "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=",
- "dev": true
+ "dependencies": {
+ "wrapped": "^1.0.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "node_modules/remark-lint-no-empty-sections/node_modules/unist-util-is": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
+ "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==",
"dev": true
},
- "fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "dev": true,
- "optional": true
- },
- "function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true,
- "peer": true
- },
- "functional-red-black-tree": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
- "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
+ "node_modules/remark-lint-no-empty-sections/node_modules/unist-util-visit": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
+ "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "unist-util-visit-parents": "^2.0.0"
+ }
},
- "get-intrinsic": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
- "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
+ "node_modules/remark-lint-no-empty-sections/node_modules/unist-util-visit-parents": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
+ "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
"dev": true,
- "peer": true,
- "requires": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1"
+ "dependencies": {
+ "unist-util-is": "^3.0.0"
}
},
- "get-stream": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
- "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "node_modules/remark-lint-no-empty-url": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-empty-url/-/remark-lint-no-empty-url-4.0.1.tgz",
+ "integrity": "sha512-FSQIO+Q63kNNSUfbvvWPz6ES4q1gJIc4aMjohch9bfKwcv6wWZc6UkjlMMi823I124p6onrY/F8KKECv06H5YQ==",
"dev": true,
- "requires": {
- "pump": "^3.0.0"
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "get-symbol-description": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
- "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
+ "node_modules/remark-lint-no-empty-url/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.1"
+ "dependencies": {
+ "@types/unist": "*"
}
},
- "github-slugger": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.4.0.tgz",
- "integrity": "sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ==",
+ "node_modules/remark-lint-no-empty-url/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
"dev": true
},
- "glob": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
- "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
+ "node_modules/remark-lint-no-empty-url/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "node_modules/remark-lint-no-empty-url/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
- "requires": {
- "is-glob": "^4.0.1"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "globals": {
- "version": "13.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz",
- "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==",
+ "node_modules/remark-lint-no-empty-url/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
- "peer": true,
- "requires": {
- "type-fest": "^0.20.2"
+ "dependencies": {
+ "@types/unist": "^3.0.0"
},
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-empty-url/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
"dependencies": {
- "type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
- "dev": true,
- "peer": true
- }
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "got": {
- "version": "9.6.0",
- "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
- "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
+ "node_modules/remark-lint-no-empty-url/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
- "requires": {
- "@sindresorhus/is": "^0.14.0",
- "@szmarczak/http-timer": "^1.1.2",
- "cacheable-request": "^6.0.0",
- "decompress-response": "^3.3.0",
- "duplexer3": "^0.1.4",
- "get-stream": "^4.1.0",
- "lowercase-keys": "^1.0.1",
- "mimic-response": "^1.0.1",
- "p-cancelable": "^1.0.0",
- "to-readable-stream": "^1.0.0",
- "url-parse-lax": "^3.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "node_modules/remark-lint-no-file-name-articles": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-3.0.1.tgz",
+ "integrity": "sha512-h31ZDDJV2T6g9WLBrXg1CJ1m8M170O/tlDPAEPGCa/rxwKvMcfum4yicaot0ZKbUZ1uEPjVSUPDeo3sU0zciCQ==",
"dev": true,
- "peer": true,
- "requires": {
- "function-bind": "^1.1.1"
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "has-bigints": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz",
- "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==",
+ "node_modules/remark-lint-no-file-name-articles/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "@types/unist": "*"
+ }
},
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "node_modules/remark-lint-no-file-name-articles/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
"dev": true
},
- "has-symbols": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
- "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
+ "node_modules/remark-lint-no-file-name-articles/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "has-tostringtag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
- "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
+ "node_modules/remark-lint-no-file-name-articles/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
- "peer": true,
- "requires": {
- "has-symbols": "^1.0.2"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "hosted-git-info": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
- "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
+ "node_modules/remark-lint-no-file-name-articles/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
- "requires": {
- "lru-cache": "^6.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "http-cache-semantics": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
- "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
- "dev": true
- },
- "ignore": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
- "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
- "dev": true
- },
- "import-fresh": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "node_modules/remark-lint-no-file-name-articles/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
- "peer": true,
- "requires": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "import-meta-resolve": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-1.1.1.tgz",
- "integrity": "sha512-JiTuIvVyPaUg11eTrNDx5bgQ/yMKMZffc7YSjvQeSMXy58DO2SQ8BtAf3xteZvmzvjYh14wnqNjL8XVeDy2o9A==",
+ "node_modules/remark-lint-no-file-name-articles/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
- "requires": {
- "builtins": "^4.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "node_modules/remark-lint-no-file-name-consecutive-dashes": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-3.0.1.tgz",
+ "integrity": "sha512-qGJRZ81sowEjv1dBodbHZ29pDZbrFpxiQQ6gBvkkHkkoYPekdnr8iUxmV38HcqH8+JNW1O4ELr+m71AA9/34Mw==",
"dev": true,
- "peer": true
- },
- "indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
- "dev": true
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "node_modules/remark-lint-no-file-name-consecutive-dashes/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
- "requires": {
- "once": "^1.3.0",
- "wrappy": "1"
+ "dependencies": {
+ "@types/unist": "*"
}
},
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "dev": true
- },
- "ini": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
+ "node_modules/remark-lint-no-file-name-consecutive-dashes/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
"dev": true
},
- "internal-slot": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
- "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
+ "node_modules/remark-lint-no-file-name-consecutive-dashes/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
- "peer": true,
- "requires": {
- "get-intrinsic": "^1.1.0",
- "has": "^1.0.3",
- "side-channel": "^1.0.4"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "ip-regex": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz",
- "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==",
- "dev": true
- },
- "is-absolute-url": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
- "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=",
- "dev": true
- },
- "is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
- "dev": true
- },
- "is-bigint": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
- "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "node_modules/remark-lint-no-file-name-consecutive-dashes/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
- "peer": true,
- "requires": {
- "has-bigints": "^1.0.1"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "node_modules/remark-lint-no-file-name-consecutive-dashes/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
- "requires": {
- "binary-extensions": "^2.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "is-boolean-object": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
- "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
+ "node_modules/remark-lint-no-file-name-consecutive-dashes/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "is-buffer": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
- "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==",
- "dev": true
- },
- "is-callable": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz",
- "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==",
+ "node_modules/remark-lint-no-file-name-consecutive-dashes/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "is-core-module": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz",
- "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==",
+ "node_modules/remark-lint-no-file-name-irregular-characters": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-irregular-characters/-/remark-lint-no-file-name-irregular-characters-3.0.1.tgz",
+ "integrity": "sha512-kNm16eDnPqbN05W0RLIedHi40YzHf1esPHbNKv12AljKWptdCTS72uGjAbqUSZ48dRoKtJzL0HJ0OAqXIWUyxA==",
"dev": true,
- "peer": true,
- "requires": {
- "has": "^1.0.3"
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "is-date-object": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
- "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+ "node_modules/remark-lint-no-file-name-irregular-characters/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
- "peer": true,
- "requires": {
- "has-tostringtag": "^1.0.0"
+ "dependencies": {
+ "@types/unist": "*"
}
},
- "is-empty": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/is-empty/-/is-empty-1.2.0.tgz",
- "integrity": "sha1-3pu1snhzigWgsJpX4ftNSjQan2s=",
+ "node_modules/remark-lint-no-file-name-irregular-characters/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
"dev": true
},
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
- "dev": true
+ "node_modules/remark-lint-no-file-name-irregular-characters/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "node_modules/remark-lint-no-file-name-irregular-characters/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
- "requires": {
- "is-extglob": "^2.1.1"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "is-ip": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz",
- "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==",
+ "node_modules/remark-lint-no-file-name-irregular-characters/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
- "requires": {
- "ip-regex": "^4.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "is-negative-zero": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
- "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
+ "node_modules/remark-lint-no-file-name-irregular-characters/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true
+ "node_modules/remark-lint-no-file-name-irregular-characters/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "is-number-object": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz",
- "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==",
+ "node_modules/remark-lint-no-file-name-mixed-case": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-mixed-case/-/remark-lint-no-file-name-mixed-case-3.0.1.tgz",
+ "integrity": "sha512-cXVY0gM6DIHHK+mUhQVZ/WLh4cNfzEDpM54LNJBnflR9n9r6eNLR3JlWFRviTL4xRrQ5FXisBSlBa87BquiFVA==",
"dev": true,
- "peer": true,
- "requires": {
- "has-tostringtag": "^1.0.0"
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "is-online": {
- "version": "8.5.1",
- "resolved": "https://registry.npmjs.org/is-online/-/is-online-8.5.1.tgz",
- "integrity": "sha512-RKyTQx/rJqw2QOXHwy7TmXdlkpe0Hhj7GBsr6TQJaj4ebNOfameZCMspU5vYbwBBzJ2brWArdSvNVox6T6oCTQ==",
+ "node_modules/remark-lint-no-file-name-mixed-case/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
- "requires": {
- "got": "^9.6.0",
- "p-any": "^2.0.0",
- "p-timeout": "^3.0.0",
- "public-ip": "^4.0.1"
+ "dependencies": {
+ "@types/unist": "*"
}
},
- "is-plain-obj": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz",
- "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==",
+ "node_modules/remark-lint-no-file-name-mixed-case/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
"dev": true
},
- "is-regex": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
- "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "node_modules/remark-lint-no-file-name-mixed-case/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "is-relative-url": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-relative-url/-/is-relative-url-2.0.0.tgz",
- "integrity": "sha1-cpAtf+BLPUeS59sV+duEtyBMnO8=",
+ "node_modules/remark-lint-no-file-name-mixed-case/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
- "requires": {
- "is-absolute-url": "^2.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "is-shared-array-buffer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz",
- "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==",
+ "node_modules/remark-lint-no-file-name-mixed-case/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "is-string": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
- "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "node_modules/remark-lint-no-file-name-mixed-case/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
- "peer": true,
- "requires": {
- "has-tostringtag": "^1.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "is-symbol": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
- "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+ "node_modules/remark-lint-no-file-name-mixed-case/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
- "peer": true,
- "requires": {
- "has-symbols": "^1.0.2"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "is-weakref": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
- "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
+ "node_modules/remark-lint-no-file-name-outer-dashes": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-3.0.1.tgz",
+ "integrity": "sha512-QIMrBPZKZ6BwQRPM65HhEHcJv6+wZnZ4z2ikvx2ht40cSmIN7ZTL7wKKJlnpF+4Ioi9XUj+cRHWqEhwJ9LCQIw==",
"dev": true,
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2"
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "node_modules/remark-lint-no-file-name-outer-dashes/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "@types/unist": "*"
+ }
},
- "js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "node_modules/remark-lint-no-file-name-outer-dashes/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
"dev": true
},
- "js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "node_modules/remark-lint-no-file-name-outer-dashes/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
- "requires": {
- "argparse": "^2.0.1"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "json-buffer": {
+ "node_modules/remark-lint-no-file-name-outer-dashes/node_modules/unified-lint-rule": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
- "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=",
- "dev": true
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true
- },
- "json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "node_modules/remark-lint-no-file-name-outer-dashes/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "json-stable-stringify-without-jsonify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
+ "node_modules/remark-lint-no-file-name-outer-dashes/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "json5": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
- "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==",
+ "node_modules/remark-lint-no-file-name-outer-dashes/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
- "requires": {
- "minimist": "^1.2.5"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "jsx-ast-utils": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz",
- "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==",
+ "node_modules/remark-lint-no-heading-content-indent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-heading-content-indent/-/remark-lint-no-heading-content-indent-5.0.1.tgz",
+ "integrity": "sha512-YIWktnZo7M9aw7PGnHdshvetSH3Y0qW+Fm143R66zsk5lLzn1XA5NEd/MtDzP8tSxxV+gcv+bDd5St1QUI4oSQ==",
"dev": true,
- "peer": true,
- "requires": {
- "array-includes": "^3.1.3",
- "object.assign": "^4.1.2"
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "keyv": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
- "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
+ "node_modules/remark-lint-no-heading-content-indent/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
- "requires": {
- "json-buffer": "3.0.0"
+ "dependencies": {
+ "@types/unist": "*"
}
},
- "kleur": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz",
- "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==",
+ "node_modules/remark-lint-no-heading-content-indent/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
"dev": true
},
- "language-subtag-registry": {
- "version": "0.3.21",
- "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz",
- "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==",
+ "node_modules/remark-lint-no-heading-content-indent/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "language-tags": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz",
- "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=",
+ "node_modules/remark-lint-no-heading-content-indent/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
- "peer": true,
- "requires": {
- "language-subtag-registry": "~0.3.2"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "levenshtein-edit-distance": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/levenshtein-edit-distance/-/levenshtein-edit-distance-1.0.0.tgz",
- "integrity": "sha1-iVuvR4zOi1waDSfkXXwdl4pmHkk=",
- "dev": true
- },
- "levn": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "node_modules/remark-lint-no-heading-content-indent/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
"dev": true,
- "peer": true,
- "requires": {
- "prelude-ls": "^1.2.1",
- "type-check": "~0.4.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "libnpmconfig": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/libnpmconfig/-/libnpmconfig-1.2.1.tgz",
- "integrity": "sha512-9esX8rTQAHqarx6qeZqmGQKBNZR5OIbl/Ayr0qQDy3oXja2iFVQQI81R6GZ2a02bSNZ9p3YOGX1O6HHCb1X7kA==",
+ "node_modules/remark-lint-no-heading-content-indent/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
- "requires": {
- "figgy-pudding": "^3.5.1",
- "find-up": "^3.0.0",
- "ini": "^1.3.5"
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "lines-and-columns": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz",
- "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==",
- "dev": true
- },
- "load-plugin": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/load-plugin/-/load-plugin-4.0.1.tgz",
- "integrity": "sha512-4kMi+mOSn/TR51pDo4tgxROHfBHXsrcyEYSGHcJ1o6TtRaP2PsRM5EwmYbj1uiLDvbfA/ohwuSWZJzqGiai8Dw==",
+ "node_modules/remark-lint-no-heading-content-indent/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
- "requires": {
- "import-meta-resolve": "^1.0.0",
- "libnpmconfig": "^1.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "node_modules/remark-lint-no-heading-content-indent/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
- "requires": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "lodash.merge": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "node_modules/remark-lint-no-heading-indent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-heading-indent/-/remark-lint-no-heading-indent-5.0.1.tgz",
+ "integrity": "sha512-R/KkR9Qfh0AM3asadSnQQXMHu6BNZxPbxLI9h9JBPIZM+EtzycDlhaAHbOlQUdaHA5UEANhYENZBLrueH50Cdg==",
"dev": true,
- "peer": true
- },
- "longest-streak": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.0.1.tgz",
- "integrity": "sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg==",
- "dev": true
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "loose-envify": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
- "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "node_modules/remark-lint-no-heading-indent/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
- "peer": true,
- "requires": {
- "js-tokens": "^3.0.0 || ^4.0.0"
+ "dependencies": {
+ "@types/unist": "*"
}
},
- "lowercase-keys": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
- "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
+ "node_modules/remark-lint-no-heading-indent/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
"dev": true
},
- "lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "node_modules/remark-lint-no-heading-indent/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
- "requires": {
- "yallist": "^4.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "map-age-cleaner": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
- "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
+ "node_modules/remark-lint-no-heading-indent/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
- "requires": {
- "p-defer": "^1.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "mdast-comment-marker": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mdast-comment-marker/-/mdast-comment-marker-2.1.0.tgz",
- "integrity": "sha512-/+Cfm8A83PjkqjQDB9iYqHESGuXlriCWAwRGPJjkYmxXrF4r6saxeUlOKNrf+SogTwg9E8uyHRCFHLG6/BAAdA==",
+ "node_modules/remark-lint-no-heading-indent/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
"dev": true,
- "requires": {
- "mdast-util-mdx-expression": "^1.1.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "mdast-util-from-markdown": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz",
- "integrity": "sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==",
+ "node_modules/remark-lint-no-heading-indent/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "@types/unist": "^2.0.0",
- "decode-named-character-reference": "^1.0.0",
- "mdast-util-to-string": "^3.1.0",
- "micromark": "^3.0.0",
- "micromark-util-decode-numeric-character-reference": "^1.0.0",
- "micromark-util-decode-string": "^1.0.0",
- "micromark-util-normalize-identifier": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0",
- "unist-util-stringify-position": "^3.0.0",
- "uvu": "^0.5.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "mdast-util-frontmatter": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-1.0.0.tgz",
- "integrity": "sha512-7itKvp0arEVNpCktOET/eLFAYaZ+0cNjVtFtIPxgQ5tV+3i+D4SDDTjTzPWl44LT59PC+xdx+glNTawBdF98Mw==",
+ "node_modules/remark-lint-no-heading-indent/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
- "requires": {
- "micromark-extension-frontmatter": "^1.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "mdast-util-heading-style": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-heading-style/-/mdast-util-heading-style-2.0.0.tgz",
- "integrity": "sha512-q9+WW2hJduW51LgV2r/fcU5wIt2GLFf0yYHxyi0f2aaxnC63ErBSOAJlhP6nbQ6yeG5rTCozbwOi4QNDPKV0zw==",
+ "node_modules/remark-lint-no-heading-indent/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
- "requires": {
- "@types/mdast": "^3.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "mdast-util-mdx-expression": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.1.1.tgz",
- "integrity": "sha512-RDLRkBFmBKCJl6/fQdxxKL2BqNtoPFoNBmQAlj5ZNKOijIWRKjdhPkeufsUOaexLj+78mhJc+L7d1MYka8/LdQ==",
+ "node_modules/remark-lint-no-heading-like-paragraph": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-heading-like-paragraph/-/remark-lint-no-heading-like-paragraph-4.0.1.tgz",
+ "integrity": "sha512-1sscTjv/F/mK5cNThz6fu57xcLgLdB0rl9vJ3BEwh7U4V5cIKp1tdFQhaguweSBnKCjCVaiU7HsEdle01Ai07Q==",
"dev": true,
- "requires": {
- "@types/estree-jsx": "^0.0.1"
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "mdast-util-to-markdown": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.2.6.tgz",
- "integrity": "sha512-doJZmTEGagHypWvJ8ltinmwUsT9ZaNgNIQW6Gl7jNdsI1QZkTHTimYW561Niy2s8AEPAqEgV0dIh2UOVlSXUJA==",
+ "node_modules/remark-lint-no-heading-like-paragraph/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "@types/unist": "^2.0.0",
- "longest-streak": "^3.0.0",
- "mdast-util-to-string": "^3.0.0",
- "micromark-util-decode-string": "^1.0.0",
- "unist-util-visit": "^4.0.0",
- "zwitch": "^2.0.0"
+ "dependencies": {
+ "@types/unist": "*"
}
},
- "mdast-util-to-nlcst": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/mdast-util-to-nlcst/-/mdast-util-to-nlcst-5.2.1.tgz",
- "integrity": "sha512-Xznpj85MsJnLQjBboajOovT2fAAvbbbmYutpFgzLi9pjZEOkgGzjq+t6fHcge8uzZ5uEkj5pigzw2QrnIVq/kw==",
+ "node_modules/remark-lint-no-heading-like-paragraph/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-no-heading-like-paragraph/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "@types/nlcst": "^1.0.0",
- "@types/unist": "^2.0.0",
- "nlcst-to-string": "^3.0.0",
- "unist-util-position": "^4.0.0",
- "vfile": "^5.0.0",
- "vfile-location": "^4.0.0"
- },
"dependencies": {
- "nlcst-to-string": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-3.1.0.tgz",
- "integrity": "sha512-Y8HQWKw/zrHTCnu2zcFBN1dV6vN0NUG7s5fkEj380G8tF3R+vA2KG+tDl2QoHVQCTHGHVXwoni2RQkDSFQb1PA==",
- "dev": true,
- "requires": {
- "@types/nlcst": "^1.0.0"
- }
- }
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "mdast-util-to-string": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz",
- "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==",
- "dev": true
- },
- "mem": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
- "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
+ "node_modules/remark-lint-no-heading-like-paragraph/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
- "requires": {
- "map-age-cleaner": "^0.1.1",
- "mimic-fn": "^2.0.0",
- "p-is-promise": "^2.0.0"
- },
"dependencies": {
- "mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dev": true
- }
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "micromark": {
- "version": "3.0.10",
- "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.0.10.tgz",
- "integrity": "sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg==",
+ "node_modules/remark-lint-no-heading-like-paragraph/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
"dev": true,
- "requires": {
- "@types/debug": "^4.0.0",
- "debug": "^4.0.0",
- "decode-named-character-reference": "^1.0.0",
- "micromark-core-commonmark": "^1.0.1",
- "micromark-factory-space": "^1.0.0",
- "micromark-util-character": "^1.0.0",
- "micromark-util-chunked": "^1.0.0",
- "micromark-util-combine-extensions": "^1.0.0",
- "micromark-util-decode-numeric-character-reference": "^1.0.0",
- "micromark-util-encode": "^1.0.0",
- "micromark-util-normalize-identifier": "^1.0.0",
- "micromark-util-resolve-all": "^1.0.0",
- "micromark-util-sanitize-uri": "^1.0.0",
- "micromark-util-subtokenize": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.1",
- "uvu": "^0.5.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "micromark-core-commonmark": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz",
- "integrity": "sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==",
+ "node_modules/remark-lint-no-heading-like-paragraph/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
- "requires": {
- "decode-named-character-reference": "^1.0.0",
- "micromark-factory-destination": "^1.0.0",
- "micromark-factory-label": "^1.0.0",
- "micromark-factory-space": "^1.0.0",
- "micromark-factory-title": "^1.0.0",
- "micromark-factory-whitespace": "^1.0.0",
- "micromark-util-character": "^1.0.0",
- "micromark-util-chunked": "^1.0.0",
- "micromark-util-classify-character": "^1.0.0",
- "micromark-util-html-tag-name": "^1.0.0",
- "micromark-util-normalize-identifier": "^1.0.0",
- "micromark-util-resolve-all": "^1.0.0",
- "micromark-util-subtokenize": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.1",
- "uvu": "^0.5.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "micromark-extension-frontmatter": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-1.0.0.tgz",
- "integrity": "sha512-EXjmRnupoX6yYuUJSQhrQ9ggK0iQtQlpi6xeJzVD5xscyAI+giqco5fdymayZhJMbIFecjnE2yz85S9NzIgQpg==",
+ "node_modules/remark-lint-no-heading-like-paragraph/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
- "requires": {
- "fault": "^2.0.0",
- "micromark-util-character": "^1.0.0",
- "micromark-util-symbol": "^1.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "micromark-factory-destination": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz",
- "integrity": "sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==",
+ "node_modules/remark-lint-no-heading-like-paragraph/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
- "requires": {
- "micromark-util-character": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "micromark-factory-label": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz",
- "integrity": "sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==",
+ "node_modules/remark-lint-no-heading-punctuation": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-heading-punctuation/-/remark-lint-no-heading-punctuation-4.0.0.tgz",
+ "integrity": "sha512-7V23C3Q4yX9zEOLZdbv6o8wVxxeWB/F+h9by55zPyk2AwbqF2t2xevnAmN3XFmKZABDTqLwjQxtK6bCVv/S1PQ==",
"dev": true,
- "requires": {
- "micromark-util-character": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0",
- "uvu": "^0.5.0"
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "micromark-factory-space": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz",
- "integrity": "sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==",
+ "node_modules/remark-lint-no-heading-punctuation/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
- "requires": {
- "micromark-util-character": "^1.0.0",
- "micromark-util-types": "^1.0.0"
+ "dependencies": {
+ "@types/unist": "*"
}
},
- "micromark-factory-title": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz",
- "integrity": "sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==",
+ "node_modules/remark-lint-no-heading-punctuation/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-no-heading-punctuation/node_modules/mdast-util-to-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
+ "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
"dev": true,
- "requires": {
- "micromark-factory-space": "^1.0.0",
- "micromark-util-character": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0",
- "uvu": "^0.5.0"
+ "dependencies": {
+ "@types/mdast": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "micromark-factory-whitespace": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz",
- "integrity": "sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==",
+ "node_modules/remark-lint-no-heading-punctuation/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
- "requires": {
- "micromark-factory-space": "^1.0.0",
- "micromark-util-character": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "micromark-util-character": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.1.0.tgz",
- "integrity": "sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==",
+ "node_modules/remark-lint-no-heading-punctuation/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
- "requires": {
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "micromark-util-chunked": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz",
- "integrity": "sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==",
+ "node_modules/remark-lint-no-heading-punctuation/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
- "requires": {
- "micromark-util-symbol": "^1.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "micromark-util-classify-character": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz",
- "integrity": "sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==",
+ "node_modules/remark-lint-no-heading-punctuation/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
- "requires": {
- "micromark-util-character": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "micromark-util-combine-extensions": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz",
- "integrity": "sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==",
+ "node_modules/remark-lint-no-heading-punctuation/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
- "requires": {
- "micromark-util-chunked": "^1.0.0",
- "micromark-util-types": "^1.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "micromark-util-decode-numeric-character-reference": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz",
- "integrity": "sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==",
+ "node_modules/remark-lint-no-literal-urls": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-4.0.1.tgz",
+ "integrity": "sha512-RhTANFkFFXE6bM+WxWcPo2TTPEfkWG3lJZU50ycW7tJJmxUzDNzRed/z80EVJIdGwFa0NntVooLUJp3xrogalQ==",
"dev": true,
- "requires": {
- "micromark-util-symbol": "^1.0.0"
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "micromark-util-character": "^2.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "micromark-util-decode-string": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz",
- "integrity": "sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==",
+ "node_modules/remark-lint-no-literal-urls/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
- "requires": {
- "decode-named-character-reference": "^1.0.0",
- "micromark-util-character": "^1.0.0",
- "micromark-util-decode-numeric-character-reference": "^1.0.0",
- "micromark-util-symbol": "^1.0.0"
+ "dependencies": {
+ "@types/unist": "*"
}
},
- "micromark-util-encode": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz",
- "integrity": "sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==",
- "dev": true
- },
- "micromark-util-html-tag-name": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.0.0.tgz",
- "integrity": "sha512-NenEKIshW2ZI/ERv9HtFNsrn3llSPZtY337LID/24WeLqMzeZhBEE6BQ0vS2ZBjshm5n40chKtJ3qjAbVV8S0g==",
+ "node_modules/remark-lint-no-literal-urls/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
"dev": true
},
- "micromark-util-normalize-identifier": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz",
- "integrity": "sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==",
+ "node_modules/remark-lint-no-literal-urls/node_modules/mdast-util-to-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
+ "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
"dev": true,
- "requires": {
- "micromark-util-symbol": "^1.0.0"
+ "dependencies": {
+ "@types/mdast": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "micromark-util-resolve-all": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz",
- "integrity": "sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==",
+ "node_modules/remark-lint-no-literal-urls/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
- "requires": {
- "micromark-util-types": "^1.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "micromark-util-sanitize-uri": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.0.0.tgz",
- "integrity": "sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg==",
+ "node_modules/remark-lint-no-literal-urls/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
- "requires": {
- "micromark-util-character": "^1.0.0",
- "micromark-util-encode": "^1.0.0",
- "micromark-util-symbol": "^1.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "micromark-util-subtokenize": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz",
- "integrity": "sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==",
+ "node_modules/remark-lint-no-literal-urls/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
"dev": true,
- "requires": {
- "micromark-util-chunked": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0",
- "uvu": "^0.5.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "micromark-util-symbol": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz",
- "integrity": "sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==",
- "dev": true
- },
- "micromark-util-types": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.2.tgz",
- "integrity": "sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==",
- "dev": true
- },
- "mimic-fn": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
- "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
- "dev": true
+ "node_modules/remark-lint-no-literal-urls/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "mimic-response": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
- "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
- "dev": true
+ "node_modules/remark-lint-no-literal-urls/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "node_modules/remark-lint-no-literal-urls/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
- "requires": {
- "brace-expansion": "^1.1.7"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "minimist": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
- "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
- "dev": true
- },
- "mri": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
- "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
- "dev": true
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
+ "node_modules/remark-lint-no-multiple-toplevel-headings": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-4.0.1.tgz",
+ "integrity": "sha512-8sepobIOu3PlDOuMH7jtri+LH4tFNVQU+aqKSkrlNRdp831fYz9S+jA2crTVqWqxVbTwiF96uJWePv8/9qmHnA==",
"dev": true,
- "peer": true
- },
- "nlcst-to-string": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-2.0.4.tgz",
- "integrity": "sha512-3x3jwTd6UPG7vi5k4GEzvxJ5rDA7hVUIRNHPblKuMVP9Z3xmlsd9cgLcpAMkc5uPOBna82EeshROFhsPkbnTZg==",
- "dev": true
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "no-cliches": {
- "version": "0.3.4",
- "resolved": "https://registry.npmjs.org/no-cliches/-/no-cliches-0.3.4.tgz",
- "integrity": "sha512-oUqnng1vhKLaA4GR+OzVbLuZZ7OOguKCtMHxHMiyP8+9mXidKfoCyc030LbAyNI3xcgCHHyitK3Q8wP+w6DwVQ==",
+ "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
- "requires": {}
- },
- "normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true
- },
- "normalize-url": {
- "version": "4.5.1",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
- "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==",
- "dev": true
+ "dependencies": {
+ "@types/unist": "*"
+ }
},
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
"dev": true
},
- "object-inspect": {
- "version": "1.12.0",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz",
- "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==",
- "dev": true,
- "peer": true
- },
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true,
- "peer": true
- },
- "object.assign": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
- "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
- "dev": true,
- "peer": true,
- "requires": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3",
- "has-symbols": "^1.0.1",
- "object-keys": "^1.1.1"
- }
- },
- "object.entries": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz",
- "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==",
+ "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "object.fromentries": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz",
- "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==",
+ "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "object.hasown": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz",
- "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==",
+ "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
- "peer": true,
- "requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1"
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "object.values": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz",
- "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==",
+ "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
- "requires": {
- "wrappy": "1"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "optionator": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
- "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "node_modules/remark-lint-no-reference-like-url": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-reference-like-url/-/remark-lint-no-reference-like-url-4.0.1.tgz",
+ "integrity": "sha512-GXS73779bPnJSqvCfOK2XzGzCWL5ggyk53KE049oOYTS55vmc26PjeW+ykbGfXIazRazZ1DLGaAqNoU9jCnZ4w==",
"dev": true,
- "peer": true,
- "requires": {
- "deep-is": "^0.1.3",
- "fast-levenshtein": "^2.0.6",
- "levn": "^0.4.1",
- "prelude-ls": "^1.2.1",
- "type-check": "^0.4.0",
- "word-wrap": "^1.2.3"
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "p-any": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-any/-/p-any-2.1.0.tgz",
- "integrity": "sha512-JAERcaMBLYKMq+voYw36+x5Dgh47+/o7yuv2oQYuSSUml4YeqJEFznBrY2UeEkoSHqBua6hz518n/PsowTYLLg==",
+ "node_modules/remark-lint-no-reference-like-url/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
- "requires": {
- "p-cancelable": "^2.0.0",
- "p-some": "^4.0.0",
- "type-fest": "^0.3.0"
- },
"dependencies": {
- "p-cancelable": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz",
- "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==",
- "dev": true
- }
+ "@types/unist": "*"
}
},
- "p-cancelable": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
- "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
- "dev": true
- },
- "p-defer": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
- "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=",
- "dev": true
- },
- "p-finally": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
- "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
- "dev": true
- },
- "p-is-promise": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
- "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==",
+ "node_modules/remark-lint-no-reference-like-url/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
"dev": true
},
- "p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "node_modules/remark-lint-no-reference-like-url/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
- "requires": {
- "p-try": "^2.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "p-locate": {
+ "node_modules/remark-lint-no-reference-like-url/node_modules/unified-lint-rule": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
- "requires": {
- "p-limit": "^2.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "p-map": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
- "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
- "dev": true
- },
- "p-memoize": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-memoize/-/p-memoize-2.1.0.tgz",
- "integrity": "sha512-c6+a2iV4JyX0r4+i2IBJYO0r6LZAT2fg/tcB6GQbv1uzZsfsmKT7Ej5DRT1G6Wi7XUJSV2ZiP9+YEtluvhCmkg==",
+ "node_modules/remark-lint-no-reference-like-url/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
"dev": true,
- "requires": {
- "mem": "^4.0.0",
- "mimic-fn": "^1.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "p-some": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-some/-/p-some-4.1.0.tgz",
- "integrity": "sha512-MF/HIbq6GeBqTrTIl5OJubzkGU+qfFhAFi0gnTAK6rgEIJIknEiABHOTtQu4e6JiXjIwuMPMUFQzyHh5QjCl1g==",
+ "node_modules/remark-lint-no-reference-like-url/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
- "requires": {
- "aggregate-error": "^3.0.0",
- "p-cancelable": "^2.0.0"
- },
"dependencies": {
- "p-cancelable": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz",
- "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==",
- "dev": true
- }
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "p-timeout": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz",
- "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==",
+ "node_modules/remark-lint-no-reference-like-url/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
- "requires": {
- "p-finally": "^1.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true
- },
- "parent-module": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
- "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "node_modules/remark-lint-no-reference-like-url/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
- "peer": true,
- "requires": {
- "callsites": "^3.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "parse-json": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-6.0.2.tgz",
- "integrity": "sha512-SA5aMiaIjXkAiBrW/yPgLgQAQg42f7K3ACO+2l/zOvtQBwX58DMUsFJXelW2fx3yMBmWOVkR6j1MGsdSbCA4UA==",
+ "node_modules/remark-lint-no-repeat-punctuation": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-repeat-punctuation/-/remark-lint-no-repeat-punctuation-0.1.4.tgz",
+ "integrity": "sha512-JJduCs4FimdBcR1AB576SqIYOjt+7t8OjTnnlZMvjnw7lzkuL0+nNNHyNXVPaK6jxaLjEUhrH2/smU6vZFUT7g==",
"dev": true,
- "requires": {
- "@babel/code-frame": "^7.16.0",
- "error-ex": "^1.3.2",
- "json-parse-even-better-errors": "^2.3.1",
- "lines-and-columns": "^2.0.2"
+ "dependencies": {
+ "unified-lint-rule": "^1.0.3",
+ "unist-util-map": "^1.0.4",
+ "unist-util-to-list-of-char": "^0.1.3"
}
},
- "passive-voice": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/passive-voice/-/passive-voice-0.1.0.tgz",
- "integrity": "sha1-Fv+RrkC6DpLEPmcXY/3IQqcCcLE=",
- "dev": true
- },
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
- "dev": true
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
- "dev": true
- },
- "path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "node_modules/remark-lint-no-repeat-punctuation/node_modules/unified-lint-rule": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-1.0.6.tgz",
+ "integrity": "sha512-YPK15YBFwnsVorDFG/u0cVVQN5G2a3V8zv5/N6KN3TCG+ajKtaALcy7u14DCSrJI+gZeyYquFL9cioJXOGXSvg==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "wrapped": "^1.0.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "node_modules/remark-lint-no-shell-dollars": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-4.0.1.tgz",
+ "integrity": "sha512-UPE1DNCIkLtnS3YFD065Gkq5lQqfndBDpX8Ct/Zjn7M0/hzCyf9B6tpwCU0I20m9jzhS/CSY6mxYnAiEg+KkFA==",
"dev": true,
- "peer": true
- },
- "picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true
- },
- "pluralize": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz",
- "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==",
- "dev": true
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "collapse-white-space": "^2.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "prelude-ls": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "node_modules/remark-lint-no-shell-dollars/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "@types/unist": "*"
+ }
},
- "prepend-http": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
- "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=",
+ "node_modules/remark-lint-no-shell-dollars/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
"dev": true
},
- "progress": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
- "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+ "node_modules/remark-lint-no-shell-dollars/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "prop-types": {
- "version": "15.8.1",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
- "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
+ "node_modules/remark-lint-no-shell-dollars/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
- "peer": true,
- "requires": {
- "loose-envify": "^1.4.0",
- "object-assign": "^4.1.1",
- "react-is": "^16.13.1"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "propose": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/propose/-/propose-0.0.5.tgz",
- "integrity": "sha1-SKBl2ex9TIZn9AULFcSi2F28pWs=",
+ "node_modules/remark-lint-no-shell-dollars/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
- "requires": {
- "levenshtein-edit-distance": "^1.0.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "public-ip": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/public-ip/-/public-ip-4.0.4.tgz",
- "integrity": "sha512-EJ0VMV2vF6Cu7BIPo3IMW1Maq6ME+fbR0NcPmqDfpfNGIRPue1X8QrGjrg/rfjDkOsIkKHIf2S5FlEa48hFMTA==",
+ "node_modules/remark-lint-no-shell-dollars/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
- "requires": {
- "dns-socket": "^4.2.2",
- "got": "^9.6.0",
- "is-ip": "^3.1.0"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "pump": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
- "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "node_modules/remark-lint-no-shell-dollars/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
- "requires": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "punycode": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
- "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "node_modules/remark-lint-no-shortcut-reference-image": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-4.0.1.tgz",
+ "integrity": "sha512-hQhJ3Dr8ZWRdj7qm6+9vcPpqtGchhENA2UHOmcTraLf6dN1cFATCgY/HbTbRIN6NkG/EEClTgRC1QCokWR2Mmw==",
"dev": true,
- "peer": true
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "node_modules/remark-lint-no-shortcut-reference-image/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "@types/unist": "*"
+ }
},
- "readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "node_modules/remark-lint-no-shortcut-reference-image/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-no-shortcut-reference-image/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "node_modules/remark-lint-no-shortcut-reference-image/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
- "requires": {
- "picomatch": "^2.2.1"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "regenerator-runtime": {
- "version": "0.13.9",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
- "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==",
+ "node_modules/remark-lint-no-shortcut-reference-image/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "regexp.prototype.flags": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz",
- "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==",
+ "node_modules/remark-lint-no-shortcut-reference-image/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
}
},
- "regexpp": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
- "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
+ "node_modules/remark-lint-no-shortcut-reference-image/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
},
- "remark": {
- "version": "14.0.2",
- "resolved": "https://registry.npmjs.org/remark/-/remark-14.0.2.tgz",
- "integrity": "sha512-A3ARm2V4BgiRXaUo5K0dRvJ1lbogrbXnhkJRmD0yw092/Yl0kOCZt1k9ZeElEwkZsWGsMumz6qL5MfNJH9nOBA==",
+ "node_modules/remark-lint-no-shortcut-reference-link": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-4.0.0.tgz",
+ "integrity": "sha512-6jka2Zz3I6G2MvDcKrwADYhTOxHMFMK854u1cfBEIH5/XnCCXROtoqiiDtbZw+NJqbmwsBKvGL4t2gnmEJUmgg==",
"dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "remark-parse": "^10.0.0",
- "remark-stringify": "^10.0.0",
- "unified": "^10.0.0"
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-shortcut-reference-link/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-lint-no-shortcut-reference-link/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-no-shortcut-reference-link/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-shortcut-reference-link/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-shortcut-reference-link/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-shortcut-reference-link/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-shortcut-reference-link/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-table-indentation": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-5.0.1.tgz",
+ "integrity": "sha512-LHw9MGsuilM+3HkbRFZmdSE4T+sziaQzULH5ImYkLH2MLF8GKnAm2mgtveLZcW01wqFV2oEbpF1Y/s/QloXT7w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-location": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-table-indentation/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-lint-no-table-indentation/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-no-table-indentation/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-table-indentation/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-table-indentation/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-table-indentation/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-table-indentation/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-table-indentation/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-tabs": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-tabs/-/remark-lint-no-tabs-4.0.1.tgz",
+ "integrity": "sha512-+lhGUgY3jhTwWn1x+tTIJNy5Fbs2NcYXCobRY7xeszY0VKPCBF2GyELafOVnr+iTmosXLuhZPp5YwNezQKH9IQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "vfile-location": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-tabs/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-lint-no-tabs/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-no-tabs/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-tabs/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-tabs/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-tabs/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-tabs/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-undefined-references": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-undefined-references/-/remark-lint-no-undefined-references-5.0.0.tgz",
+ "integrity": "sha512-O0q8bHpRHK1T85oqO+uep4BkvQnZZp3y+wahDeeLLq9dCJfF56sq6Tt5OOTt1BAOZlpobS3OPQHUiJWYP6hX1w==",
+ "dev": true,
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "collapse-white-space": "^2.0.0",
+ "devlop": "^1.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-location": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-undefined-references/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-lint-no-undefined-references/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-no-undefined-references/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-undefined-references/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-undefined-references/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-undefined-references/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-undefined-references/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-undefined-references/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-unused-definitions": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-unused-definitions/-/remark-lint-no-unused-definitions-4.0.2.tgz",
+ "integrity": "sha512-KRzPmvfq6b3LSEcAQZobAn+5eDfPTle0dPyDEywgPSc3E7MIdRZQenL9UL8iIqHQWK4FvdUD0GX8FXGqu5EuCw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-unused-definitions/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-lint-no-unused-definitions/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-no-unused-definitions/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-unused-definitions/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-unused-definitions/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-unused-definitions/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-unused-definitions/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-ordered-list-marker-style": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-4.0.1.tgz",
+ "integrity": "sha512-vZTAbstcBPbGwJacwldGzdGmKwy5/4r29SZ9nQkME4alEl5B1ReSBlYa8t7QnTSW7+tqvA9Sg71RPadgAKWa4w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "micromark-util-character": "^2.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-ordered-list-marker-style/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-lint-ordered-list-marker-style/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-ordered-list-marker-style/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-ordered-list-marker-style/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-ordered-list-marker-style/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-ordered-list-marker-style/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-ordered-list-marker-style/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-ordered-list-marker-style/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-ordered-list-marker-value": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-value/-/remark-lint-ordered-list-marker-value-4.0.1.tgz",
+ "integrity": "sha512-HQb1MrArvApREC1/I6bkiFlZVDjngsuII29n8E8StnAaHOMN3hVYy6wJ9Uk+O3+X9O8v7fDsZPqFUHSfJhERXQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "micromark-util-character": "^2.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-ordered-list-marker-value/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-lint-ordered-list-marker-value/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-ordered-list-marker-value/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-ordered-list-marker-value/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-ordered-list-marker-value/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-ordered-list-marker-value/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-ordered-list-marker-value/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-ordered-list-marker-value/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-rule-style": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-rule-style/-/remark-lint-rule-style-4.0.1.tgz",
+ "integrity": "sha512-gl1Ft13oTS3dJUCsWZzxD/5dAwI1HON67KU7uNfODD5gXJ8Y11deOWbun190ma7XbYdD7P0l8VT2HeRtEQzrWg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-rule-style/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-lint-rule-style/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-rule-style/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-rule-style/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-rule-style/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-rule-style/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-rule-style/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-rule-style/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-strong-marker": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-strong-marker/-/remark-lint-strong-marker-4.0.1.tgz",
+ "integrity": "sha512-KaGtj/OWEP4eoafevnlp3NsEVwC7yGEjBJ6uFMzfjNoXyjATdfZ2euB/AfKVt/A/FdZeeMeVoAUFH4DL+hScLQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-strong-marker/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-lint-strong-marker/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-strong-marker/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-strong-marker/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-strong-marker/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-strong-marker/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-strong-marker/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-strong-marker/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-table-cell-padding": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-5.1.1.tgz",
+ "integrity": "sha512-6fgVA1iINBoAJaZMOnSsxrF9Qj9+hmCqrsrqZqgJJETjT1ODGH64iAN1/6vHR7dIwmy73d6ysB2WrGyKhVlK3A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-table-cell-padding/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-lint-table-cell-padding/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-table-cell-padding/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-table-cell-padding/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-table-cell-padding/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-table-cell-padding/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-table-cell-padding/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-table-cell-padding/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-table-pipe-alignment": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-table-pipe-alignment/-/remark-lint-table-pipe-alignment-4.1.1.tgz",
+ "integrity": "sha512-9VxivIJaDonrd/Jgkim1oYQ5MIqhWmyJggr2AqtiizwqxT4epRsWmLOz+/sk7PtTGoT/MtwndhlbM3lxuVXFow==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-table-pipe-alignment/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-lint-table-pipe-alignment/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-table-pipe-alignment/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-table-pipe-alignment/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-table-pipe-alignment/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-table-pipe-alignment/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-table-pipe-alignment/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-table-pipe-alignment/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-table-pipes": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-table-pipes/-/remark-lint-table-pipes-5.0.1.tgz",
+ "integrity": "sha512-oOkRC0WRRDwvodfffGafoBFBTGwy9udQgKtxN53apmZpOmaUAxTi833ite0jMo078+LehNftO5bxrElZ9EQUlQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-table-pipes/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-lint-table-pipes/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-table-pipes/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-table-pipes/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-table-pipes/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-table-pipes/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-table-pipes/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-table-pipes/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-unordered-list-marker-style": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-4.0.1.tgz",
+ "integrity": "sha512-HMrVQC0Qbr8ktSy+1lJGRGU10qecL3T14L6s/THEQXR5Tk0wcsLLG0auNvB4r2+H+ClhVO/Vnm1TEosh1OCsfw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-unordered-list-marker-style/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-lint-unordered-list-marker-style/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint-unordered-list-marker-style/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-unordered-list-marker-style/node_modules/unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-unordered-list-marker-style/node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-unordered-list-marker-style/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-unordered-list-marker-style/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-unordered-list-marker-style/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-write-good": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/remark-lint-write-good/-/remark-lint-write-good-1.2.0.tgz",
+ "integrity": "sha512-HYiwM16RRBm979yDb/IVwPe1eFhzA1HATe1WucRiYWS10jcPRgJe9FihH7W5uzQFDqX5aRbTtu/yPdq+hPnYkw==",
+ "dev": true,
+ "dependencies": {
+ "nlcst-to-string": "^2.0.0",
+ "unified-lint-rule": "^1.0.1",
+ "unist-util-visit": "^1.1.1",
+ "write-good": "^1.0.2"
+ }
+ },
+ "node_modules/remark-lint-write-good/node_modules/unified-lint-rule": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-1.0.6.tgz",
+ "integrity": "sha512-YPK15YBFwnsVorDFG/u0cVVQN5G2a3V8zv5/N6KN3TCG+ajKtaALcy7u14DCSrJI+gZeyYquFL9cioJXOGXSvg==",
+ "dev": true,
+ "dependencies": {
+ "wrapped": "^1.0.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-write-good/node_modules/unist-util-is": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
+ "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==",
+ "dev": true
+ },
+ "node_modules/remark-lint-write-good/node_modules/unist-util-visit": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
+ "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
+ "dev": true,
+ "dependencies": {
+ "unist-util-visit-parents": "^2.0.0"
+ }
+ },
+ "node_modules/remark-lint-write-good/node_modules/unist-util-visit-parents": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
+ "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
+ "dev": true,
+ "dependencies": {
+ "unist-util-is": "^3.0.0"
+ }
+ },
+ "node_modules/remark-lint/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-lint/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-lint/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-message-control": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-8.0.0.tgz",
+ "integrity": "sha512-brpzOO+jdyE/mLqvqqvbogmhGxKygjpCUCG/PwSCU43+JZQ+RM+sSzkCWBcYvgF3KIAVNIoPsvXjBkzO7EdsYQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-comment-marker": "^3.0.0",
+ "unified-message-control": "^5.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-message-control/node_modules/@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-message-control/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-message-control/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-message-control/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-message-control/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-parse": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz",
+ "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==",
+ "dev": true,
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "micromark-util-types": "^2.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-parse/node_modules/@types/mdast": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.1.tgz",
+ "integrity": "sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-parse/node_modules/@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "node_modules/remark-parse/node_modules/unified": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.3.tgz",
+ "integrity": "sha512-jlCV402P+YDcFcB2VcN/n8JasOddqIiaxv118wNBoZXEhOn+lYG7BR4Bfg2BwxvlK58dwbuH2w7GX2esAjL6Mg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-parse/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-parse/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-parse/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-preset-lint-consistent": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/remark-preset-lint-consistent/-/remark-preset-lint-consistent-6.0.1.tgz",
+ "integrity": "sha512-SOLdA36UOU1hiGFm6HAqN9+DORGJPVWxU/EvPVkknTr9V4ULhlzHEJ8OVRMVX3jqoy4lrwb4IqiboVz0YLA7+Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "remark-lint": "^10.0.0",
+ "remark-lint-blockquote-indentation": "^4.0.0",
+ "remark-lint-checkbox-character-style": "^5.0.0",
+ "remark-lint-code-block-style": "^4.0.0",
+ "remark-lint-emphasis-marker": "^4.0.0",
+ "remark-lint-fenced-code-marker": "^4.0.0",
+ "remark-lint-heading-style": "^4.0.0",
+ "remark-lint-link-title-style": "^4.0.0",
+ "remark-lint-list-item-content-indent": "^4.0.0",
+ "remark-lint-ordered-list-marker-style": "^4.0.0",
+ "remark-lint-ordered-list-marker-value": "^4.0.0",
+ "remark-lint-rule-style": "^4.0.0",
+ "remark-lint-strong-marker": "^4.0.0",
+ "remark-lint-table-cell-padding": "^5.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-preset-lint-consistent/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-preset-lint-consistent/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-preset-lint-consistent/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-preset-lint-consistent/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-preset-lint-consistent/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-preset-lint-markdown-style-guide": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/remark-preset-lint-markdown-style-guide/-/remark-preset-lint-markdown-style-guide-6.0.1.tgz",
+ "integrity": "sha512-hVCRMC8PZlI9hnXkZdrvg4n4j1aD//xHWj26Q7iFAbDB3JKtW1Ne72P7QNVyppmdrR6Gj84zhG3qphOLo8/i8A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "remark-lint": "^10.0.0",
+ "remark-lint-blockquote-indentation": "^4.0.0",
+ "remark-lint-code-block-style": "^4.0.0",
+ "remark-lint-definition-case": "^4.0.0",
+ "remark-lint-definition-spacing": "^4.0.0",
+ "remark-lint-emphasis-marker": "^4.0.0",
+ "remark-lint-fenced-code-flag": "^4.0.0",
+ "remark-lint-fenced-code-marker": "^4.0.0",
+ "remark-lint-file-extension": "^3.0.0",
+ "remark-lint-final-definition": "^4.0.0",
+ "remark-lint-hard-break-spaces": "^4.0.0",
+ "remark-lint-heading-increment": "^4.0.0",
+ "remark-lint-heading-style": "^4.0.0",
+ "remark-lint-link-title-style": "^4.0.0",
+ "remark-lint-list-item-content-indent": "^4.0.0",
+ "remark-lint-list-item-indent": "^4.0.0",
+ "remark-lint-list-item-spacing": "^5.0.0",
+ "remark-lint-maximum-heading-length": "^4.0.0",
+ "remark-lint-maximum-line-length": "^4.0.0",
+ "remark-lint-no-blockquote-without-marker": "^6.0.0",
+ "remark-lint-no-consecutive-blank-lines": "^5.0.0",
+ "remark-lint-no-duplicate-headings": "^4.0.0",
+ "remark-lint-no-emphasis-as-heading": "^4.0.0",
+ "remark-lint-no-file-name-articles": "^3.0.0",
+ "remark-lint-no-file-name-consecutive-dashes": "^3.0.0",
+ "remark-lint-no-file-name-irregular-characters": "^3.0.0",
+ "remark-lint-no-file-name-mixed-case": "^3.0.0",
+ "remark-lint-no-file-name-outer-dashes": "^3.0.0",
+ "remark-lint-no-heading-punctuation": "^4.0.0",
+ "remark-lint-no-literal-urls": "^4.0.0",
+ "remark-lint-no-multiple-toplevel-headings": "^4.0.0",
+ "remark-lint-no-shell-dollars": "^4.0.0",
+ "remark-lint-no-shortcut-reference-image": "^4.0.0",
+ "remark-lint-no-shortcut-reference-link": "^4.0.0",
+ "remark-lint-no-table-indentation": "^5.0.0",
+ "remark-lint-ordered-list-marker-style": "^4.0.0",
+ "remark-lint-ordered-list-marker-value": "^4.0.0",
+ "remark-lint-rule-style": "^4.0.0",
+ "remark-lint-strong-marker": "^4.0.0",
+ "remark-lint-table-cell-padding": "^5.0.0",
+ "remark-lint-table-pipe-alignment": "^4.0.0",
+ "remark-lint-table-pipes": "^5.0.0",
+ "remark-lint-unordered-list-marker-style": "^4.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-preset-lint-markdown-style-guide/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-preset-lint-markdown-style-guide/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-preset-lint-markdown-style-guide/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-preset-lint-markdown-style-guide/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-preset-lint-markdown-style-guide/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-preset-lint-recommended": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/remark-preset-lint-recommended/-/remark-preset-lint-recommended-7.0.1.tgz",
+ "integrity": "sha512-j1CY5u48PtZl872BQ40uWSQMT3R4gXKp0FUgevMu5gW7hFMtvaCiDq+BfhzeR8XKKiW9nIMZGfIMZHostz5X4g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "remark-lint": "^10.0.0",
+ "remark-lint-final-newline": "^3.0.0",
+ "remark-lint-hard-break-spaces": "^4.0.0",
+ "remark-lint-list-item-bullet-indent": "^5.0.0",
+ "remark-lint-list-item-indent": "^4.0.0",
+ "remark-lint-no-blockquote-without-marker": "^6.0.0",
+ "remark-lint-no-duplicate-definitions": "^4.0.0",
+ "remark-lint-no-heading-content-indent": "^5.0.0",
+ "remark-lint-no-literal-urls": "^4.0.0",
+ "remark-lint-no-shortcut-reference-image": "^4.0.0",
+ "remark-lint-no-shortcut-reference-link": "^4.0.0",
+ "remark-lint-no-undefined-references": "^5.0.0",
+ "remark-lint-no-unused-definitions": "^4.0.0",
+ "remark-lint-ordered-list-marker-style": "^4.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-preset-lint-recommended/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/remark-preset-lint-recommended/node_modules/unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-preset-lint-recommended/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-preset-lint-recommended/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-preset-lint-recommended/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-retext": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/remark-retext/-/remark-retext-6.0.1.tgz",
+ "integrity": "sha512-GZk8Fa/h88+OhmUlJuqEFX4Pi7OvgI3pq1bHyr/NJibTQxANH8/aZGoOflh4zDAwVDdvgoEk5XOJsWQ8UfjFnA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "@types/nlcst": "^2.0.0",
+ "mdast-util-to-nlcst": "^7.0.0",
+ "parse-latin": "^7.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-retext/node_modules/@types/mdast": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.1.tgz",
+ "integrity": "sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-retext/node_modules/@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "node_modules/remark-retext/node_modules/unified": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.3.tgz",
+ "integrity": "sha512-jlCV402P+YDcFcB2VcN/n8JasOddqIiaxv118wNBoZXEhOn+lYG7BR4Bfg2BwxvlK58dwbuH2w7GX2esAjL6Mg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-retext/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-retext/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-retext/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-stringify": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz",
+ "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==",
+ "dev": true,
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-stringify/node_modules/@types/mdast": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.1.tgz",
+ "integrity": "sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-stringify/node_modules/@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "node_modules/remark-stringify/node_modules/unified": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.3.tgz",
+ "integrity": "sha512-jlCV402P+YDcFcB2VcN/n8JasOddqIiaxv118wNBoZXEhOn+lYG7BR4Bfg2BwxvlK58dwbuH2w7GX2esAjL6Mg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-stringify/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-stringify/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-stringify/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-textr": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/remark-textr/-/remark-textr-6.1.0.tgz",
+ "integrity": "sha512-3A61/6Dn8x5wS7f9BubnIjwZfttEw9+PWVFtwOvRzKXLmZDV1mgi9MJeaQ9BNzWhojsSRHWLNa2JHKCOOI5DfA==",
+ "dev": true,
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "textr": "^0.3.0",
+ "unist-util-visit": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-textr/node_modules/@types/mdast": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.1.tgz",
+ "integrity": "sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-textr/node_modules/@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "node_modules/remark-textr/node_modules/unist-util-visit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-validate-links": {
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/remark-validate-links/-/remark-validate-links-13.1.0.tgz",
+ "integrity": "sha512-z+glZ4zoRyrWimQHtoqJEFJdPoIR1R1SDr/JoWjmS6EsYlyhxNuCHtIt165gmV7ltOSFJ+rGsipqRGfBPInd7A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/hosted-git-info": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "github-slugger": "^2.0.0",
+ "hosted-git-info": "^7.0.0",
+ "mdast-util-to-hast": "^13.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "propose": "0.0.5",
+ "trough": "^2.0.0",
+ "unified-engine": "^11.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-validate-links/node_modules/@types/mdast": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.1.tgz",
+ "integrity": "sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark-validate-links/node_modules/@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "node_modules/remark-validate-links/node_modules/mdast-util-to-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
+ "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
+ "dev": true,
+ "dependencies": {
+ "@types/mdast": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-validate-links/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-validate-links/node_modules/unist-util-visit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-validate-links/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-validate-links/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark/node_modules/@types/mdast": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.1.tgz",
+ "integrity": "sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/remark/node_modules/@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "node_modules/remark/node_modules/unified": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.3.tgz",
+ "integrity": "sha512-jlCV402P+YDcFcB2VcN/n8JasOddqIiaxv118wNBoZXEhOn+lYG7BR4Bfg2BwxvlK58dwbuH2w7GX2esAjL6Mg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/resolve": {
+ "version": "1.21.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz",
+ "integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "is-core-module": "^2.8.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/resolve-alpn": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",
+ "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==",
+ "dev": true
+ },
+ "node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/responselike": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz",
+ "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==",
+ "dev": true,
+ "dependencies": {
+ "lowercase-keys": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/side-channel": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/sliced": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz",
+ "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=",
+ "dev": true
+ },
+ "node_modules/space-separated-tokens": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
+ "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
+ "dev": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "dev": true,
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "node_modules/string-width": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-6.1.0.tgz",
+ "integrity": "sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==",
+ "dev": true,
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^10.2.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/string-width-cjs": {
+ "name": "string-width",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width-cjs/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width-cjs/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "node_modules/string-width-cjs/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width/node_modules/emoji-regex": {
+ "version": "10.2.1",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.2.1.tgz",
+ "integrity": "sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA==",
+ "dev": true
+ },
+ "node_modules/string.prototype.matchall": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz",
+ "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.1",
+ "get-intrinsic": "^1.1.1",
+ "has-symbols": "^1.0.2",
+ "internal-slot": "^1.0.3",
+ "regexp.prototype.flags": "^1.3.1",
+ "side-channel": "^1.0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimend": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
+ "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimstart": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
+ "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/stringify-entities": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz",
+ "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==",
+ "dev": true,
+ "dependencies": {
+ "character-entities-html4": "^2.0.0",
+ "character-entities-legacy": "^3.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz",
+ "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/strip-ansi-cjs": {
+ "name": "strip-ansi",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi-cjs/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/super-regex": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/super-regex/-/super-regex-0.2.0.tgz",
+ "integrity": "sha512-WZzIx3rC1CvbMDloLsVw0lkZVKJWbrkJ0k1ghKFmcnPrW1+jWbgTkTEWVtD9lMdmI4jZEz40+naBxl1dCUhXXw==",
+ "dev": true,
+ "dependencies": {
+ "clone-regexp": "^3.0.0",
+ "function-timeout": "^0.1.0",
+ "time-span": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
+ "dev": true
+ },
+ "node_modules/textr": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/textr/-/textr-0.3.0.tgz",
+ "integrity": "sha1-cXNhKGlirI3za3omGft3OhW5t/c=",
+ "dev": true
+ },
+ "node_modules/time-span": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/time-span/-/time-span-5.1.0.tgz",
+ "integrity": "sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==",
+ "dev": true,
+ "dependencies": {
+ "convert-hrtime": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/too-wordy": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/too-wordy/-/too-wordy-0.3.4.tgz",
+ "integrity": "sha512-EU+UA4zHc06TkVQaravNNVdqX763/ENTIOKiKlqSJ6WKCPwLxHjvY3d0uEJYaq92iojyHPwD2iaYbZKjdw3icA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6",
+ "npm": ">=5"
+ }
+ },
+ "node_modules/trim-lines": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
+ "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==",
+ "dev": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/trough": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz",
+ "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==",
+ "dev": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/tsconfig-paths": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz",
+ "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@types/json5": "^0.0.29",
+ "json5": "^1.0.1",
+ "minimist": "^1.2.0",
+ "strip-bom": "^3.0.0"
+ }
+ },
+ "node_modules/tsconfig-paths/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+ "dev": true
+ },
+ "node_modules/unbox-primitive": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
+ "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "has-bigints": "^1.0.1",
+ "has-symbols": "^1.0.2",
+ "which-boxed-primitive": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/undici": {
+ "version": "6.21.3",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.3.tgz",
+ "integrity": "sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18.17"
+ }
+ },
+ "node_modules/unified-args": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/unified-args/-/unified-args-11.0.0.tgz",
+ "integrity": "sha512-4q3OQ2EbNIaxVX1pMoB/QdFxw9BSOWBGUwn5LK3UJict+6i0ud18A1DZ177+2r5hC2nYFOw1jbCp27ydl44Zhg==",
+ "dev": true,
+ "dependencies": {
+ "@types/text-table": "^0.2.0",
+ "chalk": "^5.0.0",
+ "chokidar": "^3.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "json5": "^2.0.0",
+ "minimist": "^1.0.0",
+ "strip-ansi": "^7.0.0",
+ "text-table": "^0.2.0",
+ "unified-engine": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unified-args/node_modules/chalk": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
+ "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
+ "dev": true,
+ "engines": {
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/unified-engine": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/unified-engine/-/unified-engine-11.1.0.tgz",
+ "integrity": "sha512-RS3K5PgNjDRQN9eNIefLUDxpfyWIItmKcjBhD1VnYYT/h7xpheZoZBtb5gtwFyKWZlhKCGRVQknIm1M8qHZfIg==",
+ "dev": true,
+ "dependencies": {
+ "@types/concat-stream": "^2.0.0",
+ "@types/debug": "^4.0.0",
+ "@types/is-empty": "^1.0.0",
+ "@types/node": "^20.0.0",
+ "@types/unist": "^3.0.0",
+ "@ungap/structured-clone": "^1.0.0",
+ "concat-stream": "^2.0.0",
+ "debug": "^4.0.0",
+ "glob": "^10.0.0",
+ "ignore": "^5.0.0",
+ "is-empty": "^1.0.0",
+ "is-plain-obj": "^4.0.0",
+ "load-plugin": "^5.0.0",
+ "parse-json": "^7.0.0",
+ "trough": "^2.0.0",
+ "unist-util-inspect": "^8.0.0",
+ "vfile": "^6.0.0",
+ "vfile-message": "^4.0.0",
+ "vfile-reporter": "^8.0.0",
+ "vfile-statistics": "^3.0.0",
+ "yaml": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unified-engine/node_modules/@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "node_modules/unified-engine/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/unified-engine/node_modules/glob": {
+ "version": "10.3.10",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
+ "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+ "dev": true,
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^2.3.5",
+ "minimatch": "^9.0.1",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
+ "path-scurry": "^1.10.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/unified-engine/node_modules/minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/unified-engine/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unified-engine/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unified-engine/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unified-message-control": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unified-message-control/-/unified-message-control-5.0.0.tgz",
+ "integrity": "sha512-B2cSAkpuMVVmPP90KCfKdBhm1e9KYJ+zK3x5BCa0N65zpq1Ybkc9C77+M5qwR8FWO7RF3LM5QRRPZtgjW6DUCw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "devlop": "^1.0.0",
+ "space-separated-tokens": "^2.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0",
+ "vfile-location": "^5.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unified-message-control/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/unified-message-control/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unified-message-control/node_modules/unist-util-visit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unified-message-control/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unified-message-control/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-inspect": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-inspect/-/unist-util-inspect-8.0.0.tgz",
+ "integrity": "sha512-/3Wn/wU6/H6UEo4FoYUeo8KUePN8ERiZpQYFWYoihOsr1DoDuv80PeB0hobVZyYSvALa2e556bG1A1/AbwU4yg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-inspect/node_modules/@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "node_modules/unist-util-is": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz",
+ "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-is/node_modules/@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/unist-util-map": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/unist-util-map/-/unist-util-map-1.0.5.tgz",
+ "integrity": "sha512-dFil/AN6vqhnQWNCZk0GF/G3+Q5YwsB+PqjnzvpO2wzdRtUJ1E8PN+XRE/PRr/G3FzKjRTJU0haqE0Ekl+O3Ag==",
+ "dev": true,
+ "dependencies": {
+ "object-assign": "^4.0.1"
+ }
+ },
+ "node_modules/unist-util-modify-children": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-4.0.0.tgz",
+ "integrity": "sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "array-iterate": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-modify-children/node_modules/@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "node_modules/unist-util-remove-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz",
+ "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-visit": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-remove-position/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/unist-util-remove-position/node_modules/unist-util-visit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-to-list-of-char": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/unist-util-to-list-of-char/-/unist-util-to-list-of-char-0.1.3.tgz",
+ "integrity": "sha512-f8GrLHdhBKfaW6mzJc25BKeUOqhsuiRXlGrXBtb3pmRT3QCuYS+jH4g7Uf52hjV7TLQN4PGnjzrTFMFXAQaprA==",
+ "dev": true,
+ "dependencies": {
+ "unist-util-generated": "^1.1.6",
+ "unist-util-visit": "^1.4.0"
+ }
+ },
+ "node_modules/unist-util-to-list-of-char/node_modules/unist-util-generated": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz",
+ "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==",
+ "dev": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-to-list-of-char/node_modules/unist-util-is": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
+ "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==",
+ "dev": true
+ },
+ "node_modules/unist-util-to-list-of-char/node_modules/unist-util-visit": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
+ "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
+ "dev": true,
+ "dependencies": {
+ "unist-util-visit-parents": "^2.0.0"
+ }
+ },
+ "node_modules/unist-util-to-list-of-char/node_modules/unist-util-visit-parents": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
+ "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
+ "dev": true,
+ "dependencies": {
+ "unist-util-is": "^3.0.0"
+ }
+ },
+ "node_modules/unist-util-visit-children": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-3.0.0.tgz",
+ "integrity": "sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-visit-children/node_modules/@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "node_modules/unist-util-visit-parents": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz",
+ "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-visit-parents/node_modules/@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "dev": true
+ },
+ "node_modules/v8-compile-cache": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
+ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/vfile-location": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.2.tgz",
+ "integrity": "sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-location/node_modules/@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "node_modules/vfile-location/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-location/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-location/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-reporter": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-8.1.0.tgz",
+ "integrity": "sha512-NfHyHdkCcy0BsXiLA3nId29TY7W7hgpc8nd8Soe3imATx5N4/+mkLYdMR+Y6Zvu6BXMMi0FZsD4FLCm1dN85Pg==",
+ "dev": true,
+ "dependencies": {
+ "@types/supports-color": "^8.0.0",
+ "string-width": "^6.0.0",
+ "supports-color": "^9.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile": "^6.0.0",
+ "vfile-message": "^4.0.0",
+ "vfile-sort": "^4.0.0",
+ "vfile-statistics": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-reporter/node_modules/@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "node_modules/vfile-reporter/node_modules/supports-color": {
+ "version": "9.4.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz",
+ "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/vfile-reporter/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-reporter/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-reporter/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-sort": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-4.0.0.tgz",
+ "integrity": "sha512-lffPI1JrbHDTToJwcq0rl6rBmkjQmMuXkAxsZPRS9DXbaJQvc642eCg6EGxcX2i1L+esbuhq+2l9tBll5v8AeQ==",
+ "dev": true,
+ "dependencies": {
+ "vfile": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-sort/node_modules/@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "node_modules/vfile-sort/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-sort/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-sort/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-statistics": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-3.0.0.tgz",
+ "integrity": "sha512-/qlwqwWBWFOmpXujL/20P+Iuydil0rZZNglR+VNm6J0gpLHwuVM5s7g2TfVoswbXjZ4HuIhLMySEyIw5i7/D8w==",
+ "dev": true,
+ "dependencies": {
+ "vfile": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-statistics/node_modules/@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "node_modules/vfile-statistics/node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-statistics/node_modules/vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-statistics/node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/walk-up-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-1.0.0.tgz",
+ "integrity": "sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==",
+ "dev": true
+ },
+ "node_modules/weasel-words": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/weasel-words/-/weasel-words-0.1.1.tgz",
+ "integrity": "sha1-cTeUZYXHP+RIggE4U70ADF1oek4=",
+ "dev": true
+ },
+ "node_modules/web-namespaces": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz",
+ "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==",
+ "dev": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/which-boxed-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
+ "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "is-bigint": "^1.0.1",
+ "is-boolean-object": "^1.1.0",
+ "is-number-object": "^1.0.4",
+ "is-string": "^1.0.5",
+ "is-symbol": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/word-wrap": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz",
+ "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/wrap-ansi": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs": {
+ "name": "wrap-ansi",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/ansi-styles": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "dev": true,
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/wrapped": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/wrapped/-/wrapped-1.0.1.tgz",
+ "integrity": "sha1-x4PZ2Aeyc+mwHoUWgKk4yHyQckI=",
+ "dev": true,
+ "dependencies": {
+ "co": "3.1.0",
+ "sliced": "^1.0.1"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "node_modules/write-good": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/write-good/-/write-good-1.0.8.tgz",
+ "integrity": "sha512-P1Ct7+DNrOcr2JAxDZ3Q5i5sx2LSveu7iLaoUL0A+YiG0GKf0l5+9j3rwMeyh6JeTL1+HfQV1rnwEvzhNIvpFw==",
+ "dev": true,
+ "dependencies": {
+ "adverb-where": "^0.2.2",
+ "commander": "^2.19.0",
+ "e-prime": "^0.10.4",
+ "no-cliches": "^0.3.0",
+ "passive-voice": "^0.1.0",
+ "too-wordy": "^0.3.1",
+ "weasel-words": "^0.1.1"
+ },
+ "bin": {
+ "write-good": "bin/write-good.js",
+ "writegood": "bin/write-good.js"
+ },
+ "engines": {
+ "node": ">=6",
+ "npm": ">=5"
+ }
+ },
+ "node_modules/yaml": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz",
+ "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/yocto-queue": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz",
+ "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==",
+ "dev": true,
+ "engines": {
+ "node": ">=12.20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/zwitch": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.2.tgz",
+ "integrity": "sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA==",
+ "dev": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ }
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.22.13",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
+ "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "^7.22.13",
+ "chalk": "^2.4.2"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
+ "dev": true
+ },
+ "@babel/highlight": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
+ "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "chalk": "^2.4.2",
+ "js-tokens": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "@babel/runtime": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz",
+ "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "regenerator-runtime": "^0.13.4"
+ }
+ },
+ "@babel/runtime-corejs3": {
+ "version": "7.16.8",
+ "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.8.tgz",
+ "integrity": "sha512-3fKhuICS1lMz0plI5ktOE/yEtBRMVxplzRkdn6mJQ197XiY0JnrzYV0+Mxozq3JZ8SBV9Ecurmw1XsGbwOf+Sg==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "core-js-pure": "^3.20.2",
+ "regenerator-runtime": "^0.13.4"
+ }
+ },
+ "@eslint/eslintrc": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz",
+ "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.2.0",
+ "globals": "^13.9.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "minimatch": "^3.0.4",
+ "strip-json-comments": "^3.1.1"
+ },
+ "dependencies": {
+ "ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "dev": true,
+ "peer": true
+ }
+ }
+ },
+ "@humanwhocodes/config-array": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz",
+ "integrity": "sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@humanwhocodes/object-schema": "^1.2.1",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.4"
+ }
+ },
+ "@humanwhocodes/object-schema": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
+ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "dev": true,
+ "peer": true
+ },
+ "@isaacs/cliui": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+ "dev": true,
+ "requires": {
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+ },
+ "dependencies": {
+ "string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "dev": true,
+ "requires": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ }
+ }
+ }
+ },
+ "@leichtgewicht/ip-codec": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz",
+ "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==",
+ "dev": true
+ },
+ "@npmcli/config": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@npmcli/config/-/config-4.1.0.tgz",
+ "integrity": "sha512-cPQmIQ2Q0vuOfrenrA3isikdMFMAHgzlXV+EmvZ8f2JeJsU5xTU2bG7ipXECiMvPF9nM+QDnMLuIg8QLw9H4xg==",
+ "dev": true,
+ "requires": {
+ "@npmcli/map-workspaces": "^2.0.2",
+ "ini": "^3.0.0",
+ "mkdirp-infer-owner": "^2.0.0",
+ "nopt": "^5.0.0",
+ "proc-log": "^2.0.0",
+ "read-package-json-fast": "^2.0.3",
+ "semver": "^7.3.5",
+ "walk-up-path": "^1.0.0"
+ }
+ },
+ "@npmcli/map-workspaces": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-2.0.3.tgz",
+ "integrity": "sha512-X6suAun5QyupNM8iHkNPh0AHdRC2rb1W+MTdMvvA/2ixgmqZwlq5cGUBgmKHUHT2LgrkKJMAXbfAoTxOigpK8Q==",
+ "dev": true,
+ "requires": {
+ "@npmcli/name-from-folder": "^1.0.1",
+ "glob": "^8.0.1",
+ "minimatch": "^5.0.1",
+ "read-package-json-fast": "^2.0.3"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "glob": {
+ "version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz",
+ "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^5.0.1",
+ "once": "^1.3.0"
+ }
+ },
+ "minimatch": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz",
+ "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ }
+ }
+ },
+ "@npmcli/name-from-folder": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz",
+ "integrity": "sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==",
+ "dev": true
+ },
+ "@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+ "dev": true,
+ "optional": true
+ },
+ "@sindresorhus/is": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz",
+ "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==",
+ "dev": true
+ },
+ "@szmarczak/http-timer": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz",
+ "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==",
+ "dev": true,
+ "requires": {
+ "defer-to-connect": "^2.0.0"
+ }
+ },
+ "@types/cacheable-request": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz",
+ "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==",
+ "dev": true,
+ "requires": {
+ "@types/http-cache-semantics": "*",
+ "@types/keyv": "^3.1.4",
+ "@types/node": "*",
+ "@types/responselike": "^1.0.0"
+ }
+ },
+ "@types/concat-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-2.0.0.tgz",
+ "integrity": "sha512-t3YCerNM7NTVjLuICZo5gYAXYoDvpuuTceCcFQWcDQz26kxUR5uIWolxbIR5jRNIXpMqhOpW/b8imCR1LEmuJw==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/debug": {
+ "version": "4.1.7",
+ "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz",
+ "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==",
+ "dev": true,
+ "requires": {
+ "@types/ms": "*"
+ }
+ },
+ "@types/estree": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
+ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
+ "dev": true
+ },
+ "@types/estree-jsx": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz",
+ "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==",
+ "dev": true,
+ "requires": {
+ "@types/estree": "*"
+ }
+ },
+ "@types/hast": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.1.tgz",
+ "integrity": "sha512-hs/iBJx2aydugBQx5ETV3ZgeSS0oIreQrFJ4bjBl0XvM4wAmDjFEALY7p0rTSLt2eL+ibjRAAs9dTPiCLtmbqQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/hosted-git-info": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@types/hosted-git-info/-/hosted-git-info-3.0.5.tgz",
+ "integrity": "sha512-Dmngh7U003cOHPhKGyA7LWqrnvcTyILNgNPmNCxlx7j8MIi54iBliiT8XqVLIQ3GchoOjVAyBzNJVyuaJjqokg==",
+ "dev": true
+ },
+ "@types/http-cache-semantics": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz",
+ "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==",
+ "dev": true
+ },
+ "@types/is-empty": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@types/is-empty/-/is-empty-1.2.1.tgz",
+ "integrity": "sha512-a3xgqnFTuNJDm1fjsTjHocYJ40Cz3t8utYpi5GNaxzrJC2HSD08ym+whIL7fNqiqBCdM9bcqD1H/tORWAFXoZw==",
+ "dev": true
+ },
+ "@types/json5": {
+ "version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+ "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=",
+ "dev": true,
+ "peer": true
+ },
+ "@types/keyv": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz",
+ "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/ms": {
+ "version": "0.7.31",
+ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz",
+ "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==",
+ "dev": true
+ },
+ "@types/nlcst": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/nlcst/-/nlcst-2.0.1.tgz",
+ "integrity": "sha512-+hL97wfmdLW/unulVgdR+e+8PXbbtZgoYOq3C12H3RKgAZZ38D55Jwej7JBttJ6+oFuwIRYy5qTbE/WugMsCxw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/node": {
+ "version": "20.8.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.0.tgz",
+ "integrity": "sha512-LzcWltT83s1bthcvjBmiBvGJiiUe84NWRHkw+ZV6Fr41z2FbIzvc815dk2nQ3RAKMuN2fkenM/z3Xv2QzEpYxQ==",
+ "dev": true
+ },
+ "@types/responselike": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz",
+ "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/@types/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-dPWnWsf+kzIG140B8z2w3fr5D03TLWbOAFQl45xUpI3vcizeXriNR5VYkWZ+WTMsUHqZ9Xlt3hrxGNANFyNQfw==",
+ "dev": true
+ },
+ "@types/text-table": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@types/text-table/-/text-table-0.2.3.tgz",
+ "integrity": "sha512-MUW7DN7e178wJ2dB9rHuhwUWRUJGrl8fCng37BEWV0r2r5VpzkRFRiMfnX6sjXlu4tMn41lrjzsVh/z1XrKc+A==",
+ "dev": true
+ },
+ "@types/unist": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz",
+ "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==",
+ "dev": true
+ },
+ "@ungap/structured-clone": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
+ "dev": true
+ },
+ "abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+ "dev": true
+ },
+ "acorn": {
+ "version": "8.7.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz",
+ "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==",
+ "dev": true,
+ "peer": true
+ },
+ "acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {}
+ },
+ "adverb-where": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/adverb-where/-/adverb-where-0.2.5.tgz",
+ "integrity": "sha512-JiQe2U1UR8l10jPrXv/PmlDhOLZpsxqjvTp+k6Dm5wYDUULdMZytDRmovkXU8X6V9o0sg0FBdetv3VXHAZZK5Q==",
+ "dev": true
+ },
+ "aggregate-error": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz",
+ "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==",
+ "dev": true,
+ "requires": {
+ "clean-stack": "^4.0.0",
+ "indent-string": "^5.0.0"
+ }
+ },
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ansi-colors": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
+ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
+ "dev": true,
+ "peer": true
+ },
+ "ansi-regex": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true,
+ "peer": true
+ },
+ "aria-query": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz",
+ "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@babel/runtime": "^7.10.2",
+ "@babel/runtime-corejs3": "^7.10.2"
+ }
+ },
+ "array-includes": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz",
+ "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.1",
+ "get-intrinsic": "^1.1.1",
+ "is-string": "^1.0.7"
+ }
+ },
+ "array-iterate": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-2.0.1.tgz",
+ "integrity": "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==",
+ "dev": true
+ },
+ "array.prototype.flat": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz",
+ "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.0"
+ }
+ },
+ "array.prototype.flatmap": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz",
+ "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.0"
+ }
+ },
+ "ast-types-flow": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
+ "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=",
+ "dev": true,
+ "peer": true
+ },
+ "axe-core": {
+ "version": "4.3.5",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.3.5.tgz",
+ "integrity": "sha512-WKTW1+xAzhMS5dJsxWkliixlO/PqC4VhmO9T4juNYcaTg9jzWiJsou6m5pxWYGfigWbwzJWeFY6z47a+4neRXA==",
+ "dev": true,
+ "peer": true
+ },
+ "axobject-query": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
+ "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==",
+ "dev": true,
+ "peer": true
+ },
+ "bail": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz",
+ "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==",
+ "dev": true
+ },
+ "balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
+ "bcp-47-match": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-2.0.3.tgz",
+ "integrity": "sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==",
+ "dev": true
+ },
+ "binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "dev": true
+ },
+ "boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.1.1"
+ }
+ },
+ "buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+ "dev": true
+ },
+ "builtins": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz",
+ "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==",
+ "dev": true,
+ "requires": {
+ "semver": "^7.0.0"
+ }
+ },
+ "cacheable-lookup": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz",
+ "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==",
+ "dev": true
+ },
+ "cacheable-request": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz",
+ "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==",
+ "dev": true,
+ "requires": {
+ "clone-response": "^1.0.2",
+ "get-stream": "^5.1.0",
+ "http-cache-semantics": "^4.0.0",
+ "keyv": "^4.0.0",
+ "lowercase-keys": "^2.0.0",
+ "normalize-url": "^6.0.1",
+ "responselike": "^2.0.0"
+ }
+ },
+ "call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ }
+ },
+ "callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true,
+ "peer": true
+ },
+ "ccount": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz",
+ "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==",
+ "dev": true
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "character-entities": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.1.tgz",
+ "integrity": "sha512-OzmutCf2Kmc+6DrFrrPS8/tDh2+DpnrfzdICHWhcVC9eOd0N1PXmQEE1a8iM4IziIAG+8tmTq3K+oo0ubH6RRQ==",
+ "dev": true
+ },
+ "character-entities-html4": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz",
+ "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==",
+ "dev": true
+ },
+ "character-entities-legacy": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
+ "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
+ "dev": true
+ },
+ "character-reference-invalid": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz",
+ "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==",
+ "dev": true
+ },
+ "chokidar": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "dev": true,
+ "requires": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "fsevents": "~2.3.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ }
+ },
+ "chownr": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
+ "dev": true
+ },
+ "clean-stack": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz",
+ "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "5.0.0"
+ },
+ "dependencies": {
+ "escape-string-regexp": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
+ "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
+ "dev": true
+ }
+ }
+ },
+ "clone-regexp": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-3.0.0.tgz",
+ "integrity": "sha512-ujdnoq2Kxb8s3ItNBtnYeXdm07FcU0u8ARAT1lQ2YdMwQC+cdiXX8KoqMVuglztILivceTtp4ivqGSmEmhBUJw==",
+ "dev": true,
+ "requires": {
+ "is-regexp": "^3.0.0"
+ }
+ },
+ "clone-response": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz",
+ "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==",
+ "dev": true,
+ "requires": {
+ "mimic-response": "^1.0.0"
+ }
+ },
+ "co": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-3.1.0.tgz",
+ "integrity": "sha1-TqVOpaCJOBUxheFSEMaNkJK8G3g=",
+ "dev": true
+ },
+ "collapse-white-space": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz",
+ "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==",
+ "dev": true
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "comma-separated-tokens": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
+ "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
+ "dev": true
+ },
+ "commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "dev": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true,
+ "peer": true
+ },
+ "concat-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz",
+ "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.0.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "convert-hrtime": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-5.0.0.tgz",
+ "integrity": "sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==",
+ "dev": true
+ },
+ "core-js-pure": {
+ "version": "3.20.2",
+ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.2.tgz",
+ "integrity": "sha512-CmWHvSKn2vNL6p6StNp1EmMIfVY/pqn3JLAjfZQ8WZGPOlGoO92EkX9/Mk81i6GxvoPXjUqEQnpM3rJ5QxxIOg==",
+ "dev": true,
+ "peer": true
+ },
+ "cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ }
+ },
+ "css-selector-parser": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-3.0.5.tgz",
+ "integrity": "sha512-3itoDFbKUNx1eKmVpYMFyqKX04Ww9osZ+dLgrk6GEv6KMVeXUhUnp4I5X+evw+u3ZxVU6RFXSSRxlTeMh8bA+g==",
+ "dev": true
+ },
+ "damerau-levenshtein": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
+ "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==",
+ "dev": true,
+ "peer": true
+ },
+ "dead-or-alive": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/dead-or-alive/-/dead-or-alive-1.0.3.tgz",
+ "integrity": "sha512-LJ2tGXmux1dx6FcuhwKcbHJPiR2OKiPWBY/6Yj6EfFdObK3nue69DlGFr1cUeRmtalqRhWXMztXMcEXJP59XKw==",
+ "dev": true,
+ "requires": {
+ "@types/hast": "^3.0.0",
+ "fast-content-type-parse": "^2.0.0",
+ "hast-util-from-html-isomorphic": "^2.0.0",
+ "hast-util-is-element": "^3.0.0",
+ "hast-util-select": "^6.0.0",
+ "html-url-attributes": "^3.0.0",
+ "levenshtein-edit-distance": "^3.0.0",
+ "undici": "^6.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "dependencies": {
+ "@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "dev": true
+ },
+ "levenshtein-edit-distance": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/levenshtein-edit-distance/-/levenshtein-edit-distance-3.0.1.tgz",
+ "integrity": "sha512-/qMCkZbrAF7jZP/voqlkfNrBtEn0TMdhCK7OEBh/zb39t/c3wCnTjwU1ZvrMfQ3OxB8sBQXIpWRMM6FiQJVG3g==",
+ "dev": true
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-visit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "debug": {
+ "version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
+ "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "decode-named-character-reference": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.1.tgz",
+ "integrity": "sha512-YV/0HQHreRwKb7uBopyIkLG17jG6Sv2qUchk9qSoVJ2f+flwRsPNBO0hAnjt6mTNYUT+vw9Gy2ihXg4sUWPi2w==",
+ "dev": true,
+ "requires": {
+ "character-entities": "^2.0.0"
+ }
+ },
+ "decompress-response": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
+ "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
+ "dev": true,
+ "requires": {
+ "mimic-response": "^3.1.0"
+ },
+ "dependencies": {
+ "mimic-response": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
+ "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
+ "dev": true
+ }
+ }
+ },
+ "deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "dev": true,
+ "peer": true
+ },
+ "defer-to-connect": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
+ "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==",
+ "dev": true
+ },
+ "define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "object-keys": "^1.0.12"
+ }
+ },
+ "dequal": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.2.tgz",
+ "integrity": "sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==",
+ "dev": true
+ },
+ "devlop": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz",
+ "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==",
+ "dev": true,
+ "requires": {
+ "dequal": "^2.0.0"
+ }
+ },
+ "direction": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/direction/-/direction-2.0.1.tgz",
+ "integrity": "sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA==",
+ "dev": true
+ },
+ "dns-packet": {
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz",
+ "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==",
+ "dev": true,
+ "requires": {
+ "@leichtgewicht/ip-codec": "^2.0.1"
+ }
+ },
+ "dns-socket": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/dns-socket/-/dns-socket-4.2.2.tgz",
+ "integrity": "sha512-BDeBd8najI4/lS00HSKpdFia+OvUMytaVjfzR9n5Lq8MlZRSvtbI+uLtx1+XmQFls5wFU9dssccTmQQ6nfpjdg==",
+ "dev": true,
+ "requires": {
+ "dns-packet": "^5.2.4"
+ }
+ },
+ "doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "e-prime": {
+ "version": "0.10.4",
+ "resolved": "https://registry.npmjs.org/e-prime/-/e-prime-0.10.4.tgz",
+ "integrity": "sha512-tzBmM2mFSnAq5BuxPSyin6qXb3yMe1wufJN7L7ZPcEWS5S+jI2dhKQEoqHVEcSMMXo/j5lcWpX5jzA6wLSmX6w==",
+ "dev": true
+ },
+ "eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true
+ },
+ "end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dev": true,
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "enquirer": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
+ "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "ansi-colors": "^4.1.1"
+ }
+ },
+ "entities": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+ "dev": true
+ },
+ "error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "es-abstract": {
+ "version": "1.19.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz",
+ "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.1.1",
+ "get-symbol-description": "^1.0.0",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.2",
+ "internal-slot": "^1.0.3",
+ "is-callable": "^1.2.4",
+ "is-negative-zero": "^2.0.1",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.1",
+ "is-string": "^1.0.7",
+ "is-weakref": "^1.0.1",
+ "object-inspect": "^1.11.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.2",
+ "string.prototype.trimend": "^1.0.4",
+ "string.prototype.trimstart": "^1.0.4",
+ "unbox-primitive": "^1.0.1"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true,
+ "peer": true
+ },
+ "eslint": {
+ "version": "8.6.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.6.0.tgz",
+ "integrity": "sha512-UvxdOJ7mXFlw7iuHZA4jmzPaUqIw54mZrv+XPYKNbKdLR0et4rf60lIZUU9kiNtnzzMzGWxMV+tQ7uG7JG8DPw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@eslint/eslintrc": "^1.0.5",
+ "@humanwhocodes/config-array": "^0.9.2",
+ "ajv": "^6.10.0",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.3.2",
+ "doctrine": "^3.0.0",
+ "enquirer": "^2.3.5",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^7.1.0",
+ "eslint-utils": "^3.0.0",
+ "eslint-visitor-keys": "^3.1.0",
+ "espree": "^9.3.0",
+ "esquery": "^1.4.0",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob-parent": "^6.0.1",
+ "globals": "^13.6.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.0.4",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.1",
+ "progress": "^2.0.0",
+ "regexpp": "^3.2.0",
+ "semver": "^7.2.1",
+ "strip-ansi": "^6.0.1",
+ "strip-json-comments": "^3.1.0",
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "peer": true
+ },
+ "glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "is-glob": "^4.0.3"
+ }
+ },
+ "ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "dev": true,
+ "peer": true
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ }
+ }
+ },
+ "eslint-import-resolver-node": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz",
+ "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "debug": "^3.2.7",
+ "resolve": "^1.20.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ }
+ }
+ },
+ "eslint-module-utils": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz",
+ "integrity": "sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "debug": "^3.2.7",
+ "find-up": "^2.1.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "locate-path": "^2.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "p-try": "^1.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "p-limit": "^1.1.0"
+ }
+ },
+ "p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+ "dev": true,
+ "peer": true
+ }
+ }
+ },
+ "eslint-plugin-import": {
+ "version": "2.25.4",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz",
+ "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "array-includes": "^3.1.4",
+ "array.prototype.flat": "^1.2.5",
+ "debug": "^2.6.9",
+ "doctrine": "^2.1.0",
+ "eslint-import-resolver-node": "^0.3.6",
+ "eslint-module-utils": "^2.7.2",
+ "has": "^1.0.3",
+ "is-core-module": "^2.8.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "^3.0.4",
+ "object.values": "^1.1.5",
+ "resolve": "^1.20.0",
+ "tsconfig-paths": "^3.12.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true,
+ "peer": true
+ }
+ }
+ },
+ "eslint-plugin-jsx-a11y": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz",
+ "integrity": "sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@babel/runtime": "^7.16.3",
+ "aria-query": "^4.2.2",
+ "array-includes": "^3.1.4",
+ "ast-types-flow": "^0.0.7",
+ "axe-core": "^4.3.5",
+ "axobject-query": "^2.2.0",
+ "damerau-levenshtein": "^1.0.7",
+ "emoji-regex": "^9.2.2",
+ "has": "^1.0.3",
+ "jsx-ast-utils": "^3.2.1",
+ "language-tags": "^1.0.5",
+ "minimatch": "^3.0.4"
+ }
+ },
+ "eslint-plugin-react": {
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.28.0.tgz",
+ "integrity": "sha512-IOlFIRHzWfEQQKcAD4iyYDndHwTQiCMcJVJjxempf203jnNLUnW34AXLrV33+nEXoifJE2ZEGmcjKPL8957eSw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "array-includes": "^3.1.4",
+ "array.prototype.flatmap": "^1.2.5",
+ "doctrine": "^2.1.0",
+ "estraverse": "^5.3.0",
+ "jsx-ast-utils": "^2.4.1 || ^3.0.0",
+ "minimatch": "^3.0.4",
+ "object.entries": "^1.1.5",
+ "object.fromentries": "^2.0.5",
+ "object.hasown": "^1.1.0",
+ "object.values": "^1.1.5",
+ "prop-types": "^15.7.2",
+ "resolve": "^2.0.0-next.3",
+ "semver": "^6.3.0",
+ "string.prototype.matchall": "^4.0.6"
+ },
+ "dependencies": {
+ "doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "resolve": {
+ "version": "2.0.0-next.3",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz",
+ "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "is-core-module": "^2.2.0",
+ "path-parse": "^1.0.6"
+ }
+ },
+ "semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "peer": true
+ }
+ }
+ },
+ "eslint-plugin-react-hooks": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz",
+ "integrity": "sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==",
+ "dev": true,
+ "peer": true,
+ "requires": {}
+ },
+ "eslint-scope": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz",
+ "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ }
+ },
+ "eslint-utils": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
+ "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "eslint-visitor-keys": "^2.0.0"
+ },
+ "dependencies": {
+ "eslint-visitor-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+ "dev": true,
+ "peer": true
+ }
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz",
+ "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==",
+ "dev": true,
+ "peer": true
+ },
+ "espree": {
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz",
+ "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "acorn": "^8.7.0",
+ "acorn-jsx": "^5.3.1",
+ "eslint-visitor-keys": "^3.1.0"
+ }
+ },
+ "esquery": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
+ "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "estraverse": "^5.1.0"
+ }
+ },
+ "esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "estraverse": "^5.2.0"
+ }
+ },
+ "estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true,
+ "peer": true
+ },
+ "esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true,
+ "peer": true
+ },
+ "extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "dev": true
+ },
+ "fast-content-type-parse": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-2.0.0.tgz",
+ "integrity": "sha512-fCqg/6Sps8tqk8p+kqyKqYfOF0VjPNYrqpLiqNl0RBKmD80B080AJWVV6EkSkscjToNExcXg1+Mfzftrx6+iSA==",
+ "dev": true
+ },
+ "fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "dev": true,
+ "peer": true
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true,
+ "peer": true
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+ "dev": true,
+ "peer": true
+ },
+ "fault": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz",
+ "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==",
+ "dev": true,
+ "requires": {
+ "format": "^0.2.0"
+ }
+ },
+ "file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "flat-cache": "^3.0.4"
+ }
+ },
+ "fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "flat-cache": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
+ "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "flatted": "^3.1.0",
+ "rimraf": "^3.0.2"
+ }
+ },
+ "flatted": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz",
+ "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==",
+ "dev": true,
+ "peer": true
+ },
+ "foreground-child": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
+ "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^7.0.0",
+ "signal-exit": "^4.0.1"
+ }
+ },
+ "format": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz",
+ "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=",
+ "dev": true
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "optional": true
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true,
+ "peer": true
+ },
+ "function-timeout": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/function-timeout/-/function-timeout-0.1.1.tgz",
+ "integrity": "sha512-0NVVC0TaP7dSTvn1yMiy6d6Q8gifzbvQafO46RtLG/kHJUBNd+pVRGOBoK44wNBvtSPUJRfdVvkFdD3p0xvyZg==",
+ "dev": true
+ },
+ "functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
+ "dev": true,
+ "peer": true
+ },
+ "get-intrinsic": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
+ "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1"
+ }
+ },
+ "get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "get-symbol-description": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
+ "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
+ }
+ },
+ "github-slugger": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz",
+ "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==",
+ "dev": true
+ },
+ "glob": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
+ "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "globals": {
+ "version": "13.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz",
+ "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "type-fest": "^0.20.2"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true,
+ "peer": true
+ }
+ }
+ },
+ "got": {
+ "version": "11.8.6",
+ "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz",
+ "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==",
+ "dev": true,
+ "requires": {
+ "@sindresorhus/is": "^4.0.0",
+ "@szmarczak/http-timer": "^4.0.5",
+ "@types/cacheable-request": "^6.0.1",
+ "@types/responselike": "^1.0.0",
+ "cacheable-lookup": "^5.0.3",
+ "cacheable-request": "^7.0.2",
+ "decompress-response": "^6.0.0",
+ "http2-wrapper": "^1.0.0-beta.5.2",
+ "lowercase-keys": "^2.0.0",
+ "p-cancelable": "^2.0.0",
+ "responselike": "^2.0.0"
+ }
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-bigints": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz",
+ "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==",
+ "dev": true,
+ "peer": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "peer": true
+ },
+ "has-symbols": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
+ "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
+ "dev": true,
+ "peer": true
+ },
+ "has-tostringtag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
+ "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "has-symbols": "^1.0.2"
+ }
+ },
+ "hast-util-from-dom": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-from-dom/-/hast-util-from-dom-5.0.0.tgz",
+ "integrity": "sha512-d6235voAp/XR3Hh5uy7aGLbM3S4KamdW0WEgOaU1YoewnuYw4HXb5eRtv9g65m/RFGEfUY1Mw4UqCc5Y8L4Stg==",
+ "dev": true,
+ "requires": {
+ "@types/hast": "^3.0.0",
+ "hastscript": "^8.0.0",
+ "web-namespaces": "^2.0.0"
+ }
+ },
+ "hast-util-from-html": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.3.tgz",
+ "integrity": "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==",
+ "dev": true,
+ "requires": {
+ "@types/hast": "^3.0.0",
+ "devlop": "^1.1.0",
+ "hast-util-from-parse5": "^8.0.0",
+ "parse5": "^7.0.0",
+ "vfile": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "dependencies": {
+ "@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "dev": true
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz",
+ "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "hast-util-from-html-isomorphic": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-from-html-isomorphic/-/hast-util-from-html-isomorphic-2.0.0.tgz",
+ "integrity": "sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==",
+ "dev": true,
+ "requires": {
+ "@types/hast": "^3.0.0",
+ "hast-util-from-dom": "^5.0.0",
+ "hast-util-from-html": "^2.0.0",
+ "unist-util-remove-position": "^5.0.0"
+ }
+ },
+ "hast-util-from-parse5": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz",
+ "integrity": "sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==",
+ "dev": true,
+ "requires": {
+ "@types/hast": "^3.0.0",
+ "@types/unist": "^3.0.0",
+ "devlop": "^1.0.0",
+ "hastscript": "^8.0.0",
+ "property-information": "^6.0.0",
+ "vfile": "^6.0.0",
+ "vfile-location": "^5.0.0",
+ "web-namespaces": "^2.0.0"
+ },
+ "dependencies": {
+ "@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "dev": true
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz",
+ "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "hast-util-has-property": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-3.0.0.tgz",
+ "integrity": "sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==",
+ "dev": true,
+ "requires": {
+ "@types/hast": "^3.0.0"
+ }
+ },
+ "hast-util-is-element": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz",
+ "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==",
+ "dev": true,
+ "requires": {
+ "@types/hast": "^3.0.0"
+ }
+ },
+ "hast-util-parse-selector": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz",
+ "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==",
+ "dev": true,
+ "requires": {
+ "@types/hast": "^3.0.0"
+ }
+ },
+ "hast-util-select": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/hast-util-select/-/hast-util-select-6.0.2.tgz",
+ "integrity": "sha512-hT/SD/d/Meu+iobvgkffo1QecV8WeKWxwsNMzcTJsKw1cKTQKSR/7ArJeURLNJF9HDjp9nVoORyNNJxrvBye8Q==",
+ "dev": true,
+ "requires": {
+ "@types/hast": "^3.0.0",
+ "@types/unist": "^3.0.0",
+ "bcp-47-match": "^2.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "css-selector-parser": "^3.0.0",
+ "devlop": "^1.0.0",
+ "direction": "^2.0.0",
+ "hast-util-has-property": "^3.0.0",
+ "hast-util-to-string": "^3.0.0",
+ "hast-util-whitespace": "^3.0.0",
+ "not": "^0.1.0",
+ "nth-check": "^2.0.0",
+ "property-information": "^6.0.0",
+ "space-separated-tokens": "^2.0.0",
+ "unist-util-visit": "^5.0.0",
+ "zwitch": "^2.0.0"
+ },
+ "dependencies": {
+ "@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "dev": true
+ },
+ "unist-util-visit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ }
+ }
+ }
+ },
+ "hast-util-to-string": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.1.tgz",
+ "integrity": "sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==",
+ "dev": true,
+ "requires": {
+ "@types/hast": "^3.0.0"
+ }
+ },
+ "hast-util-whitespace": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz",
+ "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==",
+ "dev": true,
+ "requires": {
+ "@types/hast": "^3.0.0"
+ }
+ },
+ "hastscript": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-8.0.0.tgz",
+ "integrity": "sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==",
+ "dev": true,
+ "requires": {
+ "@types/hast": "^3.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "hast-util-parse-selector": "^4.0.0",
+ "property-information": "^6.0.0",
+ "space-separated-tokens": "^2.0.0"
+ }
+ },
+ "hosted-git-info": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz",
+ "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^10.0.1"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz",
+ "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==",
+ "dev": true
+ }
+ }
+ },
+ "html-url-attributes": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.1.tgz",
+ "integrity": "sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==",
+ "dev": true
+ },
+ "http-cache-semantics": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
+ "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==",
+ "dev": true
+ },
+ "http2-wrapper": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz",
+ "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==",
+ "dev": true,
+ "requires": {
+ "quick-lru": "^5.1.1",
+ "resolve-alpn": "^1.0.0"
+ }
+ },
+ "ignore": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
+ "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
+ "dev": true
+ },
+ "import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ }
+ },
+ "import-meta-resolve": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-2.0.3.tgz",
+ "integrity": "sha512-fpAppnBpZ3ymQ/dPP97TNsco1HB5+V9SYJ3chY50PP8xn4U/w+Y6ovWBmTImB/prmGsTjzPh8pQYY+EVBlr9mw==",
+ "dev": true,
+ "requires": {
+ "builtins": "^5.0.0"
+ }
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true,
+ "peer": true
+ },
+ "indent-string": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz",
+ "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==",
+ "dev": true
+ },
+ "infer-owner": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
+ "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "ini": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.0.tgz",
+ "integrity": "sha512-TxYQaeNW/N8ymDvwAxPyRbhMBtnEwuvaTYpOQkFx1nSeusgezHniEc/l35Vo4iCq/mMiTJbpD7oYxN98hFlfmw==",
+ "dev": true
+ },
+ "internal-slot": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
+ "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "get-intrinsic": "^1.1.0",
+ "has": "^1.0.3",
+ "side-channel": "^1.0.4"
+ }
+ },
+ "ip-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-5.0.0.tgz",
+ "integrity": "sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==",
+ "dev": true
+ },
+ "is-alphabetical": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz",
+ "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==",
+ "dev": true
+ },
+ "is-alphanumerical": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz",
+ "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==",
+ "dev": true,
+ "requires": {
+ "is-alphabetical": "^2.0.0",
+ "is-decimal": "^2.0.0"
+ }
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
+ "dev": true
+ },
+ "is-bigint": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
+ "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "has-bigints": "^1.0.1"
+ }
+ },
+ "is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "requires": {
+ "binary-extensions": "^2.0.0"
+ }
+ },
+ "is-boolean-object": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
+ "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-callable": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz",
+ "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==",
+ "dev": true,
+ "peer": true
+ },
+ "is-core-module": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz",
+ "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "is-date-object": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
+ "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-decimal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz",
+ "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==",
+ "dev": true
+ },
+ "is-empty": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/is-empty/-/is-empty-1.2.0.tgz",
+ "integrity": "sha1-3pu1snhzigWgsJpX4ftNSjQan2s=",
+ "dev": true
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-hexadecimal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz",
+ "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==",
+ "dev": true
+ },
+ "is-ip": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-5.0.1.tgz",
+ "integrity": "sha512-FCsGHdlrOnZQcp0+XT5a+pYowf33itBalCl+7ovNXC/7o5BhIpG14M3OrpPPdBSIQJCm+0M5+9mO7S9VVTTCFw==",
+ "dev": true,
+ "requires": {
+ "ip-regex": "^5.0.0",
+ "super-regex": "^0.2.0"
+ }
+ },
+ "is-negative-zero": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
+ "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
+ "dev": true,
+ "peer": true
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "is-number-object": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz",
+ "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-online": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/is-online/-/is-online-11.0.0.tgz",
+ "integrity": "sha512-LY3UOlRGCofw5RMhsEFHQ9xQ6jJXL9wFWWIfmSdNo8vO+DrIvan3G9hAPZiMRXddVZS2v9+CV4z9PslLhBGIyA==",
+ "dev": true,
+ "requires": {
+ "got": "^11.8.5",
+ "p-any": "^4.0.0",
+ "p-timeout": "^6.1.2",
+ "public-ip": "^7.0.1"
+ }
+ },
+ "is-plain-obj": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz",
+ "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==",
+ "dev": true
+ },
+ "is-regex": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-regexp": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-3.1.0.tgz",
+ "integrity": "sha512-rbku49cWloU5bSMI+zaRaXdQHXnthP6DZ/vLnfdSKyL4zUzuWnomtOEiZZOd+ioQ+avFo/qau3KPTc7Fjy1uPA==",
+ "dev": true
+ },
+ "is-shared-array-buffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz",
+ "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==",
+ "dev": true,
+ "peer": true
+ },
+ "is-string": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-symbol": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
+ "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "has-symbols": "^1.0.2"
+ }
+ },
+ "is-weakref": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
+ "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "call-bind": "^1.0.2"
+ }
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "jackspeak": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
+ "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
+ "dev": true,
+ "requires": {
+ "@isaacs/cliui": "^8.0.2",
+ "@pkgjs/parseargs": "^0.11.0"
+ }
+ },
+ "js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "argparse": "^2.0.1"
+ }
+ },
+ "json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "dev": true
+ },
+ "json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "dev": true
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true,
+ "peer": true
+ },
+ "json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
+ "dev": true,
+ "peer": true
+ },
+ "json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "dev": true
+ },
+ "jsx-ast-utils": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz",
+ "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "array-includes": "^3.1.3",
+ "object.assign": "^4.1.2"
+ }
+ },
+ "keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dev": true,
+ "requires": {
+ "json-buffer": "3.0.1"
+ }
+ },
+ "language-subtag-registry": {
+ "version": "0.3.21",
+ "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz",
+ "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==",
+ "dev": true,
+ "peer": true
+ },
+ "language-tags": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz",
+ "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "language-subtag-registry": "~0.3.2"
+ }
+ },
+ "levenshtein-edit-distance": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/levenshtein-edit-distance/-/levenshtein-edit-distance-1.0.0.tgz",
+ "integrity": "sha1-iVuvR4zOi1waDSfkXXwdl4pmHkk=",
+ "dev": true
+ },
+ "levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ }
+ },
+ "lines-and-columns": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz",
+ "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==",
+ "dev": true
+ },
+ "load-plugin": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/load-plugin/-/load-plugin-5.0.0.tgz",
+ "integrity": "sha512-jTz8tvC0BTMtof27lTSV5SAOnCRT0Z++k+S3QeQ5CrF8ZAS5L2nhi3euf4ZhJyDkds+nOQGyPcFqdQZ9s8ELkg==",
+ "dev": true,
+ "requires": {
+ "@npmcli/config": "^4.0.0",
+ "import-meta-resolve": "^2.0.0"
+ }
+ },
+ "lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "dev": true,
+ "peer": true
+ },
+ "longest-streak": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.0.1.tgz",
+ "integrity": "sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg==",
+ "dev": true
+ },
+ "loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ }
+ },
+ "lowercase-keys": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
+ "dev": true
+ },
+ "markdown-extensions": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz",
+ "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==",
+ "dev": true
+ },
+ "mdast-comment-marker": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-comment-marker/-/mdast-comment-marker-3.0.0.tgz",
+ "integrity": "sha512-bt08sLmTNg00/UtVDiqZKocxqvQqqyQZAg1uaRuO/4ysXV5motg7RolF5o5yy/sY1rG0v2XgZEqFWho1+2UquA==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-mdx-expression": "^2.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ }
+ }
+ },
+ "mdast-util-directive": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.0.0.tgz",
+ "integrity": "sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "parse-entities": "^4.0.0",
+ "stringify-entities": "^4.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ }
+ }
+ },
+ "mdast-util-from-markdown": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz",
+ "integrity": "sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "micromark": "^4.0.0",
+ "micromark-util-decode-numeric-character-reference": "^2.0.0",
+ "micromark-util-decode-string": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.1.tgz",
+ "integrity": "sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "mdast-util-to-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
+ "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ }
+ }
+ },
+ "mdast-util-frontmatter": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz",
+ "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "escape-string-regexp": "^5.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "micromark-extension-frontmatter": "^2.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.1.tgz",
+ "integrity": "sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
+ "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
+ "dev": true
+ }
+ }
+ },
+ "mdast-util-mdx": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz",
+ "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==",
+ "dev": true,
+ "requires": {
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-mdx-expression": "^2.0.0",
+ "mdast-util-mdx-jsx": "^3.0.0",
+ "mdast-util-mdxjs-esm": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ }
+ },
+ "mdast-util-mdx-expression": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.0.tgz",
+ "integrity": "sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==",
+ "dev": true,
+ "requires": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ }
+ }
+ },
+ "mdast-util-mdx-jsx": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.2.tgz",
+ "integrity": "sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==",
+ "dev": true,
+ "requires": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "ccount": "^2.0.0",
+ "devlop": "^1.1.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "parse-entities": "^4.0.0",
+ "stringify-entities": "^4.0.0",
+ "unist-util-remove-position": "^5.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "mdast-util-mdxjs-esm": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz",
+ "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==",
+ "dev": true,
+ "requires": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ }
+ }
+ },
+ "mdast-util-phrasing": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.0.0.tgz",
+ "integrity": "sha512-xadSsJayQIucJ9n053dfQwVu1kuXg7jCTdYsMK8rqzKZh52nLfSH/k0sAxE0u+pj/zKZX+o5wB+ML5mRayOxFA==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "unist-util-is": "^6.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.1.tgz",
+ "integrity": "sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ }
+ }
+ },
+ "mdast-util-to-hast": {
+ "version": "13.0.2",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.0.2.tgz",
+ "integrity": "sha512-U5I+500EOOw9e3ZrclN3Is3fRpw8c19SMyNZlZ2IS+7vLsNzb2Om11VpIVOR+/0137GhZsFEF6YiKD5+0Hr2Og==",
+ "dev": true,
+ "requires": {
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "@ungap/structured-clone": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-util-sanitize-uri": "^2.0.0",
+ "trim-lines": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit": "^5.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.1.tgz",
+ "integrity": "sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-visit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ }
+ }
+ }
+ },
+ "mdast-util-to-markdown": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz",
+ "integrity": "sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "longest-streak": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "micromark-util-decode-string": "^2.0.0",
+ "unist-util-visit": "^5.0.0",
+ "zwitch": "^2.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "mdast-util-to-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
+ "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0"
+ }
+ },
+ "unist-util-visit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ }
+ }
+ }
+ },
+ "mdast-util-to-nlcst": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-nlcst/-/mdast-util-to-nlcst-7.0.0.tgz",
+ "integrity": "sha512-YfWgABD6izaK7Tzx37V4268THKeusHU+S2qet98h9vrffMxwd/2jqFKxNYz9cCAPYA8p/5BXQuF313JuVFDC9A==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "@types/nlcst": "^2.0.0",
+ "@types/unist": "^3.0.0",
+ "nlcst-to-string": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "vfile": "^6.0.0",
+ "vfile-location": "^5.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.1.tgz",
+ "integrity": "sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "nlcst-to-string": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-3.1.1.tgz",
+ "integrity": "sha512-63mVyqaqt0cmn2VcI2aH6kxe1rLAmSROqHMA0i4qqg1tidkfExgpb0FGMikMCn86mw5dFtBtEANfmSSK7TjNHw==",
+ "dev": true,
+ "requires": {
+ "@types/nlcst": "^1.0.0"
+ },
+ "dependencies": {
+ "@types/nlcst": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@types/nlcst/-/nlcst-1.0.2.tgz",
+ "integrity": "sha512-ykxL/GDDUhqikjU0LIywZvEwb1NTYXTEWf+XgMSS2o6IXIakafPccxZmxgZcvJPZ3yFl2kdL1gJZz3U3iZF3QA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^2"
+ }
+ },
+ "@types/unist": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.8.tgz",
+ "integrity": "sha512-d0XxK3YTObnWVp6rZuev3c49+j4Lo8g4L1ZRm9z5L0xpoZycUPshHgczK5gsUMaZOstjVYYi09p5gYvUtfChYw==",
+ "dev": true
+ }
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "micromark": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz",
+ "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==",
+ "dev": true,
+ "requires": {
+ "@types/debug": "^4.0.0",
+ "debug": "^4.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-core-commonmark": "^2.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-combine-extensions": "^2.0.0",
+ "micromark-util-decode-numeric-character-reference": "^2.0.0",
+ "micromark-util-encode": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "micromark-util-resolve-all": "^2.0.0",
+ "micromark-util-sanitize-uri": "^2.0.0",
+ "micromark-util-subtokenize": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "micromark-core-commonmark": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.0.tgz",
+ "integrity": "sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==",
+ "dev": true,
+ "requires": {
+ "decode-named-character-reference": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-factory-destination": "^2.0.0",
+ "micromark-factory-label": "^2.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-factory-title": "^2.0.0",
+ "micromark-factory-whitespace": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-classify-character": "^2.0.0",
+ "micromark-util-html-tag-name": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "micromark-util-resolve-all": "^2.0.0",
+ "micromark-util-subtokenize": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "micromark-extension-frontmatter": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz",
+ "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==",
+ "dev": true,
+ "requires": {
+ "fault": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "micromark-factory-destination": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz",
+ "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==",
+ "dev": true,
+ "requires": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "micromark-factory-label": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz",
+ "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==",
+ "dev": true,
+ "requires": {
+ "devlop": "^1.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "micromark-factory-space": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz",
+ "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==",
+ "dev": true,
+ "requires": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "micromark-factory-title": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz",
+ "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==",
+ "dev": true,
+ "requires": {
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "micromark-factory-whitespace": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz",
+ "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==",
+ "dev": true,
+ "requires": {
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "micromark-util-character": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz",
+ "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==",
+ "dev": true,
+ "requires": {
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "micromark-util-chunked": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz",
+ "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==",
+ "dev": true,
+ "requires": {
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "micromark-util-classify-character": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz",
+ "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==",
+ "dev": true,
+ "requires": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "micromark-util-combine-extensions": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz",
+ "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==",
+ "dev": true,
+ "requires": {
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "micromark-util-decode-numeric-character-reference": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz",
+ "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==",
+ "dev": true,
+ "requires": {
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "micromark-util-decode-string": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz",
+ "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==",
+ "dev": true,
+ "requires": {
+ "decode-named-character-reference": "^1.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-decode-numeric-character-reference": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "micromark-util-encode": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz",
+ "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==",
+ "dev": true
+ },
+ "micromark-util-html-tag-name": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz",
+ "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==",
+ "dev": true
+ },
+ "micromark-util-normalize-identifier": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz",
+ "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==",
+ "dev": true,
+ "requires": {
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "micromark-util-resolve-all": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz",
+ "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==",
+ "dev": true,
+ "requires": {
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "micromark-util-sanitize-uri": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz",
+ "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==",
+ "dev": true,
+ "requires": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-encode": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "micromark-util-subtokenize": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.0.tgz",
+ "integrity": "sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==",
+ "dev": true,
+ "requires": {
+ "devlop": "^1.0.0",
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "micromark-util-symbol": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz",
+ "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==",
+ "dev": true
+ },
+ "micromark-util-types": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz",
+ "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==",
+ "dev": true
+ },
+ "mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
+ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
+ "dev": true
+ },
+ "minipass": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
+ "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "dev": true
+ },
+ "mkdirp-infer-owner": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz",
+ "integrity": "sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==",
+ "dev": true,
+ "requires": {
+ "chownr": "^2.0.0",
+ "infer-owner": "^1.0.4",
+ "mkdirp": "^1.0.3"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
+ "dev": true,
+ "peer": true
+ },
+ "nlcst-to-string": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-2.0.4.tgz",
+ "integrity": "sha512-3x3jwTd6UPG7vi5k4GEzvxJ5rDA7hVUIRNHPblKuMVP9Z3xmlsd9cgLcpAMkc5uPOBna82EeshROFhsPkbnTZg==",
+ "dev": true
+ },
+ "no-cliches": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/no-cliches/-/no-cliches-0.3.4.tgz",
+ "integrity": "sha512-oUqnng1vhKLaA4GR+OzVbLuZZ7OOguKCtMHxHMiyP8+9mXidKfoCyc030LbAyNI3xcgCHHyitK3Q8wP+w6DwVQ==",
+ "dev": true,
+ "requires": {}
+ },
+ "nopt": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
+ "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
+ "dev": true,
+ "requires": {
+ "abbrev": "1"
+ }
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true
+ },
+ "normalize-url": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
+ "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==",
+ "dev": true
+ },
+ "not": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/not/-/not-0.1.0.tgz",
+ "integrity": "sha512-5PDmaAsVfnWUgTUbJ3ERwn7u79Z0dYxN9ErxCpVJJqe2RK0PJ3z+iFUxuqjwtlDDegXvtWoxD/3Fzxox7tFGWA==",
+ "dev": true
+ },
+ "npm-normalize-package-bin": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz",
+ "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==",
+ "dev": true
+ },
+ "nth-check": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
+ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
+ "dev": true,
+ "requires": {
+ "boolbase": "^1.0.0"
+ }
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ },
+ "object-inspect": {
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz",
+ "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==",
+ "dev": true,
+ "peer": true
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true,
+ "peer": true
+ },
+ "object.assign": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
+ "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "has-symbols": "^1.0.1",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "object.entries": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz",
+ "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.1"
+ }
+ },
+ "object.fromentries": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz",
+ "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.1"
+ }
+ },
+ "object.hasown": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz",
+ "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.1"
+ }
+ },
+ "object.values": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz",
+ "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.1"
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "optionator": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
+ "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0",
+ "word-wrap": "^1.2.3"
+ }
+ },
+ "p-all": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-all/-/p-all-5.0.0.tgz",
+ "integrity": "sha512-pofqu/1FhCVa+78xNAptCGc9V45exFz2pvBRyIvgXkNM0Rh18Py7j8pQuSjA+zpabI46v9hRjNWmL9EAFcEbpw==",
+ "dev": true,
+ "requires": {
+ "p-map": "^6.0.0"
+ }
+ },
+ "p-any": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/p-any/-/p-any-4.0.0.tgz",
+ "integrity": "sha512-S/B50s+pAVe0wmEZHmBs/9yJXeZ5KhHzOsgKzt0hRdgkoR3DxW9ts46fcsWi/r3VnzsnkKS7q4uimze+zjdryw==",
+ "dev": true,
+ "requires": {
+ "p-cancelable": "^3.0.0",
+ "p-some": "^6.0.0"
+ },
+ "dependencies": {
+ "p-cancelable": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz",
+ "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==",
+ "dev": true
+ }
+ }
+ },
+ "p-cancelable": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz",
+ "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-6.1.0.tgz",
+ "integrity": "sha512-H0jc0q1vOzlEk0TqAKXKZxdl7kX3OFUzCnNVUnq5Pc3DGo0kpeaMuPqxQn235HibwBEb0/pm9dgKTjXy66fBkg==",
+ "dev": true,
+ "requires": {
+ "yocto-queue": "^1.1.1"
+ }
+ },
+ "p-map": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-6.0.0.tgz",
+ "integrity": "sha512-T8BatKGY+k5rU+Q/GTYgrEf2r4xRMevAN5mtXc2aPc4rS1j3s+vWTaO2Wag94neXuCAUAs8cxBL9EeB5EA6diw==",
+ "dev": true
+ },
+ "p-some": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/p-some/-/p-some-6.0.0.tgz",
+ "integrity": "sha512-CJbQCKdfSX3fIh8/QKgS+9rjm7OBNUTmwWswAFQAhc8j1NR1dsEDETUEuVUtQHZpV+J03LqWBEwvu0g1Yn+TYg==",
+ "dev": true,
+ "requires": {
+ "aggregate-error": "^4.0.0",
+ "p-cancelable": "^3.0.0"
+ },
+ "dependencies": {
+ "p-cancelable": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz",
+ "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==",
+ "dev": true
+ }
+ }
+ },
+ "p-timeout": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.2.tgz",
+ "integrity": "sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==",
+ "dev": true
+ },
+ "parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "callsites": "^3.0.0"
+ }
+ },
+ "parse-entities": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz",
+ "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "character-entities": "^2.0.0",
+ "character-entities-legacy": "^3.0.0",
+ "character-reference-invalid": "^2.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "is-alphanumerical": "^2.0.0",
+ "is-decimal": "^2.0.0",
+ "is-hexadecimal": "^2.0.0"
+ }
+ },
+ "parse-json": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.1.0.tgz",
+ "integrity": "sha512-ihtdrgbqdONYD156Ap6qTcaGcGdkdAxodO1wLqQ/j7HP1u2sFYppINiq4jyC8F+Nm+4fVufylCV00QmkTHkSUg==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.21.4",
+ "error-ex": "^1.3.2",
+ "json-parse-even-better-errors": "^3.0.0",
+ "lines-and-columns": "^2.0.3",
+ "type-fest": "^3.8.0"
+ },
+ "dependencies": {
+ "json-parse-even-better-errors": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz",
+ "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==",
+ "dev": true
+ },
+ "type-fest": {
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz",
+ "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
+ "dev": true
+ }
+ }
+ },
+ "parse-latin": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-7.0.0.tgz",
+ "integrity": "sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==",
+ "dev": true,
+ "requires": {
+ "@types/nlcst": "^2.0.0",
+ "@types/unist": "^3.0.0",
+ "nlcst-to-string": "^4.0.0",
+ "unist-util-modify-children": "^4.0.0",
+ "unist-util-visit-children": "^3.0.0",
+ "vfile": "^6.0.0"
+ },
+ "dependencies": {
+ "@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "nlcst-to-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-4.0.0.tgz",
+ "integrity": "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==",
+ "dev": true,
+ "requires": {
+ "@types/nlcst": "^2.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "parse5": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
+ "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==",
+ "dev": true,
+ "requires": {
+ "entities": "^4.4.0"
+ }
+ },
+ "passive-voice": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/passive-voice/-/passive-voice-0.1.0.tgz",
+ "integrity": "sha1-Fv+RrkC6DpLEPmcXY/3IQqcCcLE=",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true,
+ "peer": true
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true,
+ "peer": true
+ },
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true,
+ "peer": true
+ },
+ "path-scurry": {
+ "version": "1.10.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
+ "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^9.1.1 || ^10.0.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz",
+ "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==",
+ "dev": true
+ }
+ }
+ },
+ "picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true
+ },
+ "pluralize": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz",
+ "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==",
+ "dev": true
+ },
+ "prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "dev": true,
+ "peer": true
+ },
+ "proc-log": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-2.0.1.tgz",
+ "integrity": "sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==",
+ "dev": true
+ },
+ "progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+ "dev": true,
+ "peer": true
+ },
+ "prop-types": {
+ "version": "15.8.1",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.13.1"
+ }
+ },
+ "property-information": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz",
+ "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==",
+ "dev": true
+ },
+ "propose": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/propose/-/propose-0.0.5.tgz",
+ "integrity": "sha1-SKBl2ex9TIZn9AULFcSi2F28pWs=",
+ "dev": true,
+ "requires": {
+ "levenshtein-edit-distance": "^1.0.0"
+ }
+ },
+ "public-ip": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/public-ip/-/public-ip-7.0.1.tgz",
+ "integrity": "sha512-DdNcqcIbI0wEeCBcqX+bmZpUCvrDMJHXE553zgyG1MZ8S1a/iCCxmK9iTjjql+SpHSv4cZkmRv5/zGYW93AlCw==",
+ "dev": true,
+ "requires": {
+ "dns-socket": "^4.2.2",
+ "got": "^11.8.5",
+ "is-ip": "^5.0.1"
+ }
+ },
+ "pump": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz",
+ "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "dev": true,
+ "peer": true
+ },
+ "quick-lru": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
+ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
+ "dev": true
+ },
+ "quotation": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/quotation/-/quotation-2.0.3.tgz",
+ "integrity": "sha512-yEc24TEgCFLXx7D4JHJJkK4JFVtatO8fziwUxY4nB/Jbea9o9CVS3gt22mA0W7rPYAGW2fWzYDSOtD94PwOyqA==",
+ "dev": true
+ },
+ "react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "dev": true,
+ "peer": true
+ },
+ "read-package-json-fast": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz",
+ "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==",
+ "dev": true,
+ "requires": {
+ "json-parse-even-better-errors": "^2.3.0",
+ "npm-normalize-package-bin": "^1.0.1"
+ }
+ },
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ },
+ "readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "requires": {
+ "picomatch": "^2.2.1"
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.13.9",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
+ "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==",
+ "dev": true,
+ "peer": true
+ },
+ "regexp.prototype.flags": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz",
+ "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ }
+ },
+ "regexpp": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
+ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
+ "dev": true,
+ "peer": true
+ },
+ "remark": {
+ "version": "15.0.1",
+ "resolved": "https://registry.npmjs.org/remark/-/remark-15.0.1.tgz",
+ "integrity": "sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "remark-parse": "^11.0.0",
+ "remark-stringify": "^11.0.0",
+ "unified": "^11.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.1.tgz",
+ "integrity": "sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.3.tgz",
+ "integrity": "sha512-jlCV402P+YDcFcB2VcN/n8JasOddqIiaxv118wNBoZXEhOn+lYG7BR4Bfg2BwxvlK58dwbuH2w7GX2esAjL6Mg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-cli": {
+ "version": "12.0.1",
+ "resolved": "https://registry.npmjs.org/remark-cli/-/remark-cli-12.0.1.tgz",
+ "integrity": "sha512-2NAEOACoTgo+e+YAaCTODqbrWyhMVmlUyjxNCkTrDRHHQvH6+NbrnqVvQaLH/Q8Ket3v90A43dgAJmXv8y5Tkw==",
+ "dev": true,
+ "requires": {
+ "import-meta-resolve": "^4.0.0",
+ "markdown-extensions": "^2.0.0",
+ "remark": "^15.0.0",
+ "unified-args": "^11.0.0"
+ },
+ "dependencies": {
+ "import-meta-resolve": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz",
+ "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==",
+ "dev": true
+ }
+ }
+ },
+ "remark-frontmatter": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz",
+ "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-frontmatter": "^2.0.0",
+ "micromark-extension-frontmatter": "^2.0.0",
+ "unified": "^11.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.1.tgz",
+ "integrity": "sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.3.tgz",
+ "integrity": "sha512-jlCV402P+YDcFcB2VcN/n8JasOddqIiaxv118wNBoZXEhOn+lYG7BR4Bfg2BwxvlK58dwbuH2w7GX2esAjL6Mg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-heading-gap": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/remark-heading-gap/-/remark-heading-gap-6.0.0.tgz",
+ "integrity": "sha512-xsJJZ0BC9J6XFY0c7segxuSKrJ95EDHEh06+b5FOgbhyJ9Z7yWKxWEJpsa2Bp4gkeMAEkoODH4mjWIV0JD2Urg==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "unified": "^11.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.1.tgz",
+ "integrity": "sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.3.tgz",
+ "integrity": "sha512-jlCV402P+YDcFcB2VcN/n8JasOddqIiaxv118wNBoZXEhOn+lYG7BR4Bfg2BwxvlK58dwbuH2w7GX2esAjL6Mg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-10.0.1.tgz",
+ "integrity": "sha512-1+PYGFziOg4pH7DDf1uMd4AR3YuO2EMnds/SdIWMPGT7CAfDRSnAmpxPsJD0Ds3IKpn97h3d5KPGf1WFOg6hXQ==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "remark-message-control": "^8.0.0",
+ "unified": "^11.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-blockquote-indentation": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-4.0.1.tgz",
+ "integrity": "sha512-7BhOsImFgTD7IIliu2tt+yJbx5gbMbXCOspc3VdYf/87iLJdWKqJoMy2V6DZG7kBjBlBsIZi38fDDngJttXt4w==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-checkbox-character-style": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-checkbox-character-style/-/remark-lint-checkbox-character-style-5.0.1.tgz",
+ "integrity": "sha512-6qilm7XQXOcTvjFEqqNY57Ki7md9rkSdpMIfIzVXdEnI4Npl2BnUff6ANrGRM7qTgJTrloaf8H0eQ91urcU6Og==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-checkbox-content-indent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-checkbox-content-indent/-/remark-lint-checkbox-content-indent-5.0.1.tgz",
+ "integrity": "sha512-R1gV4vGkgJQZQFIGve1paj4mVDUWlgX0KAHhjNpSyzuwuSIDoxWpEuSJSxcnczESgcjM4yVrZqEGMYi/fqZK0w==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-code": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/remark-lint-code/-/remark-lint-code-2.0.0.tgz",
+ "integrity": "sha1-A+DC6Qru2+h1qHlf6s9XmIt9lXw=",
+ "dev": true,
+ "requires": {
+ "unified-lint-rule": "^1.0.0",
+ "unist-util-visit": "^1.0.0"
+ },
+ "dependencies": {
+ "unified-lint-rule": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-1.0.6.tgz",
+ "integrity": "sha512-YPK15YBFwnsVorDFG/u0cVVQN5G2a3V8zv5/N6KN3TCG+ajKtaALcy7u14DCSrJI+gZeyYquFL9cioJXOGXSvg==",
+ "dev": true,
+ "requires": {
+ "wrapped": "^1.0.1"
+ }
+ },
+ "unist-util-is": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
+ "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==",
+ "dev": true
+ },
+ "unist-util-visit": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
+ "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
+ "dev": true,
+ "requires": {
+ "unist-util-visit-parents": "^2.0.0"
+ }
+ },
+ "unist-util-visit-parents": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
+ "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
+ "dev": true,
+ "requires": {
+ "unist-util-is": "^3.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-code-block-style": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-code-block-style/-/remark-lint-code-block-style-4.0.1.tgz",
+ "integrity": "sha512-d4mHsEpv1yqXWl2dd+28tGRX0Lzk5qw7cfxAQVkOXPUONhsMFwXJEBeeqZokeG4lOKtkKdIJR7ezScDfWR0X4w==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-definition-case": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-definition-case/-/remark-lint-definition-case-4.0.1.tgz",
+ "integrity": "sha512-BItJMeXyEBKW/beM7gFLMt3flnyNoRDd8yNFq+7pIeFjO7KWGRxBWUaNgk/tFEPyQcGeCqrNS3nS0ic7qi7I2w==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-definition-spacing": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-definition-spacing/-/remark-lint-definition-spacing-4.0.1.tgz",
+ "integrity": "sha512-ZjShKaBUGeHrZyIZWwOZOxX3guj/P7gRR5wbDADQctL4oK+ZLQfOvJFmAsF1nD4gNr0Ficjd0AuiWxQcc1qTMA==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "longest-streak": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-emphasis-marker": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/remark-lint-emphasis-marker/-/remark-lint-emphasis-marker-4.0.0.tgz",
+ "integrity": "sha512-xIRiB4PFWUOyIslN/UOPL6Lh+J0VD4R11+jo+W4hpGMNsg58l+2SgtdbinlXzDeoBxmaaka9n/sYpJ7cJWEIPQ==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-fenced-code-flag": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-4.2.0.tgz",
+ "integrity": "sha512-QWGTrnYbcopOFZR98djDREmKApLonJ7hmXE7pEcOGee9JY/EUIVS7Lq54Hy9CtU3cVIvQQmiMTxCwUhfddDJFA==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "quotation": "^2.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-fenced-code-marker": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-4.0.1.tgz",
+ "integrity": "sha512-uI91OcVPKjNxV+vpjDW9T64hkE0a/CRn3JhwdMxUAJYpVsKnA7PFPSFJOx/abNsVZHNSe7ZFGgGdaH/lqgSizA==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-file-extension": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-file-extension/-/remark-lint-file-extension-3.0.1.tgz",
+ "integrity": "sha512-1Ca5Dgu9J/j1fb7nvzNXh2xy4ija03igiP5i4le64LfrlloGax4VWcG/M7uL+CpRTFVqEJMWw0iKDEZxYSgImg==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "quotation": "^2.0.0",
+ "unified-lint-rule": "^3.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-final-definition": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/remark-lint-final-definition/-/remark-lint-final-definition-4.0.2.tgz",
+ "integrity": "sha512-fz3UAcFQef77Zb8rz4za2R6y7pdyJot22iGtFoNIKdtbcNa8IKKEVoY3NIfrsLfhrjwzcha1Sp3fFA9NF6lc4w==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-final-newline": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-final-newline/-/remark-lint-final-newline-3.0.1.tgz",
+ "integrity": "sha512-q5diKHD6BMbzqWqgvYPOB8AJgLrMzEMBAprNXjcpKoZ/uCRqly+gxjco+qVUMtMWSd+P+KXZZEqoa7Y6QiOudw==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "vfile-location": "^5.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-hard-break-spaces": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-4.1.1.tgz",
+ "integrity": "sha512-AKDPDt39fvmr3yk38OKZEWJxxCOOUBE+96AsBfs+ExS5LW6oLa9041X5ahFDQHvHGzdoremEIaaElursaPEkNg==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit": "^5.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-visit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-heading-increment": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-heading-increment/-/remark-lint-heading-increment-4.0.1.tgz",
+ "integrity": "sha512-uat7RTQn0hGlMv62p7yjLlg3tO3RljFbH6C+0M+5BNEF+s3NrA8jJgqW0UwLLNdCd3EABCKaWloHumT57ND7PQ==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-heading-style": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-heading-style/-/remark-lint-heading-style-4.0.1.tgz",
+ "integrity": "sha512-+rUpJ/N2CGC5xPgZ18XgsCsUBtadgEhdTi0BJPrsFmHPzL22BUHajeg9im8Y7zphUcbi1qFiKuxZd2nzDgZSXQ==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-heading-style": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "mdast-util-heading-style": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-heading-style/-/mdast-util-heading-style-3.0.0.tgz",
+ "integrity": "sha512-tsUfM9Kj9msjlemA/38Z3pvraQay880E3zP2NgIthMoGcpU9bcPX9oSM6QC/+eFXGGB4ba+VCB1dKAPHB7Veug==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0"
+ }
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-heading-whitespace": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/remark-lint-heading-whitespace/-/remark-lint-heading-whitespace-1.0.0.tgz",
+ "integrity": "sha512-DykoBIXNbkihg64D+mztSOv3l82RTH4tIZW/HUB4QM4NpIEB+pVIPQpCYD0K4pTgvKiwoqsj4NY8qJ1EhNHAmQ==",
+ "dev": true,
+ "requires": {
+ "mdast-util-to-string": "^1.0.4",
+ "unified-lint-rule": "^1.0.2",
+ "unist-util-visit": "^1.3.0"
+ },
+ "dependencies": {
+ "mdast-util-to-string": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz",
+ "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==",
+ "dev": true
+ },
+ "unified-lint-rule": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-1.0.6.tgz",
+ "integrity": "sha512-YPK15YBFwnsVorDFG/u0cVVQN5G2a3V8zv5/N6KN3TCG+ajKtaALcy7u14DCSrJI+gZeyYquFL9cioJXOGXSvg==",
+ "dev": true,
+ "requires": {
+ "wrapped": "^1.0.1"
+ }
+ },
+ "unist-util-is": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
+ "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==",
+ "dev": true
+ },
+ "unist-util-visit": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
+ "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
+ "dev": true,
+ "requires": {
+ "unist-util-visit-parents": "^2.0.0"
+ }
+ },
+ "unist-util-visit-parents": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
+ "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
+ "dev": true,
+ "requires": {
+ "unist-util-is": "^3.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-link-title-style": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-link-title-style/-/remark-lint-link-title-style-4.0.1.tgz",
+ "integrity": "sha512-MtmnYrhjhRXR0zeiyYf/7GBlUF5KAPypJb345KjyDluOhI4Wj4VAXvVQuov/MFc3y8p/1yVwv3QDYv6yue8/wQ==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-list-item-bullet-indent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-list-item-bullet-indent/-/remark-lint-list-item-bullet-indent-5.0.1.tgz",
+ "integrity": "sha512-LKuTxkw5aYChzZoF3BkfaBheSCHs0T8n8dPHLQEuOLo6iC5wy98iyryz0KZ61GD8stlZgQO2KdWSdnP6vr40Iw==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-list-item-content-indent": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-list-item-content-indent/-/remark-lint-list-item-content-indent-4.0.1.tgz",
+ "integrity": "sha512-KSopxxp64O6dLuTQ2sWaTqgjKWr1+AoB1QCTektMJ3mfHfn0QyZzC2CZbBU22KGzBhiYXv9cIxlJlxUtq2NqHg==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-list-item-indent": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-list-item-indent/-/remark-lint-list-item-indent-4.0.1.tgz",
+ "integrity": "sha512-gJd1Q+jOAeTgmGRsdMpnRh01DUrAm0O5PCQxE8ttv1QZOV015p/qJH+B4N6QSmcUuPokHLAh9USuq05C73qpiA==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-list-item-spacing": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/remark-lint-list-item-spacing/-/remark-lint-list-item-spacing-5.0.0.tgz",
+ "integrity": "sha512-d6p+1tcwNE+Pp6Tu2DwiKlyC1zYY3f1igL6AlcBIH0RmROVEfZR4IDFH/LcVyTkzqh1lPMFAJXWK4bpScpcO3g==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-maximum-heading-length": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-maximum-heading-length/-/remark-lint-maximum-heading-length-4.1.1.tgz",
+ "integrity": "sha512-99yonukJ+e0uhx0zGH4uq6H9mhO7FA1ufmuToODH1N+X3ja61Grvlvvlq9UbP9+gbfbWgN97QGKPaTlE29FpaQ==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "mdast-util-to-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
+ "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0"
+ }
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-maximum-line-length": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-4.0.1.tgz",
+ "integrity": "sha512-hQlh8UrRfhkO4FU7z7t1Bu5ethj1y2iBncO5AOWF38RAmlHaZdB2lQxNA8IvUZITGJYpT1aThdFTEf+58lv08Q==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit": "^5.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-visit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-no-blockquote-without-marker": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-6.0.1.tgz",
+ "integrity": "sha512-b4IOkNcG7C16HYAdKUeAhO7qPt45m+v7SeYbVrqvbSFtlD3EUBL8fgHRgLK1mdujFXDP1VguOEMx+Txv8JOT4w==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-directive": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-location": "^5.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-no-consecutive-blank-lines": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-5.0.1.tgz",
+ "integrity": "sha512-yLtYCrEBtGDao4ozmZruRzjMYAcBVFK69PoYjPfNwFO8pQ/LPt8KCq6oyg1ronNyRbDYEGqVdLIHcT/zL3LjPA==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-directive": "^3.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-no-dead-urls": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-dead-urls/-/remark-lint-no-dead-urls-2.0.1.tgz",
+ "integrity": "sha512-8+uY2GWENktvnTnmDHsAW/DxuPiAmZiKoW5HGuCrGmlqEVh4jPZJ2IGbQgfpyrMKIwp32NYo7Jt+aKb52QJ6sQ==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "dead-or-alive": "^1.0.0",
+ "devlop": "^1.0.0",
+ "is-online": "^11.0.0",
+ "p-all": "^5.0.0",
+ "p-limit": "^6.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
+ "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.5",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz",
+ "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-visit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz",
+ "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-no-duplicate-definitions": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-definitions/-/remark-lint-no-duplicate-definitions-4.0.1.tgz",
+ "integrity": "sha512-Ek+A/xDkv5Nn+BXCFmf+uOrFSajCHj6CjhsHjtROgVUeEPj726yYekDBoDRA0Y3+z+U30AsJoHgf/9Jj1IFSug==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-no-duplicate-headings": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-headings/-/remark-lint-no-duplicate-headings-4.0.1.tgz",
+ "integrity": "sha512-6lggqnpIe5FepikjYF2me3ovKV4oD/rAz8WmwVbLR2cLkce1iH+PB7jyxk/A2gQQqrDcIlRMA5Ct2Yj56cEwhQ==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "mdast-util-to-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
+ "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0"
+ }
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-no-emphasis-as-heading": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-emphasis-as-heading/-/remark-lint-no-emphasis-as-heading-4.0.1.tgz",
+ "integrity": "sha512-zzI/C330qdKO9FB3h6IUtOG36FSrS5nfJ7qxp0atXGYtHyg+Ag7dPC/0FzchOVsxofQm0QTstVoIARt/9TiN5g==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-no-empty-sections": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-empty-sections/-/remark-lint-no-empty-sections-4.0.0.tgz",
+ "integrity": "sha512-Tx1nCu7Dq3dsJ500402sSvM0uVK/6khSuEjx8K8u9aHN+Y4vjL6h88xVzdzCmZq2J2yqyFnvMjG1y7lQv+DRvg==",
+ "dev": true,
+ "requires": {
+ "mdast-util-to-string": "^1.0.2",
+ "unified-lint-rule": "^1.0.0",
+ "unist-util-visit": "^1.0.0"
+ },
+ "dependencies": {
+ "mdast-util-to-string": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz",
+ "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==",
+ "dev": true
+ },
+ "unified-lint-rule": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-1.0.6.tgz",
+ "integrity": "sha512-YPK15YBFwnsVorDFG/u0cVVQN5G2a3V8zv5/N6KN3TCG+ajKtaALcy7u14DCSrJI+gZeyYquFL9cioJXOGXSvg==",
+ "dev": true,
+ "requires": {
+ "wrapped": "^1.0.1"
+ }
+ },
+ "unist-util-is": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
+ "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==",
+ "dev": true
+ },
+ "unist-util-visit": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
+ "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
+ "dev": true,
+ "requires": {
+ "unist-util-visit-parents": "^2.0.0"
+ }
+ },
+ "unist-util-visit-parents": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
+ "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
+ "dev": true,
+ "requires": {
+ "unist-util-is": "^3.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-no-empty-url": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-empty-url/-/remark-lint-no-empty-url-4.0.1.tgz",
+ "integrity": "sha512-FSQIO+Q63kNNSUfbvvWPz6ES4q1gJIc4aMjohch9bfKwcv6wWZc6UkjlMMi823I124p6onrY/F8KKECv06H5YQ==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-no-file-name-articles": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-3.0.1.tgz",
+ "integrity": "sha512-h31ZDDJV2T6g9WLBrXg1CJ1m8M170O/tlDPAEPGCa/rxwKvMcfum4yicaot0ZKbUZ1uEPjVSUPDeo3sU0zciCQ==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-no-file-name-consecutive-dashes": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-3.0.1.tgz",
+ "integrity": "sha512-qGJRZ81sowEjv1dBodbHZ29pDZbrFpxiQQ6gBvkkHkkoYPekdnr8iUxmV38HcqH8+JNW1O4ELr+m71AA9/34Mw==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-no-file-name-irregular-characters": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-irregular-characters/-/remark-lint-no-file-name-irregular-characters-3.0.1.tgz",
+ "integrity": "sha512-kNm16eDnPqbN05W0RLIedHi40YzHf1esPHbNKv12AljKWptdCTS72uGjAbqUSZ48dRoKtJzL0HJ0OAqXIWUyxA==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-no-file-name-mixed-case": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-mixed-case/-/remark-lint-no-file-name-mixed-case-3.0.1.tgz",
+ "integrity": "sha512-cXVY0gM6DIHHK+mUhQVZ/WLh4cNfzEDpM54LNJBnflR9n9r6eNLR3JlWFRviTL4xRrQ5FXisBSlBa87BquiFVA==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-no-file-name-outer-dashes": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-3.0.1.tgz",
+ "integrity": "sha512-QIMrBPZKZ6BwQRPM65HhEHcJv6+wZnZ4z2ikvx2ht40cSmIN7ZTL7wKKJlnpF+4Ioi9XUj+cRHWqEhwJ9LCQIw==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-no-heading-content-indent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-heading-content-indent/-/remark-lint-no-heading-content-indent-5.0.1.tgz",
+ "integrity": "sha512-YIWktnZo7M9aw7PGnHdshvetSH3Y0qW+Fm143R66zsk5lLzn1XA5NEd/MtDzP8tSxxV+gcv+bDd5St1QUI4oSQ==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-no-heading-indent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-heading-indent/-/remark-lint-no-heading-indent-5.0.1.tgz",
+ "integrity": "sha512-R/KkR9Qfh0AM3asadSnQQXMHu6BNZxPbxLI9h9JBPIZM+EtzycDlhaAHbOlQUdaHA5UEANhYENZBLrueH50Cdg==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-no-heading-like-paragraph": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-heading-like-paragraph/-/remark-lint-no-heading-like-paragraph-4.0.1.tgz",
+ "integrity": "sha512-1sscTjv/F/mK5cNThz6fu57xcLgLdB0rl9vJ3BEwh7U4V5cIKp1tdFQhaguweSBnKCjCVaiU7HsEdle01Ai07Q==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-no-heading-punctuation": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-heading-punctuation/-/remark-lint-no-heading-punctuation-4.0.0.tgz",
+ "integrity": "sha512-7V23C3Q4yX9zEOLZdbv6o8wVxxeWB/F+h9by55zPyk2AwbqF2t2xevnAmN3XFmKZABDTqLwjQxtK6bCVv/S1PQ==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "mdast-util-to-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
+ "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0"
+ }
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-no-literal-urls": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-4.0.1.tgz",
+ "integrity": "sha512-RhTANFkFFXE6bM+WxWcPo2TTPEfkWG3lJZU50ycW7tJJmxUzDNzRed/z80EVJIdGwFa0NntVooLUJp3xrogalQ==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "micromark-util-character": "^2.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "mdast-util-to-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
+ "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0"
+ }
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-no-multiple-toplevel-headings": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-4.0.1.tgz",
+ "integrity": "sha512-8sepobIOu3PlDOuMH7jtri+LH4tFNVQU+aqKSkrlNRdp831fYz9S+jA2crTVqWqxVbTwiF96uJWePv8/9qmHnA==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-no-reference-like-url": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-reference-like-url/-/remark-lint-no-reference-like-url-4.0.1.tgz",
+ "integrity": "sha512-GXS73779bPnJSqvCfOK2XzGzCWL5ggyk53KE049oOYTS55vmc26PjeW+ykbGfXIazRazZ1DLGaAqNoU9jCnZ4w==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-lint-no-repeat-punctuation": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-repeat-punctuation/-/remark-lint-no-repeat-punctuation-0.1.4.tgz",
+ "integrity": "sha512-JJduCs4FimdBcR1AB576SqIYOjt+7t8OjTnnlZMvjnw7lzkuL0+nNNHyNXVPaK6jxaLjEUhrH2/smU6vZFUT7g==",
+ "dev": true,
+ "requires": {
+ "unified-lint-rule": "^1.0.3",
+ "unist-util-map": "^1.0.4",
+ "unist-util-to-list-of-char": "^0.1.3"
+ },
+ "dependencies": {
+ "unified-lint-rule": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-1.0.6.tgz",
+ "integrity": "sha512-YPK15YBFwnsVorDFG/u0cVVQN5G2a3V8zv5/N6KN3TCG+ajKtaALcy7u14DCSrJI+gZeyYquFL9cioJXOGXSvg==",
+ "dev": true,
+ "requires": {
+ "wrapped": "^1.0.1"
+ }
+ }
+ }
+ },
+ "remark-lint-no-shell-dollars": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-4.0.1.tgz",
+ "integrity": "sha512-UPE1DNCIkLtnS3YFD065Gkq5lQqfndBDpX8Ct/Zjn7M0/hzCyf9B6tpwCU0I20m9jzhS/CSY6mxYnAiEg+KkFA==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "collapse-white-space": "^2.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
}
},
- "remark-cli": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/remark-cli/-/remark-cli-10.0.1.tgz",
- "integrity": "sha512-+eln31zLE69JwBMoa8nd2sPC0DFZyiWgBrshL8aKb3L2XXTRMuEKWE/IAtNPYEtcktceAQw+OpmqVy8pAmGOwQ==",
+ "remark-lint-no-shortcut-reference-image": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-4.0.1.tgz",
+ "integrity": "sha512-hQhJ3Dr8ZWRdj7qm6+9vcPpqtGchhENA2UHOmcTraLf6dN1cFATCgY/HbTbRIN6NkG/EEClTgRC1QCokWR2Mmw==",
"dev": true,
"requires": {
- "remark": "^14.0.0",
- "unified-args": "^9.0.0"
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
}
},
- "remark-frontmatter": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-4.0.1.tgz",
- "integrity": "sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==",
+ "remark-lint-no-shortcut-reference-link": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-4.0.0.tgz",
+ "integrity": "sha512-6jka2Zz3I6G2MvDcKrwADYhTOxHMFMK854u1cfBEIH5/XnCCXROtoqiiDtbZw+NJqbmwsBKvGL4t2gnmEJUmgg==",
"dev": true,
"requires": {
- "@types/mdast": "^3.0.0",
- "mdast-util-frontmatter": "^1.0.0",
- "micromark-extension-frontmatter": "^1.0.0",
- "unified": "^10.0.0"
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
}
},
- "remark-heading-gap": {
+ "remark-lint-no-table-indentation": {
"version": "5.0.1",
- "resolved": "https://registry.npmjs.org/remark-heading-gap/-/remark-heading-gap-5.0.1.tgz",
- "integrity": "sha512-Jt2Jh9K5tS7+gpMwddv7hQFpFiYYwB1LkcpvElx7DuNHIfx7LglMKVM/j0DojEVbSCX9U8wV4IotMYzdjk1++A==",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-5.0.1.tgz",
+ "integrity": "sha512-LHw9MGsuilM+3HkbRFZmdSE4T+sziaQzULH5ImYkLH2MLF8GKnAm2mgtveLZcW01wqFV2oEbpF1Y/s/QloXT7w==",
"dev": true,
"requires": {
- "@types/mdast": "^3.0.0",
- "mdast-util-to-markdown": "^1.0.0",
- "unified": "^10.0.0"
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-location": "^5.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
}
},
- "remark-lint": {
- "version": "9.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-9.1.1.tgz",
- "integrity": "sha512-zhe6twuqgkx/9KgZyNyaO0cceA4jQuJcyzMOBC+JZiAzMN6mFUmcssWZyY30ko8ut9vQDMX/pyQnolGn+Fg/Tw==",
+ "remark-lint-no-tabs": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-tabs/-/remark-lint-no-tabs-4.0.1.tgz",
+ "integrity": "sha512-+lhGUgY3jhTwWn1x+tTIJNy5Fbs2NcYXCobRY7xeszY0VKPCBF2GyELafOVnr+iTmosXLuhZPp5YwNezQKH9IQ==",
"dev": true,
"requires": {
- "@types/mdast": "^3.0.0",
- "remark-message-control": "^7.0.0",
- "unified": "^10.1.0"
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "vfile-location": "^5.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
}
},
- "remark-lint-blockquote-indentation": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-3.1.1.tgz",
- "integrity": "sha512-u9cjedM6zcK8vRicis5n/xeOSDIC3FGBCKc3K9pqw+nNrOjY85FwxDQKZZ/kx7rmkdRZEhgyHak+wzPBllcxBQ==",
+ "remark-lint-no-undefined-references": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-undefined-references/-/remark-lint-no-undefined-references-5.0.0.tgz",
+ "integrity": "sha512-O0q8bHpRHK1T85oqO+uep4BkvQnZZp3y+wahDeeLLq9dCJfF56sq6Tt5OOTt1BAOZlpobS3OPQHUiJWYP6hX1w==",
"dev": true,
"requires": {
- "@types/mdast": "^3.0.0",
- "pluralize": "^8.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/mdast": "^4.0.0",
+ "collapse-white-space": "^2.0.0",
+ "devlop": "^1.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-location": "^5.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
}
},
- "remark-lint-checkbox-character-style": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-checkbox-character-style/-/remark-lint-checkbox-character-style-4.1.1.tgz",
- "integrity": "sha512-KPSW3wfHfB8m9hzrtHiBHCTUIsOPX5nZR7VM+2pMjwqnhI6Mp94DKprkNo1ekNZALNeoZIDWZUSYxSiiwFfmVQ==",
+ "remark-lint-no-unused-definitions": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-unused-definitions/-/remark-lint-no-unused-definitions-4.0.2.tgz",
+ "integrity": "sha512-KRzPmvfq6b3LSEcAQZobAn+5eDfPTle0dPyDEywgPSc3E7MIdRZQenL9UL8iIqHQWK4FvdUD0GX8FXGqu5EuCw==",
"dev": true,
"requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
}
},
- "remark-lint-checkbox-content-indent": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-checkbox-content-indent/-/remark-lint-checkbox-content-indent-4.1.1.tgz",
- "integrity": "sha512-apkM6sqCwAHwNV0v6KuEbq50fH3mTAV4wKTwI1nWgEj33/nf4+RvLLPgznoc2olZyeAIHR69EKPQiernjCXPOw==",
+ "remark-lint-ordered-list-marker-style": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-4.0.1.tgz",
+ "integrity": "sha512-vZTAbstcBPbGwJacwldGzdGmKwy5/4r29SZ9nQkME4alEl5B1ReSBlYa8t7QnTSW7+tqvA9Sg71RPadgAKWa4w==",
"dev": true,
"requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0",
- "vfile-location": "^4.0.0"
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "micromark-util-character": "^2.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
}
},
- "remark-lint-code": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/remark-lint-code/-/remark-lint-code-2.0.0.tgz",
- "integrity": "sha1-A+DC6Qru2+h1qHlf6s9XmIt9lXw=",
+ "remark-lint-ordered-list-marker-value": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-value/-/remark-lint-ordered-list-marker-value-4.0.1.tgz",
+ "integrity": "sha512-HQb1MrArvApREC1/I6bkiFlZVDjngsuII29n8E8StnAaHOMN3hVYy6wJ9Uk+O3+X9O8v7fDsZPqFUHSfJhERXQ==",
"dev": true,
"requires": {
- "unified-lint-rule": "^1.0.0",
- "unist-util-visit": "^1.0.0"
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "micromark-util-character": "^2.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
},
"dependencies": {
- "unified-lint-rule": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-1.0.6.tgz",
- "integrity": "sha512-YPK15YBFwnsVorDFG/u0cVVQN5G2a3V8zv5/N6KN3TCG+ajKtaALcy7u14DCSrJI+gZeyYquFL9cioJXOGXSvg==",
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
"requires": {
- "wrapped": "^1.0.1"
+ "@types/unist": "*"
}
},
- "unist-util-is": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
- "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==",
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
"dev": true
},
- "unist-util-visit": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
- "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
"requires": {
- "unist-util-visit-parents": "^2.0.0"
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
}
},
- "unist-util-visit-parents": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
- "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
"dev": true,
"requires": {
- "unist-util-is": "^3.0.0"
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
}
}
}
},
- "remark-lint-code-block-style": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/remark-lint-code-block-style/-/remark-lint-code-block-style-3.1.0.tgz",
- "integrity": "sha512-Hv4YQ8ueLGpjItla4CkcOkcfGj+nlquqylDgCm1/xKnW+Ke2a4qVTMVJrP9Krp4FWmXgktJLDHjhRH+pzhDXLg==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-definition-case": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-definition-case/-/remark-lint-definition-case-3.1.1.tgz",
- "integrity": "sha512-dirX0BSfbm1Ixx4Hv4xRQliEP1rw8dDitw2Om3XcO2QqF8bWrzF06/xeMlDNAaT77Cxqb9S7bODo/q+CYUxyWQ==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-definition-spacing": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-definition-spacing/-/remark-lint-definition-spacing-3.1.1.tgz",
- "integrity": "sha512-PR+cYvc0FMtFWjkaXePysW88r7Y7eIwbpUGPFDIWE48fiRiz8U3VIk05P3loQCpCkbmUeInAAYD8tIFPTg4Jlg==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-emphasis-marker": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-emphasis-marker/-/remark-lint-emphasis-marker-3.1.1.tgz",
- "integrity": "sha512-VduuT+KAr0vA78xBLJdIcenCQja4mAd81aNACfdz7BUPLphIQa84D5uzl+nZatSaCXLebCNp5jP/bzVUsBmRKw==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-fenced-code-flag": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-3.1.1.tgz",
- "integrity": "sha512-FFVZmYsBccKIIEgOtgdZEpQdARtAat1LTLBydnIpyNIvcntzWwtrtlj9mtjL8ZoSRre8HtwmEnBFyOfmM/NWaA==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-fenced-code-marker": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-3.1.1.tgz",
- "integrity": "sha512-x/t8sJWPvE46knKz6zW03j9VX5477srHUmRFbnXhZ3K8e37cYVUIvfbPhcPCAosSsOki9+dvGfZsWQiKuUNNfQ==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-file-extension": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-file-extension/-/remark-lint-file-extension-2.1.1.tgz",
- "integrity": "sha512-r6OMe27YZzr2NFjPMbBxgm8RZxigRwzeFSjapPlqcxk0Q0w/6sosJsceBNlGGlk00pltvv7NPqSexbXUjirrQQ==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0"
- }
- },
- "remark-lint-final-definition": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-final-definition/-/remark-lint-final-definition-3.1.1.tgz",
- "integrity": "sha512-94hRV+EBIuLVFooiimsZwh5ZPEcTqjy5wr7LgqxoUUWy+srTanndaLoki7bxQJeIcWUnomZncsJAyL0Lo7toxw==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-final-newline": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-final-newline/-/remark-lint-final-newline-2.1.1.tgz",
- "integrity": "sha512-cgKYaI7ujUse/kV4KajLv2j1kmi1CxpAu+w7wIU0/Faihhb3sZAf4a5ACf2Wu8NoTSIr1Q//3hDysG507PIoDg==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0"
- }
- },
- "remark-lint-hard-break-spaces": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-3.1.1.tgz",
- "integrity": "sha512-UfwFvESpX32qwyHJeluuUuRPWmxJDTkmjnWv2r49G9fC4Jrzm4crdJMs3sWsrGiQ3mSex6bgp/8rqDgtBng2IA==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-heading-increment": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-heading-increment/-/remark-lint-heading-increment-3.1.1.tgz",
- "integrity": "sha512-DtiMwZNAE/iAZWuZGjTXxYjNDQ375r59C99aVeVp1nKaovIufKuHWAm9U/9FAGBJNgBx6Ovfdej4YwIxd0yAPw==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-heading-style": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-heading-style/-/remark-lint-heading-style-3.1.1.tgz",
- "integrity": "sha512-Qm7ZAF+s46ns0Wo5TlHGIn/PPMMynytn8SSLEdMIo6Uo/+8PAcmQ3zU1pj57KYxfyDoN5iQPgPIwPYMLYQ2TSQ==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "mdast-util-heading-style": "^2.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-heading-whitespace": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/remark-lint-heading-whitespace/-/remark-lint-heading-whitespace-1.0.0.tgz",
- "integrity": "sha512-DykoBIXNbkihg64D+mztSOv3l82RTH4tIZW/HUB4QM4NpIEB+pVIPQpCYD0K4pTgvKiwoqsj4NY8qJ1EhNHAmQ==",
+ "remark-lint-rule-style": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-rule-style/-/remark-lint-rule-style-4.0.1.tgz",
+ "integrity": "sha512-gl1Ft13oTS3dJUCsWZzxD/5dAwI1HON67KU7uNfODD5gXJ8Y11deOWbun190ma7XbYdD7P0l8VT2HeRtEQzrWg==",
"dev": true,
"requires": {
- "mdast-util-to-string": "^1.0.4",
- "unified-lint-rule": "^1.0.2",
- "unist-util-visit": "^1.3.0"
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
},
"dependencies": {
- "mdast-util-to-string": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz",
- "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==",
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
"dev": true
},
- "unified-lint-rule": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-1.0.6.tgz",
- "integrity": "sha512-YPK15YBFwnsVorDFG/u0cVVQN5G2a3V8zv5/N6KN3TCG+ajKtaALcy7u14DCSrJI+gZeyYquFL9cioJXOGXSvg==",
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
"requires": {
- "wrapped": "^1.0.1"
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
}
},
- "unist-util-is": {
+ "unified-lint-rule": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
- "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==",
- "dev": true
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
},
- "unist-util-visit": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
- "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
"dev": true,
"requires": {
- "unist-util-visit-parents": "^2.0.0"
+ "@types/unist": "^3.0.0"
}
},
- "unist-util-visit-parents": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
- "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
"requires": {
- "unist-util-is": "^3.0.0"
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
}
}
}
},
- "remark-lint-link-title-style": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-link-title-style/-/remark-lint-link-title-style-3.1.1.tgz",
- "integrity": "sha512-JWWiuUFy/N2iwQ3eWIxFy6olX8D7xCFw8LoM0vZI2CHTZJrmDMaWwnl8jziP+HHHheFX3wkVqsoaYod536ArRw==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0",
- "vfile-location": "^4.0.0"
- }
- },
- "remark-lint-list-item-bullet-indent": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-list-item-bullet-indent/-/remark-lint-list-item-bullet-indent-4.1.1.tgz",
- "integrity": "sha512-NFvXVj1Nm12+Ma48NOjZCGb/D0IhmUcxyrTCpPp+UNJhEWrmFxM8nSyIiZgXadgXErnuv+xm2Atw7TAcZ9a1Cg==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "pluralize": "^8.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-list-item-content-indent": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-list-item-content-indent/-/remark-lint-list-item-content-indent-3.1.1.tgz",
- "integrity": "sha512-gcZhAXLd1onkutTEqQTybyANjdxvlOlu0y/AU4H3f6L99UGC85ymRhEeu5vGSkvsKKPR1FrMTEH6G2nNgtavgg==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "pluralize": "^8.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-list-item-indent": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-list-item-indent/-/remark-lint-list-item-indent-3.1.1.tgz",
- "integrity": "sha512-OSTG64e52v8XBmmeT0lefpiAfCMYHJxMMUrMnhTjLVyWAbEO0vqqR5bLvfLwzK+P4nY2D/8XKku0hw35dM86Rw==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "pluralize": "^8.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-list-item-spacing": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-list-item-spacing/-/remark-lint-list-item-spacing-4.1.1.tgz",
- "integrity": "sha512-MqXmahPgYrvfA7SPqmcAC6fI40jIgXG33EeE/MhFvMLWh04k+fqGf2O2aH1KT664MlwM4oETbTI4xj3/KCIHZA==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-maximum-heading-length": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-maximum-heading-length/-/remark-lint-maximum-heading-length-3.1.1.tgz",
- "integrity": "sha512-hTOvRDnULpu0S+k51lovT28TLBgtw8XR0qq+mECSsoyuT4C38UBjQRic5OPo68AZMH0ad/93uj6yvfFtH0K8Lg==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "mdast-util-to-string": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-maximum-line-length": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-3.1.2.tgz",
- "integrity": "sha512-KwddpVmNifTHNXwTQQgVufuUvv0hhu9kJVvmpNdEvfEc7tc3wBkaavyi3kKsUB8WwMhGtZuXVWy6OdPC1axzhw==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-no-auto-link-without-protocol": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-auto-link-without-protocol/-/remark-lint-no-auto-link-without-protocol-3.1.1.tgz",
- "integrity": "sha512-lCjBuoSUWjN1kO0J7vqQgn7HUF/WeOHOqc3oiq9LMRXIovKWqPCBi77o8Npv8KfV+JXeRl+hrupfbhJXlLturA==",
+ "remark-lint-strong-marker": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-strong-marker/-/remark-lint-strong-marker-4.0.1.tgz",
+ "integrity": "sha512-KaGtj/OWEP4eoafevnlp3NsEVwC7yGEjBJ6uFMzfjNoXyjATdfZ2euB/AfKVt/A/FdZeeMeVoAUFH4DL+hScLQ==",
"dev": true,
"requires": {
- "@types/mdast": "^3.0.0",
- "mdast-util-to-string": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
}
},
- "remark-lint-no-blockquote-without-marker": {
+ "remark-lint-table-cell-padding": {
"version": "5.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-5.1.1.tgz",
- "integrity": "sha512-7jL7eKS25kKRhQ7SKKB5eRfNleDMWKWAmZ5Y/votJdDoM+6qsopLLumPWaSzP0onyV3dyHRhPfBtqelt3hvcyA==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0",
- "vfile-location": "^4.0.0"
- }
- },
- "remark-lint-no-consecutive-blank-lines": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-4.1.2.tgz",
- "integrity": "sha512-wRsR3kFgHaZ4mO3KASU43oXGLGezNZ64yNs1ChPUacKh0Bm7cwGnxN9GHGAbOXspwrYrN2eCDxzCbdPEZi2qKw==",
+ "resolved": "https://registry.npmjs.org/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-5.1.1.tgz",
+ "integrity": "sha512-6fgVA1iINBoAJaZMOnSsxrF9Qj9+hmCqrsrqZqgJJETjT1ODGH64iAN1/6vHR7dIwmy73d6ysB2WrGyKhVlK3A==",
"dev": true,
"requires": {
- "@types/mdast": "^3.0.0",
- "@types/unist": "^2.0.0",
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-phrasing": "^4.0.0",
"pluralize": "^8.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-no-dead-urls": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/remark-lint-no-dead-urls/-/remark-lint-no-dead-urls-1.1.0.tgz",
- "integrity": "sha512-it3EZmMQ+hwGhUf60NkXN0mMIFuFkS0cxdbgEbhZ/Fj1PlUBpe3gDBtWJ/sqNwSNvQlNSzpvMQkNHSoAhlsVjA==",
- "dev": true,
- "requires": {
- "check-links": "^1.1.8",
- "is-online": "^8.2.1",
- "unified-lint-rule": "^1.0.4",
- "unist-util-visit": "^2.0.1"
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
},
"dependencies": {
- "unified-lint-rule": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-1.0.6.tgz",
- "integrity": "sha512-YPK15YBFwnsVorDFG/u0cVVQN5G2a3V8zv5/N6KN3TCG+ajKtaALcy7u14DCSrJI+gZeyYquFL9cioJXOGXSvg==",
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
"dev": true,
"requires": {
- "wrapped": "^1.0.1"
+ "@types/unist": "*"
}
},
- "unist-util-is": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz",
- "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==",
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
"dev": true
},
- "unist-util-visit": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz",
- "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==",
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
"requires": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^4.0.0",
- "unist-util-visit-parents": "^3.0.0"
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
}
},
- "unist-util-visit-parents": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz",
- "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==",
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
"dev": true,
"requires": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
}
}
}
},
- "remark-lint-no-duplicate-definitions": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-definitions/-/remark-lint-no-duplicate-definitions-3.1.1.tgz",
- "integrity": "sha512-9p+nBz8VvV+t4g/ALNLVN8naV+ffAzC4ADyg9QivzmKwLjyF93Avt4HYNlb2GZ+aoXRQSVG1wjjWFeDC9c7Tdg==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-stringify-position": "^3.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-no-duplicate-headings": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-headings/-/remark-lint-no-duplicate-headings-3.1.1.tgz",
- "integrity": "sha512-gSO/BngGkxF35Fsctzt3YMwGEZ8F7f71zx7h0Y97DylyL6WXVuWP4saCmQTlbB4FpD0UXEnRROJ6fBFDvJlzOA==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "mdast-util-to-string": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-stringify-position": "^3.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-no-emphasis-as-heading": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-emphasis-as-heading/-/remark-lint-no-emphasis-as-heading-3.1.1.tgz",
- "integrity": "sha512-F45yuLsYVP4r6OjVtePKk7Aymnf3rBLHXYjnSJggEaYn0j+72xOBLrqmj6ii5YGfDsBwG2pDNTBx4vm3xM7P0Q==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-no-empty-sections": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/remark-lint-no-empty-sections/-/remark-lint-no-empty-sections-4.0.0.tgz",
- "integrity": "sha512-Tx1nCu7Dq3dsJ500402sSvM0uVK/6khSuEjx8K8u9aHN+Y4vjL6h88xVzdzCmZq2J2yqyFnvMjG1y7lQv+DRvg==",
+ "remark-lint-table-pipe-alignment": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-table-pipe-alignment/-/remark-lint-table-pipe-alignment-4.1.1.tgz",
+ "integrity": "sha512-9VxivIJaDonrd/Jgkim1oYQ5MIqhWmyJggr2AqtiizwqxT4epRsWmLOz+/sk7PtTGoT/MtwndhlbM3lxuVXFow==",
"dev": true,
"requires": {
- "mdast-util-to-string": "^1.0.2",
- "unified-lint-rule": "^1.0.0",
- "unist-util-visit": "^1.0.0"
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
},
"dependencies": {
- "mdast-util-to-string": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz",
- "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==",
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
"dev": true
},
- "unified-lint-rule": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-1.0.6.tgz",
- "integrity": "sha512-YPK15YBFwnsVorDFG/u0cVVQN5G2a3V8zv5/N6KN3TCG+ajKtaALcy7u14DCSrJI+gZeyYquFL9cioJXOGXSvg==",
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
"dev": true,
"requires": {
- "wrapped": "^1.0.1"
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
}
},
- "unist-util-is": {
+ "unified-lint-rule": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
- "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==",
- "dev": true
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
},
- "unist-util-visit": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
- "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
"dev": true,
"requires": {
- "unist-util-visit-parents": "^2.0.0"
+ "@types/unist": "^3.0.0"
}
},
- "unist-util-visit-parents": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
- "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
"requires": {
- "unist-util-is": "^3.0.0"
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
}
}
}
},
- "remark-lint-no-empty-url": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-empty-url/-/remark-lint-no-empty-url-3.1.1.tgz",
- "integrity": "sha512-zxIkDMggf6R/NCDkYAsaVHaFhklkp6WvV/wdeJAzT3BverGFnM8QIHUAv8YIQvCGqYWov275SVN1eu81DoU95g==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-no-file-name-articles": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-2.1.1.tgz",
- "integrity": "sha512-7fiHKQUGvP4WOsieZ1dxm8WQWWjXjPj0Uix6pk2dSTJqxvaosjKH1AV0J/eVvliat0BGH8Cz4SUbuz5vG6YbdQ==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0"
- }
- },
- "remark-lint-no-file-name-consecutive-dashes": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-2.1.1.tgz",
- "integrity": "sha512-tM4IpURGuresyeIBsXT5jsY3lZakgO6IO59ixcFt015bFjTOW54MrBvdJxA60QHhf5DAyHzD8wGeULPSs7ZQfg==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0"
- }
- },
- "remark-lint-no-file-name-irregular-characters": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-irregular-characters/-/remark-lint-no-file-name-irregular-characters-2.1.1.tgz",
- "integrity": "sha512-rVeCv1XRdLtp/rxLaiFKElaIHuIlokypV/c2aCG3VVYcQ4+ZmJxq018kEsolR2+Dv9m3vKp8Fy1482US4g4WKA==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0"
- }
- },
- "remark-lint-no-file-name-mixed-case": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-mixed-case/-/remark-lint-no-file-name-mixed-case-2.1.1.tgz",
- "integrity": "sha512-mJU3hYzyXNo8NkoSafPcsgr+Gema+vDCzNWlLw05UdFXJK/cVy+6DVsbrEFjrz8L+WF7uQmUHBtTvd91SqoItg==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0"
- }
- },
- "remark-lint-no-file-name-outer-dashes": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-2.1.1.tgz",
- "integrity": "sha512-2kRcVNzZb0zS3jE+Iaa6MEpplhqXSdsHBILS+BxJ4cDGAAIdeipY8hKaDLdZi+34wvrfnDxNgvNLcHpgqO+OZA==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0"
- }
- },
- "remark-lint-no-heading-content-indent": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-heading-content-indent/-/remark-lint-no-heading-content-indent-4.1.1.tgz",
- "integrity": "sha512-W4zF7MA72IDC5JB0qzciwsnioL5XlnoE0r1F7sDS0I5CJfQtHYOLlxb3UAIlgRCkBokPWCp0E4o1fsY/gQUKVg==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "mdast-util-heading-style": "^2.0.0",
- "pluralize": "^8.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-no-heading-indent": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-heading-indent/-/remark-lint-no-heading-indent-4.1.1.tgz",
- "integrity": "sha512-3vIfT7gPdpE9D7muIQ6YzSF1q27H9SbsDD7ClJRkEWxMiAzBg0obOZFOIBYukUkmGWdOR5P1EDn5n9TEzS1Fyg==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "pluralize": "^8.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-no-heading-like-paragraph": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-heading-like-paragraph/-/remark-lint-no-heading-like-paragraph-3.1.1.tgz",
- "integrity": "sha512-eDQkw1ir0j2VVmZd60Hy3CUAj85U7zKf59bGEBdXr2OQYJQhvme7XqKwY8QfMlBqn9lYg1/DxsGWt0+5ESIogw==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-no-heading-punctuation": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-heading-punctuation/-/remark-lint-no-heading-punctuation-3.1.1.tgz",
- "integrity": "sha512-ZexHx4rmsjKVF1/Fvdig0yOgpWl0wFa43+sqg880HT3PW9KmEczjSRkwlMaTlVgDzC0paNn2FXfQMuEQW4YDLg==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "mdast-util-to-string": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-no-inline-padding": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-4.1.1.tgz",
- "integrity": "sha512-++IMm6ohOPKNOrybqjP9eiclEtVX/Rd2HpF2UD9icrC1X5nvrI6tlfN55tePaFvWAB7pe6MW4LzNEMnWse61Lw==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "mdast-util-to-string": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-no-literal-urls": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-3.1.1.tgz",
- "integrity": "sha512-tZZ4gtZMA//ZAf7GJTE8S9yjzqXUfUTlR/lvU7ffc7NeSurqCBwAtHqeXVCHiD39JnlHVSW2MLYhvHp53lBGvA==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "mdast-util-to-string": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-no-multiple-toplevel-headings": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-3.1.1.tgz",
- "integrity": "sha512-bM//SIBvIkoGUpA8hR5QibJ+7C2R50PTIRrc4te93YNRG+ie8bJzjwuO9jIMedoDfJB6/+7EqO9FYBivjBZ3MA==",
+ "remark-lint-table-pipes": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-table-pipes/-/remark-lint-table-pipes-5.0.1.tgz",
+ "integrity": "sha512-oOkRC0WRRDwvodfffGafoBFBTGwy9udQgKtxN53apmZpOmaUAxTi833ite0jMo078+LehNftO5bxrElZ9EQUlQ==",
"dev": true,
"requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-stringify-position": "^3.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
}
},
- "remark-lint-no-reference-like-url": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-reference-like-url/-/remark-lint-no-reference-like-url-3.1.1.tgz",
- "integrity": "sha512-ELO2uez1NO9wEb2nNRY4uVBfw4TYYUHWOnLajExGY92+i3Ylt3EmMwRONT2maJX5qKj4cu8uPi7HAkMIxq8jFg==",
+ "remark-lint-unordered-list-marker-style": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-4.0.1.tgz",
+ "integrity": "sha512-HMrVQC0Qbr8ktSy+1lJGRGU10qecL3T14L6s/THEQXR5Tk0wcsLLG0auNvB4r2+H+ClhVO/Vnm1TEosh1OCsfw==",
"dev": true,
"requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-lint-rule": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz",
+ "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
}
},
- "remark-lint-no-repeat-punctuation": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/remark-lint-no-repeat-punctuation/-/remark-lint-no-repeat-punctuation-0.1.4.tgz",
- "integrity": "sha512-JJduCs4FimdBcR1AB576SqIYOjt+7t8OjTnnlZMvjnw7lzkuL0+nNNHyNXVPaK6jxaLjEUhrH2/smU6vZFUT7g==",
+ "remark-lint-write-good": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/remark-lint-write-good/-/remark-lint-write-good-1.2.0.tgz",
+ "integrity": "sha512-HYiwM16RRBm979yDb/IVwPe1eFhzA1HATe1WucRiYWS10jcPRgJe9FihH7W5uzQFDqX5aRbTtu/yPdq+hPnYkw==",
"dev": true,
"requires": {
- "unified-lint-rule": "^1.0.3",
- "unist-util-map": "^1.0.4",
- "unist-util-to-list-of-char": "^0.1.3"
+ "nlcst-to-string": "^2.0.0",
+ "unified-lint-rule": "^1.0.1",
+ "unist-util-visit": "^1.1.1",
+ "write-good": "^1.0.2"
},
"dependencies": {
"unified-lint-rule": {
@@ -10161,436 +24879,695 @@
"requires": {
"wrapped": "^1.0.1"
}
+ },
+ "unist-util-is": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
+ "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==",
+ "dev": true
+ },
+ "unist-util-visit": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
+ "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
+ "dev": true,
+ "requires": {
+ "unist-util-visit-parents": "^2.0.0"
+ }
+ },
+ "unist-util-visit-parents": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
+ "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
+ "dev": true,
+ "requires": {
+ "unist-util-is": "^3.0.0"
+ }
}
}
},
- "remark-lint-no-shell-dollars": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-3.1.1.tgz",
- "integrity": "sha512-Q3Ad1TaOPxbYog5+Of/quPG3Fy+dMKiHjT8KsU7NDiHG6YJOnAJ3f3w+y13CIlNIaKc/MrisgcthhrZ7NsgXfA==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-no-shortcut-reference-image": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-3.1.1.tgz",
- "integrity": "sha512-m8tH+loDagd1JUns/T4eyulVXgVvE+ZSs7owRUOmP+dgsKJuO5sl1AdN9eyKDVMEvxHF3Pm5WqE62QIRNM48mA==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-no-shortcut-reference-link": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-3.1.1.tgz",
- "integrity": "sha512-oDJ92/jXQ842HgrBGgZdP7FA+N2jBMCBU2+jRElkS+OWVut0UaDILtNavNy/e85B3SLPj3RoXKF96M4vfJ7B2A==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-no-table-indentation": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-4.1.1.tgz",
- "integrity": "sha512-eklvBxUSrkVbJxeokepOvFZ3n2V6zaJERIiOowR+y/Bz4dRHDMij1Ojg55AMO9yUMvxWPV3JPOeThliAcPmrMg==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0",
- "vfile-location": "^4.0.0"
- }
- },
- "remark-lint-no-tabs": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-tabs/-/remark-lint-no-tabs-3.1.1.tgz",
- "integrity": "sha512-+MjXoHSSqRFUUz6XHgB1z7F5zIETxhkY+lC5LsOYb1r2ZdujZQWzBzNW5ya4HH5JiDVBPhp8MrqM9cP1v7tB5g==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "vfile-location": "^4.0.0"
- }
- },
- "remark-lint-no-undefined-references": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-undefined-references/-/remark-lint-no-undefined-references-4.1.1.tgz",
- "integrity": "sha512-J20rKfTGflLiTI3T5JlLZSmINk6aDGmZi1y70lpU69LDfAyHAKgDK6sSW9XDeFmCPPdm8Ybxe5Gf2a70k+GcVQ==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "micromark-util-normalize-identifier": "^1.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0",
- "vfile-location": "^4.0.0"
- }
- },
- "remark-lint-no-unused-definitions": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-no-unused-definitions/-/remark-lint-no-unused-definitions-3.1.1.tgz",
- "integrity": "sha512-/GtyBukhAxi5MEX/g/m+FzDEflSbTe2/cpe2H+tJZyDmiLhjGXRdwWnPRDp+mB9g1iIZgVRCk7T4v90RbQX/mw==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-ordered-list-marker-style": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-3.1.1.tgz",
- "integrity": "sha512-IWcWaJoaSb4yoSOuvDbj9B2uXp9kSj58DqtrMKo8MoRShmbj1onVfulTxoTLeLtI11NvW+mj3jPSpqjMjls+5Q==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-ordered-list-marker-value": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-value/-/remark-lint-ordered-list-marker-value-3.1.1.tgz",
- "integrity": "sha512-+bQZbo+v/A8CuLrO71gobJuKR4/sfnPgWyEggSa+zq+LXPK1HiMDjap0Wr07uYgcUXsXIPh+HD/5J5by6JL+vg==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-rule-style": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-rule-style/-/remark-lint-rule-style-3.1.1.tgz",
- "integrity": "sha512-+oZe0ph4DWHGwPkQ/FpqiGp4WULTXB1edftnnNbizYT+Wr+/ux7GNTx78oXH/PHwlnOtVIExMc4W/vDXrUj/DQ==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
- }
- },
- "remark-lint-strong-marker": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-strong-marker/-/remark-lint-strong-marker-3.1.1.tgz",
- "integrity": "sha512-tX9Os2C48Hh8P8CouY4dcnAhGnR3trL+NCDqIvJvFDR9Rvm9yfNQaY2N4ZHWVY0iUicq9DpqEiJTgUsT8AGv/w==",
+ "remark-message-control": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-8.0.0.tgz",
+ "integrity": "sha512-brpzOO+jdyE/mLqvqqvbogmhGxKygjpCUCG/PwSCU43+JZQ+RM+sSzkCWBcYvgF3KIAVNIoPsvXjBkzO7EdsYQ==",
"dev": true,
"requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/mdast": "^4.0.0",
+ "mdast-comment-marker": "^3.0.0",
+ "unified-message-control": "^5.0.0",
+ "vfile": "^6.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+ "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
}
},
- "remark-lint-table-cell-padding": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-4.1.2.tgz",
- "integrity": "sha512-cx5BXjHtpACa7Z51Vuqzy9BI4Z8Hnxz7vklhhrubkoB7mbctP/mR+Nh4B8eE5VtgFYJNHFwIltl96PuoctFCeQ==",
+ "remark-parse": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz",
+ "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==",
"dev": true,
"requires": {
- "@types/mdast": "^3.0.0",
- "@types/unist": "^2.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "@types/mdast": "^4.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "micromark-util-types": "^2.0.0",
+ "unified": "^11.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.1.tgz",
+ "integrity": "sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.3.tgz",
+ "integrity": "sha512-jlCV402P+YDcFcB2VcN/n8JasOddqIiaxv118wNBoZXEhOn+lYG7BR4Bfg2BwxvlK58dwbuH2w7GX2esAjL6Mg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
}
},
- "remark-lint-table-pipe-alignment": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-table-pipe-alignment/-/remark-lint-table-pipe-alignment-3.1.1.tgz",
- "integrity": "sha512-WOHv2yL4ZwXHM06MIyQNnGFYKz9m2k/GFIA/6hpArF8Ph/3v8CF0J/Hb3Yyfg39e5nODw3D2G3okCO+xgyGQGA==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "remark-preset-lint-consistent": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/remark-preset-lint-consistent/-/remark-preset-lint-consistent-6.0.1.tgz",
+ "integrity": "sha512-SOLdA36UOU1hiGFm6HAqN9+DORGJPVWxU/EvPVkknTr9V4ULhlzHEJ8OVRMVX3jqoy4lrwb4IqiboVz0YLA7+Q==",
+ "dev": true,
+ "requires": {
+ "remark-lint": "^10.0.0",
+ "remark-lint-blockquote-indentation": "^4.0.0",
+ "remark-lint-checkbox-character-style": "^5.0.0",
+ "remark-lint-code-block-style": "^4.0.0",
+ "remark-lint-emphasis-marker": "^4.0.0",
+ "remark-lint-fenced-code-marker": "^4.0.0",
+ "remark-lint-heading-style": "^4.0.0",
+ "remark-lint-link-title-style": "^4.0.0",
+ "remark-lint-list-item-content-indent": "^4.0.0",
+ "remark-lint-ordered-list-marker-style": "^4.0.0",
+ "remark-lint-ordered-list-marker-value": "^4.0.0",
+ "remark-lint-rule-style": "^4.0.0",
+ "remark-lint-strong-marker": "^4.0.0",
+ "remark-lint-table-cell-padding": "^5.0.0",
+ "unified": "^11.0.0"
+ },
+ "dependencies": {
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
}
},
- "remark-lint-table-pipes": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-table-pipes/-/remark-lint-table-pipes-4.1.1.tgz",
- "integrity": "sha512-mJnB2FpjJTE4s9kE1JX8gcCjCFvtGPjzXUiQy0sbPHn2YM9EWG7kvFWYoqWK4w569CEQJyxZraEPltmhDjQTjg==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "remark-preset-lint-markdown-style-guide": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/remark-preset-lint-markdown-style-guide/-/remark-preset-lint-markdown-style-guide-6.0.1.tgz",
+ "integrity": "sha512-hVCRMC8PZlI9hnXkZdrvg4n4j1aD//xHWj26Q7iFAbDB3JKtW1Ne72P7QNVyppmdrR6Gj84zhG3qphOLo8/i8A==",
+ "dev": true,
+ "requires": {
+ "remark-lint": "^10.0.0",
+ "remark-lint-blockquote-indentation": "^4.0.0",
+ "remark-lint-code-block-style": "^4.0.0",
+ "remark-lint-definition-case": "^4.0.0",
+ "remark-lint-definition-spacing": "^4.0.0",
+ "remark-lint-emphasis-marker": "^4.0.0",
+ "remark-lint-fenced-code-flag": "^4.0.0",
+ "remark-lint-fenced-code-marker": "^4.0.0",
+ "remark-lint-file-extension": "^3.0.0",
+ "remark-lint-final-definition": "^4.0.0",
+ "remark-lint-hard-break-spaces": "^4.0.0",
+ "remark-lint-heading-increment": "^4.0.0",
+ "remark-lint-heading-style": "^4.0.0",
+ "remark-lint-link-title-style": "^4.0.0",
+ "remark-lint-list-item-content-indent": "^4.0.0",
+ "remark-lint-list-item-indent": "^4.0.0",
+ "remark-lint-list-item-spacing": "^5.0.0",
+ "remark-lint-maximum-heading-length": "^4.0.0",
+ "remark-lint-maximum-line-length": "^4.0.0",
+ "remark-lint-no-blockquote-without-marker": "^6.0.0",
+ "remark-lint-no-consecutive-blank-lines": "^5.0.0",
+ "remark-lint-no-duplicate-headings": "^4.0.0",
+ "remark-lint-no-emphasis-as-heading": "^4.0.0",
+ "remark-lint-no-file-name-articles": "^3.0.0",
+ "remark-lint-no-file-name-consecutive-dashes": "^3.0.0",
+ "remark-lint-no-file-name-irregular-characters": "^3.0.0",
+ "remark-lint-no-file-name-mixed-case": "^3.0.0",
+ "remark-lint-no-file-name-outer-dashes": "^3.0.0",
+ "remark-lint-no-heading-punctuation": "^4.0.0",
+ "remark-lint-no-literal-urls": "^4.0.0",
+ "remark-lint-no-multiple-toplevel-headings": "^4.0.0",
+ "remark-lint-no-shell-dollars": "^4.0.0",
+ "remark-lint-no-shortcut-reference-image": "^4.0.0",
+ "remark-lint-no-shortcut-reference-link": "^4.0.0",
+ "remark-lint-no-table-indentation": "^5.0.0",
+ "remark-lint-ordered-list-marker-style": "^4.0.0",
+ "remark-lint-ordered-list-marker-value": "^4.0.0",
+ "remark-lint-rule-style": "^4.0.0",
+ "remark-lint-strong-marker": "^4.0.0",
+ "remark-lint-table-cell-padding": "^5.0.0",
+ "remark-lint-table-pipe-alignment": "^4.0.0",
+ "remark-lint-table-pipes": "^5.0.0",
+ "remark-lint-unordered-list-marker-style": "^4.0.0",
+ "unified": "^11.0.0"
+ },
+ "dependencies": {
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
}
},
- "remark-lint-unordered-list-marker-style": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-3.1.1.tgz",
- "integrity": "sha512-JwH8oIDi9f5Z8cTQLimhJ/fkbPwI3OpNSifjYyObNNuc4PG4/NUoe5ZuD10uPmPYHZW+713RZ8S5ucVCkI8dDA==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unified-lint-rule": "^2.0.0",
- "unist-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
+ "remark-preset-lint-recommended": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/remark-preset-lint-recommended/-/remark-preset-lint-recommended-7.0.1.tgz",
+ "integrity": "sha512-j1CY5u48PtZl872BQ40uWSQMT3R4gXKp0FUgevMu5gW7hFMtvaCiDq+BfhzeR8XKKiW9nIMZGfIMZHostz5X4g==",
+ "dev": true,
+ "requires": {
+ "remark-lint": "^10.0.0",
+ "remark-lint-final-newline": "^3.0.0",
+ "remark-lint-hard-break-spaces": "^4.0.0",
+ "remark-lint-list-item-bullet-indent": "^5.0.0",
+ "remark-lint-list-item-indent": "^4.0.0",
+ "remark-lint-no-blockquote-without-marker": "^6.0.0",
+ "remark-lint-no-duplicate-definitions": "^4.0.0",
+ "remark-lint-no-heading-content-indent": "^5.0.0",
+ "remark-lint-no-literal-urls": "^4.0.0",
+ "remark-lint-no-shortcut-reference-image": "^4.0.0",
+ "remark-lint-no-shortcut-reference-link": "^4.0.0",
+ "remark-lint-no-undefined-references": "^5.0.0",
+ "remark-lint-no-unused-definitions": "^4.0.0",
+ "remark-lint-ordered-list-marker-style": "^4.0.0",
+ "unified": "^11.0.0"
+ },
+ "dependencies": {
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz",
+ "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
}
},
- "remark-lint-write-good": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/remark-lint-write-good/-/remark-lint-write-good-1.2.0.tgz",
- "integrity": "sha512-HYiwM16RRBm979yDb/IVwPe1eFhzA1HATe1WucRiYWS10jcPRgJe9FihH7W5uzQFDqX5aRbTtu/yPdq+hPnYkw==",
- "dev": true,
- "requires": {
- "nlcst-to-string": "^2.0.0",
- "unified-lint-rule": "^1.0.1",
- "unist-util-visit": "^1.1.1",
- "write-good": "^1.0.2"
+ "remark-retext": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/remark-retext/-/remark-retext-6.0.1.tgz",
+ "integrity": "sha512-GZk8Fa/h88+OhmUlJuqEFX4Pi7OvgI3pq1bHyr/NJibTQxANH8/aZGoOflh4zDAwVDdvgoEk5XOJsWQ8UfjFnA==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "@types/nlcst": "^2.0.0",
+ "mdast-util-to-nlcst": "^7.0.0",
+ "parse-latin": "^7.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
},
"dependencies": {
- "unified-lint-rule": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-1.0.6.tgz",
- "integrity": "sha512-YPK15YBFwnsVorDFG/u0cVVQN5G2a3V8zv5/N6KN3TCG+ajKtaALcy7u14DCSrJI+gZeyYquFL9cioJXOGXSvg==",
+ "@types/mdast": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.1.tgz",
+ "integrity": "sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==",
"dev": true,
"requires": {
- "wrapped": "^1.0.1"
+ "@types/unist": "*"
}
},
- "unist-util-is": {
+ "@types/unist": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
- "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
"dev": true
},
- "unist-util-visit": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
- "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
+ "unified": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.3.tgz",
+ "integrity": "sha512-jlCV402P+YDcFcB2VcN/n8JasOddqIiaxv118wNBoZXEhOn+lYG7BR4Bfg2BwxvlK58dwbuH2w7GX2esAjL6Mg==",
"dev": true,
"requires": {
- "unist-util-visit-parents": "^2.0.0"
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
}
},
- "unist-util-visit-parents": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
- "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
"requires": {
- "unist-util-is": "^3.0.0"
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
}
}
}
},
- "remark-message-control": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-7.1.1.tgz",
- "integrity": "sha512-xKRWl1NTBOKed0oEtCd8BUfH5m4s8WXxFFSoo7uUwx6GW/qdCy4zov5LfPyw7emantDmhfWn5PdIZgcbVcWMDQ==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "mdast-comment-marker": "^2.0.0",
- "unified": "^10.0.0",
- "unified-message-control": "^4.0.0",
- "vfile": "^5.0.0"
- }
- },
- "remark-parse": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.1.tgz",
- "integrity": "sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "mdast-util-from-markdown": "^1.0.0",
- "unified": "^10.0.0"
- }
- },
- "remark-preset-lint-consistent": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/remark-preset-lint-consistent/-/remark-preset-lint-consistent-5.1.1.tgz",
- "integrity": "sha512-DZQfomiVi/1x7NRByWrOiIC+olEGa1PpyykKrowvYp5qr/Seq60FqU7OjBJxtcOLzgnQcu9Y2JXdHxFi4AAPXQ==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "remark-lint": "^9.0.0",
- "remark-lint-blockquote-indentation": "^3.0.0",
- "remark-lint-checkbox-character-style": "^4.0.0",
- "remark-lint-code-block-style": "^3.0.0",
- "remark-lint-emphasis-marker": "^3.0.0",
- "remark-lint-fenced-code-marker": "^3.0.0",
- "remark-lint-heading-style": "^3.0.0",
- "remark-lint-link-title-style": "^3.0.0",
- "remark-lint-list-item-content-indent": "^3.0.0",
- "remark-lint-ordered-list-marker-style": "^3.0.0",
- "remark-lint-rule-style": "^3.0.0",
- "remark-lint-strong-marker": "^3.0.0",
- "remark-lint-table-cell-padding": "^4.0.0",
- "unified": "^10.0.0"
- }
- },
- "remark-preset-lint-markdown-style-guide": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/remark-preset-lint-markdown-style-guide/-/remark-preset-lint-markdown-style-guide-5.1.2.tgz",
- "integrity": "sha512-MIAhnz0wDOq/MqLucSaAPquKGFE2I5SxqRjgWT+ZGK7TmqTxrro53e11/Pc19xPX4evmzI5CZdvaRnIoxP3ysQ==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "remark-lint": "^9.0.0",
- "remark-lint-blockquote-indentation": "^3.0.0",
- "remark-lint-code-block-style": "^3.0.0",
- "remark-lint-definition-case": "^3.0.0",
- "remark-lint-definition-spacing": "^3.0.0",
- "remark-lint-emphasis-marker": "^3.0.0",
- "remark-lint-fenced-code-flag": "^3.0.0",
- "remark-lint-fenced-code-marker": "^3.0.0",
- "remark-lint-file-extension": "^2.0.0",
- "remark-lint-final-definition": "^3.0.0",
- "remark-lint-hard-break-spaces": "^3.0.0",
- "remark-lint-heading-increment": "^3.0.0",
- "remark-lint-heading-style": "^3.0.0",
- "remark-lint-link-title-style": "^3.0.0",
- "remark-lint-list-item-content-indent": "^3.0.0",
- "remark-lint-list-item-indent": "^3.0.0",
- "remark-lint-list-item-spacing": "^4.0.0",
- "remark-lint-maximum-heading-length": "^3.0.0",
- "remark-lint-maximum-line-length": "^3.0.0",
- "remark-lint-no-blockquote-without-marker": "^5.0.0",
- "remark-lint-no-consecutive-blank-lines": "^4.0.0",
- "remark-lint-no-duplicate-headings": "^3.0.0",
- "remark-lint-no-emphasis-as-heading": "^3.0.0",
- "remark-lint-no-file-name-articles": "^2.0.0",
- "remark-lint-no-file-name-consecutive-dashes": "^2.0.0",
- "remark-lint-no-file-name-irregular-characters": "^2.0.0",
- "remark-lint-no-file-name-mixed-case": "^2.0.0",
- "remark-lint-no-file-name-outer-dashes": "^2.0.0",
- "remark-lint-no-heading-punctuation": "^3.0.0",
- "remark-lint-no-inline-padding": "^4.0.0",
- "remark-lint-no-literal-urls": "^3.0.0",
- "remark-lint-no-multiple-toplevel-headings": "^3.0.0",
- "remark-lint-no-shell-dollars": "^3.0.0",
- "remark-lint-no-shortcut-reference-image": "^3.0.0",
- "remark-lint-no-shortcut-reference-link": "^3.0.0",
- "remark-lint-no-table-indentation": "^4.0.0",
- "remark-lint-ordered-list-marker-style": "^3.0.0",
- "remark-lint-ordered-list-marker-value": "^3.0.0",
- "remark-lint-rule-style": "^3.0.0",
- "remark-lint-strong-marker": "^3.0.0",
- "remark-lint-table-cell-padding": "^4.0.0",
- "remark-lint-table-pipe-alignment": "^3.0.0",
- "remark-lint-table-pipes": "^4.0.0",
- "remark-lint-unordered-list-marker-style": "^3.0.0",
- "unified": "^10.0.0"
- }
- },
- "remark-preset-lint-recommended": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/remark-preset-lint-recommended/-/remark-preset-lint-recommended-6.1.2.tgz",
- "integrity": "sha512-x9kWufNY8PNAhY4fsl+KD3atgQdo4imP3GDAQYbQ6ylWVyX13suPRLkqnupW0ODRynfUg8ZRt8pVX0wMHwgPAg==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "remark-lint": "^9.0.0",
- "remark-lint-final-newline": "^2.0.0",
- "remark-lint-hard-break-spaces": "^3.0.0",
- "remark-lint-list-item-bullet-indent": "^4.0.0",
- "remark-lint-list-item-indent": "^3.0.0",
- "remark-lint-no-blockquote-without-marker": "^5.0.0",
- "remark-lint-no-duplicate-definitions": "^3.0.0",
- "remark-lint-no-heading-content-indent": "^4.0.0",
- "remark-lint-no-inline-padding": "^4.0.0",
- "remark-lint-no-literal-urls": "^3.0.0",
- "remark-lint-no-shortcut-reference-image": "^3.0.0",
- "remark-lint-no-shortcut-reference-link": "^3.0.0",
- "remark-lint-no-undefined-references": "^4.0.0",
- "remark-lint-no-unused-definitions": "^3.0.0",
- "remark-lint-ordered-list-marker-style": "^3.0.0",
- "unified": "^10.0.0"
- }
- },
- "remark-retext": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/remark-retext/-/remark-retext-5.0.1.tgz",
- "integrity": "sha512-h3kOjKNy7oJfohqXlKp+W4YDigHD3rw01x91qvQP/cUkK5nJrDl6yEYwTujQCAXSLZrsBxywlK3ntzIX6c29aA==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "@types/unist": "^2.0.0",
- "mdast-util-to-nlcst": "^5.0.0",
- "unified": "^10.0.0"
- }
- },
"remark-stringify": {
- "version": "10.0.2",
- "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-10.0.2.tgz",
- "integrity": "sha512-6wV3pvbPvHkbNnWB0wdDvVFHOe1hBRAx1Q/5g/EpH4RppAII6J8Gnwe7VbHuXaoKIF6LAg6ExTel/+kNqSQ7lw==",
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz",
+ "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==",
"dev": true,
"requires": {
- "@types/mdast": "^3.0.0",
- "mdast-util-to-markdown": "^1.0.0",
- "unified": "^10.0.0"
+ "@types/mdast": "^4.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "unified": "^11.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.1.tgz",
+ "integrity": "sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "unified": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.3.tgz",
+ "integrity": "sha512-jlCV402P+YDcFcB2VcN/n8JasOddqIiaxv118wNBoZXEhOn+lYG7BR4Bfg2BwxvlK58dwbuH2w7GX2esAjL6Mg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
}
},
"remark-textr": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/remark-textr/-/remark-textr-5.0.1.tgz",
- "integrity": "sha512-Kd5q7I1LsZ04meMZJJwBze/wxiLhAItRTGevDeyx3K/WMd4juO6WbGLro0/99Ui6I+lYx/l90v0Ax4dVPj3/0Q==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/remark-textr/-/remark-textr-6.1.0.tgz",
+ "integrity": "sha512-3A61/6Dn8x5wS7f9BubnIjwZfttEw9+PWVFtwOvRzKXLmZDV1mgi9MJeaQ9BNzWhojsSRHWLNa2JHKCOOI5DfA==",
"dev": true,
"requires": {
- "@types/mdast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
"textr": "^0.3.0",
- "unified": "^10.0.0",
- "unist-util-visit": "^4.0.0"
+ "unist-util-visit": "^5.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.1.tgz",
+ "integrity": "sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "unist-util-visit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ }
+ }
}
},
"remark-validate-links": {
- "version": "11.0.2",
- "resolved": "https://registry.npmjs.org/remark-validate-links/-/remark-validate-links-11.0.2.tgz",
- "integrity": "sha512-SfVDWgF/Albdou1TmrCpq4AvJyvMnPflnaLLPUuFFxKO4Jp1o7fK2sinqPt+WW0DXS4JmtXPXm2FOkB8FJ08tQ==",
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/remark-validate-links/-/remark-validate-links-13.1.0.tgz",
+ "integrity": "sha512-z+glZ4zoRyrWimQHtoqJEFJdPoIR1R1SDr/JoWjmS6EsYlyhxNuCHtIt165gmV7ltOSFJ+rGsipqRGfBPInd7A==",
"dev": true,
"requires": {
- "@types/mdast": "^3.0.0",
- "github-slugger": "^1.0.0",
- "hosted-git-info": "^4.0.0",
- "mdast-util-to-string": "^3.0.0",
+ "@types/hosted-git-info": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "github-slugger": "^2.0.0",
+ "hosted-git-info": "^7.0.0",
+ "mdast-util-to-hast": "^13.0.0",
+ "mdast-util-to-string": "^4.0.0",
"propose": "0.0.5",
- "to-vfile": "^7.0.0",
"trough": "^2.0.0",
- "unified": "^10.0.0",
- "unified-engine": "^9.0.0",
- "unist-util-visit": "^4.0.0",
- "vfile": "^5.0.0"
+ "unified-engine": "^11.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0"
+ },
+ "dependencies": {
+ "@types/mdast": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.1.tgz",
+ "integrity": "sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "mdast-util-to-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
+ "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-visit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
}
},
"resolve": {
@@ -10605,6 +25582,12 @@
"supports-preserve-symlinks-flag": "^1.0.0"
}
},
+ "resolve-alpn": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",
+ "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==",
+ "dev": true
+ },
"resolve-from": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
@@ -10613,12 +25596,12 @@
"peer": true
},
"responselike": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
- "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz",
+ "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==",
"dev": true,
"requires": {
- "lowercase-keys": "^1.0.0"
+ "lowercase-keys": "^2.0.0"
}
},
"rimraf": {
@@ -10631,15 +25614,6 @@
"glob": "^7.1.3"
}
},
- "sade": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz",
- "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==",
- "dev": true,
- "requires": {
- "mri": "^1.1.0"
- }
- },
"safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
@@ -10647,20 +25621,16 @@
"dev": true
},
"semver": {
- "version": "7.3.5",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
- "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
- "dev": true,
- "requires": {
- "lru-cache": "^6.0.0"
- }
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "dev": true
},
"shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"dev": true,
- "peer": true,
"requires": {
"shebang-regex": "^3.0.0"
}
@@ -10669,8 +25639,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true,
- "peer": true
+ "dev": true
},
"side-channel": {
"version": "1.0.4",
@@ -10684,12 +25653,24 @@
"object-inspect": "^1.9.0"
}
},
+ "signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true
+ },
"sliced": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz",
"integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=",
"dev": true
},
+ "space-separated-tokens": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
+ "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
+ "dev": true
+ },
"string_decoder": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
@@ -10700,14 +25681,56 @@
}
},
"string-width": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.0.tgz",
- "integrity": "sha512-7x54QnN21P+XL/v8SuNKvfgsUre6PXpN7mc77N3HlZv+f1SBRGmjxtOud2Z6FZ8DmdkD/IdjCaf9XXbnqmTZGQ==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-6.1.0.tgz",
+ "integrity": "sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==",
"dev": true,
"requires": {
"eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
+ "emoji-regex": "^10.2.1",
"strip-ansi": "^7.0.1"
+ },
+ "dependencies": {
+ "emoji-regex": {
+ "version": "10.2.1",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.2.1.tgz",
+ "integrity": "sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA==",
+ "dev": true
+ }
+ }
+ },
+ "string-width-cjs": {
+ "version": "npm:string-width@4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "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==",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ }
}
},
"string.prototype.matchall": {
@@ -10749,6 +25772,16 @@
"define-properties": "^1.1.3"
}
},
+ "stringify-entities": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz",
+ "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==",
+ "dev": true,
+ "requires": {
+ "character-entities-html4": "^2.0.0",
+ "character-entities-legacy": "^3.0.0"
+ }
+ },
"strip-ansi": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz",
@@ -10758,6 +25791,23 @@
"ansi-regex": "^6.0.1"
}
},
+ "strip-ansi-cjs": {
+ "version": "npm:strip-ansi@6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.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==",
+ "dev": true
+ }
+ }
+ },
"strip-bom": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
@@ -10772,11 +25822,23 @@
"dev": true,
"peer": true
},
+ "super-regex": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/super-regex/-/super-regex-0.2.0.tgz",
+ "integrity": "sha512-WZzIx3rC1CvbMDloLsVw0lkZVKJWbrkJ0k1ghKFmcnPrW1+jWbgTkTEWVtD9lMdmI4jZEz40+naBxl1dCUhXXw==",
+ "dev": true,
+ "requires": {
+ "clone-regexp": "^3.0.0",
+ "function-timeout": "^0.1.0",
+ "time-span": "^5.1.0"
+ }
+ },
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
+ "peer": true,
"requires": {
"has-flag": "^4.0.0"
}
@@ -10800,11 +25862,14 @@
"integrity": "sha1-cXNhKGlirI3za3omGft3OhW5t/c=",
"dev": true
},
- "to-readable-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
- "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==",
- "dev": true
+ "time-span": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/time-span/-/time-span-5.1.0.tgz",
+ "integrity": "sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==",
+ "dev": true,
+ "requires": {
+ "convert-hrtime": "^5.0.0"
+ }
},
"to-regex-range": {
"version": "5.0.1",
@@ -10815,22 +25880,18 @@
"is-number": "^7.0.0"
}
},
- "to-vfile": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-7.2.3.tgz",
- "integrity": "sha512-QO0A9aE6Z/YkmQadJ0syxpmNXtcQiu0qAtCKYKD5cS3EfgfFTAXfgLX6AOaBrSfWSek5nfsMf3gBZ9KGVFcLuw==",
- "dev": true,
- "requires": {
- "is-buffer": "^2.0.0",
- "vfile": "^5.1.0"
- }
- },
"too-wordy": {
"version": "0.3.4",
"resolved": "https://registry.npmjs.org/too-wordy/-/too-wordy-0.3.4.tgz",
"integrity": "sha512-EU+UA4zHc06TkVQaravNNVdqX763/ENTIOKiKlqSJ6WKCPwLxHjvY3d0uEJYaq92iojyHPwD2iaYbZKjdw3icA==",
"dev": true
},
+ "trim-lines": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
+ "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==",
+ "dev": true
+ },
"trough": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz",
@@ -10851,9 +25912,9 @@
},
"dependencies": {
"json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true,
"peer": true,
"requires": {
@@ -10872,12 +25933,6 @@
"prelude-ls": "^1.2.1"
}
},
- "type-fest": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz",
- "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==",
- "dev": true
- },
"typedarray": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
@@ -10897,138 +25952,233 @@
"which-boxed-primitive": "^1.0.2"
}
},
- "unified": {
- "version": "10.1.1",
- "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.1.tgz",
- "integrity": "sha512-v4ky1+6BN9X3pQrOdkFIPWAaeDsHPE1svRDxq7YpTc2plkIqFMwukfqM+l0ewpP9EfwARlt9pPFAeWYhHm8X9w==",
- "dev": true,
- "requires": {
- "@types/unist": "^2.0.0",
- "bail": "^2.0.0",
- "extend": "^3.0.0",
- "is-buffer": "^2.0.0",
- "is-plain-obj": "^4.0.0",
- "trough": "^2.0.0",
- "vfile": "^5.0.0"
- }
+ "undici": {
+ "version": "6.21.3",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.3.tgz",
+ "integrity": "sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==",
+ "dev": true
},
"unified-args": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/unified-args/-/unified-args-9.0.2.tgz",
- "integrity": "sha512-qSqryjoqfJSII4E4Z2Jx7MhXX2MuUIn6DsrlmL8UnWFdGtrWvEtvm7Rx5fKT5TPUz7q/Fb4oxwIHLCttvAuRLQ==",
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/unified-args/-/unified-args-11.0.0.tgz",
+ "integrity": "sha512-4q3OQ2EbNIaxVX1pMoB/QdFxw9BSOWBGUwn5LK3UJict+6i0ud18A1DZ177+2r5hC2nYFOw1jbCp27ydl44Zhg==",
"dev": true,
"requires": {
"@types/text-table": "^0.2.0",
- "camelcase": "^6.0.0",
- "chalk": "^4.0.0",
+ "chalk": "^5.0.0",
"chokidar": "^3.0.0",
- "fault": "^2.0.0",
+ "comma-separated-tokens": "^2.0.0",
"json5": "^2.0.0",
"minimist": "^1.0.0",
+ "strip-ansi": "^7.0.0",
"text-table": "^0.2.0",
- "unified-engine": "^9.0.0"
+ "unified-engine": "^11.0.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
+ "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
+ "dev": true
+ }
}
},
"unified-engine": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/unified-engine/-/unified-engine-9.0.5.tgz",
- "integrity": "sha512-frQ6lUNlkTwVC0JELJqSSITpE7MLrLJqAWmDrUFj5Do6A4/3n6eX5Jyg8fhe4Dbwwh38spqUJd39FtRFG34QWg==",
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/unified-engine/-/unified-engine-11.1.0.tgz",
+ "integrity": "sha512-RS3K5PgNjDRQN9eNIefLUDxpfyWIItmKcjBhD1VnYYT/h7xpheZoZBtb5gtwFyKWZlhKCGRVQknIm1M8qHZfIg==",
"dev": true,
"requires": {
- "@types/concat-stream": "^1.0.0",
+ "@types/concat-stream": "^2.0.0",
"@types/debug": "^4.0.0",
"@types/is-empty": "^1.0.0",
- "@types/js-yaml": "^4.0.0",
- "@types/node": "^17.0.0",
- "@types/unist": "^2.0.0",
+ "@types/node": "^20.0.0",
+ "@types/unist": "^3.0.0",
+ "@ungap/structured-clone": "^1.0.0",
"concat-stream": "^2.0.0",
"debug": "^4.0.0",
- "fault": "^2.0.0",
- "glob": "^7.0.0",
- "ignore": "^5.0.0",
- "is-buffer": "^2.0.0",
- "is-empty": "^1.0.0",
- "is-plain-obj": "^4.0.0",
- "js-yaml": "^4.0.0",
- "load-plugin": "^4.0.0",
- "parse-json": "^6.0.0",
- "to-vfile": "^7.0.0",
- "trough": "^2.0.0",
- "unist-util-inspect": "^7.0.0",
- "vfile-message": "^3.0.0",
- "vfile-reporter": "^7.0.0",
- "vfile-statistics": "^2.0.0"
- }
- },
- "unified-lint-rule": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.1.1.tgz",
- "integrity": "sha512-vsLHyLZFstqtGse2gvrGwasOmH8M2y+r2kQMoDSWzSqUkQx2MjHjvZuGSv5FUaiv4RQO1bHRajy7lSGp7XWq5A==",
- "dev": true,
- "requires": {
- "@types/unist": "^2.0.0",
+ "glob": "^10.0.0",
+ "ignore": "^5.0.0",
+ "is-empty": "^1.0.0",
+ "is-plain-obj": "^4.0.0",
+ "load-plugin": "^5.0.0",
+ "parse-json": "^7.0.0",
"trough": "^2.0.0",
- "unified": "^10.0.0",
- "vfile": "^5.0.0"
+ "unist-util-inspect": "^8.0.0",
+ "vfile": "^6.0.0",
+ "vfile-message": "^4.0.0",
+ "vfile-reporter": "^8.0.0",
+ "vfile-statistics": "^3.0.0",
+ "yaml": "^2.0.0"
+ },
+ "dependencies": {
+ "@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "glob": {
+ "version": "10.3.10",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
+ "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+ "dev": true,
+ "requires": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^2.3.5",
+ "minimatch": "^9.0.1",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
+ "path-scurry": "^1.10.1"
+ }
+ },
+ "minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
}
},
"unified-message-control": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/unified-message-control/-/unified-message-control-4.0.0.tgz",
- "integrity": "sha512-1b92N+VkPHftOsvXNOtkJm4wHlr+UDmTBF2dUzepn40oy9NxanJ9xS1RwUBTjXJwqr2K0kMbEyv1Krdsho7+Iw==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unified-message-control/-/unified-message-control-5.0.0.tgz",
+ "integrity": "sha512-B2cSAkpuMVVmPP90KCfKdBhm1e9KYJ+zK3x5BCa0N65zpq1Ybkc9C77+M5qwR8FWO7RF3LM5QRRPZtgjW6DUCw==",
"dev": true,
"requires": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^5.0.0",
- "unist-util-visit": "^3.0.0",
- "vfile": "^5.0.0",
- "vfile-location": "^4.0.0",
- "vfile-message": "^3.0.0"
+ "@types/unist": "^3.0.0",
+ "devlop": "^1.0.0",
+ "space-separated-tokens": "^2.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0",
+ "vfile-location": "^5.0.0",
+ "vfile-message": "^4.0.0"
},
"dependencies": {
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
"unist-util-visit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-3.1.0.tgz",
- "integrity": "sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
"dev": true,
"requires": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^5.0.0",
- "unist-util-visit-parents": "^4.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
}
},
- "unist-util-visit-parents": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz",
- "integrity": "sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==",
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
"dev": true,
"requires": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^5.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
}
}
}
},
- "unist-util-generated": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.0.tgz",
- "integrity": "sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw==",
- "dev": true
- },
"unist-util-inspect": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-inspect/-/unist-util-inspect-7.0.0.tgz",
- "integrity": "sha512-2Utgv78I7PUu461Y9cdo+IUiiKSKpDV5CE/XD6vTj849a3xlpDAScvSJ6cQmtFBGgAmCn2wR7jLuXhpg1XLlJw==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-inspect/-/unist-util-inspect-8.0.0.tgz",
+ "integrity": "sha512-/3Wn/wU6/H6UEo4FoYUeo8KUePN8ERiZpQYFWYoihOsr1DoDuv80PeB0hobVZyYSvALa2e556bG1A1/AbwU4yg==",
"dev": true,
"requires": {
- "@types/unist": "^2.0.0"
+ "@types/unist": "^3.0.0"
+ },
+ "dependencies": {
+ "@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ }
}
},
"unist-util-is": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz",
- "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==",
- "dev": true
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz",
+ "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ },
+ "dependencies": {
+ "@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "dev": true
+ }
+ }
},
"unist-util-map": {
"version": "1.0.5",
@@ -11039,19 +26189,51 @@
"object-assign": "^4.0.1"
}
},
- "unist-util-position": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz",
- "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==",
- "dev": true
+ "unist-util-modify-children": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-4.0.0.tgz",
+ "integrity": "sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "array-iterate": "^2.0.0"
+ },
+ "dependencies": {
+ "@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ }
+ }
},
- "unist-util-stringify-position": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz",
- "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==",
+ "unist-util-remove-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz",
+ "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==",
"dev": true,
"requires": {
- "@types/unist": "^2.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-visit": "^5.0.0"
+ },
+ "dependencies": {
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unist-util-visit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ }
+ }
}
},
"unist-util-to-list-of-char": {
@@ -11096,25 +26278,39 @@
}
}
},
- "unist-util-visit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.0.tgz",
- "integrity": "sha512-n7lyhFKJfVZ9MnKtqbsqkQEk5P1KShj0+//V7mAcoI6bpbUjh3C/OG8HVD+pBihfh6Ovl01m8dkcv9HNqYajmQ==",
+ "unist-util-visit-children": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-3.0.0.tgz",
+ "integrity": "sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==",
"dev": true,
"requires": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^5.0.0",
- "unist-util-visit-parents": "^5.0.0"
+ "@types/unist": "^3.0.0"
+ },
+ "dependencies": {
+ "@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ }
}
},
"unist-util-visit-parents": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.0.tgz",
- "integrity": "sha512-y+QVLcY5eR/YVpqDsLf/xh9R3Q2Y4HxkZTp7ViLDU6WtJCEcPmRzW1gpdWDCDIqIlhuPDXOgttqPlykrHYDekg==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz",
+ "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==",
"dev": true,
"requires": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^5.0.0"
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0"
+ },
+ "dependencies": {
+ "@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "dev": true
+ }
}
},
"uri-js": {
@@ -11127,33 +26323,12 @@
"punycode": "^2.1.0"
}
},
- "url-parse-lax": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
- "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
- "dev": true,
- "requires": {
- "prepend-http": "^2.0.0"
- }
- },
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
"dev": true
},
- "uvu": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.3.tgz",
- "integrity": "sha512-brFwqA3FXzilmtnIyJ+CxdkInkY/i4ErvP7uV0DnUVxQcQ55reuHphorpF+tZoVHK2MniZ/VJzI7zJQoc9T9Yw==",
- "dev": true,
- "requires": {
- "dequal": "^2.0.0",
- "diff": "^5.0.0",
- "kleur": "^4.0.3",
- "sade": "^1.7.3"
- }
- },
"v8-compile-cache": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
@@ -11161,90 +26336,233 @@
"dev": true,
"peer": true
},
- "vfile": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.0.tgz",
- "integrity": "sha512-Tj44nY/48OQvarrE4FAjUfrv7GZOYzPbl5OD65HxVKwLJKMPU7zmfV8cCgCnzKWnSfYG2f3pxu+ALqs7j22xQQ==",
- "dev": true,
- "requires": {
- "@types/unist": "^2.0.0",
- "is-buffer": "^2.0.0",
- "unist-util-stringify-position": "^3.0.0",
- "vfile-message": "^3.0.0"
- }
- },
"vfile-location": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz",
- "integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==",
- "dev": true,
- "requires": {
- "@types/unist": "^2.0.0",
- "vfile": "^5.0.0"
- }
- },
- "vfile-message": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.0.tgz",
- "integrity": "sha512-4QJbBk+DkPEhBXq3f260xSaWtjE4gPKOfulzfMFF8ZNwaPZieWsg3iVlcmF04+eebzpcpeXOOFMfrYzJHVYg+g==",
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.2.tgz",
+ "integrity": "sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==",
"dev": true,
"requires": {
- "@types/unist": "^2.0.0",
- "unist-util-stringify-position": "^3.0.0"
+ "@types/unist": "^3.0.0",
+ "vfile": "^6.0.0"
+ },
+ "dependencies": {
+ "@types/unist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "dev": true
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
}
},
"vfile-reporter": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-7.0.3.tgz",
- "integrity": "sha512-q+ruTWxFHbow359TDqoNJn5THdwRDeV+XUOtzdT/OESgaGw05CjL68ImlbzRzqS5xL62Y1IaIWb8x+RbaNjayA==",
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-8.1.0.tgz",
+ "integrity": "sha512-NfHyHdkCcy0BsXiLA3nId29TY7W7hgpc8nd8Soe3imATx5N4/+mkLYdMR+Y6Zvu6BXMMi0FZsD4FLCm1dN85Pg==",
"dev": true,
"requires": {
"@types/supports-color": "^8.0.0",
- "string-width": "^5.0.0",
+ "string-width": "^6.0.0",
"supports-color": "^9.0.0",
- "unist-util-stringify-position": "^3.0.0",
- "vfile-sort": "^3.0.0",
- "vfile-statistics": "^2.0.0"
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile": "^6.0.0",
+ "vfile-message": "^4.0.0",
+ "vfile-sort": "^4.0.0",
+ "vfile-statistics": "^3.0.0"
},
"dependencies": {
+ "@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
"supports-color": {
- "version": "9.2.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.2.1.tgz",
- "integrity": "sha512-Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ==",
+ "version": "9.4.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz",
+ "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==",
"dev": true
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
}
}
},
"vfile-sort": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-3.0.0.tgz",
- "integrity": "sha512-fJNctnuMi3l4ikTVcKpxTbzHeCgvDhnI44amA3NVDvA6rTC6oKCFpCVyT5n2fFMr3ebfr+WVQZedOCd73rzSxg==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-4.0.0.tgz",
+ "integrity": "sha512-lffPI1JrbHDTToJwcq0rl6rBmkjQmMuXkAxsZPRS9DXbaJQvc642eCg6EGxcX2i1L+esbuhq+2l9tBll5v8AeQ==",
"dev": true,
"requires": {
- "vfile-message": "^3.0.0"
+ "vfile": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "dependencies": {
+ "@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
}
},
"vfile-statistics": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-2.0.0.tgz",
- "integrity": "sha512-foOWtcnJhKN9M2+20AOTlWi2dxNfAoeNIoxD5GXcO182UJyId4QrXa41fWrgcfV3FWTjdEDy3I4cpLVcQscIMA==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-3.0.0.tgz",
+ "integrity": "sha512-/qlwqwWBWFOmpXujL/20P+Iuydil0rZZNglR+VNm6J0gpLHwuVM5s7g2TfVoswbXjZ4HuIhLMySEyIw5i7/D8w==",
"dev": true,
"requires": {
- "vfile-message": "^3.0.0"
+ "vfile": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "dependencies": {
+ "@types/unist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+ "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==",
+ "dev": true
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "vfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+ "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ }
}
},
+ "walk-up-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-1.0.0.tgz",
+ "integrity": "sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==",
+ "dev": true
+ },
"weasel-words": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/weasel-words/-/weasel-words-0.1.1.tgz",
"integrity": "sha1-cTeUZYXHP+RIggE4U70ADF1oek4=",
"dev": true
},
+ "web-namespaces": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz",
+ "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==",
+ "dev": true
+ },
"which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dev": true,
- "peer": true,
"requires": {
"isexe": "^2.0.0"
}
@@ -11264,12 +26582,87 @@
}
},
"word-wrap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
- "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz",
+ "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==",
"dev": true,
"peer": true
},
+ "wrap-ansi": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "dev": true,
+ "requires": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ }
+ }
+ }
+ },
+ "wrap-ansi-cjs": {
+ "version": "npm:wrap-ansi@7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.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==",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ }
+ }
+ },
"wrapped": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/wrapped/-/wrapped-1.0.1.tgz",
@@ -11301,10 +26694,16 @@
"weasel-words": "^0.1.1"
}
},
- "yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "yaml": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz",
+ "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==",
+ "dev": true
+ },
+ "yocto-queue": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz",
+ "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==",
"dev": true
},
"zwitch": {
diff --git a/package.json b/package.json
index e441d81ab4..26905302dc 100644
--- a/package.json
+++ b/package.json
@@ -28,73 +28,74 @@
},
"homepage": "https://gitversion.net/",
"devDependencies": {
- "remark": "^14.0.2",
- "remark-cli": "^10.0.1",
- "remark-frontmatter": "^4.0.1",
- "remark-heading-gap": "^5.0.1",
- "remark-lint": "^9.1.1",
- "remark-lint-blockquote-indentation": "^3.1.1",
- "remark-lint-checkbox-character-style": "^4.1.1",
- "remark-lint-checkbox-content-indent": "^4.1.1",
+ "remark": "^15.0.1",
+ "remark-cli": "^12.0.1",
+ "remark-frontmatter": "^5.0.0",
+ "remark-heading-gap": "^6.0.0",
+ "remark-lint": "^10.0.1",
+ "remark-lint-blockquote-indentation": "^4.0.1",
+ "remark-lint-checkbox-character-style": "^5.0.1",
+ "remark-lint-checkbox-content-indent": "^5.0.1",
"remark-lint-code": "^2.0.0",
- "remark-lint-code-block-style": "^3.1.0",
- "remark-lint-definition-case": "^3.1.1",
- "remark-lint-definition-spacing": "^3.1.1",
- "remark-lint-fenced-code-flag": "^3.1.1",
- "remark-lint-fenced-code-marker": "^3.1.1",
- "remark-lint-file-extension": "^2.1.1",
- "remark-lint-final-definition": "^3.1.1",
- "remark-lint-final-newline": "^2.1.1",
- "remark-lint-hard-break-spaces": "^3.1.1",
- "remark-lint-heading-increment": "^3.1.1",
- "remark-lint-heading-style": "^3.1.1",
+ "remark-lint-code-block-style": "^4.0.1",
+ "remark-lint-definition-case": "^4.0.1",
+ "remark-lint-definition-spacing": "^4.0.1",
+ "remark-lint-fenced-code-flag": "^4.2.0",
+ "remark-lint-fenced-code-marker": "^4.0.1",
+ "remark-lint-file-extension": "^3.0.1",
+ "remark-lint-final-definition": "^4.0.2",
+ "remark-lint-final-newline": "^3.0.1",
+ "remark-lint-hard-break-spaces": "^4.1.1",
+ "remark-lint-heading-increment": "^4.0.1",
+ "remark-lint-heading-style": "^4.0.1",
"remark-lint-heading-whitespace": "^1.0.0",
- "remark-lint-link-title-style": "^3.1.1",
- "remark-lint-list-item-bullet-indent": "^4.1.1",
- "remark-lint-list-item-content-indent": "^3.1.1",
- "remark-lint-list-item-indent": "^3.1.1",
- "remark-lint-maximum-heading-length": "^3.1.1",
- "remark-lint-no-auto-link-without-protocol": "^3.1.1",
- "remark-lint-no-blockquote-without-marker": "^5.1.1",
- "remark-lint-no-consecutive-blank-lines": "^4.1.2",
- "remark-lint-no-dead-urls": "^1.1.0",
- "remark-lint-no-duplicate-definitions": "^3.1.1",
- "remark-lint-no-duplicate-headings": "^3.1.1",
- "remark-lint-no-emphasis-as-heading": "^3.1.1",
+ "remark-lint-link-title-style": "^4.0.1",
+ "remark-lint-list-item-bullet-indent": "^5.0.1",
+ "remark-lint-list-item-content-indent": "^4.0.1",
+ "remark-lint-list-item-indent": "^4.0.1",
+ "remark-lint-maximum-heading-length": "^4.1.1",
+ "remark-lint-no-blockquote-without-marker": "^6.0.1",
+ "remark-lint-no-consecutive-blank-lines": "^5.0.1",
+ "remark-lint-no-dead-urls": "^2.0.1",
+ "remark-lint-no-duplicate-definitions": "^4.0.1",
+ "remark-lint-no-duplicate-headings": "^4.0.1",
+ "remark-lint-no-emphasis-as-heading": "^4.0.1",
"remark-lint-no-empty-sections": "^4.0.0",
- "remark-lint-no-empty-url": "^3.1.1",
- "remark-lint-no-file-name-articles": "^2.1.1",
- "remark-lint-no-file-name-consecutive-dashes": "^2.1.1",
- "remark-lint-no-file-name-irregular-characters": "^2.1.1",
- "remark-lint-no-file-name-mixed-case": "^2.1.1",
- "remark-lint-no-file-name-outer-dashes": "^2.1.1",
- "remark-lint-no-heading-content-indent": "^4.1.1",
- "remark-lint-no-heading-indent": "^4.1.1",
- "remark-lint-no-heading-like-paragraph": "^3.1.1",
- "remark-lint-no-inline-padding": "^4.1.1",
- "remark-lint-no-literal-urls": "^3.1.1",
- "remark-lint-no-multiple-toplevel-headings": "^3.1.1",
- "remark-lint-no-reference-like-url": "^3.1.1",
+ "remark-lint-no-empty-url": "^4.0.1",
+ "remark-lint-no-file-name-articles": "^3.0.1",
+ "remark-lint-no-file-name-consecutive-dashes": "^3.0.1",
+ "remark-lint-no-file-name-irregular-characters": "^3.0.1",
+ "remark-lint-no-file-name-mixed-case": "^3.0.1",
+ "remark-lint-no-file-name-outer-dashes": "^3.0.1",
+ "remark-lint-no-heading-content-indent": "^5.0.1",
+ "remark-lint-no-heading-indent": "^5.0.1",
+ "remark-lint-no-heading-like-paragraph": "^4.0.1",
+ "remark-lint-no-literal-urls": "^4.0.1",
+ "remark-lint-no-multiple-toplevel-headings": "^4.0.1",
+ "remark-lint-no-reference-like-url": "^4.0.1",
"remark-lint-no-repeat-punctuation": "^0.1.4",
- "remark-lint-no-shell-dollars": "^3.1.1",
- "remark-lint-no-shortcut-reference-image": "^3.1.1",
- "remark-lint-no-table-indentation": "^4.1.1",
- "remark-lint-no-tabs": "^3.1.1",
- "remark-lint-no-unused-definitions": "^3.1.1",
- "remark-lint-ordered-list-marker-style": "^3.1.1",
- "remark-lint-ordered-list-marker-value": "^3.1.1",
- "remark-lint-rule-style": "^3.1.1",
- "remark-lint-strong-marker": "^3.1.1",
- "remark-lint-table-cell-padding": "^4.1.2",
- "remark-lint-table-pipe-alignment": "^3.1.1",
- "remark-lint-table-pipes": "^4.1.1",
- "remark-lint-unordered-list-marker-style": "^3.1.1",
+ "remark-lint-no-shell-dollars": "^4.0.1",
+ "remark-lint-no-shortcut-reference-image": "^4.0.1",
+ "remark-lint-no-table-indentation": "^5.0.1",
+ "remark-lint-no-tabs": "^4.0.1",
+ "remark-lint-no-unused-definitions": "^4.0.2",
+ "remark-lint-ordered-list-marker-style": "^4.0.1",
+ "remark-lint-ordered-list-marker-value": "^4.0.1",
+ "remark-lint-rule-style": "^4.0.1",
+ "remark-lint-strong-marker": "^4.0.1",
+ "remark-lint-table-cell-padding": "^5.1.1",
+ "remark-lint-table-pipe-alignment": "^4.1.1",
+ "remark-lint-table-pipes": "^5.0.1",
+ "remark-lint-unordered-list-marker-style": "^4.0.1",
"remark-lint-write-good": "^1.2.0",
- "remark-preset-lint-consistent": "^5.1.1",
- "remark-preset-lint-markdown-style-guide": "^5.1.2",
- "remark-preset-lint-recommended": "^6.1.2",
- "remark-retext": "^5.0.1",
- "remark-textr": "^5.0.1",
- "remark-validate-links": "^11.0.2"
+ "remark-preset-lint-consistent": "^6.0.1",
+ "remark-preset-lint-markdown-style-guide": "^6.0.1",
+ "remark-preset-lint-recommended": "^7.0.1",
+ "remark-retext": "^6.0.1",
+ "remark-textr": "^6.1.0",
+ "remark-validate-links": "^13.1.0"
+ },
+ "overrides": {
+ "got": "^11.8.5"
}
}
diff --git a/qodana.sarif.json b/qodana.sarif.json
new file mode 100644
index 0000000000..1f50cbde5f
--- /dev/null
+++ b/qodana.sarif.json
@@ -0,0 +1,160237 @@
+{
+ "$schema": "https://raw.githubusercontent.com/schemastore/schemastore/master/src/schemas/json/sarif-2.1.0-rtm.5.json",
+ "version": "2.1.0",
+ "runs": [
+ {
+ "tool": {
+ "driver": {
+ "name": "QDNET",
+ "fullName": "Qodana for .NET",
+ "version": "243.24609",
+ "rules": [],
+ "taxa": [
+ {
+ "id": "C#",
+ "name": "C#"
+ },
+ {
+ "id": "C#/Potential Code Quality Issues",
+ "name": "Potential Code Quality Issues",
+ "relationships": [
+ {
+ "target": {
+ "id": "C#",
+ "index": 0,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "C_C++",
+ "name": "C/C++"
+ },
+ {
+ "id": "C_C++/Clang Diagnostics",
+ "name": "Clang Diagnostics",
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++",
+ "index": 2,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "XAML",
+ "name": "XAML"
+ },
+ {
+ "id": "XAML/Code Notification",
+ "name": "Code Notification",
+ "relationships": [
+ {
+ "target": {
+ "id": "XAML",
+ "index": 4,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "C_C++/Unreal Engine",
+ "name": "Unreal Engine",
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++",
+ "index": 2,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "C#/Language Usage Opportunities",
+ "name": "Language Usage Opportunities",
+ "relationships": [
+ {
+ "target": {
+ "id": "C#",
+ "index": 0,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "C_C++/Clang-Tidy Checks",
+ "name": "Clang-Tidy Checks",
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++",
+ "index": 2,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "C_C++/Potential Code Quality Issues",
+ "name": "Potential Code Quality Issues",
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++",
+ "index": 2,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Sass_SCSS",
+ "name": "Sass/SCSS"
+ },
+ {
+ "id": "HTML",
+ "name": "HTML"
+ },
+ {
+ "id": "C#/Common Practices and Code Improvements",
+ "name": "Common Practices and Code Improvements",
+ "relationships": [
+ {
+ "target": {
+ "id": "C#",
+ "index": 0,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "PostCSS",
+ "name": "PostCSS"
+ },
+ {
+ "id": "JavaScript and TypeScript",
+ "name": "JavaScript and TypeScript"
+ },
+ {
+ "id": "JavaScript and TypeScript/Bitwise operation issues",
+ "name": "Bitwise operation issues",
+ "relationships": [
+ {
+ "target": {
+ "id": "JavaScript and TypeScript",
+ "index": 14,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "C_C++/Common Practices and Code Improvements",
+ "name": "Common Practices and Code Improvements",
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++",
+ "index": 2,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "JavaScript and TypeScript/General",
+ "name": "General",
+ "relationships": [
+ {
+ "target": {
+ "id": "JavaScript and TypeScript",
+ "index": 14,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "C#/Unity",
+ "name": "Unity",
+ "relationships": [
+ {
+ "target": {
+ "id": "C#",
+ "index": 0,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "HTTP Client",
+ "name": "HTTP Client"
+ },
+ {
+ "id": "EditorConfig",
+ "name": "EditorConfig"
+ },
+ {
+ "id": "C#/Syntax Style",
+ "name": "Syntax Style",
+ "relationships": [
+ {
+ "target": {
+ "id": "C#",
+ "index": 0,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "JavaScript and TypeScript/Validity issues",
+ "name": "Validity issues",
+ "relationships": [
+ {
+ "target": {
+ "id": "JavaScript and TypeScript",
+ "index": 14,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "C#/Redundancies in Code",
+ "name": "Redundancies in Code",
+ "relationships": [
+ {
+ "target": {
+ "id": "C#",
+ "index": 0,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "C#/Formatting",
+ "name": "Formatting",
+ "relationships": [
+ {
+ "target": {
+ "id": "C#",
+ "index": 0,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "SQL",
+ "name": "SQL"
+ },
+ {
+ "id": "C#/NUnit",
+ "name": "NUnit",
+ "relationships": [
+ {
+ "target": {
+ "id": "C#",
+ "index": 0,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "C#/Compiler Warnings",
+ "name": "Compiler Warnings",
+ "relationships": [
+ {
+ "target": {
+ "id": "C#",
+ "index": 0,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "C_C++/Formatting",
+ "name": "Formatting",
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++",
+ "index": 2,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CSS",
+ "name": "CSS"
+ },
+ {
+ "id": "CSS/Invalid elements",
+ "name": "Invalid elements",
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS",
+ "index": 29,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "JavaScript and TypeScript/Potentially undesirable code constructs",
+ "name": "Potentially undesirable code constructs",
+ "relationships": [
+ {
+ "target": {
+ "id": "JavaScript and TypeScript",
+ "index": 14,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "C_C++/Clang Static Analyzer Checks",
+ "name": "Clang Static Analyzer Checks",
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++",
+ "index": 2,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Kubernetes",
+ "name": "Kubernetes"
+ },
+ {
+ "id": "C_C++/Redundancies in Code",
+ "name": "Redundancies in Code",
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++",
+ "index": 2,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "C#/Roslyn Analyzers",
+ "name": "Roslyn Analyzers",
+ "relationships": [
+ {
+ "target": {
+ "id": "C#",
+ "index": 0,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "C#/Redundancies in Symbol Declarations",
+ "name": "Redundancies in Symbol Declarations",
+ "relationships": [
+ {
+ "target": {
+ "id": "C#",
+ "index": 0,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "C#/Entity Framework",
+ "name": "Entity Framework",
+ "relationships": [
+ {
+ "target": {
+ "id": "C#",
+ "index": 0,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Properties files",
+ "name": "Properties files"
+ },
+ {
+ "id": "VB.NET",
+ "name": "VB.NET"
+ },
+ {
+ "id": "VB.NET/Common Practices and Code Improvements",
+ "name": "Common Practices and Code Improvements",
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET",
+ "index": 39,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Blazor",
+ "name": "Blazor"
+ },
+ {
+ "id": "Blazor/Potential Code Quality Issues",
+ "name": "Potential Code Quality Issues",
+ "relationships": [
+ {
+ "target": {
+ "id": "Blazor",
+ "index": 41,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "XSLT",
+ "name": "XSLT"
+ },
+ {
+ "id": "Dockerfile",
+ "name": "Dockerfile"
+ },
+ {
+ "id": "XAML/Potential Code Quality Issues",
+ "name": "Potential Code Quality Issues",
+ "relationships": [
+ {
+ "target": {
+ "id": "XAML",
+ "index": 4,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "General",
+ "name": "General"
+ },
+ {
+ "id": "ASP.NET route templates",
+ "name": "ASP.NET route templates"
+ },
+ {
+ "id": "ASP.NET route templates/Code Notification",
+ "name": "Code Notification",
+ "relationships": [
+ {
+ "target": {
+ "id": "ASP.NET route templates",
+ "index": 47,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "JavaScript and TypeScript/ES2015 migration aids",
+ "name": "ES2015 migration aids",
+ "relationships": [
+ {
+ "target": {
+ "id": "JavaScript and TypeScript",
+ "index": 14,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "C#/Godot",
+ "name": "Godot",
+ "relationships": [
+ {
+ "target": {
+ "id": "C#",
+ "index": 0,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "JavaScript and TypeScript/DOM issues",
+ "name": "DOM issues",
+ "relationships": [
+ {
+ "target": {
+ "id": "JavaScript and TypeScript",
+ "index": 14,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "C#/Non configurable",
+ "name": "Non configurable",
+ "relationships": [
+ {
+ "target": {
+ "id": "C#",
+ "index": 0,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Code Coverage",
+ "name": "Code Coverage"
+ },
+ {
+ "id": "HTML/Potential Code Quality Issues",
+ "name": "Potential Code Quality Issues",
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML",
+ "index": 11,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "JavaScript and TypeScript/TypeScript",
+ "name": "TypeScript",
+ "relationships": [
+ {
+ "target": {
+ "id": "JavaScript and TypeScript",
+ "index": 14,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "XML",
+ "name": "XML"
+ },
+ {
+ "id": "C#/Unity Burst Compiler Warnings",
+ "name": "Unity Burst Compiler Warnings",
+ "relationships": [
+ {
+ "target": {
+ "id": "C#",
+ "index": 0,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RegExp",
+ "name": "RegExp"
+ },
+ {
+ "id": "Angular",
+ "name": "Angular"
+ },
+ {
+ "id": "XAML/Compiler Warnings",
+ "name": "Compiler Warnings",
+ "relationships": [
+ {
+ "target": {
+ "id": "XAML",
+ "index": 4,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "JavaScript and TypeScript/Potentially confusing code constructs",
+ "name": "Potentially confusing code constructs",
+ "relationships": [
+ {
+ "target": {
+ "id": "JavaScript and TypeScript",
+ "index": 14,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VB.NET/Potential Code Quality Issues",
+ "name": "Potential Code Quality Issues",
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET",
+ "index": 39,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Aspx",
+ "name": "Aspx"
+ },
+ {
+ "id": "Aspx/Potential Code Quality Issues",
+ "name": "Potential Code Quality Issues",
+ "relationships": [
+ {
+ "target": {
+ "id": "Aspx",
+ "index": 63,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "JavaScript and TypeScript/Control flow issues",
+ "name": "Control flow issues",
+ "relationships": [
+ {
+ "target": {
+ "id": "JavaScript and TypeScript",
+ "index": 14,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "OpenAPI specifications",
+ "name": "OpenAPI specifications"
+ },
+ {
+ "id": "ResX",
+ "name": "ResX"
+ },
+ {
+ "id": "ResX/Potential Code Quality Issues",
+ "name": "Potential Code Quality Issues",
+ "relationships": [
+ {
+ "target": {
+ "id": "ResX",
+ "index": 67,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "JavaScript and TypeScript/Code quality tools",
+ "name": "Code quality tools",
+ "relationships": [
+ {
+ "target": {
+ "id": "JavaScript and TypeScript",
+ "index": 14,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "GitHub actions",
+ "name": "GitHub actions"
+ },
+ {
+ "id": "Pug_Jade",
+ "name": "Pug/Jade"
+ },
+ {
+ "id": "F#",
+ "name": "F#"
+ },
+ {
+ "id": "F#/Redundancies in Code",
+ "name": "Redundancies in Code",
+ "relationships": [
+ {
+ "target": {
+ "id": "F#",
+ "index": 72,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "HTML/Common Practices and Code Improvements",
+ "name": "Common Practices and Code Improvements",
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML",
+ "index": 11,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "C_C++/Compiler Warnings",
+ "name": "Compiler Warnings",
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++",
+ "index": 2,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "JavaScript and TypeScript/Function metrics",
+ "name": "Function metrics",
+ "relationships": [
+ {
+ "target": {
+ "id": "JavaScript and TypeScript",
+ "index": 14,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "XAML/Redundancies in Code",
+ "name": "Redundancies in Code",
+ "relationships": [
+ {
+ "target": {
+ "id": "XAML",
+ "index": 4,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "JSONPath",
+ "name": "JSONPath"
+ },
+ {
+ "id": "JavaScript and TypeScript/Code style issues",
+ "name": "Code style issues",
+ "relationships": [
+ {
+ "target": {
+ "id": "JavaScript and TypeScript",
+ "index": 14,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "C#/Constraints Violations",
+ "name": "Constraints Violations",
+ "relationships": [
+ {
+ "target": {
+ "id": "C#",
+ "index": 0,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Web.Config",
+ "name": "Web.Config"
+ },
+ {
+ "id": "Web.Config/Potential Code Quality Issues",
+ "name": "Potential Code Quality Issues",
+ "relationships": [
+ {
+ "target": {
+ "id": "Web.Config",
+ "index": 81,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "HTML/Accessibility",
+ "name": "Accessibility",
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML",
+ "index": 11,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "JSON and JSON5",
+ "name": "JSON and JSON5"
+ },
+ {
+ "id": "XPath",
+ "name": "XPath"
+ },
+ {
+ "id": "JavaScript and TypeScript/Probable bugs",
+ "name": "Probable bugs",
+ "relationships": [
+ {
+ "target": {
+ "id": "JavaScript and TypeScript",
+ "index": 14,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "C#/Security",
+ "name": "Security",
+ "relationships": [
+ {
+ "target": {
+ "id": "C#",
+ "index": 0,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Vue",
+ "name": "Vue"
+ },
+ {
+ "id": "MongoJS",
+ "name": "MongoJS"
+ },
+ {
+ "id": "Markdown",
+ "name": "Markdown"
+ },
+ {
+ "id": "C_C++/Syntax Style",
+ "name": "Syntax Style",
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++",
+ "index": 2,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Razor",
+ "name": "Razor"
+ },
+ {
+ "id": "Razor/Potential Code Quality Issues",
+ "name": "Potential Code Quality Issues",
+ "relationships": [
+ {
+ "target": {
+ "id": "Razor",
+ "index": 92,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Web.Config/Code Notification",
+ "name": "Code Notification",
+ "relationships": [
+ {
+ "target": {
+ "id": "Web.Config",
+ "index": 81,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "YAML",
+ "name": "YAML"
+ },
+ {
+ "id": "VB.NET/Redundancies in Code",
+ "name": "Redundancies in Code",
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET",
+ "index": 39,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "JavaScript and TypeScript/Try statement issues",
+ "name": "Try statement issues",
+ "relationships": [
+ {
+ "target": {
+ "id": "JavaScript and TypeScript",
+ "index": 14,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Web.Config/Redundancies in Code",
+ "name": "Redundancies in Code",
+ "relationships": [
+ {
+ "target": {
+ "id": "Web.Config",
+ "index": 81,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ResX/Redundancies in Code",
+ "name": "Redundancies in Code",
+ "relationships": [
+ {
+ "target": {
+ "id": "ResX",
+ "index": 67,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "HttpHandler or WebService",
+ "name": "HttpHandler or WebService"
+ },
+ {
+ "id": "HttpHandler or WebService/Potential Code Quality Issues",
+ "name": "Potential Code Quality Issues",
+ "relationships": [
+ {
+ "target": {
+ "id": "HttpHandler or WebService",
+ "index": 100,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "SQL server",
+ "name": "SQL server"
+ },
+ {
+ "id": "JavaScript and TypeScript/Async code and promises",
+ "name": "Async code and promises",
+ "relationships": [
+ {
+ "target": {
+ "id": "JavaScript and TypeScript",
+ "index": 14,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "JavaScript and TypeScript/Naming conventions",
+ "name": "Naming conventions",
+ "relationships": [
+ {
+ "target": {
+ "id": "JavaScript and TypeScript",
+ "index": 14,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Dependency analysis",
+ "name": "Dependency analysis"
+ },
+ {
+ "id": "Inappropriate gRPC request scheme",
+ "name": "Inappropriate gRPC request scheme"
+ },
+ {
+ "id": "Razor/Non configurable",
+ "name": "Non configurable",
+ "relationships": [
+ {
+ "target": {
+ "id": "Razor",
+ "index": 92,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "JavaScript and TypeScript/Assignment issues",
+ "name": "Assignment issues",
+ "relationships": [
+ {
+ "target": {
+ "id": "JavaScript and TypeScript",
+ "index": 14,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "JavaScript and TypeScript/Switch statement issues",
+ "name": "Switch statement issues",
+ "relationships": [
+ {
+ "target": {
+ "id": "JavaScript and TypeScript",
+ "index": 14,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VB.NET/Compiler Warnings",
+ "name": "Compiler Warnings",
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET",
+ "index": 39,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Shell script",
+ "name": "Shell script"
+ },
+ {
+ "id": "JavaScript and TypeScript/Data flow",
+ "name": "Data flow",
+ "relationships": [
+ {
+ "target": {
+ "id": "JavaScript and TypeScript",
+ "index": 14,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "C_C++/UnrealHeaderTool",
+ "name": "UnrealHeaderTool",
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++",
+ "index": 2,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CSS/Code style issues",
+ "name": "Code style issues",
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS",
+ "index": 29,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "T4",
+ "name": "T4"
+ },
+ {
+ "id": "T4/T4",
+ "name": "T4",
+ "relationships": [
+ {
+ "target": {
+ "id": "T4",
+ "index": 115,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "JavaScript and TypeScript/Unused symbols",
+ "name": "Unused symbols",
+ "relationships": [
+ {
+ "target": {
+ "id": "JavaScript and TypeScript",
+ "index": 14,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "JavaScript and TypeScript/Flow type checker",
+ "name": "Flow type checker",
+ "relationships": [
+ {
+ "target": {
+ "id": "JavaScript and TypeScript",
+ "index": 14,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Aspx/Redundancies in Code",
+ "name": "Redundancies in Code",
+ "relationships": [
+ {
+ "target": {
+ "id": "Aspx",
+ "index": 63,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "JavaScript and TypeScript/Imports and dependencies",
+ "name": "Imports and dependencies",
+ "relationships": [
+ {
+ "target": {
+ "id": "JavaScript and TypeScript",
+ "index": 14,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Less",
+ "name": "Less"
+ },
+ {
+ "id": "Proofreading",
+ "name": "Proofreading"
+ },
+ {
+ "id": "Oracle",
+ "name": "Oracle"
+ },
+ {
+ "id": "Internationalization",
+ "name": "Internationalization"
+ },
+ {
+ "id": "T4/Non configurable",
+ "name": "Non configurable",
+ "relationships": [
+ {
+ "target": {
+ "id": "T4",
+ "index": 115,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Unreal Engine",
+ "name": "Unreal Engine"
+ },
+ {
+ "id": "C_C++/Non configurable",
+ "name": "Non configurable",
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++",
+ "index": 2,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "C#/Unity Performance Inspections",
+ "name": "Unity Performance Inspections",
+ "relationships": [
+ {
+ "target": {
+ "id": "C#",
+ "index": 0,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CSS/Code quality tools",
+ "name": "Code quality tools",
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS",
+ "index": 29,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "XAML/Non configurable",
+ "name": "Non configurable",
+ "relationships": [
+ {
+ "target": {
+ "id": "XAML",
+ "index": 4,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Security",
+ "name": "Security"
+ },
+ {
+ "id": "Aspx/Non configurable",
+ "name": "Non configurable",
+ "relationships": [
+ {
+ "target": {
+ "id": "Aspx",
+ "index": 63,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Assembler",
+ "name": "Assembler"
+ },
+ {
+ "id": "Assembler/Non configurable",
+ "name": "Non configurable",
+ "relationships": [
+ {
+ "target": {
+ "id": "Assembler",
+ "index": 133,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Docker-compose",
+ "name": "Docker-compose"
+ },
+ {
+ "id": "RELAX NG",
+ "name": "RELAX NG"
+ },
+ {
+ "id": "Web.Config/Non configurable",
+ "name": "Non configurable",
+ "relationships": [
+ {
+ "target": {
+ "id": "Web.Config",
+ "index": 81,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "C_C++/Constraints Violations",
+ "name": "Constraints Violations",
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++",
+ "index": 2,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VB.NET/Non configurable",
+ "name": "Non configurable",
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET",
+ "index": 39,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "JavaScript and TypeScript/Unit testing",
+ "name": "Unit testing",
+ "relationships": [
+ {
+ "target": {
+ "id": "JavaScript and TypeScript",
+ "index": 14,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "C#/Unreal Build System",
+ "name": "Unreal Build System",
+ "relationships": [
+ {
+ "target": {
+ "id": "C#",
+ "index": 0,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "MySQL",
+ "name": "MySQL"
+ },
+ {
+ "id": "Angular 2 HTML",
+ "name": "Angular 2 HTML"
+ },
+ {
+ "id": "Angular 2 HTML/Potential Code Quality Issues",
+ "name": "Potential Code Quality Issues",
+ "relationships": [
+ {
+ "target": {
+ "id": "Angular 2 HTML",
+ "index": 143,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "C_C++/.NET Core",
+ "name": ".NET Core",
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++",
+ "index": 2,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CSS/Probable bugs",
+ "name": "Probable bugs",
+ "relationships": [
+ {
+ "target": {
+ "id": "CSS",
+ "index": 29,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Ini files",
+ "name": "Ini files"
+ },
+ {
+ "id": "Version control",
+ "name": "Version control"
+ },
+ {
+ "id": "ShaderLab",
+ "name": "ShaderLab"
+ },
+ {
+ "id": "ShaderLab/Non configurable",
+ "name": "Non configurable",
+ "relationships": [
+ {
+ "target": {
+ "id": "ShaderLab",
+ "index": 149,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Aspx/Common Practices and Code Improvements",
+ "name": "Common Practices and Code Improvements",
+ "relationships": [
+ {
+ "target": {
+ "id": "Aspx",
+ "index": 63,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "PostgreSQL",
+ "name": "PostgreSQL"
+ },
+ {
+ "id": "Dev Container",
+ "name": "Dev Container"
+ },
+ {
+ "id": "File Watchers",
+ "name": "File Watchers"
+ },
+ {
+ "id": "Rider",
+ "name": "Rider"
+ },
+ {
+ "id": "Rider/General",
+ "name": "General",
+ "relationships": [
+ {
+ "target": {
+ "id": "Rider",
+ "index": 155,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "XAML/Constraints Violations",
+ "name": "Constraints Violations",
+ "relationships": [
+ {
+ "target": {
+ "id": "XAML",
+ "index": 4,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "JavaScript and TypeScript/React",
+ "name": "React",
+ "relationships": [
+ {
+ "target": {
+ "id": "JavaScript and TypeScript",
+ "index": 14,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "HTML/Non configurable",
+ "name": "Non configurable",
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML",
+ "index": 11,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "C#/Code Notification",
+ "name": "Code Notification",
+ "relationships": [
+ {
+ "target": {
+ "id": "C#",
+ "index": 0,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RegExpBase",
+ "name": "RegExpBase"
+ },
+ {
+ "id": "RegExpBase/Non configurable",
+ "name": "Non configurable",
+ "relationships": [
+ {
+ "target": {
+ "id": "RegExpBase",
+ "index": 161,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "YAML/Non configurable",
+ "name": "Non configurable",
+ "relationships": [
+ {
+ "target": {
+ "id": "YAML",
+ "index": 95,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Protocol Buffers",
+ "name": "Protocol Buffers"
+ },
+ {
+ "id": "MSBuild",
+ "name": "MSBuild"
+ },
+ {
+ "id": "VB.NET/Code Notification",
+ "name": "Code Notification",
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET",
+ "index": 39,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "HttpHandler or WebService/Non configurable",
+ "name": "Non configurable",
+ "relationships": [
+ {
+ "target": {
+ "id": "HttpHandler or WebService",
+ "index": 100,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "XML/Non configurable",
+ "name": "Non configurable",
+ "relationships": [
+ {
+ "target": {
+ "id": "XML",
+ "index": 56,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RegExpBase/Language Usage Opportunities",
+ "name": "Language Usage Opportunities",
+ "relationships": [
+ {
+ "target": {
+ "id": "RegExpBase",
+ "index": 161,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Handlebars_Mustache",
+ "name": "Handlebars/Mustache"
+ },
+ {
+ "id": "F#/Non configurable",
+ "name": "Non configurable",
+ "relationships": [
+ {
+ "target": {
+ "id": "F#",
+ "index": 72,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "JavaScript and TypeScript/Node.js",
+ "name": "Node.js",
+ "relationships": [
+ {
+ "target": {
+ "id": "JavaScript and TypeScript",
+ "index": 14,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "C#/Xunit",
+ "name": "Xunit",
+ "relationships": [
+ {
+ "target": {
+ "id": "C#",
+ "index": 0,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Qodana",
+ "name": "Qodana"
+ }
+ ],
+ "language": "en-US",
+ "contents": [
+ "localizedData",
+ "nonLocalizedData"
+ ],
+ "isComprehensive": false
+ },
+ "extensions": [
+ {
+ "name": "rider.intellij.plugin.appender",
+ "version": "243.24609",
+ "rules": [
+ {
+ "id": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault",
+ "shortDescription": {
+ "text": "Some values of the enum are not processed inside 'switch' statement and are handled via default section"
+ },
+ "fullDescription": {
+ "text": "Some values of the enum are not processed inside 'switch' statement and fall into default section. This might indicate unintentional handling of all enum values added after the switch was introduced, consider handling missing enum values explicitly Learn more...",
+ "markdown": "Some values of the enum are not processed inside 'switch' statement and fall into default section. This might indicate unintentional handling of all enum values added after the switch was introduced, consider handling missing enum values explicitly [Learn more...](https://www.jetbrains.com/help/rider/SwitchStatementHandlesSomeKnownEnumValuesWithDefault.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticCpp98Cpp11Cpp14CompatPedantic",
+ "shortDescription": {
+ "text": "c++98-c++11-c++14-compat-pedantic clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wc++98-c++11-c++14-compat-pedantic clang diagnostic · Learn more",
+ "markdown": "-Wc++98-c++11-c++14-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-c-14-compat-pedantic)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticCpp98Cpp11Cpp14CompatPedantic",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Xaml.InvalidDynamicResourceType",
+ "shortDescription": {
+ "text": "XAML dynamic resource of invalid type"
+ },
+ "fullDescription": {
+ "text": "XAML dynamic resource of invalid type",
+ "markdown": "XAML dynamic resource of invalid type"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "Xaml.InvalidDynamicResourceType",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "XAML/Code Notification",
+ "index": 5,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppUEBlueprintImplementableEventNotImplemented",
+ "shortDescription": {
+ "text": "BlueprintImplementableEvent function is not implemented in any blueprint"
+ },
+ "fullDescription": {
+ "text": "BlueprintImplementableEvent function is not implemented in any blueprint",
+ "markdown": "BlueprintImplementableEvent function is not implemented in any blueprint"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppUEBlueprintImplementableEventNotImplemented",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Unreal Engine",
+ "index": 6,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ConvertToCompoundAssignment",
+ "shortDescription": {
+ "text": "Use compound assignment"
+ },
+ "fullDescription": {
+ "text": "Replace assignment with compound assignment",
+ "markdown": "Replace assignment with compound assignment"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ConvertToCompoundAssignment",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Language Usage Opportunities",
+ "index": 7,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "UseConfigureAwaitFalseForAsyncDisposable",
+ "shortDescription": {
+ "text": "Missing '.ConfigureAwait(false)' for async disposable in library code"
+ },
+ "fullDescription": {
+ "text": "It is recommended to use 'ConfigureAwait(false)' in your library code to prevent context capture in task continuations. This inspection is controlled by the 'ConfigureAwait analysis mode' project level property, which is set to 'Disabled' by default. Set 'ConfigureAwait analysis mode' project level property to 'Library' to analyze 'await using' statements for missing 'ConfigureAwait(false)' calls.",
+ "markdown": "It is recommended to use 'ConfigureAwait(false)' in your library code to prevent context capture in task continuations. This inspection is controlled by the 'ConfigureAwait analysis mode' project level property, which is set to 'Disabled' by default. Set 'ConfigureAwait analysis mode' project level property to 'Library' to analyze 'await using' statements for missing 'ConfigureAwait(false)' calls."
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "UseConfigureAwaitFalseForAsyncDisposable",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyCppcoreguidelinesProTypeReinterpretCast",
+ "shortDescription": {
+ "text": "cppcoreguidelines-pro-type-reinterpret-cast clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "cppcoreguidelines-pro-type-reinterpret-cast clang-tidy check · Learn more",
+ "markdown": "cppcoreguidelines-pro-type-reinterpret-cast clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-type-reinterpret-cast.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyCppcoreguidelinesProTypeReinterpretCast",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticEnumConversion",
+ "shortDescription": {
+ "text": "enum-conversion clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wenum-conversion clang diagnostic · Learn more",
+ "markdown": "-Wenum-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wenum-conversion)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticEnumConversion",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticCompareDistinctPointerTypes",
+ "shortDescription": {
+ "text": "compare-distinct-pointer-types clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wcompare-distinct-pointer-types clang diagnostic · Learn more",
+ "markdown": "-Wcompare-distinct-pointer-types clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcompare-distinct-pointer-types)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticCompareDistinctPointerTypes",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppAssignedValueIsNeverUsed",
+ "shortDescription": {
+ "text": "Assigned value is never used"
+ },
+ "fullDescription": {
+ "text": "Assigned value is never used",
+ "markdown": "Assigned value is never used"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppAssignedValueIsNeverUsed",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppCVQualifierCanNotBeAppliedToReference",
+ "shortDescription": {
+ "text": "Adding cv-qualifiers to references has no effect"
+ },
+ "fullDescription": {
+ "text": "Adding cv-qualifiers to references has no effect",
+ "markdown": "Adding cv-qualifiers to references has no effect"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppCVQualifierCanNotBeAppliedToReference",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppBoundToDelegateMethodIsNotMarkedAsUFunction",
+ "shortDescription": {
+ "text": "Method bound to delegate is not marked with UFUNCTION macro"
+ },
+ "fullDescription": {
+ "text": "Method bound to delegate must be marked with UFUNCTION macro",
+ "markdown": "Method bound to delegate must be marked with UFUNCTION macro"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppBoundToDelegateMethodIsNotMarkedAsUFunction",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Unreal Engine",
+ "index": 6,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyBugproneEmptyCatch",
+ "shortDescription": {
+ "text": "bugprone-empty-catch clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "bugprone-empty-catch clang-tidy check · Learn more",
+ "markdown": "bugprone-empty-catch clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/empty-catch.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyBugproneEmptyCatch",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticPreOpenmp51Compat",
+ "shortDescription": {
+ "text": "pre-openmp-51-compat clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wpre-openmp-51-compat clang diagnostic · Learn more",
+ "markdown": "-Wpre-openmp-51-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-openmp-51-compat)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticPreOpenmp51Compat",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticIncompatiblePointerTypes",
+ "shortDescription": {
+ "text": "incompatible-pointer-types clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wincompatible-pointer-types clang diagnostic · Learn more",
+ "markdown": "-Wincompatible-pointer-types clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-pointer-types)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticIncompatiblePointerTypes",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticInitializerOverrides",
+ "shortDescription": {
+ "text": "initializer-overrides clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Winitializer-overrides clang diagnostic · Learn more",
+ "markdown": "-Winitializer-overrides clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winitializer-overrides)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticInitializerOverrides",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticStdlibcxxNotFound",
+ "shortDescription": {
+ "text": "stdlibcxx-not-found clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wstdlibcxx-not-found clang diagnostic · Learn more",
+ "markdown": "-Wstdlibcxx-not-found clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstdlibcxx-not-found)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticStdlibcxxNotFound",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticTautologicalUnsignedEnumZeroCompare",
+ "shortDescription": {
+ "text": "tautological-unsigned-enum-zero-compare clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wtautological-unsigned-enum-zero-compare clang diagnostic · Learn more",
+ "markdown": "-Wtautological-unsigned-enum-zero-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-unsigned-enum-zero-compare)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticTautologicalUnsignedEnumZeroCompare",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClassNeedsConstructorBecauseOfUninitializedMember",
+ "shortDescription": {
+ "text": "Class should have a user-defined constructor because of an uninitialized data member"
+ },
+ "fullDescription": {
+ "text": "Class should have a user-defined constructor because of an uninitialized data member",
+ "markdown": "Class should have a user-defined constructor because of an uninitialized data member"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClassNeedsConstructorBecauseOfUninitializedMember",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticTargetClonesMixedSpecifiers",
+ "shortDescription": {
+ "text": "target-clones-mixed-specifiers clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wtarget-clones-mixed-specifiers clang diagnostic · Learn more",
+ "markdown": "-Wtarget-clones-mixed-specifiers clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtarget-clones-mixed-specifiers)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticTargetClonesMixedSpecifiers",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticMicrosoftExists",
+ "shortDescription": {
+ "text": "microsoft-exists clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wmicrosoft-exists clang diagnostic · Learn more",
+ "markdown": "-Wmicrosoft-exists clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-exists)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftExists",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyAndroidCloexecAccept",
+ "shortDescription": {
+ "text": "android-cloexec-accept clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "android-cloexec-accept clang-tidy check · Learn more",
+ "markdown": "android-cloexec-accept clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-accept.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyAndroidCloexecAccept",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CoVariantArrayConversion",
+ "shortDescription": {
+ "text": "Co-variant array conversion"
+ },
+ "fullDescription": {
+ "text": "Co-variant conversion of array could cause run-time exceptions Learn more...",
+ "markdown": "Co-variant conversion of array could cause run-time exceptions [Learn more...](https://www.jetbrains.com/help/rider/CoVariantArrayConversion.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CoVariantArrayConversion",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "MemberCanBeMadeStatic.Global",
+ "shortDescription": {
+ "text": "Member can be made static (shared) (non-private accessibility)"
+ },
+ "fullDescription": {
+ "text": "A non-virtual instance member does not use 'this' object (neither implicitly nor explicitly) and can be made static (shared) Learn more...",
+ "markdown": "A non-virtual instance member does not use 'this' object (neither implicitly nor explicitly) and can be made static (shared) [Learn more...](https://www.jetbrains.com/help/rider/MemberCanBeMadeStatic.Global.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "MemberCanBeMadeStatic.Global",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppUseElementsView",
+ "shortDescription": {
+ "text": "std::views::keys/values can be used"
+ },
+ "fullDescription": {
+ "text": "For example, when iterating on key-value pairs, std::views::keys allows ignoring the values.",
+ "markdown": "For example, when iterating on key-value pairs, std::views::keys allows ignoring the values."
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppUseElementsView",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Common Practices and Code Improvements",
+ "index": 16,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Unity.Entities.SingletonMustBeRequested",
+ "shortDescription": {
+ "text": "To use the result of a 'GetSingleton' call in the function, 'OnCreate' must include a 'RequireForUpdate' call"
+ },
+ "fullDescription": {
+ "text": "To use the result of a 'GetSingleton<{0}>' call in the function, 'OnCreate' must include a 'RequireForUpdate' call",
+ "markdown": "To use the result of a 'GetSingleton\\<{0}\\>' call in the function, 'OnCreate' must include a 'RequireForUpdate' call"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Unity.Entities.SingletonMustBeRequested",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Unity",
+ "index": 18,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CollectionNeverUpdated.Global",
+ "shortDescription": {
+ "text": "Collection is never updated (non-private accessibility)"
+ },
+ "fullDescription": {
+ "text": "New elements are never added to the collection Learn more...",
+ "markdown": "New elements are never added to the collection [Learn more...](https://www.jetbrains.com/help/rider/CollectionNeverUpdated.Global.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CollectionNeverUpdated.Global",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticCpp98Cpp11CompatPedantic",
+ "shortDescription": {
+ "text": "c++98-c++11-compat-pedantic clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wc++98-c++11-compat-pedantic clang diagnostic · Learn more",
+ "markdown": "-Wc++98-c++11-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-compat-pedantic)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticCpp98Cpp11CompatPedantic",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticIgnoredPragmaIntrinsic",
+ "shortDescription": {
+ "text": "ignored-pragma-intrinsic clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wignored-pragma-intrinsic clang diagnostic · Learn more",
+ "markdown": "-Wignored-pragma-intrinsic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wignored-pragma-intrinsic)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticIgnoredPragmaIntrinsic",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ArrangeModifiersOrder",
+ "shortDescription": {
+ "text": "Adjust modifiers declaration order"
+ },
+ "fullDescription": {
+ "text": "The order of declaration modifiers does not match code style settings Learn more...",
+ "markdown": "The order of declaration modifiers does not match code style settings [Learn more...](https://www.jetbrains.com/help/rider/ArrangeModifiersOrder.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ArrangeModifiersOrder",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Syntax Style",
+ "index": 21,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Unity.UnknownLayer",
+ "shortDescription": {
+ "text": "The layer is not defined in the 'Tags & Layers'"
+ },
+ "fullDescription": {
+ "text": "The layer is not defined in the 'Tags & Layers'. The call is likely to fail at runtime.",
+ "markdown": "The layer is not defined in the 'Tags \\& Layers'. The call is likely to fail at runtime."
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Unity.UnknownLayer",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Unity",
+ "index": 18,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RedundantDelegateCreation",
+ "shortDescription": {
+ "text": "Explicit delegate creation expression is redundant"
+ },
+ "fullDescription": {
+ "text": "Explicit delegate creation expression is redundant Learn more...",
+ "markdown": "Explicit delegate creation expression is redundant [Learn more...](https://www.jetbrains.com/help/rider/RedundantDelegateCreation.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RedundantDelegateCreation",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Redundancies in Code",
+ "index": 23,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "BadSemicolonSpaces",
+ "shortDescription": {
+ "text": "Incorrect spacing (around semicolon)"
+ },
+ "fullDescription": {
+ "text": "Around semicolon Learn more...",
+ "markdown": "Around semicolon [Learn more...](https://www.jetbrains.com/help/rider/BadSemicolonSpaces.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "BadSemicolonSpaces",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Formatting",
+ "index": 24,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticVarargs",
+ "shortDescription": {
+ "text": "varargs clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wvarargs clang diagnostic · Learn more",
+ "markdown": "-Wvarargs clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wvarargs)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticVarargs",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Unity.IncorrectScriptableObjectInstantiation",
+ "shortDescription": {
+ "text": "'ScriptableObject' instances must be instantiated with 'ScriptableObject.CreateInstance()' instead of 'new'"
+ },
+ "fullDescription": {
+ "text": "Using 'new' to instantiate a class derived from 'ScriptableObject' means that Unity will not call any event functions. Create a new instance using 'GameObject.AddComponent()'. Learn more...",
+ "markdown": "Using 'new' to instantiate a class derived from 'ScriptableObject' means that Unity will not call any event functions. Create a new instance using 'GameObject.AddComponent()'. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/ScriptableObjects-must-be-instantiated-with-ScriptableObject.CreateInstance-instead-of-new)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Unity.IncorrectScriptableObjectInstantiation",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Unity",
+ "index": 18,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticFormatTruncation",
+ "shortDescription": {
+ "text": "format-truncation clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wformat-truncation clang diagnostic · Learn more",
+ "markdown": "-Wformat-truncation clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-truncation)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticFormatTruncation",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppFunctionDoesntReturnValue",
+ "shortDescription": {
+ "text": "No return statement in a function or a lambda returning non-void"
+ },
+ "fullDescription": {
+ "text": "No return statement in a function or a lambda with non-void return type",
+ "markdown": "No return statement in a function or a lambda with non-void return type"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppFunctionDoesntReturnValue",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticPointerArith",
+ "shortDescription": {
+ "text": "pointer-arith clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wpointer-arith clang diagnostic · Learn more",
+ "markdown": "-Wpointer-arith clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpointer-arith)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticPointerArith",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticMaxUnsignedZero",
+ "shortDescription": {
+ "text": "max-unsigned-zero clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wmax-unsigned-zero clang diagnostic · Learn more",
+ "markdown": "-Wmax-unsigned-zero clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmax-unsigned-zero)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticMaxUnsignedZero",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyModernizeReplaceRandomShuffle",
+ "shortDescription": {
+ "text": "modernize-replace-random-shuffle clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "modernize-replace-random-shuffle clang-tidy check · Learn more",
+ "markdown": "modernize-replace-random-shuffle clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/replace-random-shuffle.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyModernizeReplaceRandomShuffle",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticSpirvCompat",
+ "shortDescription": {
+ "text": "spirv-compat clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wspirv-compat clang diagnostic · Learn more",
+ "markdown": "-Wspirv-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wspirv-compat)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticSpirvCompat",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CompareNonConstrainedGenericWithNull",
+ "shortDescription": {
+ "text": "Possible comparison of value type with 'null'"
+ },
+ "fullDescription": {
+ "text": "Generic type has no value or class constraint, the condition could be always 'false' Learn more...",
+ "markdown": "Generic type has no value or class constraint, the condition could be always 'false' [Learn more...](https://www.jetbrains.com/help/rider/CompareNonConstrainedGenericWithNull.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "CompareNonConstrainedGenericWithNull",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "NUnit.ImplicitUnspecifiedNullValues",
+ "shortDescription": {
+ "text": "NUnit. Implicitly unspecified null values."
+ },
+ "fullDescription": {
+ "text": "NUnit. No enough values are provided in the Values attribute so NUnit implicitly adds 'null' values to fill test data. Learn more...",
+ "markdown": "NUnit. No enough values are provided in the Values attribute so NUnit implicitly adds 'null' values to fill test data. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.ImplicitUnspecifiedNullValues.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "NUnit.ImplicitUnspecifiedNullValues",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/NUnit",
+ "index": 26,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppFunctionResultShouldBeUsed",
+ "shortDescription": {
+ "text": "Function result should be used"
+ },
+ "fullDescription": {
+ "text": "Function returns a value of a type that should be handled at the call site",
+ "markdown": "Function returns a value of a type that should be handled at the call site"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppFunctionResultShouldBeUsed",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticDanglingAssignmentGsl",
+ "shortDescription": {
+ "text": "dangling-assignment-gsl clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wdangling-assignment-gsl clang diagnostic · Learn more",
+ "markdown": "-Wdangling-assignment-gsl clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdangling-assignment-gsl)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticDanglingAssignmentGsl",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppDoxygenUndocumentedParameter",
+ "shortDescription": {
+ "text": "Missing function parameter description in a documentation comment"
+ },
+ "fullDescription": {
+ "text": "Missing function parameter description in a documentation comment",
+ "markdown": "Missing function parameter description in a documentation comment"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppDoxygenUndocumentedParameter",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CSharpWarnings__CS4014",
+ "shortDescription": {
+ "text": "Async method invocation without await expression"
+ },
+ "fullDescription": {
+ "text": "Learn more...",
+ "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/hh873131.aspx)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CSharpWarnings__CS4014",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Compiler Warnings",
+ "index": 27,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppBadSwitchBracesIndent",
+ "shortDescription": {
+ "text": "Incorrect indent (around switch statement)"
+ },
+ "fullDescription": {
+ "text": "Around switch statement",
+ "markdown": "Around switch statement"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppBadSwitchBracesIndent",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Formatting",
+ "index": 28,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticImplicitConstIntFloatConversion",
+ "shortDescription": {
+ "text": "implicit-const-int-float-conversion clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wimplicit-const-int-float-conversion clang diagnostic · Learn more",
+ "markdown": "-Wimplicit-const-int-float-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimplicit-const-int-float-conversion)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticImplicitConstIntFloatConversion",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyGoogleExplicitConstructor",
+ "shortDescription": {
+ "text": "google-explicit-constructor clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "google-explicit-constructor clang-tidy check · Learn more",
+ "markdown": "google-explicit-constructor clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/explicit-constructor.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyGoogleExplicitConstructor",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticShadowUncapturedLocal",
+ "shortDescription": {
+ "text": "shadow-uncaptured-local clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wshadow-uncaptured-local clang diagnostic · Learn more",
+ "markdown": "-Wshadow-uncaptured-local clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshadow-uncaptured-local)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticShadowUncapturedLocal",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangAnalyzerCplusplusSmartPtrModeling",
+ "shortDescription": {
+ "text": "cplusplus.SmartPtrModeling clang static analyzer check"
+ },
+ "fullDescription": {
+ "text": "cplusplus.SmartPtrModeling clang static analyzer check · Learn more",
+ "markdown": "cplusplus.SmartPtrModeling clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangAnalyzerCplusplusSmartPtrModeling",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Static Analyzer Checks",
+ "index": 32,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticGnuComplexInteger",
+ "shortDescription": {
+ "text": "gnu-complex-integer clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wgnu-complex-integer clang diagnostic · Learn more",
+ "markdown": "-Wgnu-complex-integer clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-complex-integer)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticGnuComplexInteger",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ReplaceWithOfType.Single.1",
+ "shortDescription": {
+ "text": "Replace with OfType().Single()"
+ },
+ "fullDescription": {
+ "text": "$seq$.Select($x$ => $x$ as $T$).Single($y$ => $y$ != null)",
+ "markdown": "$seq$.Select($x$ =\\> $x$ as $T$).Single($y$ =\\> $y$ != null)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ReplaceWithOfType.Single.1",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ReplaceWithOfType.Single.2",
+ "shortDescription": {
+ "text": "Replace with OfType().Single() (replace with OfType().Single(..))"
+ },
+ "fullDescription": {
+ "text": "$seq$.Select($x$ => $x$ as $T$).Single($y$ => $y$ != null && $expr$)",
+ "markdown": "$seq$.Select($x$ =\\> $x$ as $T$).Single($y$ =\\> $y$ != null \\&\\& $expr$)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ReplaceWithOfType.Single.2",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyAbseilTimeSubtraction",
+ "shortDescription": {
+ "text": "abseil-time-subtraction clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "abseil-time-subtraction clang-tidy check · Learn more",
+ "markdown": "abseil-time-subtraction clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/time-subtraction.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyAbseilTimeSubtraction",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticDeallocInCategory",
+ "shortDescription": {
+ "text": "dealloc-in-category clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wdealloc-in-category clang diagnostic · Learn more",
+ "markdown": "-Wdealloc-in-category clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdealloc-in-category)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticDeallocInCategory",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticCpp20Compat",
+ "shortDescription": {
+ "text": "c++20-compat clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wc++20-compat clang diagnostic · Learn more",
+ "markdown": "-Wc++20-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-20-compat)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticCpp20Compat",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticDeleteIncomplete",
+ "shortDescription": {
+ "text": "delete-incomplete clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wdelete-incomplete clang diagnostic · Learn more",
+ "markdown": "-Wdelete-incomplete clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdelete-incomplete)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticDeleteIncomplete",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticThreadSafetyAnalysis",
+ "shortDescription": {
+ "text": "thread-safety-analysis clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wthread-safety-analysis clang diagnostic · Learn more",
+ "markdown": "-Wthread-safety-analysis clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wthread-safety-analysis)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticThreadSafetyAnalysis",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyMiscNoRecursion",
+ "shortDescription": {
+ "text": "misc-no-recursion clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "misc-no-recursion clang-tidy check · Learn more",
+ "markdown": "misc-no-recursion clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/no-recursion.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyMiscNoRecursion",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "EventUnsubscriptionViaAnonymousDelegate",
+ "shortDescription": {
+ "text": "Event unsubscription via anonymous delegate"
+ },
+ "fullDescription": {
+ "text": "Event unsubscription via anonymous delegate is meaningless",
+ "markdown": "Event unsubscription via anonymous delegate is meaningless"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "EventUnsubscriptionViaAnonymousDelegate",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppRedundantConstSpecifier",
+ "shortDescription": {
+ "text": "Redundant 'const' specifier"
+ },
+ "fullDescription": {
+ "text": "The 'const' specifier on a variable definition is redundant",
+ "markdown": "The 'const' specifier on a variable definition is redundant"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppRedundantConstSpecifier",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Redundancies in Code",
+ "index": 34,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CA3147",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Mark Verb Handlers With Validate Antiforgery Token"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CA3147",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "UseNullableAnnotationInsteadOfAttribute",
+ "shortDescription": {
+ "text": "Use nullable annotation instead of an attribute"
+ },
+ "fullDescription": {
+ "text": "An attribute is used to declare the nullability of a type. Nullable reference types' annotations might be used instead.",
+ "markdown": "An attribute is used to declare the nullability of a type. Nullable reference types' annotations might be used instead."
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "UseNullableAnnotationInsteadOfAttribute",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1091FadeOut",
+ "shortDescription": {
+ "text": "RoslynAnalyzers [deprecated] Remove empty region"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1091FadeOut",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticCpp14CompatPedantic",
+ "shortDescription": {
+ "text": "c++14-compat-pedantic clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wc++14-compat-pedantic clang diagnostic · Learn more",
+ "markdown": "-Wc++14-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-14-compat-pedantic)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticCpp14CompatPedantic",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppMissingIncludeGuard",
+ "shortDescription": {
+ "text": "Missing include guard"
+ },
+ "fullDescription": {
+ "text": "Include guard is not found at the beginning of a header file Learn more...",
+ "markdown": "Include guard is not found at the beginning of a header file [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rs-guards)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppMissingIncludeGuard",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "UnusedTupleComponentInReturnValue",
+ "shortDescription": {
+ "text": "Component of the tuple is never used"
+ },
+ "fullDescription": {
+ "text": "Component of the tuple is never used",
+ "markdown": "Component of the tuple is never used"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "UnusedTupleComponentInReturnValue",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Redundancies in Symbol Declarations",
+ "index": 36,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticMacroRedefined",
+ "shortDescription": {
+ "text": "macro-redefined clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wmacro-redefined clang diagnostic · Learn more",
+ "markdown": "-Wmacro-redefined clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmacro-redefined)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticMacroRedefined",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticRetainedLanguageLinkage",
+ "shortDescription": {
+ "text": "retained-language-linkage clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wretained-language-linkage clang diagnostic · Learn more",
+ "markdown": "-Wretained-language-linkage clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wretained-language-linkage)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticRetainedLanguageLinkage",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "EntityFramework.UnsupportedServerSideFunctionCall",
+ "shortDescription": {
+ "text": "Function is not convertible to SQL and must not be called in the database context"
+ },
+ "fullDescription": {
+ "text": "Reports methods that are not convertible to SQL and will produce runtime exceptions when called in database contexts Learn more...",
+ "markdown": "Reports methods that are not convertible to SQL and will produce runtime exceptions when called in database contexts [Learn more...](https://www.jetbrains.com/help/rider/EntityFramework.UnsupportedServerSideFunctionCall.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "EntityFramework.UnsupportedServerSideFunctionCall",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Entity Framework",
+ "index": 37,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticKeywordMacro",
+ "shortDescription": {
+ "text": "keyword-macro clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wkeyword-macro clang diagnostic · Learn more",
+ "markdown": "-Wkeyword-macro clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wkeyword-macro)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticKeywordMacro",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyReadabilityUseAnyofallof",
+ "shortDescription": {
+ "text": "readability-use-anyofallof clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "readability-use-anyofallof clang-tidy check · Learn more",
+ "markdown": "readability-use-anyofallof clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/use-anyofallof.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyReadabilityUseAnyofallof",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticReadonlyIboutletProperty",
+ "shortDescription": {
+ "text": "readonly-iboutlet-property clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wreadonly-iboutlet-property clang diagnostic · Learn more",
+ "markdown": "-Wreadonly-iboutlet-property clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreadonly-iboutlet-property)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticReadonlyIboutletProperty",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CA1311",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Specify a culture or use an invariant version"
+ },
+ "fullDescription": {
+ "text": "Specify culture to help avoid accidental implicit dependency on current culture. Using an invariant version yields consistent results regardless of the culture of an application.",
+ "markdown": "Specify culture to help avoid accidental implicit dependency on current culture. Using an invariant version yields consistent results regardless of the culture of an application."
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CA1311",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CA1310",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Specify StringComparison for correctness"
+ },
+ "fullDescription": {
+ "text": "A string comparison operation uses a method overload that does not set a StringComparison parameter, hence its behavior could vary based on the current user's locale settings. It is strongly recommended to use the overload with StringComparison parameter for correctness and clarity of intent. If the result will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'.",
+ "markdown": "A string comparison operation uses a method overload that does not set a StringComparison parameter, hence its behavior could vary based on the current user's locale settings. It is strongly recommended to use the overload with StringComparison parameter for correctness and clarity of intent. If the result will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'."
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CA1310",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticGccCompat",
+ "shortDescription": {
+ "text": "gcc-compat clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wgcc-compat clang diagnostic · Learn more",
+ "markdown": "-Wgcc-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgcc-compat)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticGccCompat",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppDeprecatedRegisterStorageClassSpecifier",
+ "shortDescription": {
+ "text": "Deprecated 'register' storage class specifier"
+ },
+ "fullDescription": {
+ "text": "The 'register' storage class specifier is deprecated in C++11 and removed in C++17",
+ "markdown": "The 'register' storage class specifier is deprecated in C++11 and removed in C++17"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppDeprecatedRegisterStorageClassSpecifier",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticMemsizeComparison",
+ "shortDescription": {
+ "text": "memsize-comparison clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wmemsize-comparison clang diagnostic · Learn more",
+ "markdown": "-Wmemsize-comparison clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmemsize-comparison)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticMemsizeComparison",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "UseNegatedPatternInIsExpression",
+ "shortDescription": {
+ "text": "Convert negated 'is' expression into 'is' expression with negated pattern"
+ },
+ "fullDescription": {
+ "text": "Replace unary negation operator '!' before 'is' expression with C# 9.0 negated pattern",
+ "markdown": "Replace unary negation operator '!' before 'is' expression with C# 9.0 negated pattern"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "UseNegatedPatternInIsExpression",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Language Usage Opportunities",
+ "index": 7,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyHicppAvoidCArrays",
+ "shortDescription": {
+ "text": "hicpp-avoid-c-arrays clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "hicpp-avoid-c-arrays clang-tidy check · Learn more",
+ "markdown": "hicpp-avoid-c-arrays clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/avoid-c-arrays.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyHicppAvoidCArrays",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VBReplaceWithSingleCallToLast",
+ "shortDescription": {
+ "text": "Replace with single call to Last(..)"
+ },
+ "fullDescription": {
+ "text": "$seq$.Where(Function ($x$) $expr$).Last()",
+ "markdown": "$seq$.Where(Function ($x$) $expr$).Last()"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "VBReplaceWithSingleCallToLast",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Common Practices and Code Improvements",
+ "index": 40,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyCppcoreguidelinesNoexceptMoveOperations",
+ "shortDescription": {
+ "text": "cppcoreguidelines-noexcept-move-operations clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "cppcoreguidelines-noexcept-move-operations clang-tidy check · Learn more",
+ "markdown": "cppcoreguidelines-noexcept-move-operations clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/noexcept-move-operations.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyCppcoreguidelinesNoexceptMoveOperations",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Blazor.EditorRequired",
+ "shortDescription": {
+ "text": "Missed value for required attribute"
+ },
+ "fullDescription": {
+ "text": "Missed value for required attribute",
+ "markdown": "Missed value for required attribute"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Blazor.EditorRequired",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Blazor/Potential Code Quality Issues",
+ "index": 42,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "TypeWithSuspiciousEqualityIsUsedInRecord.Local",
+ "shortDescription": {
+ "text": "Type with suspicious equality is used in a record (private accessibility)"
+ },
+ "fullDescription": {
+ "text": "Type with suspicious equality is used as a member of a record type. This inspection only triggers when the record type is actually used for equality comparisons in the solution. Learn more...",
+ "markdown": "Type with suspicious equality is used as a member of a record type. This inspection only triggers when the record type is actually used for equality comparisons in the solution. [Learn more...](https://www.jetbrains.com/help/rider/TypeWithSuspiciousEqualityIsUsedInRecord.Local.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "TypeWithSuspiciousEqualityIsUsedInRecord.Local",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticBackslashNewlineEscape",
+ "shortDescription": {
+ "text": "backslash-newline-escape clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wbackslash-newline-escape clang diagnostic · Learn more",
+ "markdown": "-Wbackslash-newline-escape clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbackslash-newline-escape)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticBackslashNewlineEscape",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CA1309",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Use ordinal string comparison"
+ },
+ "fullDescription": {
+ "text": "A string comparison operation that is nonlinguistic does not set the StringComparison parameter to either Ordinal or OrdinalIgnoreCase. By explicitly setting the parameter to either StringComparison.Ordinal or StringComparison.OrdinalIgnoreCase, your code often gains speed, becomes more correct, and becomes more reliable.",
+ "markdown": "A string comparison operation that is nonlinguistic does not set the StringComparison parameter to either Ordinal or OrdinalIgnoreCase. By explicitly setting the parameter to either StringComparison.Ordinal or StringComparison.OrdinalIgnoreCase, your code often gains speed, becomes more correct, and becomes more reliable."
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CA1309",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CA1308",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Normalize strings to uppercase"
+ },
+ "fullDescription": {
+ "text": "Strings should be normalized to uppercase. A small group of characters cannot make a round trip when they are converted to lowercase. To make a round trip means to convert the characters from one locale to another locale that represents character data differently, and then to accurately retrieve the original characters from the converted characters.",
+ "markdown": "Strings should be normalized to uppercase. A small group of characters cannot make a round trip when they are converted to lowercase. To make a round trip means to convert the characters from one locale to another locale that represents character data differently, and then to accurately retrieve the original characters from the converted characters."
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CA1308",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CA1307",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Specify StringComparison for clarity"
+ },
+ "fullDescription": {
+ "text": "A string comparison operation uses a method overload that does not set a StringComparison parameter. It is recommended to use the overload with StringComparison parameter for clarity of intent. If the result will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'.",
+ "markdown": "A string comparison operation uses a method overload that does not set a StringComparison parameter. It is recommended to use the overload with StringComparison parameter for clarity of intent. If the result will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'."
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CA1307",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyBugproneSizeofExpression",
+ "shortDescription": {
+ "text": "bugprone-sizeof-expression clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "bugprone-sizeof-expression clang-tidy check · Learn more",
+ "markdown": "bugprone-sizeof-expression clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/sizeof-expression.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyBugproneSizeofExpression",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CA1305",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Specify IFormatProvider"
+ },
+ "fullDescription": {
+ "text": "A method or constructor calls one or more members that have overloads that accept a System.IFormatProvider parameter, and the method or constructor does not call the overload that takes the IFormatProvider parameter. When a System.Globalization.CultureInfo or IFormatProvider object is not supplied, the default value that is supplied by the overloaded member might not have the effect that you want in all locales. If the result will be based on the input from/output displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider'. Otherwise, if the result will be stored and accessed by software, such as when it is loaded from disk/database and when it is persisted to disk/database, specify 'CultureInfo.InvariantCulture'.",
+ "markdown": "A method or constructor calls one or more members that have overloads that accept a System.IFormatProvider parameter, and the method or constructor does not call the overload that takes the IFormatProvider parameter. When a System.Globalization.CultureInfo or IFormatProvider object is not supplied, the default value that is supplied by the overloaded member might not have the effect that you want in all locales. If the result will be based on the input from/output displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider'. Otherwise, if the result will be stored and accessed by software, such as when it is loaded from disk/database and when it is persisted to disk/database, specify 'CultureInfo.InvariantCulture'."
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CA1305",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CA1304",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Specify CultureInfo"
+ },
+ "fullDescription": {
+ "text": "A method or constructor calls a member that has an overload that accepts a System.Globalization.CultureInfo parameter, and the method or constructor does not call the overload that takes the CultureInfo parameter. When a CultureInfo or System.IFormatProvider object is not supplied, the default value that is supplied by the overloaded member might not have the effect that you want in all locales. If the result will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'CultureInfo' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.",
+ "markdown": "A method or constructor calls a member that has an overload that accepts a System.Globalization.CultureInfo parameter, and the method or constructor does not call the overload that takes the CultureInfo parameter. When a CultureInfo or System.IFormatProvider object is not supplied, the default value that is supplied by the overloaded member might not have the effect that you want in all locales. If the result will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'CultureInfo' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'."
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CA1304",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CA1303",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Do not pass literals as localized parameters"
+ },
+ "fullDescription": {
+ "text": "A method passes a string literal as a parameter to a constructor or method in the .NET Framework class library and that string should be localizable. To fix a violation of this rule, replace the string literal with a string retrieved through an instance of the ResourceManager class.",
+ "markdown": "A method passes a string literal as a parameter to a constructor or method in the .NET Framework class library and that string should be localizable. To fix a violation of this rule, replace the string literal with a string retrieved through an instance of the ResourceManager class."
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CA1303",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "NUnit.TestCaseSourceShouldImplementIEnumerable",
+ "shortDescription": {
+ "text": "NUnit. Test case source must be non-abstract and implement IEnumerable."
+ },
+ "fullDescription": {
+ "text": "NUnit. Test case source must refer to non-abstract class implementing IEnumerable. Learn more...",
+ "markdown": "NUnit. Test case source must refer to non-abstract class implementing IEnumerable. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.TestCaseSourceShouldImplementIEnumerable.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "NUnit.TestCaseSourceShouldImplementIEnumerable",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/NUnit",
+ "index": 26,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CollectionNeverUpdated.Local",
+ "shortDescription": {
+ "text": "Collection is never updated (private accessibility)"
+ },
+ "fullDescription": {
+ "text": "New elements are never added to the collection Learn more...",
+ "markdown": "New elements are never added to the collection [Learn more...](https://www.jetbrains.com/help/rider/CollectionNeverUpdated.Local.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CollectionNeverUpdated.Local",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticOpenmp51Extensions",
+ "shortDescription": {
+ "text": "openmp-51-extensions clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wopenmp-51-extensions clang diagnostic · Learn more",
+ "markdown": "-Wopenmp-51-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wopenmp-51-extensions)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticOpenmp51Extensions",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppBadColonSpaces",
+ "shortDescription": {
+ "text": "Incorrect spacing (around colon)"
+ },
+ "fullDescription": {
+ "text": "Around colon",
+ "markdown": "Around colon"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppBadColonSpaces",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Formatting",
+ "index": 28,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "MergeNestedPropertyPatterns",
+ "shortDescription": {
+ "text": "Merge nested property patterns"
+ },
+ "fullDescription": {
+ "text": "Simplify nested member access in a pattern by using the C# 10 extended property patterns syntax Learn more...",
+ "markdown": "Simplify nested member access in a pattern by using the C# 10 extended property patterns syntax [Learn more...](https://www.jetbrains.com/help/rider/MergeNestedPropertyPatterns.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "MergeNestedPropertyPatterns",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Language Usage Opportunities",
+ "index": 7,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1217FadeOut",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Convert interpolated string to concatenation"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1217FadeOut",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticStrictPrototypes",
+ "shortDescription": {
+ "text": "strict-prototypes clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wstrict-prototypes clang diagnostic · Learn more",
+ "markdown": "-Wstrict-prototypes clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstrict-prototypes)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticStrictPrototypes",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Xaml.XKeyAttributeDisallowed",
+ "shortDescription": {
+ "text": "x:Key is allowed for resources and dictionary elements only"
+ },
+ "fullDescription": {
+ "text": "x:Key is allowed for resources and dictionary elements only",
+ "markdown": "x:Key is allowed for resources and dictionary elements only"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "Xaml.XKeyAttributeDisallowed",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "XAML/Potential Code Quality Issues",
+ "index": 45,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "PatternIsRedundant",
+ "shortDescription": {
+ "text": "The pattern is redundant, it does not produce any runtime checks"
+ },
+ "fullDescription": {
+ "text": "The pattern is redundant because it does not produce any actual checks at runtime. This usually indicates an error in the pattern matching condition. Learn more...",
+ "markdown": "The pattern is redundant because it does not produce any actual checks at runtime. This usually indicates an error in the pattern matching condition. [Learn more...](https://www.jetbrains.com/help/rider/PatternIsRedundant.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "PatternIsRedundant",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyCppcoreguidelinesMissingStdForward",
+ "shortDescription": {
+ "text": "cppcoreguidelines-missing-std-forward clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "cppcoreguidelines-missing-std-forward clang-tidy check · Learn more",
+ "markdown": "cppcoreguidelines-missing-std-forward clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/missing-std-forward.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyCppcoreguidelinesMissingStdForward",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "JoinNullCheckWithUsage",
+ "shortDescription": {
+ "text": "Join null check with assignment"
+ },
+ "fullDescription": {
+ "text": "Replaces if statement with code using ?? operator and throw expression Learn more...",
+ "markdown": "Replaces if statement with code using ?? operator and throw expression [Learn more...](https://www.jetbrains.com/help/rider/JoinNullCheckWithUsage.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "JoinNullCheckWithUsage",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Language Usage Opportunities",
+ "index": 7,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticSingleBitBitfieldConstantConversion",
+ "shortDescription": {
+ "text": "single-bit-bitfield-constant-conversion clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wsingle-bit-bitfield-constant-conversion clang diagnostic · Learn more",
+ "markdown": "-Wsingle-bit-bitfield-constant-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsingle-bit-bitfield-constant-conversion)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticSingleBitBitfieldConstantConversion",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticReceiverExpr",
+ "shortDescription": {
+ "text": "receiver-expr clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wreceiver-expr clang diagnostic · Learn more",
+ "markdown": "-Wreceiver-expr clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreceiver-expr)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticReceiverExpr",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyModernizeUseDesignatedInitializers",
+ "shortDescription": {
+ "text": "modernize-use-designated-initializers clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "modernize-use-designated-initializers clang-tidy check · Learn more",
+ "markdown": "modernize-use-designated-initializers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-designated-initializers.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyModernizeUseDesignatedInitializers",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CSharpWarnings__CS1574,CS1584,CS1581,CS1580",
+ "shortDescription": {
+ "text": "Cannot resolve reference in XML comment"
+ },
+ "fullDescription": {
+ "text": "Learn more...",
+ "markdown": "[Learn more...](https://www.jetbrains.com/help/rider/CSharpWarnings_CS1574_CS1584_CS1581_CS1580.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CSharpWarnings__CS1574,CS1584,CS1581,CS1580",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Compiler Warnings",
+ "index": 27,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Unity.LoadSceneUnexistingScene",
+ "shortDescription": {
+ "text": "Scene does not exist"
+ },
+ "fullDescription": {
+ "text": "There is no scene with the same name in the project.",
+ "markdown": "There is no scene with the same name in the project."
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Unity.LoadSceneUnexistingScene",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Unity",
+ "index": 18,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CSharpWarnings__CS8425",
+ "shortDescription": {
+ "text": "Async-iterator has one or more parameters of type 'CancellationToken' but none of them is annotated with the 'EnumeratorCancellation' attribute."
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CSharpWarnings__CS8425",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Compiler Warnings",
+ "index": 27,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CSharpWarnings__CS8424",
+ "shortDescription": {
+ "text": "The 'EnumeratorCancellation' attribute is only effective on a parameter of type 'CancellationToken' in an async-iterator method returning 'IAsyncEnumerable<>'."
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CSharpWarnings__CS8424",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Compiler Warnings",
+ "index": 27,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticUnsafeBufferUsage",
+ "shortDescription": {
+ "text": "unsafe-buffer-usage clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wunsafe-buffer-usage clang diagnostic · Learn more",
+ "markdown": "-Wunsafe-buffer-usage clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsafe-buffer-usage)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticUnsafeBufferUsage",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppDeletingVoidPointer",
+ "shortDescription": {
+ "text": "Deleting a void pointer"
+ },
+ "fullDescription": {
+ "text": "Deleting a void pointer is undefined behavior",
+ "markdown": "Deleting a void pointer is undefined behavior"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppDeletingVoidPointer",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticStrictSelectorMatch",
+ "shortDescription": {
+ "text": "strict-selector-match clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wstrict-selector-match clang diagnostic · Learn more",
+ "markdown": "-Wstrict-selector-match clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstrict-selector-match)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticStrictSelectorMatch",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangAnalyzerCplusplusArrayDelete",
+ "shortDescription": {
+ "text": "cplusplus.ArrayDelete clang static analyzer check"
+ },
+ "fullDescription": {
+ "text": "cplusplus.ArrayDelete clang static analyzer check · Learn more",
+ "markdown": "cplusplus.ArrayDelete clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangAnalyzerCplusplusArrayDelete",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Static Analyzer Checks",
+ "index": 32,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticNullableToNonnullConversion",
+ "shortDescription": {
+ "text": "nullable-to-nonnull-conversion clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wnullable-to-nonnull-conversion clang diagnostic · Learn more",
+ "markdown": "-Wnullable-to-nonnull-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnullable-to-nonnull-conversion)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticNullableToNonnullConversion",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RouteTemplates.ParameterConstraintCanBeSpecified",
+ "shortDescription": {
+ "text": "Route parameter constraint can be added due to type of method argument"
+ },
+ "fullDescription": {
+ "text": "Route parameter constraint can be added due to type of method argument",
+ "markdown": "Route parameter constraint can be added due to type of method argument"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RouteTemplates.ParameterConstraintCanBeSpecified",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "ASP.NET route templates/Code Notification",
+ "index": 48,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticMicrosoftCommentPaste",
+ "shortDescription": {
+ "text": "microsoft-comment-paste clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wmicrosoft-comment-paste clang diagnostic · Learn more",
+ "markdown": "-Wmicrosoft-comment-paste clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-comment-paste)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftCommentPaste",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppThrowExpressionCanBeReplacedWithRethrow",
+ "shortDescription": {
+ "text": "Throw expression can be replaced with a rethrow expression"
+ },
+ "fullDescription": {
+ "text": "Throw expression can be replaced with a rethrow expression",
+ "markdown": "Throw expression can be replaced with a rethrow expression"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppThrowExpressionCanBeReplacedWithRethrow",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Common Practices and Code Improvements",
+ "index": 16,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Godot.MissingParameterlessConstructor",
+ "shortDescription": {
+ "text": "Parameterless constructor required"
+ },
+ "fullDescription": {
+ "text": "Consider adding a parameterless constructor for the GodotEngine to initialize a script/game object",
+ "markdown": "Consider adding a parameterless constructor for the GodotEngine to initialize a script/game object"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Godot.MissingParameterlessConstructor",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Godot",
+ "index": 50,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Xaml.XamlMismatchedDeviceFamilyViewClrNameHighlighting",
+ "shortDescription": {
+ "text": "DeviceFamily-specific view type name does not match generic type name"
+ },
+ "fullDescription": {
+ "text": "DeviceFamily-specific view type name does not match generic type name",
+ "markdown": "DeviceFamily-specific view type name does not match generic type name"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Xaml.XamlMismatchedDeviceFamilyViewClrNameHighlighting",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "XAML/Potential Code Quality Issues",
+ "index": 45,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticCpp98Cpp11Cpp14Compat",
+ "shortDescription": {
+ "text": "c++98-c++11-c++14-compat clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wc++98-c++11-c++14-compat clang diagnostic · Learn more",
+ "markdown": "-Wc++98-c++11-c++14-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-c-14-compat)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticCpp98Cpp11Cpp14Compat",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1031FadeOut",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Remove unnecessary braces in switch section"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1031FadeOut",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyBugproneChainedComparison",
+ "shortDescription": {
+ "text": "bugprone-chained-comparison clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "bugprone-chained-comparison clang-tidy check · Learn more",
+ "markdown": "bugprone-chained-comparison clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/chained-comparison.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyBugproneChainedComparison",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyBugproneSwitchMissingDefaultCase",
+ "shortDescription": {
+ "text": "bugprone-switch-missing-default-case clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "bugprone-switch-missing-default-case clang-tidy check · Learn more",
+ "markdown": "bugprone-switch-missing-default-case clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/switch-missing-default-case.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyBugproneSwitchMissingDefaultCase",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticPreCpp14CompatPedantic",
+ "shortDescription": {
+ "text": "pre-c++14-compat-pedantic clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wpre-c++14-compat-pedantic clang diagnostic · Learn more",
+ "markdown": "-Wpre-c++14-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c-14-compat-pedantic)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticPreCpp14CompatPedantic",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "AsmDefWarnings",
+ "shortDescription": {
+ "text": "AsmDef Warnings"
+ },
+ "fullDescription": {
+ "text": "AsmDef Warnings",
+ "markdown": "AsmDef Warnings"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "AsmDefWarnings",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Non configurable",
+ "index": 52,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticDeprecatedCopyWithUserProvidedCopy",
+ "shortDescription": {
+ "text": "deprecated-copy-with-user-provided-copy clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wdeprecated-copy-with-user-provided-copy clang diagnostic · Learn more",
+ "markdown": "-Wdeprecated-copy-with-user-provided-copy clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-copy-with-user-provided-copy)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedCopyWithUserProvidedCopy",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppRangeBasedForIncompatibleReference",
+ "shortDescription": {
+ "text": "Possibly unintended incompatible reference type in range declaration"
+ },
+ "fullDescription": {
+ "text": "Using an incompatible reference type in the range declaration is likely to cause unwanted object copying",
+ "markdown": "Using an incompatible reference type in the range declaration is likely to cause unwanted object copying"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppRangeBasedForIncompatibleReference",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticAtomicAccess",
+ "shortDescription": {
+ "text": "atomic-access clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Watomic-access clang diagnostic · Learn more",
+ "markdown": "-Watomic-access clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#watomic-access)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticAtomicAccess",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticTautologicalTypeLimitCompare",
+ "shortDescription": {
+ "text": "tautological-type-limit-compare clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wtautological-type-limit-compare clang diagnostic · Learn more",
+ "markdown": "-Wtautological-type-limit-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-type-limit-compare)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticTautologicalTypeLimitCompare",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyCertCon36C",
+ "shortDescription": {
+ "text": "cert-con36-c clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "cert-con36-c clang-tidy check · Learn more",
+ "markdown": "cert-con36-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/con36-c.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyCertCon36C",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticMicrosoftUnionMemberReference",
+ "shortDescription": {
+ "text": "microsoft-union-member-reference clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wmicrosoft-union-member-reference clang diagnostic · Learn more",
+ "markdown": "-Wmicrosoft-union-member-reference clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-union-member-reference)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftUnionMemberReference",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ConvertToLocalFunction",
+ "shortDescription": {
+ "text": "Convert delegate variable into local function"
+ },
+ "fullDescription": {
+ "text": "Replace delegate variable with local function Learn more...",
+ "markdown": "Replace delegate variable with local function [Learn more...](https://www.jetbrains.com/help/rider/ConvertToLocalFunction.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ConvertToLocalFunction",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Language Usage Opportunities",
+ "index": 7,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticNonModularIncludeInModule",
+ "shortDescription": {
+ "text": "non-modular-include-in-module clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wnon-modular-include-in-module clang diagnostic · Learn more",
+ "markdown": "-Wnon-modular-include-in-module clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnon-modular-include-in-module)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticNonModularIncludeInModule",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyPerformanceNoexceptDestructor",
+ "shortDescription": {
+ "text": "performance-noexcept-destructor clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "performance-noexcept-destructor clang-tidy check · Learn more",
+ "markdown": "performance-noexcept-destructor clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/noexcept-destructor.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyPerformanceNoexceptDestructor",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticIncompatibleMsStruct",
+ "shortDescription": {
+ "text": "incompatible-ms-struct clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wincompatible-ms-struct clang diagnostic · Learn more",
+ "markdown": "-Wincompatible-ms-struct clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-ms-struct)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticIncompatibleMsStruct",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyHicppNoArrayDecay",
+ "shortDescription": {
+ "text": "hicpp-no-array-decay clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "hicpp-no-array-decay clang-tidy check · Learn more",
+ "markdown": "hicpp-no-array-decay clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/no-array-decay.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyHicppNoArrayDecay",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangAnalyzerOsxNSOrCFErrorDerefChecker",
+ "shortDescription": {
+ "text": "osx.NSOrCFErrorDerefChecker clang static analyzer check"
+ },
+ "fullDescription": {
+ "text": "osx.NSOrCFErrorDerefChecker clang static analyzer check · Learn more",
+ "markdown": "osx.NSOrCFErrorDerefChecker clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangAnalyzerOsxNSOrCFErrorDerefChecker",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Static Analyzer Checks",
+ "index": 32,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticPointerIntegerCompare",
+ "shortDescription": {
+ "text": "pointer-integer-compare clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wpointer-integer-compare clang diagnostic · Learn more",
+ "markdown": "-Wpointer-integer-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpointer-integer-compare)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticPointerIntegerCompare",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppMissingIndent",
+ "shortDescription": {
+ "text": "Incorrect indent (missing indent/outdent elsewhere)"
+ },
+ "fullDescription": {
+ "text": "Missing indent/outdent elsewhere",
+ "markdown": "Missing indent/outdent elsewhere"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppMissingIndent",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Formatting",
+ "index": 28,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticIncompatibleFunctionPointerTypesStrict",
+ "shortDescription": {
+ "text": "incompatible-function-pointer-types-strict clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wincompatible-function-pointer-types-strict clang diagnostic · Learn more",
+ "markdown": "-Wincompatible-function-pointer-types-strict clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-function-pointer-types-strict)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticIncompatibleFunctionPointerTypesStrict",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Html.AttributeValueNotResolved",
+ "shortDescription": {
+ "text": "Unknown attribute value"
+ },
+ "fullDescription": {
+ "text": "Unknown attribute value in HTML and related technologies",
+ "markdown": "Unknown attribute value in HTML and related technologies"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Html.AttributeValueNotResolved",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML/Potential Code Quality Issues",
+ "index": 54,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppPrintfExtraArg",
+ "shortDescription": {
+ "text": "Too many arguments in a call to printf"
+ },
+ "fullDescription": {
+ "text": "Too many arguments in a call to printf. Some of the arguments are not used.",
+ "markdown": "Too many arguments in a call to printf. Some of the arguments are not used."
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppPrintfExtraArg",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyReadabilityElseAfterReturn",
+ "shortDescription": {
+ "text": "readability-else-after-return clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "readability-else-after-return clang-tidy check · Learn more",
+ "markdown": "readability-else-after-return clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/else-after-return.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyReadabilityElseAfterReturn",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticPragmaClangAttribute",
+ "shortDescription": {
+ "text": "pragma-clang-attribute clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wpragma-clang-attribute clang diagnostic · Learn more",
+ "markdown": "-Wpragma-clang-attribute clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpragma-clang-attribute)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticPragmaClangAttribute",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyCppcoreguidelinesProBoundsPointerArithmetic",
+ "shortDescription": {
+ "text": "cppcoreguidelines-pro-bounds-pointer-arithmetic clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "cppcoreguidelines-pro-bounds-pointer-arithmetic clang-tidy check · Learn more",
+ "markdown": "cppcoreguidelines-pro-bounds-pointer-arithmetic clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-bounds-pointer-arithmetic.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyCppcoreguidelinesProBoundsPointerArithmetic",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticExternInitializer",
+ "shortDescription": {
+ "text": "extern-initializer clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wextern-initializer clang diagnostic · Learn more",
+ "markdown": "-Wextern-initializer clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wextern-initializer)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticExternInitializer",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyCppcoreguidelinesAvoidMagicNumbers",
+ "shortDescription": {
+ "text": "cppcoreguidelines-avoid-magic-numbers clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "cppcoreguidelines-avoid-magic-numbers clang-tidy check · Learn more",
+ "markdown": "cppcoreguidelines-avoid-magic-numbers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-magic-numbers.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyCppcoreguidelinesAvoidMagicNumbers",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "BaseObjectGetHashCodeCallInGetHashCode",
+ "shortDescription": {
+ "text": "Overridden GetHashCode calls base 'Object.GetHashCode()'"
+ },
+ "fullDescription": {
+ "text": "Overridden GetHashCode calls base 'Object.GetHashCode()' Learn more...",
+ "markdown": "Overridden GetHashCode calls base 'Object.GetHashCode()' [Learn more...](https://www.jetbrains.com/help/rider/BaseObjectGetHashCodeCallInGetHashCode.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "BaseObjectGetHashCodeCallInGetHashCode",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticDeprecatedLiteralOperator",
+ "shortDescription": {
+ "text": "deprecated-literal-operator clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wdeprecated-literal-operator clang diagnostic · Learn more",
+ "markdown": "-Wdeprecated-literal-operator clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-literal-operator)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedLiteralOperator",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyReadabilityUppercaseLiteralSuffix",
+ "shortDescription": {
+ "text": "readability-uppercase-literal-suffix clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "readability-uppercase-literal-suffix clang-tidy check · Learn more",
+ "markdown": "readability-uppercase-literal-suffix clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/uppercase-literal-suffix.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyReadabilityUppercaseLiteralSuffix",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticDirectIvarAccess",
+ "shortDescription": {
+ "text": "direct-ivar-access clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wdirect-ivar-access clang diagnostic · Learn more",
+ "markdown": "-Wdirect-ivar-access clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdirect-ivar-access)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticDirectIvarAccess",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppIdenticalOperandsInBinaryExpression",
+ "shortDescription": {
+ "text": "Binary operator acts on identical operands"
+ },
+ "fullDescription": {
+ "text": "Binary operator acts on identical operands",
+ "markdown": "Binary operator acts on identical operands"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppIdenticalOperandsInBinaryExpression",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticDeprecatedRegister",
+ "shortDescription": {
+ "text": "deprecated-register clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wdeprecated-register clang diagnostic · Learn more",
+ "markdown": "-Wdeprecated-register clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-register)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedRegister",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticMismatchedNewDelete",
+ "shortDescription": {
+ "text": "mismatched-new-delete clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wmismatched-new-delete clang diagnostic · Learn more",
+ "markdown": "-Wmismatched-new-delete clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmismatched-new-delete)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticMismatchedNewDelete",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Unity.BurstAccessingManagedMethod",
+ "shortDescription": {
+ "text": "Accessing managed methods is not supported"
+ },
+ "fullDescription": {
+ "text": "Accessing managed methods is not supported",
+ "markdown": "Accessing managed methods is not supported"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Unity.BurstAccessingManagedMethod",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Unity Burst Compiler Warnings",
+ "index": 57,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ShiftExpressionResultEqualsZero",
+ "shortDescription": {
+ "text": "Constant shift expression with non-zero operands results in a zero value"
+ },
+ "fullDescription": {
+ "text": "Constant shift expression with non-zero operands results in a zero value",
+ "markdown": "Constant shift expression with non-zero operands results in a zero value"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "ShiftExpressionResultEqualsZero",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyReadabilityRedundantStringInit",
+ "shortDescription": {
+ "text": "readability-redundant-string-init clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "readability-redundant-string-init clang-tidy check · Learn more",
+ "markdown": "readability-redundant-string-init clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-string-init.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyReadabilityRedundantStringInit",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticUnsupportedTargetOpt",
+ "shortDescription": {
+ "text": "unsupported-target-opt clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wunsupported-target-opt clang diagnostic · Learn more",
+ "markdown": "-Wunsupported-target-opt clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsupported-target-opt)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticUnsupportedTargetOpt",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticTautologicalConstantInRangeCompare",
+ "shortDescription": {
+ "text": "tautological-constant-in-range-compare clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wtautological-constant-in-range-compare clang diagnostic · Learn more",
+ "markdown": "-Wtautological-constant-in-range-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-constant-in-range-compare)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticTautologicalConstantInRangeCompare",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticUnknownEscapeSequence",
+ "shortDescription": {
+ "text": "unknown-escape-sequence clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wunknown-escape-sequence clang diagnostic · Learn more",
+ "markdown": "-Wunknown-escape-sequence clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunknown-escape-sequence)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticUnknownEscapeSequence",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyHicppIgnoredRemoveResult",
+ "shortDescription": {
+ "text": "hicpp-ignored-remove-result clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "hicpp-ignored-remove-result clang-tidy check · Learn more",
+ "markdown": "hicpp-ignored-remove-result clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/ignored-remove-result.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyHicppIgnoredRemoveResult",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "UseArrayEmptyMethod",
+ "shortDescription": {
+ "text": "Use 'Array.Empty()'"
+ },
+ "fullDescription": {
+ "text": "Replace an empty array allocation with a call of the predefined 'Array.Empty()' method",
+ "markdown": "Replace an empty array allocation with a call of the predefined 'Array.Empty()' method"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "UseArrayEmptyMethod",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppBadCommaSpaces",
+ "shortDescription": {
+ "text": "Incorrect spacing (around comma)"
+ },
+ "fullDescription": {
+ "text": "Around comma",
+ "markdown": "Around comma"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppBadCommaSpaces",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Formatting",
+ "index": 28,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppAbstractClassWithoutSpecifier",
+ "shortDescription": {
+ "text": "Class is abstract but not explicitly declared as such"
+ },
+ "fullDescription": {
+ "text": "The class is abstract but not explicitly declared as such",
+ "markdown": "The class is abstract but not explicitly declared as such"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppAbstractClassWithoutSpecifier",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VBReplaceWithOfType.Single.2",
+ "shortDescription": {
+ "text": "Replace with OfType().Single() (replace with OfType(Of ..)().Single(..))"
+ },
+ "fullDescription": {
+ "text": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Single(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)",
+ "markdown": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Single(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "VBReplaceWithOfType.Single.2",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Common Practices and Code Improvements",
+ "index": 40,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VBReplaceWithOfType.Single.1",
+ "shortDescription": {
+ "text": "Replace with OfType().Single() (replace with OfType(Of ..)().Single())"
+ },
+ "fullDescription": {
+ "text": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Single(Function ($y$) $y$ IsNot Nothing)",
+ "markdown": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Single(Function ($y$) $y$ IsNot Nothing)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "VBReplaceWithOfType.Single.1",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Common Practices and Code Improvements",
+ "index": 40,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticFormatSecurity",
+ "shortDescription": {
+ "text": "format-security clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wformat-security clang diagnostic · Learn more",
+ "markdown": "-Wformat-security clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-security)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticFormatSecurity",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppBoostFormatBadCode",
+ "shortDescription": {
+ "text": "Incorrect format directive in boost::format"
+ },
+ "fullDescription": {
+ "text": "A format string of boost::format contains an erroneous format directive",
+ "markdown": "A format string of boost::format contains an erroneous format directive"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppBoostFormatBadCode",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticCpp23LambdaAttributes",
+ "shortDescription": {
+ "text": "c++23-lambda-attributes clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wc++23-lambda-attributes clang diagnostic · Learn more",
+ "markdown": "-Wc++23-lambda-attributes clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-23-lambda-attributes)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticCpp23LambdaAttributes",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppBadParensSpaces",
+ "shortDescription": {
+ "text": "Incorrect spacing (around parenthesis)"
+ },
+ "fullDescription": {
+ "text": "Around parenthesis",
+ "markdown": "Around parenthesis"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppBadParensSpaces",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Formatting",
+ "index": 28,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "PossibleInterfaceMemberAmbiguity",
+ "shortDescription": {
+ "text": "Possible ambiguity while accessing member by interface"
+ },
+ "fullDescription": {
+ "text": "Possible ambiguity while accessing member by interface",
+ "markdown": "Possible ambiguity while accessing member by interface"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "PossibleInterfaceMemberAmbiguity",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticPessimizingMove",
+ "shortDescription": {
+ "text": "pessimizing-move clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wpessimizing-move clang diagnostic · Learn more",
+ "markdown": "-Wpessimizing-move clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpessimizing-move)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticPessimizingMove",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "MethodHasAsyncOverloadWithCancellation",
+ "shortDescription": {
+ "text": "Method has async overload with cancellation support"
+ },
+ "fullDescription": {
+ "text": "Method has async overload with 'CancellationToken'",
+ "markdown": "Method has async overload with 'CancellationToken'"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "MethodHasAsyncOverloadWithCancellation",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticIncompatibleFunctionPointerTypes",
+ "shortDescription": {
+ "text": "incompatible-function-pointer-types clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wincompatible-function-pointer-types clang diagnostic · Learn more",
+ "markdown": "-Wincompatible-function-pointer-types clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-function-pointer-types)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticIncompatibleFunctionPointerTypes",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticDeleteNonAbstractNonVirtualDtor",
+ "shortDescription": {
+ "text": "delete-non-abstract-non-virtual-dtor clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wdelete-non-abstract-non-virtual-dtor clang diagnostic · Learn more",
+ "markdown": "-Wdelete-non-abstract-non-virtual-dtor clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdelete-non-abstract-non-virtual-dtor)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticDeleteNonAbstractNonVirtualDtor",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppPrivateSpecialMemberFunctionIsNotImplemented",
+ "shortDescription": {
+ "text": "Private special member function is not implemented"
+ },
+ "fullDescription": {
+ "text": "A private special member function must be defined or deleted",
+ "markdown": "A private special member function must be defined or deleted"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppPrivateSpecialMemberFunctionIsNotImplemented",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyCppcoreguidelinesAvoidGoto",
+ "shortDescription": {
+ "text": "cppcoreguidelines-avoid-goto clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "cppcoreguidelines-avoid-goto clang-tidy check · Learn more",
+ "markdown": "cppcoreguidelines-avoid-goto clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-goto.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyCppcoreguidelinesAvoidGoto",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticUndefPrefix",
+ "shortDescription": {
+ "text": "undef-prefix clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wundef-prefix clang diagnostic · Learn more",
+ "markdown": "-Wundef-prefix clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wundef-prefix)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticUndefPrefix",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyReadabilityInconsistentDeclarationParameterName",
+ "shortDescription": {
+ "text": "readability-inconsistent-declaration-parameter-name clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "readability-inconsistent-declaration-parameter-name clang-tidy check · Learn more",
+ "markdown": "readability-inconsistent-declaration-parameter-name clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/inconsistent-declaration-parameter-name.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyReadabilityInconsistentDeclarationParameterName",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ObsoleteElementError",
+ "shortDescription": {
+ "text": "Use of obsolete type or type member (error)"
+ },
+ "fullDescription": {
+ "text": "Use of obsolete type or type member in XAML markup (error)",
+ "markdown": "Use of obsolete type or type member in XAML markup (error)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "ObsoleteElementError",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "XAML/Compiler Warnings",
+ "index": 60,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ConvertConstructorToMemberInitializers",
+ "shortDescription": {
+ "text": "Convert constructor into member initializers"
+ },
+ "fullDescription": {
+ "text": "Replace constructor with members initialized inline Learn more...",
+ "markdown": "Replace constructor with members initialized inline [Learn more...](https://www.jetbrains.com/help/rider/ConvertConstructorToMemberInitializers.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ConvertConstructorToMemberInitializers",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Language Usage Opportunities",
+ "index": 7,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Unity.DuplicateShortcut",
+ "shortDescription": {
+ "text": "The same shortcut is defined for another menu item"
+ },
+ "fullDescription": {
+ "text": "The same shortcut is defined for another menu item",
+ "markdown": "The same shortcut is defined for another menu item"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Unity.DuplicateShortcut",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Unity",
+ "index": 18,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyBugproneUnhandledExceptionAtNew",
+ "shortDescription": {
+ "text": "bugprone-unhandled-exception-at-new clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "bugprone-unhandled-exception-at-new clang-tidy check · Learn more",
+ "markdown": "bugprone-unhandled-exception-at-new clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unhandled-exception-at-new.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyBugproneUnhandledExceptionAtNew",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticDllexportExplicitInstantiationDecl",
+ "shortDescription": {
+ "text": "dllexport-explicit-instantiation-decl clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wdllexport-explicit-instantiation-decl clang diagnostic · Learn more",
+ "markdown": "-Wdllexport-explicit-instantiation-decl clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdllexport-explicit-instantiation-decl)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticDllexportExplicitInstantiationDecl",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppIntegralToPointerConversion",
+ "shortDescription": {
+ "text": "Implicit integer to pointer conversion"
+ },
+ "fullDescription": {
+ "text": "Implicit integer to pointer conversion",
+ "markdown": "Implicit integer to pointer conversion"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppIntegralToPointerConversion",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CSharpWarnings__CS0420",
+ "shortDescription": {
+ "text": "Reference to a volatile field will not be treated as volatile"
+ },
+ "fullDescription": {
+ "text": "Learn more...",
+ "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/4bw5ewxy.aspx)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CSharpWarnings__CS0420",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Compiler Warnings",
+ "index": 27,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticFourCharConstants",
+ "shortDescription": {
+ "text": "four-char-constants clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wfour-char-constants clang diagnostic · Learn more",
+ "markdown": "-Wfour-char-constants clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfour-char-constants)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticFourCharConstants",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CSharpWarnings__CS8383",
+ "shortDescription": {
+ "text": "The tuple element name is ignored because a different name or no name is specified on the other side of the tuple == or != operator."
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CSharpWarnings__CS8383",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Compiler Warnings",
+ "index": 27,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Xaml.XamlRelativeSourceDefaultModeWarningHighlighting",
+ "shortDescription": {
+ "text": "RelativeSourceMode is not set explicitly"
+ },
+ "fullDescription": {
+ "text": "Default RelativeSourceMode value is platform-specific, explicit specification is required to process RelativeSource usage unambiguously",
+ "markdown": "Default RelativeSourceMode value is platform-specific, explicit specification is required to process RelativeSource usage unambiguously"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Xaml.XamlRelativeSourceDefaultModeWarningHighlighting",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "XAML/Potential Code Quality Issues",
+ "index": 45,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "NUnit.RangeAttributeBoundsAreOutOfRange",
+ "shortDescription": {
+ "text": "NUnit. Values in range do not fit the type of the test parameter."
+ },
+ "fullDescription": {
+ "text": "NUnit. Values specified in [Range] are out range for the type of the test parameter. Learn more...",
+ "markdown": "NUnit. Values specified in \\[Range\\] are out range for the type of the test parameter. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.RangeAttributeBoundsAreOutOfRange.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "NUnit.RangeAttributeBoundsAreOutOfRange",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/NUnit",
+ "index": 26,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyFuchsiaVirtualInheritance",
+ "shortDescription": {
+ "text": "fuchsia-virtual-inheritance clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "fuchsia-virtual-inheritance clang-tidy check · Learn more",
+ "markdown": "fuchsia-virtual-inheritance clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/fuchsia/virtual-inheritance.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyFuchsiaVirtualInheritance",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticGnuPointerArith",
+ "shortDescription": {
+ "text": "gnu-pointer-arith clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wgnu-pointer-arith clang diagnostic · Learn more",
+ "markdown": "-Wgnu-pointer-arith clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-pointer-arith)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticGnuPointerArith",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyCertMsc33C",
+ "shortDescription": {
+ "text": "cert-msc33-c clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "cert-msc33-c clang-tidy check · Learn more",
+ "markdown": "cert-msc33-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc33-c.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyCertMsc33C",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "BadIndent",
+ "shortDescription": {
+ "text": "Incorrect indent (redundant indent/outdent elsewhere)"
+ },
+ "fullDescription": {
+ "text": "Redundant indent/outdent elsewhere Learn more...",
+ "markdown": "Redundant indent/outdent elsewhere [Learn more...](https://www.jetbrains.com/help/rider/BadIndent.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "BadIndent",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Formatting",
+ "index": 24,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyCertCon54Cpp",
+ "shortDescription": {
+ "text": "cert-con54-cpp clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "cert-con54-cpp clang-tidy check · Learn more",
+ "markdown": "cert-con54-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/con54-cpp.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyCertCon54Cpp",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "NotAssignedOutParameter",
+ "shortDescription": {
+ "text": "'out' parameter is not assigned upon exit"
+ },
+ "fullDescription": {
+ "text": "'out' parameter is not assigned upon exit",
+ "markdown": "'out' parameter is not assigned upon exit"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "NotAssignedOutParameter",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Potential Code Quality Issues",
+ "index": 62,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticInvalidPpToken",
+ "shortDescription": {
+ "text": "invalid-pp-token clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Winvalid-pp-token clang diagnostic · Learn more",
+ "markdown": "-Winvalid-pp-token clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-pp-token)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticInvalidPpToken",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CSharpWarnings__CS1723",
+ "shortDescription": {
+ "text": "XML comment has cref attribute that refers to a type parameter"
+ },
+ "fullDescription": {
+ "text": "Learn more...",
+ "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/ms228603.aspx)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CSharpWarnings__CS1723",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Compiler Warnings",
+ "index": 27,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "NUnit.RedundantExpectedResultInTestCaseAttribute",
+ "shortDescription": {
+ "text": "NUnit. Redundant expected result for void test method."
+ },
+ "fullDescription": {
+ "text": "Specifying expected result for void NUnit test methods through the [TestCase] attribute is redundant. Learn more...",
+ "markdown": "Specifying expected result for void NUnit test methods through the \\[TestCase\\] attribute is redundant. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.RedundantExpectedResultInTestCaseAttribute.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "NUnit.RedundantExpectedResultInTestCaseAttribute",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/NUnit",
+ "index": 26,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Unity.UnknownTag",
+ "shortDescription": {
+ "text": "The tag is not defined in the 'Tags & Layers'"
+ },
+ "fullDescription": {
+ "text": "The tag is not defined in the 'Tags & Layers'. Expression will return 'false'.",
+ "markdown": "The tag is not defined in the 'Tags \\& Layers'. Expression will return 'false'."
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Unity.UnknownTag",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Unity",
+ "index": 18,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RedundantExplicitParamsArrayCreation",
+ "shortDescription": {
+ "text": "Redundant explicit collection creation in argument of 'params' parameter"
+ },
+ "fullDescription": {
+ "text": "Explicit collection creation in an argument passed to the 'params' parameter is redundant Learn more...",
+ "markdown": "Explicit collection creation in an argument passed to the 'params' parameter is redundant [Learn more...](https://www.jetbrains.com/help/rider/RedundantExplicitParamsArrayCreation.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RedundantExplicitParamsArrayCreation",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Redundancies in Code",
+ "index": 23,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyGoogleObjcFunctionNaming",
+ "shortDescription": {
+ "text": "google-objc-function-naming clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "google-objc-function-naming clang-tidy check · Learn more",
+ "markdown": "google-objc-function-naming clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/objc-function-naming.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyGoogleObjcFunctionNaming",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangAnalyzerOptinPerformancePadding",
+ "shortDescription": {
+ "text": "optin.performance.Padding clang static analyzer check"
+ },
+ "fullDescription": {
+ "text": "optin.performance.Padding clang static analyzer check · Learn more",
+ "markdown": "optin.performance.Padding clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangAnalyzerOptinPerformancePadding",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Static Analyzer Checks",
+ "index": 32,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CSharpWarnings__CS7023",
+ "shortDescription": {
+ "text": "Static type in 'is' or 'as' operator."
+ },
+ "fullDescription": {
+ "text": "Learn more...",
+ "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/warning-waves#cs7023---a-static-type-is-used-in-an-is-or-as-expression)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CSharpWarnings__CS7023",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Compiler Warnings",
+ "index": 27,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Asp.Warning",
+ "shortDescription": {
+ "text": "ASP.NET Warning"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Asp.Warning",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Aspx/Potential Code Quality Issues",
+ "index": 64,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CSharpWarnings__CS7022",
+ "shortDescription": {
+ "text": "The 'Main' method will not be used as an entry point because compilation unit with top-level statements was found."
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CSharpWarnings__CS7022",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Compiler Warnings",
+ "index": 27,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyBugproneMultipleNewInOneExpression",
+ "shortDescription": {
+ "text": "bugprone-multiple-new-in-one-expression clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "bugprone-multiple-new-in-one-expression clang-tidy check · Learn more",
+ "markdown": "bugprone-multiple-new-in-one-expression clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/multiple-new-in-one-expression.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyBugproneMultipleNewInOneExpression",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangAnalyzerCoreUninitializedArraySubscript",
+ "shortDescription": {
+ "text": "core.uninitialized.ArraySubscript clang static analyzer check"
+ },
+ "fullDescription": {
+ "text": "core.uninitialized.ArraySubscript clang static analyzer check · Learn more",
+ "markdown": "core.uninitialized.ArraySubscript clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangAnalyzerCoreUninitializedArraySubscript",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Static Analyzer Checks",
+ "index": 32,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "UseIndexFromEndExpression",
+ "shortDescription": {
+ "text": "Use index from end expression"
+ },
+ "fullDescription": {
+ "text": "Replace array indexer argument with index from end expression",
+ "markdown": "Replace array indexer argument with index from end expression"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "UseIndexFromEndExpression",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Language Usage Opportunities",
+ "index": 7,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RouteTemplates.ParameterTypeAndConstraintsMismatch",
+ "shortDescription": {
+ "text": "Type of parameter doesn't satisfy constraints declared in route template"
+ },
+ "fullDescription": {
+ "text": "Type of parameter doesn't satisfy constraints declared in route template",
+ "markdown": "Type of parameter doesn't satisfy constraints declared in route template"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RouteTemplates.ParameterTypeAndConstraintsMismatch",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "ASP.NET route templates/Code Notification",
+ "index": 48,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyCertMsc32C",
+ "shortDescription": {
+ "text": "cert-msc32-c clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "cert-msc32-c clang-tidy check · Learn more",
+ "markdown": "cert-msc32-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc32-c.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyCertMsc32C",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticGnuBinaryLiteral",
+ "shortDescription": {
+ "text": "gnu-binary-literal clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wgnu-binary-literal clang diagnostic · Learn more",
+ "markdown": "-Wgnu-binary-literal clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-binary-literal)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticGnuBinaryLiteral",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ConvertTypeCheckToNullCheck",
+ "shortDescription": {
+ "text": "Use null check instead of a type check succeeding on any not-null value"
+ },
+ "fullDescription": {
+ "text": "The expression of 'is' operator matches the provided type on any non-null value. Consider comparing with 'null' instead. Learn more...",
+ "markdown": "The expression of 'is' operator matches the provided type on any non-null value. Consider comparing with 'null' instead. [Learn more...](https://www.jetbrains.com/help/rider/ConvertTypeCheckToNullCheck.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "ConvertTypeCheckToNullCheck",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyHicppUseEqualsDefault",
+ "shortDescription": {
+ "text": "hicpp-use-equals-default clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "hicpp-use-equals-default clang-tidy check · Learn more",
+ "markdown": "hicpp-use-equals-default clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/use-equals-default.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyHicppUseEqualsDefault",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "NUnit.IgnoredParameterAttribute",
+ "shortDescription": {
+ "text": "NUnit. Ignored parameter attribute."
+ },
+ "fullDescription": {
+ "text": "NUnit. Parameter attribute is ignored by NUnit framework.",
+ "markdown": "NUnit. Parameter attribute is ignored by NUnit framework."
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "NUnit.IgnoredParameterAttribute",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/NUnit",
+ "index": 26,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyModernizeUseTransparentFunctors",
+ "shortDescription": {
+ "text": "modernize-use-transparent-functors clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "modernize-use-transparent-functors clang-tidy check · Learn more",
+ "markdown": "modernize-use-transparent-functors clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-transparent-functors.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyModernizeUseTransparentFunctors",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "MeaninglessDefaultParameterValue",
+ "shortDescription": {
+ "text": "'DefaultParameterValueAttribute' must be used in conjunction with 'OptionalAttribute'"
+ },
+ "fullDescription": {
+ "text": "'DefaultParameterValueAttribute' must be used in conjunction with 'OptionalAttribute'",
+ "markdown": "'DefaultParameterValueAttribute' must be used in conjunction with 'OptionalAttribute'"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "MeaninglessDefaultParameterValue",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Redundancies in Symbol Declarations",
+ "index": 36,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticUnneededInternalDeclaration",
+ "shortDescription": {
+ "text": "unneeded-internal-declaration clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wunneeded-internal-declaration clang diagnostic · Learn more",
+ "markdown": "-Wunneeded-internal-declaration clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunneeded-internal-declaration)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticUnneededInternalDeclaration",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Unity.BurstCreatingManagedType",
+ "shortDescription": {
+ "text": "Creating a managed type is not supported"
+ },
+ "fullDescription": {
+ "text": "Creating a managed type is not supported",
+ "markdown": "Creating a managed type is not supported"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Unity.BurstCreatingManagedType",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Unity Burst Compiler Warnings",
+ "index": 57,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticDangling",
+ "shortDescription": {
+ "text": "dangling clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wdangling clang diagnostic · Learn more",
+ "markdown": "-Wdangling clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdangling)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticDangling",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticWeakVtables",
+ "shortDescription": {
+ "text": "weak-vtables clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wweak-vtables clang diagnostic · Learn more",
+ "markdown": "-Wweak-vtables clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wweak-vtables)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticWeakVtables",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticMissingNoreturn",
+ "shortDescription": {
+ "text": "missing-noreturn clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wmissing-noreturn clang diagnostic · Learn more",
+ "markdown": "-Wmissing-noreturn clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-noreturn)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticMissingNoreturn",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppIfCanBeReplacedByConstexprIf",
+ "shortDescription": {
+ "text": "If statement with constant condition can be replaced with 'if constexpr'"
+ },
+ "fullDescription": {
+ "text": "If statement with constant condition can be replaced with 'if constexpr'",
+ "markdown": "If statement with constant condition can be replaced with 'if constexpr'"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppIfCanBeReplacedByConstexprIf",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Common Practices and Code Improvements",
+ "index": 16,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyHicppUseNoexcept",
+ "shortDescription": {
+ "text": "hicpp-use-noexcept clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "hicpp-use-noexcept clang-tidy check · Learn more",
+ "markdown": "hicpp-use-noexcept clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/use-noexcept.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyHicppUseNoexcept",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CSharpWarnings__CS0458",
+ "shortDescription": {
+ "text": "The result of the expression is always 'null' of nullable type"
+ },
+ "fullDescription": {
+ "text": "Learn more...",
+ "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0458)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CSharpWarnings__CS0458",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Compiler Warnings",
+ "index": 27,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticUnusedButSetParameter",
+ "shortDescription": {
+ "text": "unused-but-set-parameter clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wunused-but-set-parameter clang diagnostic · Learn more",
+ "markdown": "-Wunused-but-set-parameter clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-but-set-parameter)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticUnusedButSetParameter",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppDefaultCaseNotHandledInSwitchStatement",
+ "shortDescription": {
+ "text": "Default case is not handled in a switch statement"
+ },
+ "fullDescription": {
+ "text": "Default case is not handled in a switch statement",
+ "markdown": "Default case is not handled in a switch statement"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppDefaultCaseNotHandledInSwitchStatement",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticShadowFieldInConstructorModified",
+ "shortDescription": {
+ "text": "shadow-field-in-constructor-modified clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wshadow-field-in-constructor-modified clang diagnostic · Learn more",
+ "markdown": "-Wshadow-field-in-constructor-modified clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshadow-field-in-constructor-modified)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticShadowFieldInConstructorModified",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "NotOverriddenInSpecificCulture",
+ "shortDescription": {
+ "text": "Resource is not overridden in specific culture"
+ },
+ "fullDescription": {
+ "text": "Resource is not overridden in one or more specific cultures Learn more...",
+ "markdown": "Resource is not overridden in one or more specific cultures [Learn more...](https://www.jetbrains.com/help/rider/NotOverriddenInSpecificCulture.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "NotOverriddenInSpecificCulture",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "ResX/Potential Code Quality Issues",
+ "index": 68,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "NonReadonlyMemberInGetHashCode",
+ "shortDescription": {
+ "text": "Non-readonly type member referenced in 'GetHashCode()'"
+ },
+ "fullDescription": {
+ "text": "Non-readonly field or auto-property referenced in 'GetHashCode()' Learn more...",
+ "markdown": "Non-readonly field or auto-property referenced in 'GetHashCode()' [Learn more...](https://www.jetbrains.com/help/rider/NonReadonlyMemberInGetHashCode.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "NonReadonlyMemberInGetHashCode",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyMiscConfusableIdentifiers",
+ "shortDescription": {
+ "text": "misc-confusable-identifiers clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "misc-confusable-identifiers clang-tidy check · Learn more",
+ "markdown": "misc-confusable-identifiers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/confusable-identifiers.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyMiscConfusableIdentifiers",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticNonportableSystemIncludePath",
+ "shortDescription": {
+ "text": "nonportable-system-include-path clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wnonportable-system-include-path clang diagnostic · Learn more",
+ "markdown": "-Wnonportable-system-include-path clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnonportable-system-include-path)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticNonportableSystemIncludePath",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyCertMsc30C",
+ "shortDescription": {
+ "text": "cert-msc30-c clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "cert-msc30-c clang-tidy check · Learn more",
+ "markdown": "cert-msc30-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc30-c.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyCertMsc30C",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticPragmaOnceOutsideHeader",
+ "shortDescription": {
+ "text": "pragma-once-outside-header clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wpragma-once-outside-header clang diagnostic · Learn more",
+ "markdown": "-Wpragma-once-outside-header clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpragma-once-outside-header)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticPragmaOnceOutsideHeader",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticAtomicAlignment",
+ "shortDescription": {
+ "text": "atomic-alignment clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Watomic-alignment clang diagnostic · Learn more",
+ "markdown": "-Watomic-alignment clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#watomic-alignment)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticAtomicAlignment",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "UnusedAnonymousMethodSignature",
+ "shortDescription": {
+ "text": "Anonymous method signature is not necessary"
+ },
+ "fullDescription": {
+ "text": "Specifying signature in an anonymous method is not necessary because none of its parameters are used in the body",
+ "markdown": "Specifying signature in an anonymous method is not necessary because none of its parameters are used in the body"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "UnusedAnonymousMethodSignature",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Redundancies in Code",
+ "index": 23,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CSharpWarnings__CS0469",
+ "shortDescription": {
+ "text": "'goto case' value is not implicitly convertible to required type"
+ },
+ "fullDescription": {
+ "text": "Learn more...",
+ "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/ms228370.aspx)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CSharpWarnings__CS0469",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Compiler Warnings",
+ "index": 27,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticMissingExceptionSpec",
+ "shortDescription": {
+ "text": "missing-exception-spec clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wmissing-exception-spec clang diagnostic · Learn more",
+ "markdown": "-Wmissing-exception-spec clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-exception-spec)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticMissingExceptionSpec",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticPoisonSystemDirectories",
+ "shortDescription": {
+ "text": "poison-system-directories clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wpoison-system-directories clang diagnostic · Learn more",
+ "markdown": "-Wpoison-system-directories clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpoison-system-directories)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticPoisonSystemDirectories",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CSharpWarnings__CS0464",
+ "shortDescription": {
+ "text": "Comparing with null of nullable value type always produces 'false'"
+ },
+ "fullDescription": {
+ "text": "Learn more...",
+ "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0464)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CSharpWarnings__CS0464",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Compiler Warnings",
+ "index": 27,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CSharpWarnings__CS0465",
+ "shortDescription": {
+ "text": "Introducing a 'Finalize' method can interfere with destructor invocation"
+ },
+ "fullDescription": {
+ "text": "Learn more...",
+ "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/02wtfwbt.aspx)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CSharpWarnings__CS0465",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Compiler Warnings",
+ "index": 27,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticUnusedLambdaCapture",
+ "shortDescription": {
+ "text": "unused-lambda-capture clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wunused-lambda-capture clang diagnostic · Learn more",
+ "markdown": "-Wunused-lambda-capture clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-lambda-capture)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticUnusedLambdaCapture",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticFormat",
+ "shortDescription": {
+ "text": "format clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wformat clang diagnostic · Learn more",
+ "markdown": "-Wformat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticFormat",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticIgnoredReferenceQualifiers",
+ "shortDescription": {
+ "text": "ignored-reference-qualifiers clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wignored-reference-qualifiers clang diagnostic · Learn more",
+ "markdown": "-Wignored-reference-qualifiers clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wignored-reference-qualifiers)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticIgnoredReferenceQualifiers",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticPreCpp2cCompatPedantic",
+ "shortDescription": {
+ "text": "pre-c++2c-compat-pedantic clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wpre-c++2c-compat-pedantic clang diagnostic · Learn more",
+ "markdown": "-Wpre-c++2c-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c-2c-compat-pedantic)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticPreCpp2cCompatPedantic",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Xaml.EmptyGridLengthDefinition",
+ "shortDescription": {
+ "text": "Grid length definition must not be empty"
+ },
+ "fullDescription": {
+ "text": "Grid length definition must not be empty",
+ "markdown": "Grid length definition must not be empty"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "Xaml.EmptyGridLengthDefinition",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "XAML/Code Notification",
+ "index": 5,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VBUseMethodAny.1",
+ "shortDescription": {
+ "text": "Use method Any()"
+ },
+ "fullDescription": {
+ "text": "$seq$.Count() > 0",
+ "markdown": "$seq$.Count() \\> 0"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "VBUseMethodAny.1",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Common Practices and Code Improvements",
+ "index": 40,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CSharpWarnings__CS7095",
+ "shortDescription": {
+ "text": "Filter expression is a constant, consider removing the filter"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CSharpWarnings__CS7095",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Compiler Warnings",
+ "index": 27,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VBUseMethodAny.2",
+ "shortDescription": {
+ "text": "Use method Any()"
+ },
+ "fullDescription": {
+ "text": "$seq$.Count() >= 1",
+ "markdown": "$seq$.Count() \\>= 1"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "VBUseMethodAny.2",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Common Practices and Code Improvements",
+ "index": 40,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VBUseMethodAny.3",
+ "shortDescription": {
+ "text": "Use method Any()"
+ },
+ "fullDescription": {
+ "text": "$seq$.Count() = 0",
+ "markdown": "$seq$.Count() = 0"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "VBUseMethodAny.3",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Common Practices and Code Improvements",
+ "index": 40,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VBUseMethodAny.4",
+ "shortDescription": {
+ "text": "Use method Any()"
+ },
+ "fullDescription": {
+ "text": "$seq$.Count() <= 0",
+ "markdown": "$seq$.Count() \\<= 0"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "VBUseMethodAny.4",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Common Practices and Code Improvements",
+ "index": 40,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VBUseMethodAny.5",
+ "shortDescription": {
+ "text": "Use method Any()"
+ },
+ "fullDescription": {
+ "text": "$seq$.Count() < 1",
+ "markdown": "$seq$.Count() \\< 1"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "VBUseMethodAny.5",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Common Practices and Code Improvements",
+ "index": 40,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticUsedButMarkedUnused",
+ "shortDescription": {
+ "text": "used-but-marked-unused clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wused-but-marked-unused clang diagnostic · Learn more",
+ "markdown": "-Wused-but-marked-unused clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wused-but-marked-unused)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticUsedButMarkedUnused",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticOverloadedShiftOpParentheses",
+ "shortDescription": {
+ "text": "overloaded-shift-op-parentheses clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Woverloaded-shift-op-parentheses clang diagnostic · Learn more",
+ "markdown": "-Woverloaded-shift-op-parentheses clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#woverloaded-shift-op-parentheses)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticOverloadedShiftOpParentheses",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "FSharpInterpolatedString",
+ "shortDescription": {
+ "text": "Format string can be replaced with an interpolated string"
+ },
+ "fullDescription": {
+ "text": "Format string can be replaced with an interpolated string.",
+ "markdown": "Format string can be replaced with an interpolated string."
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "FSharpInterpolatedString",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "F#/Redundancies in Code",
+ "index": 73,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ReplaceWithFieldKeyword",
+ "shortDescription": {
+ "text": "Replace with 'field' keyword"
+ },
+ "fullDescription": {
+ "text": "Replace explicit field declaration with a 'field' keyword usage in corresponding property declaration (anonymous field)",
+ "markdown": "Replace explicit field declaration with a 'field' keyword usage in corresponding property declaration (anonymous field)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ReplaceWithFieldKeyword",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Language Usage Opportunities",
+ "index": 7,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ArrangeTypeModifiers",
+ "shortDescription": {
+ "text": "Use explicit or implicit modifier definition for types"
+ },
+ "fullDescription": {
+ "text": "'internal' modifier can be safely added/removed from types without changing code semantics Learn more...",
+ "markdown": "'internal' modifier can be safely added/removed from types without changing code semantics [Learn more...](https://www.jetbrains.com/help/rider/ArrangeTypeModifiers.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "ArrangeTypeModifiers",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Syntax Style",
+ "index": 21,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticNonModularIncludeInFrameworkModule",
+ "shortDescription": {
+ "text": "non-modular-include-in-framework-module clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wnon-modular-include-in-framework-module clang diagnostic · Learn more",
+ "markdown": "-Wnon-modular-include-in-framework-module clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnon-modular-include-in-framework-module)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticNonModularIncludeInFrameworkModule",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "LocalFunctionHidesMethod",
+ "shortDescription": {
+ "text": "Local function hides method"
+ },
+ "fullDescription": {
+ "text": "Local function has the same name as a method and hides it",
+ "markdown": "Local function has the same name as a method and hides it"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "LocalFunctionHidesMethod",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Unity.LoadSceneAmbiguousSceneName",
+ "shortDescription": {
+ "text": "Short scene name is not unique"
+ },
+ "fullDescription": {
+ "text": "There are several scenes with the same name in the Unity build settings. Only scene with smallest index will be used.",
+ "markdown": "There are several scenes with the same name in the Unity build settings. Only scene with smallest index will be used."
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Unity.LoadSceneAmbiguousSceneName",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Unity",
+ "index": 18,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Unity.LoadSceneDisabledSceneName",
+ "shortDescription": {
+ "text": "Scene is disabled in the build settings"
+ },
+ "fullDescription": {
+ "text": "Scene is disabled in the Unity build settings, so it could not be loaded",
+ "markdown": "Scene is disabled in the Unity build settings, so it could not be loaded"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Unity.LoadSceneDisabledSceneName",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Unity",
+ "index": 18,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Unity.BurstStringFormatInvalidArgument",
+ "shortDescription": {
+ "text": "Burst: String.Format(format, ...) invalid argument type"
+ },
+ "fullDescription": {
+ "text": "Burst: String.Format(format, ...) invalid argument type",
+ "markdown": "Burst: String.Format(format, ...) invalid argument type"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Unity.BurstStringFormatInvalidArgument",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Unity Burst Compiler Warnings",
+ "index": 57,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ReturnTypeCanBeNotNullable",
+ "shortDescription": {
+ "text": "Return type of a function can be made non-nullable"
+ },
+ "fullDescription": {
+ "text": "Function's return type is declared as nullable but it never returns nullable values",
+ "markdown": "Function's return type is declared as nullable but it never returns nullable values"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "ReturnTypeCanBeNotNullable",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticDefaultedFunctionDeleted",
+ "shortDescription": {
+ "text": "defaulted-function-deleted clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wdefaulted-function-deleted clang diagnostic · Learn more",
+ "markdown": "-Wdefaulted-function-deleted clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdefaulted-function-deleted)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticDefaultedFunctionDeleted",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "MissingBodyTag",
+ "shortDescription": {
+ "text": "Important tags or attributes missing (missing )"
+ },
+ "fullDescription": {
+ "text": "<([)html(]) $attr1$>$cont$",
+ "markdown": "\\<(\\[)html(\\]) $attr1$\\>$cont$"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "MissingBodyTag",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML/Common Practices and Code Improvements",
+ "index": 74,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppOutParameterMustBeWritten",
+ "shortDescription": {
+ "text": "The 'out' parameter must be assigned"
+ },
+ "fullDescription": {
+ "text": "In HLSL 'out' parameters must be assigned before exiting the function",
+ "markdown": "In HLSL 'out' parameters must be assigned before exiting the function"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppOutParameterMustBeWritten",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Compiler Warnings",
+ "index": 75,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Xaml.BindingWithContextNotResolved",
+ "shortDescription": {
+ "text": "Unresolved binding path when DataContext is known"
+ },
+ "fullDescription": {
+ "text": "Unresolved binding path when DataContext for data binding is specified, but symbol cannot be found",
+ "markdown": "Unresolved binding path when DataContext for data binding is specified, but symbol cannot be found"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Xaml.BindingWithContextNotResolved",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "XAML/Code Notification",
+ "index": 5,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppWarningDirective",
+ "shortDescription": {
+ "text": "#warning directive"
+ },
+ "fullDescription": {
+ "text": "#warning preprocessor directive",
+ "markdown": "#warning preprocessor directive"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppWarningDirective",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Compiler Warnings",
+ "index": 75,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticOutOfScopeFunction",
+ "shortDescription": {
+ "text": "out-of-scope-function clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wout-of-scope-function clang diagnostic · Learn more",
+ "markdown": "-Wout-of-scope-function clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wout-of-scope-function)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticOutOfScopeFunction",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ArrangeConstructorOrDestructorBody",
+ "shortDescription": {
+ "text": "Use preferred body style (convert into constructor or destructor with preferred body style)"
+ },
+ "fullDescription": {
+ "text": "Use expression or block body Learn more...",
+ "markdown": "Use expression or block body [Learn more...](https://www.jetbrains.com/help/rider/ArrangeConstructorOrDestructorBody.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "ArrangeConstructorOrDestructorBody",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Syntax Style",
+ "index": 21,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Html.TagShouldNotBeSelfClosed",
+ "shortDescription": {
+ "text": "Wrong self-closed tag"
+ },
+ "fullDescription": {
+ "text": "Wrong self-closed tag in HTML and related technologies",
+ "markdown": "Wrong self-closed tag in HTML and related technologies"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Html.TagShouldNotBeSelfClosed",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML/Potential Code Quality Issues",
+ "index": 54,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticModuleConflict",
+ "shortDescription": {
+ "text": "module-conflict clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wmodule-conflict clang diagnostic · Learn more",
+ "markdown": "-Wmodule-conflict clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmodule-conflict)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticModuleConflict",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RedundantExtendsListEntry",
+ "shortDescription": {
+ "text": "Redundant class or interface specification in base types list"
+ },
+ "fullDescription": {
+ "text": "Type is either mentioned in the base types list of other part or it is an interface and appears as other type's base and contains no explicit implementations Learn more...",
+ "markdown": "Type is either mentioned in the base types list of other part or it is an interface and appears as other type's base and contains no explicit implementations [Learn more...](https://www.jetbrains.com/help/rider/RedundantExtendsListEntry.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "RedundantExtendsListEntry",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Redundancies in Symbol Declarations",
+ "index": 36,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ReturnValueOfPureMethodIsNotUsed",
+ "shortDescription": {
+ "text": "Return value of pure method is not used"
+ },
+ "fullDescription": {
+ "text": "Return value of pure method is not used Learn more...",
+ "markdown": "Return value of pure method is not used [Learn more...](https://www.jetbrains.com/help/rider/ReturnValueOfPureMethodIsNotUsed.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "ReturnValueOfPureMethodIsNotUsed",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticFormatOverflowNonKprintf",
+ "shortDescription": {
+ "text": "format-overflow-non-kprintf clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wformat-overflow-non-kprintf clang diagnostic · Learn more",
+ "markdown": "-Wformat-overflow-non-kprintf clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-overflow-non-kprintf)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticFormatOverflowNonKprintf",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticConfigMacros",
+ "shortDescription": {
+ "text": "config-macros clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wconfig-macros clang diagnostic · Learn more",
+ "markdown": "-Wconfig-macros clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wconfig-macros)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticConfigMacros",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticDocumentationUnknownCommand",
+ "shortDescription": {
+ "text": "documentation-unknown-command clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wdocumentation-unknown-command clang diagnostic · Learn more",
+ "markdown": "-Wdocumentation-unknown-command clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdocumentation-unknown-command)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticDocumentationUnknownCommand",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "EmptyStatement",
+ "shortDescription": {
+ "text": "Empty statement is redundant"
+ },
+ "fullDescription": {
+ "text": "Empty statement is redundant Learn more...",
+ "markdown": "Empty statement is redundant [Learn more...](https://www.jetbrains.com/help/rider/EmptyStatement.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "EmptyStatement",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "NotAccessedPositionalProperty.Local",
+ "shortDescription": {
+ "text": "Non-accessed positional property (private accessibility)"
+ },
+ "fullDescription": {
+ "text": "Positional property is never accessed for reading Learn more...",
+ "markdown": "Positional property is never accessed for reading [Learn more...](https://www.jetbrains.com/help/rider/NotAccessedPositionalProperty.Local.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "NotAccessedPositionalProperty.Local",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticAliasTemplateInDeclarationName",
+ "shortDescription": {
+ "text": "alias-template-in-declaration-name clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Walias-template-in-declaration-name clang diagnostic · Learn more",
+ "markdown": "-Walias-template-in-declaration-name clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#walias-template-in-declaration-name)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticAliasTemplateInDeclarationName",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Unity.IncorrectMethodSignatureInStringLiteral",
+ "shortDescription": {
+ "text": "Method referenced in string literal does not have the expected signature"
+ },
+ "fullDescription": {
+ "text": "Method referenced in string literal does not have the expected signature.",
+ "markdown": "Method referenced in string literal does not have the expected signature."
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Unity.IncorrectMethodSignatureInStringLiteral",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Unity",
+ "index": 18,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Xaml.RedundantFreezeAttribute",
+ "shortDescription": {
+ "text": "Redundant 'Freeze' attribute"
+ },
+ "fullDescription": {
+ "text": "Freeze attribute is not used and can be safely removed",
+ "markdown": "Freeze attribute is not used and can be safely removed"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Xaml.RedundantFreezeAttribute",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "XAML/Redundancies in Code",
+ "index": 77,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "UnassignedGetOnlyAutoProperty",
+ "shortDescription": {
+ "text": "Get-only auto-property is never assigned"
+ },
+ "fullDescription": {
+ "text": "Auto-property without setter has no initializer or is never assigned in constructor Learn more...",
+ "markdown": "Auto-property without setter has no initializer or is never assigned in constructor [Learn more...](https://www.jetbrains.com/help/rider/UnassignedGetOnlyAutoProperty.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "UnassignedGetOnlyAutoProperty",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1007",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Add braces"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1007",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "StringSpanComparison",
+ "shortDescription": {
+ "text": "Possibly wrong string comparison: spans are only equal when pointing to the same memory location"
+ },
+ "fullDescription": {
+ "text": "Possibly wrong string comparison: spans are only equal when pointing to the same memory location. Spans from freshly created or static strings are unlikely to be equal to other spans, probably you want to compare chars/bytes instead. Learn more...",
+ "markdown": "Possibly wrong string comparison: spans are only equal when pointing to the same memory location. Spans from freshly created or static strings are unlikely to be equal to other spans, probably you want to compare chars/bytes instead. [Learn more...](https://www.jetbrains.com/help/rider/StringSpanComparison.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "StringSpanComparison",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1008",
+ "shortDescription": {
+ "text": "RoslynAnalyzers [deprecated] Use explicit type instead of 'var' (when the type is not obvious)"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1008",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1009",
+ "shortDescription": {
+ "text": "RoslynAnalyzers [deprecated] Use explicit type instead of 'var' (foreach variable)"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1009",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppUE4BlueprintCallableFunctionMayBeStatic",
+ "shortDescription": {
+ "text": "BlueprintCallable function can be made static"
+ },
+ "fullDescription": {
+ "text": "BlueprintCallable function can be made static",
+ "markdown": "BlueprintCallable function can be made static"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppUE4BlueprintCallableFunctionMayBeStatic",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Unreal Engine",
+ "index": 6,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1003",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Add braces to if-else (when expression spans over multiple lines)"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1003",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1004",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Remove braces from if-else"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1004",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1005",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Simplify nested using statement"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1005",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyBugproneUnhandledSelfAssignment",
+ "shortDescription": {
+ "text": "bugprone-unhandled-self-assignment clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "bugprone-unhandled-self-assignment clang-tidy check · Learn more",
+ "markdown": "bugprone-unhandled-self-assignment clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unhandled-self-assignment.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyBugproneUnhandledSelfAssignment",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1006",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Merge 'else' with nested 'if'"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1006",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyBugproneSuspiciousMemoryComparison",
+ "shortDescription": {
+ "text": "bugprone-suspicious-memory-comparison clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "bugprone-suspicious-memory-comparison clang-tidy check · Learn more",
+ "markdown": "bugprone-suspicious-memory-comparison clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-memory-comparison.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyBugproneSuspiciousMemoryComparison",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1001",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Add braces (when expression spans over multiple lines)"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1001",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1002",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Remove braces"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1002",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "AssignNullToNotNullAttribute",
+ "shortDescription": {
+ "text": "Possible 'null' assignment to non-nullable entity"
+ },
+ "fullDescription": {
+ "text": "An expression that can have 'null' value is assigned to an entity marked with 'Value cannot be null' attribute. In particular, this can happen when passing such value to a method whose parameter is marked with 'Value cannot be null' attribute. Learn more...",
+ "markdown": "An expression that can have 'null' value is assigned to an entity marked with 'Value cannot be null' attribute. In particular, this can happen when passing such value to a method whose parameter is marked with 'Value cannot be null' attribute. [Learn more...](https://www.jetbrains.com/help/rider/AssignNullToNotNullAttribute.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "AssignNullToNotNullAttribute",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Constraints Violations",
+ "index": 80,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyModernizeUseStdPrint",
+ "shortDescription": {
+ "text": "modernize-use-std-print clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "modernize-use-std-print clang-tidy check · Learn more",
+ "markdown": "modernize-use-std-print clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-std-print.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyModernizeUseStdPrint",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyBugproneIncorrectEnableIf",
+ "shortDescription": {
+ "text": "bugprone-incorrect-enable-if clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "bugprone-incorrect-enable-if clang-tidy check · Learn more",
+ "markdown": "bugprone-incorrect-enable-if clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/incorrect-enable-if.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyBugproneIncorrectEnableIf",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppDeclarationSpecifierWithoutDeclarators",
+ "shortDescription": {
+ "text": "Declaration specifier with no declarators"
+ },
+ "fullDescription": {
+ "text": "A declaration specifier is ignored when there are no declarators",
+ "markdown": "A declaration specifier is ignored when there are no declarators"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppDeclarationSpecifierWithoutDeclarators",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticDuplicateMethodArg",
+ "shortDescription": {
+ "text": "duplicate-method-arg clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wduplicate-method-arg clang diagnostic · Learn more",
+ "markdown": "-Wduplicate-method-arg clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wduplicate-method-arg)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticDuplicateMethodArg",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "WebConfig.ModuleQualificationResolve",
+ "shortDescription": {
+ "text": "Module qualification required"
+ },
+ "fullDescription": {
+ "text": "Module qualification required for type resolution",
+ "markdown": "Module qualification required for type resolution"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "WebConfig.ModuleQualificationResolve",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Web.Config/Potential Code Quality Issues",
+ "index": 82,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyCppcoreguidelinesNonPrivateMemberVariablesInClasses",
+ "shortDescription": {
+ "text": "cppcoreguidelines-non-private-member-variables-in-classes clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "cppcoreguidelines-non-private-member-variables-in-classes clang-tidy check · Learn more",
+ "markdown": "cppcoreguidelines-non-private-member-variables-in-classes clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/non-private-member-variables-in-classes.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyCppcoreguidelinesNonPrivateMemberVariablesInClasses",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangAnalyzerOsxCocoaSelfInit",
+ "shortDescription": {
+ "text": "osx.cocoa.SelfInit clang static analyzer check"
+ },
+ "fullDescription": {
+ "text": "osx.cocoa.SelfInit clang static analyzer check · Learn more",
+ "markdown": "osx.cocoa.SelfInit clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaSelfInit",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Static Analyzer Checks",
+ "index": 32,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "IntroduceOptionalParameters.Global",
+ "shortDescription": {
+ "text": "Introduce optional parameters (non-private accessibility)"
+ },
+ "fullDescription": {
+ "text": "Introduce optional parameters to overload method Learn more...",
+ "markdown": "Introduce optional parameters to overload method [Learn more...](https://www.jetbrains.com/help/rider/IntroduceOptionalParameters.Global.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "IntroduceOptionalParameters.Global",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Language Usage Opportunities",
+ "index": 7,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyCppcoreguidelinesNoexceptSwap",
+ "shortDescription": {
+ "text": "cppcoreguidelines-noexcept-swap clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "cppcoreguidelines-noexcept-swap clang-tidy check · Learn more",
+ "markdown": "cppcoreguidelines-noexcept-swap clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/noexcept-swap.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyCppcoreguidelinesNoexceptSwap",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "DoubleNegationOperator",
+ "shortDescription": {
+ "text": "Double negation operator"
+ },
+ "fullDescription": {
+ "text": "Double negation is meaningless bool b = !!condition; Learn more...",
+ "markdown": "Double negation is meaningless\n\n```\nbool b = !!condition;\n```\n\n[Learn more...](https://www.jetbrains.com/help/rider/DoubleNegationOperator.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "DoubleNegationOperator",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Redundancies in Code",
+ "index": 23,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyGoogleBuildNamespaces",
+ "shortDescription": {
+ "text": "google-build-namespaces clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "google-build-namespaces clang-tidy check · Learn more",
+ "markdown": "google-build-namespaces clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/build-namespaces.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyGoogleBuildNamespaces",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyBugproneForwardingReferenceOverload",
+ "shortDescription": {
+ "text": "bugprone-forwarding-reference-overload clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "bugprone-forwarding-reference-overload clang-tidy check · Learn more",
+ "markdown": "bugprone-forwarding-reference-overload clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/forwarding-reference-overload.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyBugproneForwardingReferenceOverload",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyModernizeUseNullptr",
+ "shortDescription": {
+ "text": "modernize-use-nullptr clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "modernize-use-nullptr clang-tidy check · Learn more",
+ "markdown": "modernize-use-nullptr clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-nullptr.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyModernizeUseNullptr",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1031",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Remove unnecessary braces in switch section"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1031",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ReplaceWithSingleCallToSingle",
+ "shortDescription": {
+ "text": "Replace with single call to Single(..)"
+ },
+ "fullDescription": {
+ "text": "$seq$.Where($x$ => $expr$).Single()",
+ "markdown": "$seq$.Where($x$ =\\> $expr$).Single()"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ReplaceWithSingleCallToSingle",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyModernizePassByValue",
+ "shortDescription": {
+ "text": "modernize-pass-by-value clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "modernize-pass-by-value clang-tidy check · Learn more",
+ "markdown": "modernize-pass-by-value clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/pass-by-value.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyModernizePassByValue",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticRegister",
+ "shortDescription": {
+ "text": "register clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wregister clang diagnostic · Learn more",
+ "markdown": "-Wregister clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wregister)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticRegister",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CSharpWarnings__CS0472",
+ "shortDescription": {
+ "text": "The result of the expression is always 'true' or 'false' since a value of value type is never equal to 'null'"
+ },
+ "fullDescription": {
+ "text": "Learn more...",
+ "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0472)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CSharpWarnings__CS0472",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Compiler Warnings",
+ "index": 27,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Unity.BurstFunctionSignatureContainsManagedTypes",
+ "shortDescription": {
+ "text": "Function signature cannot contain managed types"
+ },
+ "fullDescription": {
+ "text": "Function signature cannot contain managed types",
+ "markdown": "Function signature cannot contain managed types"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Unity.BurstFunctionSignatureContainsManagedTypes",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Unity Burst Compiler Warnings",
+ "index": 57,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticGnuConditionalOmittedOperand",
+ "shortDescription": {
+ "text": "gnu-conditional-omitted-operand clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wgnu-conditional-omitted-operand clang diagnostic · Learn more",
+ "markdown": "-Wgnu-conditional-omitted-operand clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-conditional-omitted-operand)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticGnuConditionalOmittedOperand",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticClassVarargs",
+ "shortDescription": {
+ "text": "class-varargs clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wclass-varargs clang diagnostic · Learn more",
+ "markdown": "-Wclass-varargs clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wclass-varargs)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticClassVarargs",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1021",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Convert lambda expression body to expression body"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1021",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1020",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Simplify Nullable to T?"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1020",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticCastFunctionType",
+ "shortDescription": {
+ "text": "cast-function-type clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wcast-function-type clang diagnostic · Learn more",
+ "markdown": "-Wcast-function-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcast-function-type)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticCastFunctionType",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppWrongIndentSize",
+ "shortDescription": {
+ "text": "Incorrect indent (incorrect indent size)"
+ },
+ "fullDescription": {
+ "text": "Incorrect indent size",
+ "markdown": "Incorrect indent size"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppWrongIndentSize",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Formatting",
+ "index": 28,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ArrangeRedundantParentheses",
+ "shortDescription": {
+ "text": "Remove redundant parentheses"
+ },
+ "fullDescription": {
+ "text": "Parentheses can be safely removed from expressions without changing code semantics Learn more...",
+ "markdown": "Parentheses can be safely removed from expressions without changing code semantics [Learn more...](https://www.jetbrains.com/help/rider/ArrangeRedundantParentheses.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ArrangeRedundantParentheses",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Syntax Style",
+ "index": 21,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Xaml.ResourceFilePathCaseMismatch",
+ "shortDescription": {
+ "text": "Path to resource is case-sensitive"
+ },
+ "fullDescription": {
+ "text": "Path to resource is case-sensitive",
+ "markdown": "Path to resource is case-sensitive"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Xaml.ResourceFilePathCaseMismatch",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "XAML/Code Notification",
+ "index": 5,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ReplaceWithLastOrDefault.2",
+ "shortDescription": {
+ "text": "Replace with LastOrDefault($args$)"
+ },
+ "fullDescription": {
+ "text": "$expr$ && $seq$.Any($args$) ? $seq$.Last($args$) : null",
+ "markdown": "$expr$ \\&\\& $seq$.Any($args$) ? $seq$.Last($args$) : null"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ReplaceWithLastOrDefault.2",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ReplaceWithLastOrDefault.3",
+ "shortDescription": {
+ "text": "Replace with LastOrDefault($args$)"
+ },
+ "fullDescription": {
+ "text": "$seq$.Any($args$) ? $seq$.Last($args$) : default($T$)",
+ "markdown": "$seq$.Any($args$) ? $seq$.Last($args$) : default($T$)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ReplaceWithLastOrDefault.3",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "PossibleInvalidCastExceptionInForeachLoop",
+ "shortDescription": {
+ "text": "Possible 'System.InvalidCastException' in foreach loop"
+ },
+ "fullDescription": {
+ "text": "Possible cast expression of incompatible type Learn more...",
+ "markdown": "Possible cast expression of incompatible type [Learn more...](https://www.jetbrains.com/help/rider/PossibleInvalidCastExceptionInForeachLoop.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "PossibleInvalidCastExceptionInForeachLoop",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticMissingPrototypes",
+ "shortDescription": {
+ "text": "missing-prototypes clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wmissing-prototypes clang diagnostic · Learn more",
+ "markdown": "-Wmissing-prototypes clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-prototypes)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticMissingPrototypes",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ReplaceWithLastOrDefault.1",
+ "shortDescription": {
+ "text": "Replace with LastOrDefault($args$)"
+ },
+ "fullDescription": {
+ "text": "$seq$.Any($args$) ? $seq$.Last($args$) : null",
+ "markdown": "$seq$.Any($args$) ? $seq$.Last($args$) : null"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ReplaceWithLastOrDefault.1",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1018",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Add/remove accessibility modifiers"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1018",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "PossiblyImpureMethodCallOnReadonlyVariable",
+ "shortDescription": {
+ "text": "Possibly impure struct method is called on readonly variable: struct value always copied before invocation"
+ },
+ "fullDescription": {
+ "text": "Possibly impure struct instance method or 'this ref' extension method is called on readonly field/in parameter/ref readonly return: struct value always copied before invocation Learn more...",
+ "markdown": "Possibly impure struct instance method or 'this ref' extension method is called on readonly field/in parameter/ref readonly return: struct value always copied before invocation [Learn more...](https://www.jetbrains.com/help/rider/PossiblyImpureMethodCallOnReadonlyVariable.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "PossiblyImpureMethodCallOnReadonlyVariable",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1019",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Order modifiers"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1019",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyAndroidCloexecPipe2",
+ "shortDescription": {
+ "text": "android-cloexec-pipe2 clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "android-cloexec-pipe2 clang-tidy check · Learn more",
+ "markdown": "android-cloexec-pipe2 clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-pipe2.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyAndroidCloexecPipe2",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ReplaceWithLastOrDefault.4",
+ "shortDescription": {
+ "text": "Replace with LastOrDefault($args$)"
+ },
+ "fullDescription": {
+ "text": "$expr$ && $seq$.Any($args$) ? $seq$.Last($args$) : default($T$)",
+ "markdown": "$expr$ \\&\\& $seq$.Any($args$) ? $seq$.Last($args$) : default($T$)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ReplaceWithLastOrDefault.4",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1014",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Use explicitly/implicitly typed array"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1014",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1015",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Use nameof operator"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1015",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1016",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Use block body or expression body"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1016",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppUE4CodingStandardUClassNamingViolationError",
+ "shortDescription": {
+ "text": "Inconsistent Unreal Engine UCLASS Naming"
+ },
+ "fullDescription": {
+ "text": "Class is declared with UCLASS or USTRUCT macro but its name doesn't match the Unreal Engine's coding standard naming style; this will lead to a build error. This inspection includes three rules: classes inherited from AActor must be prefixed by 'A', classes inherited from UObject must be prefixed by 'U', and USTRUCTS must be prefixed by 'F'.",
+ "markdown": "Class is declared with UCLASS or USTRUCT macro but its name doesn't match the Unreal Engine's coding standard naming style; this will lead to a build error. This inspection includes three rules: classes inherited from AActor must be prefixed by 'A', classes inherited from UObject must be prefixed by 'U', and USTRUCTS must be prefixed by 'F'."
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "CppUE4CodingStandardUClassNamingViolationError",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Unreal Engine",
+ "index": 6,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticMicrosoftTemplate",
+ "shortDescription": {
+ "text": "microsoft-template clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wmicrosoft-template clang diagnostic · Learn more",
+ "markdown": "-Wmicrosoft-template clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-template)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftTemplate",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Unity.BurstTryNotSupported",
+ "shortDescription": {
+ "text": "Try statement is not supported"
+ },
+ "fullDescription": {
+ "text": "Try statement is not supported",
+ "markdown": "Try statement is not supported"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Unity.BurstTryNotSupported",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Unity Burst Compiler Warnings",
+ "index": 57,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1010",
+ "shortDescription": {
+ "text": "RoslynAnalyzers [deprecated] Use 'var' instead of explicit type (when the type is obvious)"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1010",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RedundantEnumCaseLabelForDefaultSection",
+ "shortDescription": {
+ "text": "Redundant 'case' label before default section"
+ },
+ "fullDescription": {
+ "text": "'case' label statement with enum value in front of default section is redundant",
+ "markdown": "'case' label statement with enum value in front of default section is redundant"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RedundantEnumCaseLabelForDefaultSection",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Redundancies in Code",
+ "index": 23,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1012",
+ "shortDescription": {
+ "text": "RoslynAnalyzers [deprecated] Use explicit type instead of 'var' (when the type is obvious)"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1012",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1013",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Use predefined type"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1013",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppBadParensLineBreaks",
+ "shortDescription": {
+ "text": "Incorrect line breaks (around parenthesis)"
+ },
+ "fullDescription": {
+ "text": "Around parenthesis",
+ "markdown": "Around parenthesis"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppBadParensLineBreaks",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Formatting",
+ "index": 28,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyPerformanceTypePromotionInMathFn",
+ "shortDescription": {
+ "text": "performance-type-promotion-in-math-fn clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "performance-type-promotion-in-math-fn clang-tidy check · Learn more",
+ "markdown": "performance-type-promotion-in-math-fn clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/type-promotion-in-math-fn.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyPerformanceTypePromotionInMathFn",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticUnsequenced",
+ "shortDescription": {
+ "text": "unsequenced clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wunsequenced clang diagnostic · Learn more",
+ "markdown": "-Wunsequenced clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsequenced)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticUnsequenced",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticDuplicateDeclSpecifier",
+ "shortDescription": {
+ "text": "duplicate-decl-specifier clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wduplicate-decl-specifier clang diagnostic · Learn more",
+ "markdown": "-Wduplicate-decl-specifier clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wduplicate-decl-specifier)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticDuplicateDeclSpecifier",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppBadSymbolSpaces",
+ "shortDescription": {
+ "text": "Incorrect spacing (around operator symbols)"
+ },
+ "fullDescription": {
+ "text": "Around operator symbols",
+ "markdown": "Around operator symbols"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppBadSymbolSpaces",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Formatting",
+ "index": 28,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyCppcoreguidelinesExplicitVirtualFunctions",
+ "shortDescription": {
+ "text": "cppcoreguidelines-explicit-virtual-functions clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "cppcoreguidelines-explicit-virtual-functions clang-tidy check · Learn more",
+ "markdown": "cppcoreguidelines-explicit-virtual-functions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/explicit-virtual-functions.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyCppcoreguidelinesExplicitVirtualFunctions",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ROS0003",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Analyzer requires config option to be specified"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ROS0003",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ROS0002",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Analyzer option is obsolete"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "ROS0002",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ReplaceWithOfType.Any.2",
+ "shortDescription": {
+ "text": "Replace with OfType().Any() (replace with OfType().Any(..))"
+ },
+ "fullDescription": {
+ "text": "$seq$.Select($x$ => $x$ as $T$).Any($y$ => $y$ != null && $expr$)",
+ "markdown": "$seq$.Select($x$ =\\> $x$ as $T$).Any($y$ =\\> $y$ != null \\&\\& $expr$)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ReplaceWithOfType.Any.2",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VulnerableApi",
+ "shortDescription": {
+ "text": "Vulnerable API usage"
+ },
+ "fullDescription": {
+ "text": "Reports usages of Vulnerable APIs in imported dependencies Learn more...",
+ "markdown": "Reports usages of Vulnerable APIs in imported dependencies [Learn more...](https://www.jetbrains.com/help/rider/VulnerableApi.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "VulnerableApi",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Security",
+ "index": 87,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ReplaceWithOfType.Any.1",
+ "shortDescription": {
+ "text": "Replace with OfType().Any()"
+ },
+ "fullDescription": {
+ "text": "$seq$.Select($x$ => $x$ as $T$).Any($y$ => $y$ != null)",
+ "markdown": "$seq$.Select($x$ =\\> $x$ as $T$).Any($y$ =\\> $y$ != null)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ReplaceWithOfType.Any.1",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "PossibleInvalidOperationException",
+ "shortDescription": {
+ "text": "Possible 'System.InvalidOperationException'"
+ },
+ "fullDescription": {
+ "text": "Possible call to method is invalid for the object's current state Learn more...",
+ "markdown": "Possible call to method is invalid for the object's current state [Learn more...](https://www.jetbrains.com/help/rider/PossibleInvalidOperationException.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "PossibleInvalidOperationException",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticCpp11NarrowingConstReference",
+ "shortDescription": {
+ "text": "c++11-narrowing-const-reference clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wc++11-narrowing-const-reference clang diagnostic · Learn more",
+ "markdown": "-Wc++11-narrowing-const-reference clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-11-narrowing-const-reference)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticCpp11NarrowingConstReference",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticIndependentClassAttribute",
+ "shortDescription": {
+ "text": "IndependentClass-attribute clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-WIndependentClass-attribute clang diagnostic · Learn more",
+ "markdown": "-WIndependentClass-attribute clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wIndependentClass-attribute)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticIndependentClassAttribute",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticDeprecatedOfast",
+ "shortDescription": {
+ "text": "deprecated-ofast clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wdeprecated-ofast clang diagnostic · Learn more",
+ "markdown": "-Wdeprecated-ofast clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-ofast)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedOfast",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticSignedEnumBitfield",
+ "shortDescription": {
+ "text": "signed-enum-bitfield clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wsigned-enum-bitfield clang diagnostic · Learn more",
+ "markdown": "-Wsigned-enum-bitfield clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsigned-enum-bitfield)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticSignedEnumBitfield",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ArrangeVarKeywordsInDeconstructingDeclaration",
+ "shortDescription": {
+ "text": "Join or separate 'var' in deconstruction declarations"
+ },
+ "fullDescription": {
+ "text": "Use preferred code style to check joined/separate 'var' usages in deconstruction declarations Learn more...",
+ "markdown": "Use preferred code style to check joined/separate 'var' usages in deconstruction declarations [Learn more...](https://www.jetbrains.com/help/rider/ArrangeVarKeywordsInDeconstructingDeclaration.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ArrangeVarKeywordsInDeconstructingDeclaration",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Syntax Style",
+ "index": 21,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangAnalyzerApiModelingTrustReturnsNonnull",
+ "shortDescription": {
+ "text": "apiModeling.TrustReturnsNonnull clang static analyzer check"
+ },
+ "fullDescription": {
+ "text": "apiModeling.TrustReturnsNonnull clang static analyzer check · Learn more",
+ "markdown": "apiModeling.TrustReturnsNonnull clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangAnalyzerApiModelingTrustReturnsNonnull",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Static Analyzer Checks",
+ "index": 32,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Unity.InstantiateWithoutParent",
+ "shortDescription": {
+ "text": "Setting 'parent' property immediately after object instantiation is inefficient"
+ },
+ "fullDescription": {
+ "text": "Instantiating a Unity object and setting the 'parent' property as separate operations is inefficient, as the transform hierarchy is created and immediately replaced. Combine setting the 'parent' property with the call to instantiate the object. Learn more...",
+ "markdown": "Instantiating a Unity object and setting the 'parent' property as separate operations is inefficient, as the transform hierarchy is created and immediately replaced. Combine setting the 'parent' property with the call to instantiate the object. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Avoid-using-Object.Instantiate-without-“Transform-Parent”-parameter-and-using-SetParent-later)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Unity.InstantiateWithoutParent",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Unity",
+ "index": 18,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticShiftSignOverflow",
+ "shortDescription": {
+ "text": "shift-sign-overflow clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wshift-sign-overflow clang diagnostic · Learn more",
+ "markdown": "-Wshift-sign-overflow clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshift-sign-overflow)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticShiftSignOverflow",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticShadowFieldInConstructor",
+ "shortDescription": {
+ "text": "shadow-field-in-constructor clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wshadow-field-in-constructor clang diagnostic · Learn more",
+ "markdown": "-Wshadow-field-in-constructor clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshadow-field-in-constructor)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticShadowFieldInConstructor",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "UseObjectOrCollectionInitializer",
+ "shortDescription": {
+ "text": "Use object or collection initializer when possible"
+ },
+ "fullDescription": {
+ "text": "Suggest to replace object sequential assignments to newly created object fields by object initializer Learn more...",
+ "markdown": "Suggest to replace object sequential assignments to newly created object fields by object initializer [Learn more...](https://www.jetbrains.com/help/rider/UseObjectOrCollectionInitializer.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "UseObjectOrCollectionInitializer",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Language Usage Opportunities",
+ "index": 7,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "MemberCanBePrivate.Global",
+ "shortDescription": {
+ "text": "Member can be made private (non-private accessibility)"
+ },
+ "fullDescription": {
+ "text": "Member can be made private Learn more...",
+ "markdown": "Member can be made private [Learn more...](https://www.jetbrains.com/help/rider/MemberCanBePrivate.Global.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "MemberCanBePrivate.Global",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppDiscardedPostfixOperatorResult",
+ "shortDescription": {
+ "text": "Result of a postfix operator is discarded"
+ },
+ "fullDescription": {
+ "text": "Result of a postfix operator is discarded. It might be more efficient to use a prefix form of the operator.",
+ "markdown": "Result of a postfix operator is discarded. It might be more efficient to use a prefix form of the operator."
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppDiscardedPostfixOperatorResult",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Common Practices and Code Improvements",
+ "index": 16,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyCertInt09C",
+ "shortDescription": {
+ "text": "cert-int09-c clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "cert-int09-c clang-tidy check · Learn more",
+ "markdown": "cert-int09-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/int09-c.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyCertInt09C",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "UseCollectionCountProperty",
+ "shortDescription": {
+ "text": "Use collection's count property"
+ },
+ "fullDescription": {
+ "text": "Usage of 'Enumerable.Count()' method can be replaced with direct collection count property access Learn more...",
+ "markdown": "Usage of 'Enumerable.Count()' method can be replaced with direct collection count property access [Learn more...](https://www.jetbrains.com/help/rider/UseCollectionCountProperty.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "UseCollectionCountProperty",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticPragmaPack",
+ "shortDescription": {
+ "text": "pragma-pack clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wpragma-pack clang diagnostic · Learn more",
+ "markdown": "-Wpragma-pack clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpragma-pack)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticPragmaPack",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyGoogleReadabilityTodo",
+ "shortDescription": {
+ "text": "google-readability-todo clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "google-readability-todo clang-tidy check · Learn more",
+ "markdown": "google-readability-todo clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/readability-todo.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyGoogleReadabilityTodo",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticDeprecatedType",
+ "shortDescription": {
+ "text": "deprecated-type clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wdeprecated-type clang diagnostic · Learn more",
+ "markdown": "-Wdeprecated-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-type)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedType",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppEmptyDeclaration",
+ "shortDescription": {
+ "text": "Declaration does not declare anything"
+ },
+ "fullDescription": {
+ "text": "A declaration does not declare anything",
+ "markdown": "A declaration does not declare anything"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppEmptyDeclaration",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticStrictPrimaryTemplateShadow",
+ "shortDescription": {
+ "text": "strict-primary-template-shadow clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wstrict-primary-template-shadow clang diagnostic · Learn more",
+ "markdown": "-Wstrict-primary-template-shadow clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstrict-primary-template-shadow)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticStrictPrimaryTemplateShadow",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppIncompatiblePointerConversion",
+ "shortDescription": {
+ "text": "Implicit conversion to incompatible pointer type"
+ },
+ "fullDescription": {
+ "text": "Implicit conversion to incompatible pointer type",
+ "markdown": "Implicit conversion to incompatible pointer type"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppIncompatiblePointerConversion",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangAnalyzerCoreUninitializedCapturedBlockVariable",
+ "shortDescription": {
+ "text": "core.uninitialized.CapturedBlockVariable clang static analyzer check"
+ },
+ "fullDescription": {
+ "text": "core.uninitialized.CapturedBlockVariable clang static analyzer check · Learn more",
+ "markdown": "core.uninitialized.CapturedBlockVariable clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangAnalyzerCoreUninitializedCapturedBlockVariable",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Static Analyzer Checks",
+ "index": 32,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyMiscIncludeCleaner",
+ "shortDescription": {
+ "text": "misc-include-cleaner clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "misc-include-cleaner clang-tidy check · Learn more",
+ "markdown": "misc-include-cleaner clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/include-cleaner.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyMiscIncludeCleaner",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyReadabilityAvoidNestedConditionalOperator",
+ "shortDescription": {
+ "text": "readability-avoid-nested-conditional-operator clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "readability-avoid-nested-conditional-operator clang-tidy check · Learn more",
+ "markdown": "readability-avoid-nested-conditional-operator clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/avoid-nested-conditional-operator.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyReadabilityAvoidNestedConditionalOperator",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticStringConversion",
+ "shortDescription": {
+ "text": "string-conversion clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wstring-conversion clang diagnostic · Learn more",
+ "markdown": "-Wstring-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstring-conversion)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticStringConversion",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangAnalyzerUnixStream",
+ "shortDescription": {
+ "text": "unix.Stream clang static analyzer check"
+ },
+ "fullDescription": {
+ "text": "unix.Stream clang static analyzer check · Learn more",
+ "markdown": "unix.Stream clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangAnalyzerUnixStream",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Static Analyzer Checks",
+ "index": 32,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "NotNullOrRequiredMemberIsNotInitialized",
+ "shortDescription": {
+ "text": "Non-nullable or required member is not initialized at constructor exit"
+ },
+ "fullDescription": {
+ "text": "Non-nullable or required type member is not initialized in any execution path of the constructor Learn more...",
+ "markdown": "Non-nullable or required type member is not initialized in any execution path of the constructor [Learn more...](https://www.jetbrains.com/help/rider/NotNullOrRequiredMemberIsNotInitialized.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "NotNullOrRequiredMemberIsNotInitialized",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Constraints Violations",
+ "index": 80,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "UseUnsignedRightShiftOperator",
+ "shortDescription": {
+ "text": "Use unsigned right shift operator '>>>'"
+ },
+ "fullDescription": {
+ "text": "Use unsigned right shift operator '>>>' instead of manual casting and shifting Learn more...",
+ "markdown": "Use unsigned right shift operator '\\>\\>\\>' instead of manual casting and shifting [Learn more...](https://www.jetbrains.com/help/rider/UseUnsignedRightShiftOperator.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "UseUnsignedRightShiftOperator",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Language Usage Opportunities",
+ "index": 7,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticDeprecatedDeclarations",
+ "shortDescription": {
+ "text": "deprecated-declarations clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wdeprecated-declarations clang diagnostic · Learn more",
+ "markdown": "-Wdeprecated-declarations clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-declarations)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedDeclarations",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticUnreachableCodeLoopIncrement",
+ "shortDescription": {
+ "text": "unreachable-code-loop-increment clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wunreachable-code-loop-increment clang diagnostic · Learn more",
+ "markdown": "-Wunreachable-code-loop-increment clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunreachable-code-loop-increment)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticUnreachableCodeLoopIncrement",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VBReplaceWithOfType.Last.1",
+ "shortDescription": {
+ "text": "Replace with OfType().Last() (replace with OfType(Of ..)().Last())"
+ },
+ "fullDescription": {
+ "text": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Last(Function ($y$) $y$ IsNot Nothing)",
+ "markdown": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Last(Function ($y$) $y$ IsNot Nothing)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "VBReplaceWithOfType.Last.1",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Common Practices and Code Improvements",
+ "index": 40,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "OneWayOperationContractWithReturnType",
+ "shortDescription": {
+ "text": "One way operations must not return values"
+ },
+ "fullDescription": {
+ "text": "Methods marked with OperationContract attribute as OneWay operations must not return values Learn more...",
+ "markdown": "Methods marked with OperationContract attribute as OneWay operations must not return values [Learn more...](https://www.jetbrains.com/help/rider/OneWayOperationContractWithReturnType.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "OneWayOperationContractWithReturnType",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VBReplaceWithOfType.Last.2",
+ "shortDescription": {
+ "text": "Replace with OfType().Last() (replace with OfType(Of ..)().Last(..))"
+ },
+ "fullDescription": {
+ "text": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Last(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)",
+ "markdown": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Last(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "VBReplaceWithOfType.Last.2",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Common Practices and Code Improvements",
+ "index": 40,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "AnnotateCanBeNullTypeMember",
+ "shortDescription": {
+ "text": "Declaration nullability inferred (type member is inferred to be nullable)"
+ },
+ "fullDescription": {
+ "text": "Type member is inferred to be nullable: consider annotating it with [CanBeNull] or [ItemCanBeNull] attribute",
+ "markdown": "Type member is inferred to be nullable: consider annotating it with \\[CanBeNull\\] or \\[ItemCanBeNull\\] attribute"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "AnnotateCanBeNullTypeMember",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "UseThrowIfNullMethod",
+ "shortDescription": {
+ "text": "Use 'ArgumentNullException.ThrowIfNull'"
+ },
+ "fullDescription": {
+ "text": "Replace throwing of 'ArgumentNullException' object with an invocation of the helper method",
+ "markdown": "Replace throwing of 'ArgumentNullException' object with an invocation of the helper method"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "UseThrowIfNullMethod",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ConvertToAutoPropertyWhenPossible",
+ "shortDescription": {
+ "text": "Convert property into auto-property (when possible)"
+ },
+ "fullDescription": {
+ "text": "Converts property declaration into C# auto-property syntax",
+ "markdown": "Converts property declaration into C# auto-property syntax"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ConvertToAutoPropertyWhenPossible",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Language Usage Opportunities",
+ "index": 7,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1094",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Declare using directive on top level"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1094",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "SimplifyStringInterpolation",
+ "shortDescription": {
+ "text": "Use format specifier in interpolated strings"
+ },
+ "fullDescription": {
+ "text": "'.ToString()' call could be replaced with a format specifier Learn more...",
+ "markdown": "'.ToString()' call could be replaced with a format specifier [Learn more...](https://www.jetbrains.com/help/rider/SimplifyStringInterpolation.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "SimplifyStringInterpolation",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1096",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Use 'HasFlag' method or bitwise operator"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1096",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1097",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Remove redundant 'ToString' call"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1097",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1090",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Add/remove 'ConfigureAwait(false)' call"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1090",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1091",
+ "shortDescription": {
+ "text": "RoslynAnalyzers [deprecated] Remove empty region"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1091",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1093",
+ "shortDescription": {
+ "text": "RoslynAnalyzers File contains no code"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1093",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "MoveVariableDeclarationInsideLoopCondition",
+ "shortDescription": {
+ "text": "Move variable declaration inside loop condition"
+ },
+ "fullDescription": {
+ "text": "Declare variable inside a loop condition using pattern matching syntax to reduce its scope and avoid doing a C-style assignment as a side effect",
+ "markdown": "Declare variable inside a loop condition using pattern matching syntax to reduce its scope and avoid doing a C-style assignment as a side effect"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "MoveVariableDeclarationInsideLoopCondition",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Language Usage Opportunities",
+ "index": 7,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticGnuIncludeNext",
+ "shortDescription": {
+ "text": "gnu-include-next clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wgnu-include-next clang diagnostic · Learn more",
+ "markdown": "-Wgnu-include-next clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-include-next)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticGnuIncludeNext",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ReferenceEqualsWithValueType",
+ "shortDescription": {
+ "text": "'Object.ReferenceEquals' is always false because it is called with value type"
+ },
+ "fullDescription": {
+ "text": "'Object.ReferenceEquals' is always false because it is called with value type",
+ "markdown": "'Object.ReferenceEquals' is always false because it is called with value type"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "ReferenceEqualsWithValueType",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "SimplifyConditionalTernaryExpression",
+ "shortDescription": {
+ "text": "Simplify conditional ternary expression"
+ },
+ "fullDescription": {
+ "text": "Ternary expression contains 'true' or 'false' in result branch, for example \r\n condition ? true : elseBranch\r\n condition ? thenBranch : true\r\n Learn more...",
+ "markdown": "Ternary expression contains 'true' or 'false' in result branch, for example\n\n```\n\r\n condition ? true : elseBranch\r\n condition ? thenBranch : true\r\n \n```\n\n[Learn more...](https://www.jetbrains.com/help/rider/SimplifyConditionalTernaryExpression.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "SimplifyConditionalTernaryExpression",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticEmbeddedDirective",
+ "shortDescription": {
+ "text": "embedded-directive clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wembedded-directive clang diagnostic · Learn more",
+ "markdown": "-Wembedded-directive clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wembedded-directive)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticEmbeddedDirective",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangAnalyzerOptinOsxOSObjectCStyleCast",
+ "shortDescription": {
+ "text": "optin.osx.OSObjectCStyleCast clang static analyzer check"
+ },
+ "fullDescription": {
+ "text": "optin.osx.OSObjectCStyleCast clang static analyzer check · Learn more",
+ "markdown": "optin.osx.OSObjectCStyleCast clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangAnalyzerOptinOsxOSObjectCStyleCast",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Static Analyzer Checks",
+ "index": 32,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1089",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Use --/++ operator instead of assignment"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1089",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "BadAttributeBracketsSpaces",
+ "shortDescription": {
+ "text": "Incorrect spacing (around attributes)"
+ },
+ "fullDescription": {
+ "text": "Around attributes Learn more...",
+ "markdown": "Around attributes [Learn more...](https://www.jetbrains.com/help/rider/BadAttributeBracketsSpaces.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "BadAttributeBracketsSpaces",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Formatting",
+ "index": 24,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Mvc.AreaNotResolved",
+ "shortDescription": {
+ "text": "MVC (unknown area)"
+ },
+ "fullDescription": {
+ "text": "Unknown ASP.NET MVC Area",
+ "markdown": "Unknown ASP.NET MVC Area"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Mvc.AreaNotResolved",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Aspx/Potential Code Quality Issues",
+ "index": 64,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1084",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Use coalesce expression instead of conditional expression"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1084",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1085",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Use auto-implemented property"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1085",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyPerformanceImplicitConversionInLoop",
+ "shortDescription": {
+ "text": "performance-implicit-conversion-in-loop clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "performance-implicit-conversion-in-loop clang-tidy check · Learn more",
+ "markdown": "performance-implicit-conversion-in-loop clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/implicit-conversion-in-loop.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyPerformanceImplicitConversionInLoop",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1080",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Use 'Count/Length' property instead of 'Any' method"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1080",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Asp.ResolveWarning",
+ "shortDescription": {
+ "text": "ASP.NET Resolve Warning"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Asp.ResolveWarning",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Aspx/Potential Code Quality Issues",
+ "index": 64,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1081",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Split variable declaration"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1081",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1021FadeOut",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Convert lambda expression body to expression body"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1021FadeOut",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyReadabilitySimplifyBooleanExpr",
+ "shortDescription": {
+ "text": "readability-simplify-boolean-expr clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "readability-simplify-boolean-expr clang-tidy check · Learn more",
+ "markdown": "readability-simplify-boolean-expr clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/simplify-boolean-expr.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyReadabilitySimplifyBooleanExpr",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticMalformedWarningCheck",
+ "shortDescription": {
+ "text": "malformed-warning-check clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wmalformed-warning-check clang diagnostic · Learn more",
+ "markdown": "-Wmalformed-warning-check clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmalformed-warning-check)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticMalformedWarningCheck",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticDeprecatedAltivecSrcCompat",
+ "shortDescription": {
+ "text": "deprecated-altivec-src-compat clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wdeprecated-altivec-src-compat clang diagnostic · Learn more",
+ "markdown": "-Wdeprecated-altivec-src-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-altivec-src-compat)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedAltivecSrcCompat",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticExtraSemiStmt",
+ "shortDescription": {
+ "text": "extra-semi-stmt clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wextra-semi-stmt clang diagnostic · Learn more",
+ "markdown": "-Wextra-semi-stmt clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wextra-semi-stmt)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticExtraSemiStmt",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "InternalOrPrivateMemberNotDocumented",
+ "shortDescription": {
+ "text": "Missing XML comment for private or internal type or member"
+ },
+ "fullDescription": {
+ "text": "Missing XML comment for private or internal type or member",
+ "markdown": "Missing XML comment for private or internal type or member"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "InternalOrPrivateMemberNotDocumented",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticUnusedConstVariable",
+ "shortDescription": {
+ "text": "unused-const-variable clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wunused-const-variable clang diagnostic · Learn more",
+ "markdown": "-Wunused-const-variable clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-const-variable)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticUnusedConstVariable",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CanSimplifyIsAssignableFrom",
+ "shortDescription": {
+ "text": "Simplify 'IsInstanceOfType()' invocation"
+ },
+ "fullDescription": {
+ "text": "IsInstanceOfType() invocation can be simplified with 'is' operator Learn more...",
+ "markdown": "IsInstanceOfType() invocation can be simplified with 'is' operator [Learn more...](https://www.jetbrains.com/help/rider/CanSimplifyIsAssignableFrom.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CanSimplifyIsAssignableFrom",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticPreC11Compat",
+ "shortDescription": {
+ "text": "pre-c11-compat clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wpre-c11-compat clang diagnostic · Learn more",
+ "markdown": "-Wpre-c11-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c11-compat)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticPreC11Compat",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "IsExpressionAlwaysFalse",
+ "shortDescription": {
+ "text": "The expression of 'is' operator is never of the provided type"
+ },
+ "fullDescription": {
+ "text": "The expression of 'is' operator is never of the provided type",
+ "markdown": "The expression of 'is' operator is never of the provided type"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "IsExpressionAlwaysFalse",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticDllAttributeOnRedeclaration",
+ "shortDescription": {
+ "text": "dll-attribute-on-redeclaration clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wdll-attribute-on-redeclaration clang diagnostic · Learn more",
+ "markdown": "-Wdll-attribute-on-redeclaration clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdll-attribute-on-redeclaration)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticDllAttributeOnRedeclaration",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1077",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Optimize LINQ method call"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1077",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppUENonExistentInputAction",
+ "shortDescription": {
+ "text": "Action with this name does not exist"
+ },
+ "fullDescription": {
+ "text": "Action with this name does not exist",
+ "markdown": "Action with this name does not exist"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppUENonExistentInputAction",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Unreal Engine",
+ "index": 6,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1078",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Use \"\" or 'string.Empty'"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1078",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticArcPerformSelectorLeaks",
+ "shortDescription": {
+ "text": "arc-performSelector-leaks clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Warc-performSelector-leaks clang diagnostic · Learn more",
+ "markdown": "-Warc-performSelector-leaks clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#warc-performSelector-leaks)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticArcPerformSelectorLeaks",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1079",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Throwing of new NotImplementedException"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1079",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyModernizeAvoidCArrays",
+ "shortDescription": {
+ "text": "modernize-avoid-c-arrays clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "modernize-avoid-c-arrays clang-tidy check · Learn more",
+ "markdown": "modernize-avoid-c-arrays clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/avoid-c-arrays.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyModernizeAvoidCArrays",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppBadControlBracesIndent",
+ "shortDescription": {
+ "text": "Incorrect indent (around statement braces)"
+ },
+ "fullDescription": {
+ "text": "Around statement braces",
+ "markdown": "Around statement braces"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppBadControlBracesIndent",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Formatting",
+ "index": 28,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticAnonEnumEnumConversion",
+ "shortDescription": {
+ "text": "anon-enum-enum-conversion clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wanon-enum-enum-conversion clang diagnostic · Learn more",
+ "markdown": "-Wanon-enum-enum-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wanon-enum-enum-conversion)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticAnonEnumEnumConversion",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppCoroutineCallResolveError",
+ "shortDescription": {
+ "text": "Cannot resolve a required coroutine function"
+ },
+ "fullDescription": {
+ "text": "A coroutine-related function which is required by the C++20 standard cannot be resolved",
+ "markdown": "A coroutine-related function which is required by the C++20 standard cannot be resolved"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppCoroutineCallResolveError",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Compiler Warnings",
+ "index": 75,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppRemoveRedundantBraces",
+ "shortDescription": {
+ "text": "Use preferred braces style (remove redundant braces)"
+ },
+ "fullDescription": {
+ "text": "Braces can be safely removed without changing code semantics",
+ "markdown": "Braces can be safely removed without changing code semantics"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppRemoveRedundantBraces",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Syntax Style",
+ "index": 91,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppDefaultIsUsedAsIdentifier",
+ "shortDescription": {
+ "text": "Keyword 'default' is used as identifier"
+ },
+ "fullDescription": {
+ "text": "'default' is a keyword in the C++ standard and cannot be used as an identifier",
+ "markdown": "'default' is a keyword in the C++ standard and cannot be used as an identifier"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppDefaultIsUsedAsIdentifier",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticIncompleteUmbrella",
+ "shortDescription": {
+ "text": "incomplete-umbrella clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wincomplete-umbrella clang diagnostic · Learn more",
+ "markdown": "-Wincomplete-umbrella clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincomplete-umbrella)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticIncompleteUmbrella",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ArgumentsStyleOther",
+ "shortDescription": {
+ "text": "Use preferred argument style"
+ },
+ "fullDescription": {
+ "text": "Prefer using named/positional argument for all expressions except literal, named and anonymous function Learn more...",
+ "markdown": "Prefer using named/positional argument for all expressions except literal, named and anonymous function [Learn more...](https://www.jetbrains.com/help/rider/ArgumentsStyleOther.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ArgumentsStyleOther",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Syntax Style",
+ "index": 21,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RedundantDefaultMemberInitializer",
+ "shortDescription": {
+ "text": "Redundant member initializer"
+ },
+ "fullDescription": {
+ "text": "Initializing field/property/event with default value is redundant Learn more...",
+ "markdown": "Initializing field/property/event with default value is redundant [Learn more...](https://www.jetbrains.com/help/rider/RedundantDefaultMemberInitializer.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RedundantDefaultMemberInitializer",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Redundancies in Symbol Declarations",
+ "index": 36,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Xaml.RedundantXamarinFormsClassDeclaration",
+ "shortDescription": {
+ "text": "Resource cannot be accessed by class name because of x:Key attribute"
+ },
+ "fullDescription": {
+ "text": "Resource cannot be accessed by class name because of x:Key attribute",
+ "markdown": "Resource cannot be accessed by class name because of x:Key attribute"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Xaml.RedundantXamarinFormsClassDeclaration",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "XAML/Potential Code Quality Issues",
+ "index": 45,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "UnusedLabel",
+ "shortDescription": {
+ "text": "Unused label"
+ },
+ "fullDescription": {
+ "text": "Label is never referenced",
+ "markdown": "Label is never referenced"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "UnusedLabel",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Redundancies in Symbol Declarations",
+ "index": 36,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticDeprecatedCopy",
+ "shortDescription": {
+ "text": "deprecated-copy clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wdeprecated-copy clang diagnostic · Learn more",
+ "markdown": "-Wdeprecated-copy clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-copy)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedCopy",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppUESourceFileWithoutStandardLibrary",
+ "shortDescription": {
+ "text": "C/C++ standard library headers not found"
+ },
+ "fullDescription": {
+ "text": "C++ standard library headers cannot be resolved in an Unreal Engine source file. You might need to regenerate the project files.",
+ "markdown": "C++ standard library headers cannot be resolved in an Unreal Engine source file. You might need to regenerate the project files."
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "CppUESourceFileWithoutStandardLibrary",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Unreal Engine",
+ "index": 6,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticHigherPrecisionFp",
+ "shortDescription": {
+ "text": "higher-precision-fp clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Whigher-precision-fp clang diagnostic · Learn more",
+ "markdown": "-Whigher-precision-fp clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#whigher-precision-fp)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticHigherPrecisionFp",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticDelegatingCtorCycles",
+ "shortDescription": {
+ "text": "delegating-ctor-cycles clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wdelegating-ctor-cycles clang diagnostic · Learn more",
+ "markdown": "-Wdelegating-ctor-cycles clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdelegating-ctor-cycles)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticDelegatingCtorCycles",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Razor.AssemblyNotResolved",
+ "shortDescription": {
+ "text": "Unknown Razor assembly"
+ },
+ "fullDescription": {
+ "text": "Unknown Razor assembly",
+ "markdown": "Unknown Razor assembly"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Razor.AssemblyNotResolved",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Razor/Potential Code Quality Issues",
+ "index": 93,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyModernizeMakeShared",
+ "shortDescription": {
+ "text": "modernize-make-shared clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "modernize-make-shared clang-tidy check · Learn more",
+ "markdown": "modernize-make-shared clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/make-shared.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyModernizeMakeShared",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticCompoundTokenSplitBySpace",
+ "shortDescription": {
+ "text": "compound-token-split-by-space clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wcompound-token-split-by-space clang diagnostic · Learn more",
+ "markdown": "-Wcompound-token-split-by-space clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcompound-token-split-by-space)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticCompoundTokenSplitBySpace",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticAbstractFinalClass",
+ "shortDescription": {
+ "text": "abstract-final-class clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wabstract-final-class clang diagnostic · Learn more",
+ "markdown": "-Wabstract-final-class clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wabstract-final-class)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticAbstractFinalClass",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "NestedStringInterpolation",
+ "shortDescription": {
+ "text": "Nested string interpolation can be inlined"
+ },
+ "fullDescription": {
+ "text": "Nested string interpolation can be inlined into containing one",
+ "markdown": "Nested string interpolation can be inlined into containing one"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "NestedStringInterpolation",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ReadAccessInDoubleCheckLocking",
+ "shortDescription": {
+ "text": "Possible incorrect implementation of Double-Check Locking pattern. Read access to checked field."
+ },
+ "fullDescription": {
+ "text": "Possible incorrect implementation of Double-Check Locking pattern. Read access to checked field. Learn more...",
+ "markdown": "Possible incorrect implementation of Double-Check Locking pattern. Read access to checked field. [Learn more...](https://www.jetbrains.com/help/rider/ReadAccessInDoubleCheckLocking.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "ReadAccessInDoubleCheckLocking",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyCertMsc50Cpp",
+ "shortDescription": {
+ "text": "cert-msc50-cpp clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "cert-msc50-cpp clang-tidy check · Learn more",
+ "markdown": "cert-msc50-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc50-cpp.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyCertMsc50Cpp",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticLiteralRange",
+ "shortDescription": {
+ "text": "literal-range clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wliteral-range clang diagnostic · Learn more",
+ "markdown": "-Wliteral-range clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wliteral-range)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticLiteralRange",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "TooWideLocalVariableScope",
+ "shortDescription": {
+ "text": "Local variable has too wide declaration scope"
+ },
+ "fullDescription": {
+ "text": "Local variable is declared in a wider scope than the scope of its actual use Learn more...",
+ "markdown": "Local variable is declared in a wider scope than the scope of its actual use [Learn more...](https://www.jetbrains.com/help/rider/TooWideLocalVariableScope.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "TooWideLocalVariableScope",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppUnmatchedPragmaEndRegionDirective",
+ "shortDescription": {
+ "text": "Missing a matching '#pragma region' directive"
+ },
+ "fullDescription": {
+ "text": "A '#pragma endregion' directive is missing a matching '#pragma region' directive",
+ "markdown": "A '#pragma endregion' directive is missing a matching '#pragma region' directive"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppUnmatchedPragmaEndRegionDirective",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "AspOdsMethodReferenceResolveError",
+ "shortDescription": {
+ "text": "Object data source method resolve problem"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "AspOdsMethodReferenceResolveError",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Aspx/Potential Code Quality Issues",
+ "index": 64,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "NUnit.RangeToValueIsNotReachable",
+ "shortDescription": {
+ "text": "NUnit. The maximum range value is not reachable with the step value."
+ },
+ "fullDescription": {
+ "text": "NUnit. The maximum value of [Range] is not reachable, check range and step values. Learn more...",
+ "markdown": "NUnit. The maximum value of \\[Range\\] is not reachable, check range and step values. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.RangeToValueIsNotReachable.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "NUnit.RangeToValueIsNotReachable",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/NUnit",
+ "index": 26,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticQualifiedVoidReturnType",
+ "shortDescription": {
+ "text": "qualified-void-return-type clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wqualified-void-return-type clang diagnostic · Learn more",
+ "markdown": "-Wqualified-void-return-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wqualified-void-return-type)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticQualifiedVoidReturnType",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CA3001",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Review code for SQL injection vulnerabilities"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CA3001",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1098",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Constant values should be placed on right side of comparisons"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1098",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1099",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Default label should be the last label in a switch section"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1099",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CA3002",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Review code for XSS vulnerabilities"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CA3002",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticStaticFloatInit",
+ "shortDescription": {
+ "text": "static-float-init clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wstatic-float-init clang diagnostic · Learn more",
+ "markdown": "-Wstatic-float-init clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstatic-float-init)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticStaticFloatInit",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CA3003",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Review code for file path injection vulnerabilities"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CA3003",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Web.MappedPath",
+ "shortDescription": {
+ "text": "Mapped path"
+ },
+ "fullDescription": {
+ "text": "Path is mapped to a different path in project settings",
+ "markdown": "Path is mapped to a different path in project settings"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "Web.MappedPath",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Web.Config/Code Notification",
+ "index": 94,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CA3004",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Review code for information disclosure vulnerabilities"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CA3004",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CA3005",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Review code for LDAP injection vulnerabilities"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CA3005",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1050",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Include/omit parentheses when creating new object"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1050",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1051",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Add/remove parentheses from condition in conditional operator"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1051",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CA3006",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Review code for process command injection vulnerabilities"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CA3006",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CA3007",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Review code for open redirect vulnerabilities"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CA3007",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1052",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Declare each attribute separately"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1052",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyCertErr33C",
+ "shortDescription": {
+ "text": "cert-err33-c clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "cert-err33-c clang-tidy check · Learn more",
+ "markdown": "cert-err33-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/err33-c.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyCertErr33C",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CA3008",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Review code for XPath injection vulnerabilities"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CA3008",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyBugproneNarrowingConversions",
+ "shortDescription": {
+ "text": "bugprone-narrowing-conversions clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "bugprone-narrowing-conversions clang-tidy check · Learn more",
+ "markdown": "bugprone-narrowing-conversions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/narrowing-conversions.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyBugproneNarrowingConversions",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CA3009",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Review code for XML injection vulnerabilities"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CA3009",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "BadBracesSpaces",
+ "shortDescription": {
+ "text": "Incorrect spacing (around braces)"
+ },
+ "fullDescription": {
+ "text": "Around braces Learn more...",
+ "markdown": "Around braces [Learn more...](https://www.jetbrains.com/help/rider/BadBracesSpaces.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "BadBracesSpaces",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Formatting",
+ "index": 24,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyCertErr60Cpp",
+ "shortDescription": {
+ "text": "cert-err60-cpp clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "cert-err60-cpp clang-tidy check · Learn more",
+ "markdown": "cert-err60-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/err60-cpp.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyCertErr60Cpp",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CanReplaceCastWithTypeArgument",
+ "shortDescription": {
+ "text": "Cast expression can be replaced with explicit type arguments"
+ },
+ "fullDescription": {
+ "text": "Replace cast expression with explicit type arguments to enhance compile-time safety Learn more...",
+ "markdown": "Replace cast expression with explicit type arguments to enhance compile-time safety [Learn more...](https://www.jetbrains.com/help/rider/CanReplaceCastWithTypeArgument.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CanReplaceCastWithTypeArgument",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ReplaceSliceWithRangeIndexer",
+ "shortDescription": {
+ "text": "Replace 'Slice' with range indexer"
+ },
+ "fullDescription": {
+ "text": "Replace 'Slice' method call with range indexer access",
+ "markdown": "Replace 'Slice' method call with range indexer access"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ReplaceSliceWithRangeIndexer",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Language Usage Opportunities",
+ "index": 7,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1047",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Non-asynchronous method name should not end with 'Async'"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1047",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1048",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Use lambda expression instead of anonymous method"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1048",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CA3010",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Review code for XAML injection vulnerabilities"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CA3010",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1049",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Simplify boolean comparison"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1049",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CA3011",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Review code for DLL injection vulnerabilities"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CA3011",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1043",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Remove 'partial' modifier from type with a single part"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1043",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CA3012",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Review code for regex injection vulnerabilities"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CA3012",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1044",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Remove original exception from throw statement"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RCS1044",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RedundantPropertyPatternClause",
+ "shortDescription": {
+ "text": "Redundant property pattern clause"
+ },
+ "fullDescription": {
+ "text": "Empty property pattern clause can be omitted",
+ "markdown": "Empty property pattern clause can be omitted"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RedundantPropertyPatternClause",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Redundancies in Code",
+ "index": 23,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1046",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Asynchronous method name should end with 'Async'"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1046",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1040",
+ "shortDescription": {
+ "text": "RoslynAnalyzers [deprecated] Remove empty 'else' clause"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1040",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1041",
+ "shortDescription": {
+ "text": "RoslynAnalyzers [deprecated] Remove empty initializer"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1041",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1042",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Remove enum default underlying type"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1042",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangAnalyzerUnixCstringBadSizeArg",
+ "shortDescription": {
+ "text": "unix.cstring.BadSizeArg clang static analyzer check"
+ },
+ "fullDescription": {
+ "text": "unix.cstring.BadSizeArg clang static analyzer check · Learn more",
+ "markdown": "unix.cstring.BadSizeArg clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangAnalyzerUnixCstringBadSizeArg",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Static Analyzer Checks",
+ "index": 32,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticMicrosoftMutableReference",
+ "shortDescription": {
+ "text": "microsoft-mutable-reference clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wmicrosoft-mutable-reference clang diagnostic · Learn more",
+ "markdown": "-Wmicrosoft-mutable-reference clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-mutable-reference)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftMutableReference",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticRewriteNotBool",
+ "shortDescription": {
+ "text": "rewrite-not-bool clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wrewrite-not-bool clang diagnostic · Learn more",
+ "markdown": "-Wrewrite-not-bool clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wrewrite-not-bool)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticRewriteNotBool",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppParameterMayBeConst",
+ "shortDescription": {
+ "text": "Parameter can be made const"
+ },
+ "fullDescription": {
+ "text": "Parameter can be made const Learn more...",
+ "markdown": "Parameter can be made const [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rconst-immutable)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppParameterMayBeConst",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Common Practices and Code Improvements",
+ "index": 16,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "BadParensLineBreaks",
+ "shortDescription": {
+ "text": "Incorrect line breaks (around parenthesis)"
+ },
+ "fullDescription": {
+ "text": "Around parenthesis Learn more...",
+ "markdown": "Around parenthesis [Learn more...](https://www.jetbrains.com/help/rider/BadParensLineBreaks.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "BadParensLineBreaks",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Formatting",
+ "index": 24,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticPaddedBitfield",
+ "shortDescription": {
+ "text": "padded-bitfield clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wpadded-bitfield clang diagnostic · Learn more",
+ "markdown": "-Wpadded-bitfield clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpadded-bitfield)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticPaddedBitfield",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyReadabilityFunctionCognitiveComplexity",
+ "shortDescription": {
+ "text": "readability-function-cognitive-complexity clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "readability-function-cognitive-complexity clang-tidy check · Learn more",
+ "markdown": "readability-function-cognitive-complexity clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/function-cognitive-complexity.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyReadabilityFunctionCognitiveComplexity",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppIncompleteSwitchStatement",
+ "shortDescription": {
+ "text": "Possibly erroneous incomplete switch-statement"
+ },
+ "fullDescription": {
+ "text": "The switch statement doesn't cover the whole range of the enumeration used",
+ "markdown": "The switch statement doesn't cover the whole range of the enumeration used"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppIncompleteSwitchStatement",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyPortabilityRestrictSystemIncludes",
+ "shortDescription": {
+ "text": "portability-restrict-system-includes clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "portability-restrict-system-includes clang-tidy check · Learn more",
+ "markdown": "portability-restrict-system-includes clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/portability/restrict-system-includes.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyPortabilityRestrictSystemIncludes",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "AssignmentInConditionalExpression",
+ "shortDescription": {
+ "text": "Assignment in conditional expression"
+ },
+ "fullDescription": {
+ "text": "Assignment in conditional expression; did you mean to use '==' instead of '='? Learn more...",
+ "markdown": "Assignment in conditional expression; did you mean to use '==' instead of '='? [Learn more...](https://www.jetbrains.com/help/rider/AssignmentInConditionalExpression.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "AssignmentInConditionalExpression",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "WebConfig.TypeNotResolved",
+ "shortDescription": {
+ "text": "Cannot resolve symbol"
+ },
+ "fullDescription": {
+ "text": "Cannot resolve symbol",
+ "markdown": "Cannot resolve symbol"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "WebConfig.TypeNotResolved",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Web.Config/Potential Code Quality Issues",
+ "index": 82,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangAnalyzerNullabilityNullableReturnedFromNonnull",
+ "shortDescription": {
+ "text": "nullability.NullableReturnedFromNonnull clang static analyzer check"
+ },
+ "fullDescription": {
+ "text": "nullability.NullableReturnedFromNonnull clang static analyzer check · Learn more",
+ "markdown": "nullability.NullableReturnedFromNonnull clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangAnalyzerNullabilityNullableReturnedFromNonnull",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Static Analyzer Checks",
+ "index": 32,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1036",
+ "shortDescription": {
+ "text": "RoslynAnalyzers [deprecated] Remove unnecessary blank line"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1036",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1037",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Remove trailing white-space"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1037",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1038",
+ "shortDescription": {
+ "text": "RoslynAnalyzers [deprecated] Remove empty statement"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1038",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1039",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Remove argument list from attribute"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1039",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1032",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Remove redundant parentheses"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1032",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1033",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Remove redundant boolean literal"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1033",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1034",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Remove redundant 'sealed' modifier"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1034",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1035",
+ "shortDescription": {
+ "text": "RoslynAnalyzers [deprecated] Remove redundant comma in initializer"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1035",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CA1200",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Avoid using cref tags with a prefix"
+ },
+ "fullDescription": {
+ "text": "Use of cref tags with prefixes should be avoided, since it prevents the compiler from verifying references and the IDE from updating references during refactorings. It is permissible to suppress this error at a single documentation site if the cref must use a prefix because the type being mentioned is not findable by the compiler. For example, if a cref is mentioning a special attribute in the full framework but you're in a file that compiles against the portable framework, or if you want to reference a type at higher layer of Roslyn, you should suppress the error. You should not suppress the error just because you want to take a shortcut and avoid using the full syntax.",
+ "markdown": "Use of cref tags with prefixes should be avoided, since it prevents the compiler from verifying references and the IDE from updating references during refactorings. It is permissible to suppress this error at a single documentation site if the cref must use a prefix because the type being mentioned is not findable by the compiler. For example, if a cref is mentioning a special attribute in the full framework but you're in a file that compiles against the portable framework, or if you want to reference a type at higher layer of Roslyn, you should suppress the error. You should not suppress the error just because you want to take a shortcut and avoid using the full syntax."
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CA1200",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1072",
+ "shortDescription": {
+ "text": "RoslynAnalyzers [deprecated] Remove empty namespace declaration"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1072",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1073",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Convert 'if' to 'return' statement"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1073",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1074",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Remove redundant constructor"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1074",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1075",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Avoid empty catch clause that catches System.Exception"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RCS1075",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticKeywordCompat",
+ "shortDescription": {
+ "text": "keyword-compat clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wkeyword-compat clang diagnostic · Learn more",
+ "markdown": "-Wkeyword-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wkeyword-compat)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticKeywordCompat",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1070",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Remove redundant default switch section"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1070",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticIntegerOverflow",
+ "shortDescription": {
+ "text": "integer-overflow clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Winteger-overflow clang diagnostic · Learn more",
+ "markdown": "-Winteger-overflow clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winteger-overflow)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticIntegerOverflow",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1071",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Remove redundant base constructor call"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1071",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticDocumentationDeprecatedSync",
+ "shortDescription": {
+ "text": "documentation-deprecated-sync clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wdocumentation-deprecated-sync clang diagnostic · Learn more",
+ "markdown": "-Wdocumentation-deprecated-sync clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdocumentation-deprecated-sync)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticDocumentationDeprecatedSync",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticExpansionToDefined",
+ "shortDescription": {
+ "text": "expansion-to-defined clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wexpansion-to-defined clang diagnostic · Learn more",
+ "markdown": "-Wexpansion-to-defined clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wexpansion-to-defined)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticExpansionToDefined",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticDllimportStaticFieldDef",
+ "shortDescription": {
+ "text": "dllimport-static-field-def clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wdllimport-static-field-def clang diagnostic · Learn more",
+ "markdown": "-Wdllimport-static-field-def clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdllimport-static-field-def)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticDllimportStaticFieldDef",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Unity.ExpectedComponent",
+ "shortDescription": {
+ "text": "Expected a type derived from 'Component' or 'MonoBehaviour'"
+ },
+ "fullDescription": {
+ "text": "A built-in type derived from 'Component' or a user-defined type derived from 'MonoBehaviour' is expected",
+ "markdown": "A built-in type derived from 'Component' or a user-defined type derived from 'MonoBehaviour' is expected"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Unity.ExpectedComponent",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Unity",
+ "index": 18,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "FSharpRedundantNew",
+ "shortDescription": {
+ "text": "Redundant 'new' keyword"
+ },
+ "fullDescription": {
+ "text": "'new' keyword is not required and can be safely removed.",
+ "markdown": "'new' keyword is not required and can be safely removed."
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "FSharpRedundantNew",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "F#/Redundancies in Code",
+ "index": 73,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "SwapViaDeconstruction",
+ "shortDescription": {
+ "text": "Use deconstruction to swap variables"
+ },
+ "fullDescription": {
+ "text": "Replace multiple assignments with single deconstructing assignment to perform swapping",
+ "markdown": "Replace multiple assignments with single deconstructing assignment to perform swapping"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "SwapViaDeconstruction",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Language Usage Opportunities",
+ "index": 7,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RemoveConstructorInvocation",
+ "shortDescription": {
+ "text": "Remove constructor invocation"
+ },
+ "fullDescription": {
+ "text": "new List<$T$>($seq$).ToArray()",
+ "markdown": "new List\\<$T$\\>($seq$).ToArray()"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RemoveConstructorInvocation",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1069",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Remove unnecessary case label"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1069",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Xaml.CompiledBindingMissingDataTypeErrorHighlighting",
+ "shortDescription": {
+ "text": "x:DataType not specified for CompiledBinding"
+ },
+ "fullDescription": {
+ "text": "x:DataType not specified for CompiledBinding",
+ "markdown": "x:DataType not specified for CompiledBinding"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "Xaml.CompiledBindingMissingDataTypeErrorHighlighting",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "XAML/Code Notification",
+ "index": 5,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "InlineOutVariableDeclaration",
+ "shortDescription": {
+ "text": "Inline 'out' variable declaration"
+ },
+ "fullDescription": {
+ "text": "Replace ordinary variable declaration with inline variable declaration under 'out' argument Learn more...",
+ "markdown": "Replace ordinary variable declaration with inline variable declaration under 'out' argument [Learn more...](https://www.jetbrains.com/help/rider/InlineOutVariableDeclaration.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "InlineOutVariableDeclaration",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Language Usage Opportunities",
+ "index": 7,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1065",
+ "shortDescription": {
+ "text": "RoslynAnalyzers [deprecated] Avoid usage of while statement to create an infinite loop"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1065",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1066",
+ "shortDescription": {
+ "text": "RoslynAnalyzers [deprecated] Remove empty 'finally' clause"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1066",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1068",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Simplify logical negation"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1068",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyCertErr34C",
+ "shortDescription": {
+ "text": "cert-err34-c clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "cert-err34-c clang-tidy check · Learn more",
+ "markdown": "cert-err34-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/err34-c.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyCertErr34C",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1061",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Merge 'if' with nested 'if'"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1061",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VBReplaceWithSingleCallToFirstOrDefault",
+ "shortDescription": {
+ "text": "Replace with single call to FirstOrDefault(..)"
+ },
+ "fullDescription": {
+ "text": "$seq$.Where(Function ($x$) $expr$).FirstOrDefault()",
+ "markdown": "$seq$.Where(Function ($x$) $expr$).FirstOrDefault()"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "VBReplaceWithSingleCallToFirstOrDefault",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Common Practices and Code Improvements",
+ "index": 40,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1063",
+ "shortDescription": {
+ "text": "RoslynAnalyzers [deprecated] Avoid usage of do statement to create an infinite loop"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1063",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1064",
+ "shortDescription": {
+ "text": "RoslynAnalyzers [deprecated] Avoid usage of for statement to create an infinite loop"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1064",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1060",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Declare each type in separate file"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1060",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VirtualMemberCallInConstructor",
+ "shortDescription": {
+ "text": "Virtual member call in constructor"
+ },
+ "fullDescription": {
+ "text": "When a virtual method is called, the actual type that executes the method is not selected until run time. When a constructor calls a virtual method, it is possible that the constructor for the instance that invokes the method has not executed. See http://msdn2.microsoft.com/en-us/library/ms182331.aspx. Learn more...",
+ "markdown": "When a virtual method is called, the actual type that executes the method is not selected until run time. When a constructor calls a virtual method, it is possible that the constructor for the instance that invokes the method has not executed. See . [Learn more...](https://www.jetbrains.com/help/rider/VirtualMemberCallInConstructor.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "VirtualMemberCallInConstructor",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticCpp98Cpp11Compat",
+ "shortDescription": {
+ "text": "c++98-c++11-compat clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wc++98-c++11-compat clang diagnostic · Learn more",
+ "markdown": "-Wc++98-c++11-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-compat)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticCpp98Cpp11Compat",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticUnreachableCodeBreak",
+ "shortDescription": {
+ "text": "unreachable-code-break clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wunreachable-code-break clang diagnostic · Learn more",
+ "markdown": "-Wunreachable-code-break clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunreachable-code-break)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticUnreachableCodeBreak",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "FSharpDotLambdaCanBeUsed",
+ "shortDescription": {
+ "text": "Shorthand lambda can be used"
+ },
+ "fullDescription": {
+ "text": "Shorthand lambda can be used",
+ "markdown": "Shorthand lambda can be used"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "FSharpDotLambdaCanBeUsed",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "F#/Redundancies in Code",
+ "index": 73,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "AddressOfMarshalByRefObject",
+ "shortDescription": {
+ "text": "Captured field reference of a marshal-by-reference class may cause a runtime exception"
+ },
+ "fullDescription": {
+ "text": "Captured field reference of a marshal-by-reference class may cause a runtime exception",
+ "markdown": "Captured field reference of a marshal-by-reference class may cause a runtime exception"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "AddressOfMarshalByRefObject",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "AnnotationRedundancyAtValueType",
+ "shortDescription": {
+ "text": "Nullability attribute usage with declaration of void or value type"
+ },
+ "fullDescription": {
+ "text": "Nullability attribute usage with declaration of void or value type does not affect code analysis Learn more...",
+ "markdown": "Nullability attribute usage with declaration of void or value type does not affect code analysis [Learn more...](https://www.jetbrains.com/help/rider/AnnotationRedundancyAtValueType.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "AnnotationRedundancyAtValueType",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ClearAttributeIsObsolete",
+ "shortDescription": {
+ "text": "Obsolete tags and attributes (attribute 'clear' is obsolete)"
+ },
+ "fullDescription": {
+ "text": "<$tag$ ([)clear=\"$val$\"(]) $a1$>",
+ "markdown": "\\<$tag$ (\\[)clear=\"$val$\"(\\]) $a1$\\>"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "ClearAttributeIsObsolete",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML/Common Practices and Code Improvements",
+ "index": 74,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RedundantExplicitPositionalPropertyDeclaration",
+ "shortDescription": {
+ "text": "Redundant explicit positional property declaration"
+ },
+ "fullDescription": {
+ "text": "Redundant explicit positional property declaration in record type with primary constructor",
+ "markdown": "Redundant explicit positional property declaration in record type with primary constructor"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RedundantExplicitPositionalPropertyDeclaration",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Redundancies in Code",
+ "index": 23,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1058",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Use compound assignment"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1058",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1059",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Avoid locking on publicly accessible instance"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RCS1059",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "OperationContractWithoutServiceContract",
+ "shortDescription": {
+ "text": "Method is marked as OperationContract but containing type is not marked as ServiceContract"
+ },
+ "fullDescription": {
+ "text": "Marking method as OperationContract without ServiceContract attribute on the containing type could cause runtime exception",
+ "markdown": "Marking method as OperationContract without ServiceContract attribute on the containing type could cause runtime exception"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "OperationContractWithoutServiceContract",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1055",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Unnecessary semicolon at the end of declaration"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1055",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1056",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Avoid usage of using alias directive"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1056",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "BadSquareBracketsSpaces",
+ "shortDescription": {
+ "text": "Incorrect spacing (around square brackets within a statement)"
+ },
+ "fullDescription": {
+ "text": "Around square brackets within a statement Learn more...",
+ "markdown": "Around square brackets within a statement [Learn more...](https://www.jetbrains.com/help/rider/BadSquareBracketsSpaces.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "BadSquareBracketsSpaces",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Formatting",
+ "index": 24,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "UnusedMethodReturnValue.Global",
+ "shortDescription": {
+ "text": "Method return value is never used (non-private accessibility)"
+ },
+ "fullDescription": {
+ "text": "Method return value is never used Learn more...",
+ "markdown": "Method return value is never used [Learn more...](https://www.jetbrains.com/help/rider/UnusedMethodReturnValue.Global.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "UnusedMethodReturnValue.Global",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Redundancies in Symbol Declarations",
+ "index": 36,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticFormatTruncationNonKprintf",
+ "shortDescription": {
+ "text": "format-truncation-non-kprintf clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wformat-truncation-non-kprintf clang diagnostic · Learn more",
+ "markdown": "-Wformat-truncation-non-kprintf clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-truncation-non-kprintf)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticFormatTruncationNonKprintf",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticInvalidConstexpr",
+ "shortDescription": {
+ "text": "invalid-constexpr clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Winvalid-constexpr clang diagnostic · Learn more",
+ "markdown": "-Winvalid-constexpr clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-constexpr)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticInvalidConstexpr",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ClearAttributeIsObsolete.All",
+ "shortDescription": {
+ "text": "Obsolete tags and attributes (attribute 'clear' is obsolete)"
+ },
+ "fullDescription": {
+ "text": "<$tag$ ([)clear=all(]) $a1$>",
+ "markdown": "\\<$tag$ (\\[)clear=all(\\]) $a1$\\>"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "ClearAttributeIsObsolete.All",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML/Common Practices and Code Improvements",
+ "index": 74,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyObjcMissingHash",
+ "shortDescription": {
+ "text": "objc-missing-hash clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "objc-missing-hash clang-tidy check · Learn more",
+ "markdown": "objc-missing-hash clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/objc/missing-hash.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyObjcMissingHash",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "UnreachableSwitchArmDueToIntegerAnalysis",
+ "shortDescription": {
+ "text": "Heuristically unreachable switch arm according to integer analysis"
+ },
+ "fullDescription": {
+ "text": "Heuristically unreachable switch arm according to integer analysis Learn more...",
+ "markdown": "Heuristically unreachable switch arm according to integer analysis [Learn more...](https://www.jetbrains.com/help/rider/UnreachableSwitchArmDueToIntegerAnalysis.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "UnreachableSwitchArmDueToIntegerAnalysis",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticMissingDeclarations",
+ "shortDescription": {
+ "text": "missing-declarations clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wmissing-declarations clang diagnostic · Learn more",
+ "markdown": "-Wmissing-declarations clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-declarations)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticMissingDeclarations",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "EnforceDoWhileStatementBraces",
+ "shortDescription": {
+ "text": "Use preferred braces style (enforce braces in 'do-while' statement)"
+ },
+ "fullDescription": {
+ "text": "Use braces to separate 'do-while' statement body Learn more...",
+ "markdown": "Use braces to separate 'do-while' statement body [Learn more...](https://www.jetbrains.com/help/rider/EnforceDoWhileStatementBraces.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "EnforceDoWhileStatementBraces",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Syntax Style",
+ "index": 21,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppWrongSlashesInIncludeDirective",
+ "shortDescription": {
+ "text": "Use preferred include directive style (slash symbol used in #include directive does not match code style settings)"
+ },
+ "fullDescription": {
+ "text": "Slash symbol used in #include directive does not match code style settings",
+ "markdown": "Slash symbol used in #include directive does not match code style settings"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppWrongSlashesInIncludeDirective",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Syntax Style",
+ "index": 91,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "PropertyCanBeMadeInitOnly.Global",
+ "shortDescription": {
+ "text": "Property can be made init-only (non-private accessibility)"
+ },
+ "fullDescription": {
+ "text": "Property setter can be replaced with 'init' accessor to enforce property immutability Learn more...",
+ "markdown": "Property setter can be replaced with 'init' accessor to enforce property immutability [Learn more...](https://www.jetbrains.com/help/rider/PropertyCanBeMadeInitOnly.Global.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "PropertyCanBeMadeInitOnly.Global",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "UseWithExpressionToCopyTuple",
+ "shortDescription": {
+ "text": "Use 'with' expression to copy tuple"
+ },
+ "fullDescription": {
+ "text": "Use 'with' expression to create a modified copy of a tuple",
+ "markdown": "Use 'with' expression to create a modified copy of a tuple"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "UseWithExpressionToCopyTuple",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Language Usage Opportunities",
+ "index": 7,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyReadabilityRedundantPreprocessor",
+ "shortDescription": {
+ "text": "readability-redundant-preprocessor clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "readability-redundant-preprocessor clang-tidy check · Learn more",
+ "markdown": "readability-redundant-preprocessor clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-preprocessor.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyReadabilityRedundantPreprocessor",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "SuggestVarOrType_SimpleTypes",
+ "shortDescription": {
+ "text": "Use preferred 'var' style (when type is simple)"
+ },
+ "fullDescription": {
+ "text": "Convert if simple type (not an array and does not have generic parameters) Learn more...",
+ "markdown": "Convert if simple type (not an array and does not have generic parameters) [Learn more...](https://www.jetbrains.com/help/rider/SuggestVarOrType_SimpleTypes.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "SuggestVarOrType_SimpleTypes",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Syntax Style",
+ "index": 21,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CSharpWarnings__CS8305",
+ "shortDescription": {
+ "text": "Type is for evaluation purposes only and is subject to change or removal in future updates."
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CSharpWarnings__CS8305",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Compiler Warnings",
+ "index": 27,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "InParameterWithMustDisposeResourceAttribute",
+ "shortDescription": {
+ "text": "Meaningless [MustDisposeResource] annotation for an input parameter"
+ },
+ "fullDescription": {
+ "text": "Meaningless [MustDisposeResource] annotation for an input parameter",
+ "markdown": "Meaningless \\[MustDisposeResource\\] annotation for an input parameter"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "InParameterWithMustDisposeResourceAttribute",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RedundantQualifier",
+ "shortDescription": {
+ "text": "Redundant qualifier"
+ },
+ "fullDescription": {
+ "text": "Qualifier is redundant",
+ "markdown": "Qualifier is redundant"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RedundantQualifier",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Redundancies in Code",
+ "index": 96,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CA3061",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Do Not Add Schema By URL"
+ },
+ "fullDescription": {
+ "text": "This overload of XmlSchemaCollection.Add method internally enables DTD processing on the XML reader instance used, and uses UrlResolver for resolving external XML entities. The outcome is information disclosure. Content from file system or network shares for the machine processing the XML can be exposed to attacker. In addition, an attacker can use this as a DoS vector.",
+ "markdown": "This overload of XmlSchemaCollection.Add method internally enables DTD processing on the XML reader instance used, and uses UrlResolver for resolving external XML entities. The outcome is information disclosure. Content from file system or network shares for the machine processing the XML can be exposed to attacker. In addition, an attacker can use this as a DoS vector."
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CA3061",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Xaml.RedundantGridSpan",
+ "shortDescription": {
+ "text": "Single-cell grid column/row span is redundant"
+ },
+ "fullDescription": {
+ "text": "Single-cell grid column/row span is redundant",
+ "markdown": "Single-cell grid column/row span is redundant"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Xaml.RedundantGridSpan",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "XAML/Redundancies in Code",
+ "index": 77,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppEnforceOverridingFunctionStyle",
+ "shortDescription": {
+ "text": "Use preferred overriding function style (enforce overriding function style)"
+ },
+ "fullDescription": {
+ "text": "Enforce the 'virtual' and 'override' specifiers on overriding functions",
+ "markdown": "Enforce the 'virtual' and 'override' specifiers on overriding functions"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppEnforceOverridingFunctionStyle",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Syntax Style",
+ "index": 91,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangAnalyzerDeadcodeDeadStores",
+ "shortDescription": {
+ "text": "deadcode.DeadStores clang static analyzer check"
+ },
+ "fullDescription": {
+ "text": "deadcode.DeadStores clang static analyzer check · Learn more",
+ "markdown": "deadcode.DeadStores clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangAnalyzerDeadcodeDeadStores",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Static Analyzer Checks",
+ "index": 32,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticCtadMaybeUnsupported",
+ "shortDescription": {
+ "text": "ctad-maybe-unsupported clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wctad-maybe-unsupported clang diagnostic · Learn more",
+ "markdown": "-Wctad-maybe-unsupported clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wctad-maybe-unsupported)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticCtadMaybeUnsupported",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticInlineAsm",
+ "shortDescription": {
+ "text": "inline-asm clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Winline-asm clang diagnostic · Learn more",
+ "markdown": "-Winline-asm clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winline-asm)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticInlineAsm",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "AnnotateNotNullParameter",
+ "shortDescription": {
+ "text": "Declaration nullability inferred (parameter is inferred to be not null)"
+ },
+ "fullDescription": {
+ "text": "Parameter is inferred always not to be null: consider annotating it with [NotNull] or [ItemNotNull] attribute",
+ "markdown": "Parameter is inferred always not to be null: consider annotating it with \\[NotNull\\] or \\[ItemNotNull\\] attribute"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "AnnotateNotNullParameter",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ArrangeThisQualifier",
+ "shortDescription": {
+ "text": "Add/remove 'this.' qualifier"
+ },
+ "fullDescription": {
+ "text": "'this.' qualifier can be safely added/removed without changing code semantics Learn more...",
+ "markdown": "'this.' qualifier can be safely added/removed without changing code semantics [Learn more...](https://www.jetbrains.com/help/rider/ArrangeThisQualifier.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ArrangeThisQualifier",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Syntax Style",
+ "index": 21,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticArcRetainCycles",
+ "shortDescription": {
+ "text": "arc-retain-cycles clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Warc-retain-cycles clang diagnostic · Learn more",
+ "markdown": "-Warc-retain-cycles clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#warc-retain-cycles)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticArcRetainCycles",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyHicppNewDeleteOperators",
+ "shortDescription": {
+ "text": "hicpp-new-delete-operators clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "hicpp-new-delete-operators clang-tidy check · Learn more",
+ "markdown": "hicpp-new-delete-operators clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/new-delete-operators.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyHicppNewDeleteOperators",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangAnalyzerSecurityPutenvStackArray",
+ "shortDescription": {
+ "text": "security.PutenvStackArray clang static analyzer check"
+ },
+ "fullDescription": {
+ "text": "security.PutenvStackArray clang static analyzer check · Learn more",
+ "markdown": "security.PutenvStackArray clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangAnalyzerSecurityPutenvStackArray",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Static Analyzer Checks",
+ "index": 32,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyModernizeUseUsing",
+ "shortDescription": {
+ "text": "modernize-use-using clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "modernize-use-using clang-tidy check · Learn more",
+ "markdown": "modernize-use-using clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-using.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyModernizeUseUsing",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyBugproneTooSmallLoopVariable",
+ "shortDescription": {
+ "text": "bugprone-too-small-loop-variable clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "bugprone-too-small-loop-variable clang-tidy check · Learn more",
+ "markdown": "bugprone-too-small-loop-variable clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/too-small-loop-variable.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyBugproneTooSmallLoopVariable",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyMiscNonPrivateMemberVariablesInClasses",
+ "shortDescription": {
+ "text": "misc-non-private-member-variables-in-classes clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "misc-non-private-member-variables-in-classes clang-tidy check · Learn more",
+ "markdown": "misc-non-private-member-variables-in-classes clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/non-private-member-variables-in-classes.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyMiscNonPrivateMemberVariablesInClasses",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticXorUsedAsPow",
+ "shortDescription": {
+ "text": "xor-used-as-pow clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wxor-used-as-pow clang diagnostic · Learn more",
+ "markdown": "-Wxor-used-as-pow clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wxor-used-as-pow)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticXorUsedAsPow",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyReadabilityIdentifierLength",
+ "shortDescription": {
+ "text": "readability-identifier-length clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "readability-identifier-length clang-tidy check · Learn more",
+ "markdown": "readability-identifier-length clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/identifier-length.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyReadabilityIdentifierLength",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticMicrosoftRedeclareStatic",
+ "shortDescription": {
+ "text": "microsoft-redeclare-static clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wmicrosoft-redeclare-static clang diagnostic · Learn more",
+ "markdown": "-Wmicrosoft-redeclare-static clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-redeclare-static)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftRedeclareStatic",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RedundantExplicitArraySize",
+ "shortDescription": {
+ "text": "Redundant explicit size specification in array creation"
+ },
+ "fullDescription": {
+ "text": "When array initializer has the same number of elements as specified in size expression, explicit size specification is redundant Learn more...",
+ "markdown": "When array initializer has the same number of elements as specified in size expression, explicit size specification is redundant [Learn more...](https://www.jetbrains.com/help/rider/RedundantExplicitArraySize.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RedundantExplicitArraySize",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Redundancies in Code",
+ "index": 23,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyReadabilityAvoidReturnWithVoidValue",
+ "shortDescription": {
+ "text": "readability-avoid-return-with-void-value clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "readability-avoid-return-with-void-value clang-tidy check · Learn more",
+ "markdown": "readability-avoid-return-with-void-value clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/avoid-return-with-void-value.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyReadabilityAvoidReturnWithVoidValue",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticNonPowerOfTwoAlignment",
+ "shortDescription": {
+ "text": "non-power-of-two-alignment clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wnon-power-of-two-alignment clang diagnostic · Learn more",
+ "markdown": "-Wnon-power-of-two-alignment clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnon-power-of-two-alignment)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticNonPowerOfTwoAlignment",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CanReplaceCastWithShorterTypeArgument",
+ "shortDescription": {
+ "text": "Cast expression can be replaced with simplified type arguments"
+ },
+ "fullDescription": {
+ "text": "Replace cast expression with simplified type arguments to enhance compile-time safety and code conciseness Learn more...",
+ "markdown": "Replace cast expression with simplified type arguments to enhance compile-time safety and code conciseness [Learn more...](https://www.jetbrains.com/help/rider/CanReplaceCastWithShorterTypeArgument.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CanReplaceCastWithShorterTypeArgument",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "FunctionComplexityOverflow",
+ "shortDescription": {
+ "text": "Function body is too complex to analyze"
+ },
+ "fullDescription": {
+ "text": "Function body is too complex to analyze, consider decomposing it or reducing number of variables",
+ "markdown": "Function body is too complex to analyze, consider decomposing it or reducing number of variables"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "FunctionComplexityOverflow",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticDoublePromotion",
+ "shortDescription": {
+ "text": "double-promotion clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wdouble-promotion clang diagnostic · Learn more",
+ "markdown": "-Wdouble-promotion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdouble-promotion)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticDoublePromotion",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CA3075",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Insecure DTD processing in XML"
+ },
+ "fullDescription": {
+ "text": "Using XmlTextReader.Load(), creating an insecure XmlReaderSettings instance when invoking XmlReader.Create(), setting the InnerXml property of the XmlDocument and enabling DTD processing using XmlUrlResolver insecurely can lead to information disclosure. Replace it with a call to the Load() method overload that takes an XmlReader instance, use XmlReader.Create() to accept XmlReaderSettings arguments or consider explicitly setting secure values. The DataViewSettingCollectionString property of DataViewManager should always be assigned from a trusted source, the DtdProcessing property should be set to false, and the XmlResolver property should be changed to XmlSecureResolver or null.",
+ "markdown": "Using XmlTextReader.Load(), creating an insecure XmlReaderSettings instance when invoking XmlReader.Create(), setting the InnerXml property of the XmlDocument and enabling DTD processing using XmlUrlResolver insecurely can lead to information disclosure. Replace it with a call to the Load() method overload that takes an XmlReader instance, use XmlReader.Create() to accept XmlReaderSettings arguments or consider explicitly setting secure values. The DataViewSettingCollectionString property of DataViewManager should always be assigned from a trusted source, the DtdProcessing property should be set to false, and the XmlResolver property should be changed to XmlSecureResolver or null."
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CA3075",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CA3076",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Insecure XSLT script processing"
+ },
+ "fullDescription": {
+ "text": "Providing an insecure XsltSettings instance and an insecure XmlResolver instance to XslCompiledTransform.Load method is potentially unsafe as it allows processing script within XSL, which on an untrusted XSL input may lead to malicious code execution. Either replace the insecure XsltSettings argument with XsltSettings.Default or an instance that has disabled document function and script execution, or replace the XmlResolver argument with null or an XmlSecureResolver instance. This message may be suppressed if the input is known to be from a trusted source and external resource resolution from locations that are not known in advance must be supported.",
+ "markdown": "Providing an insecure XsltSettings instance and an insecure XmlResolver instance to XslCompiledTransform.Load method is potentially unsafe as it allows processing script within XSL, which on an untrusted XSL input may lead to malicious code execution. Either replace the insecure XsltSettings argument with XsltSettings.Default or an instance that has disabled document function and script execution, or replace the XmlResolver argument with null or an XmlSecureResolver instance. This message may be suppressed if the input is known to be from a trusted source and external resource resolution from locations that are not known in advance must be supported."
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CA3076",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CA3077",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Insecure Processing in API Design, XmlDocument and XmlTextReader"
+ },
+ "fullDescription": {
+ "text": "Enabling DTD processing on all instances derived from XmlTextReader or XmlDocument and using XmlUrlResolver for resolving external XML entities may lead to information disclosure. Ensure to set the XmlResolver property to null, create an instance of XmlSecureResolver when processing untrusted input, or use XmlReader.Create method with a secure XmlReaderSettings argument. Unless you need to enable it, ensure the DtdProcessing property is set to false.",
+ "markdown": "Enabling DTD processing on all instances derived from XmlTextReader or XmlDocument and using XmlUrlResolver for resolving external XML entities may lead to information disclosure. Ensure to set the XmlResolver property to null, create an instance of XmlSecureResolver when processing untrusted input, or use XmlReader.Create method with a secure XmlReaderSettings argument. Unless you need to enable it, ensure the DtdProcessing property is set to false."
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CA3077",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticReorderCtor",
+ "shortDescription": {
+ "text": "reorder-ctor clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wreorder-ctor clang diagnostic · Learn more",
+ "markdown": "-Wreorder-ctor clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreorder-ctor)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticReorderCtor",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "PolymorphicFieldLikeEventInvocation",
+ "shortDescription": {
+ "text": "Invocation of polymorphic field-like event"
+ },
+ "fullDescription": {
+ "text": "Invocation of 'virtual' or 'override' field-like event leads to unpredictable result because the invocation list is not virtual Learn more...",
+ "markdown": "Invocation of 'virtual' or 'override' field-like event leads to unpredictable result because the invocation list is not virtual [Learn more...](https://www.jetbrains.com/help/rider/PolymorphicFieldLikeEventInvocation.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "PolymorphicFieldLikeEventInvocation",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppBadEmptyBracesLineBreaks",
+ "shortDescription": {
+ "text": "Incorrect line breaks (around empty braces)"
+ },
+ "fullDescription": {
+ "text": "Around empty braces",
+ "markdown": "Around empty braces"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppBadEmptyBracesLineBreaks",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Formatting",
+ "index": 28,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangAnalyzerOptinTaintTaintedAlloc",
+ "shortDescription": {
+ "text": "optin.taint.TaintedAlloc clang static analyzer check"
+ },
+ "fullDescription": {
+ "text": "optin.taint.TaintedAlloc clang static analyzer check · Learn more",
+ "markdown": "optin.taint.TaintedAlloc clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangAnalyzerOptinTaintTaintedAlloc",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Static Analyzer Checks",
+ "index": 32,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RedundantCast",
+ "shortDescription": {
+ "text": "Redundant cast"
+ },
+ "fullDescription": {
+ "text": "Type cast can be safely removed Learn more...",
+ "markdown": "Type cast can be safely removed [Learn more...](https://www.jetbrains.com/help/rider/RedundantCast.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "RedundantCast",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Redundancies in Code",
+ "index": 23,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangAnalyzerApiModelingLlvmCastValue",
+ "shortDescription": {
+ "text": "apiModeling.llvm.CastValue clang static analyzer check"
+ },
+ "fullDescription": {
+ "text": "apiModeling.llvm.CastValue clang static analyzer check · Learn more",
+ "markdown": "apiModeling.llvm.CastValue clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangAnalyzerApiModelingLlvmCastValue",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Static Analyzer Checks",
+ "index": 32,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "StringLiteralAsInterpolationArgument",
+ "shortDescription": {
+ "text": "String literal can be inlined"
+ },
+ "fullDescription": {
+ "text": "String literal can be inlined into interpolation",
+ "markdown": "String literal can be inlined into interpolation"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "StringLiteralAsInterpolationArgument",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangAnalyzerFuchsiaHandleChecker",
+ "shortDescription": {
+ "text": "fuchsia.HandleChecker clang static analyzer check"
+ },
+ "fullDescription": {
+ "text": "fuchsia.HandleChecker clang static analyzer check · Learn more",
+ "markdown": "fuchsia.HandleChecker clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangAnalyzerFuchsiaHandleChecker",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Static Analyzer Checks",
+ "index": 32,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticShadowField",
+ "shortDescription": {
+ "text": "shadow-field clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wshadow-field clang diagnostic · Learn more",
+ "markdown": "-Wshadow-field clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshadow-field)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticShadowField",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RedundantWithExpression",
+ "shortDescription": {
+ "text": "Empty 'with' expression is redundant"
+ },
+ "fullDescription": {
+ "text": "Empty 'with' expression applied to newly created object instance results in unnecessary clone creation",
+ "markdown": "Empty 'with' expression applied to newly created object instance results in unnecessary clone creation"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RedundantWithExpression",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticExtraQualification",
+ "shortDescription": {
+ "text": "extra-qualification clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wextra-qualification clang diagnostic · Learn more",
+ "markdown": "-Wextra-qualification clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wextra-qualification)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticExtraQualification",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ConvertToVbAutoPropertyWhenPossible",
+ "shortDescription": {
+ "text": "Convert property to auto-property when possible"
+ },
+ "fullDescription": {
+ "text": "Converts property declaration to VB.NET auto-property syntax.",
+ "markdown": "Converts property declaration to VB.NET auto-property syntax."
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ConvertToVbAutoPropertyWhenPossible",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Common Practices and Code Improvements",
+ "index": 40,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyHicppNoexceptMove",
+ "shortDescription": {
+ "text": "hicpp-noexcept-move clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "hicpp-noexcept-move clang-tidy check · Learn more",
+ "markdown": "hicpp-noexcept-move clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/noexcept-move.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyHicppNoexceptMove",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticAutoStorageClass",
+ "shortDescription": {
+ "text": "auto-storage-class clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wauto-storage-class clang diagnostic · Learn more",
+ "markdown": "-Wauto-storage-class clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wauto-storage-class)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticAutoStorageClass",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "WebConfig.UnusedElementDueToConfigSourceAttribute",
+ "shortDescription": {
+ "text": "Redundant element or attribute because of 'configSource' attribute"
+ },
+ "fullDescription": {
+ "text": "Element or attribute is not applied because of 'configSource' attribute and can be safely removed",
+ "markdown": "Element or attribute is not applied because of 'configSource' attribute and can be safely removed"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "WebConfig.UnusedElementDueToConfigSourceAttribute",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Web.Config/Redundancies in Code",
+ "index": 98,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppConceptNeverUsed",
+ "shortDescription": {
+ "text": "Concept is never used"
+ },
+ "fullDescription": {
+ "text": "Concept is never used",
+ "markdown": "Concept is never used"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppConceptNeverUsed",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "BadExpressionBracesLineBreaks",
+ "shortDescription": {
+ "text": "Incorrect line breaks (around expression braces)"
+ },
+ "fullDescription": {
+ "text": "Around expression braces Learn more...",
+ "markdown": "Around expression braces [Learn more...](https://www.jetbrains.com/help/rider/BadExpressionBracesLineBreaks.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "BadExpressionBracesLineBreaks",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Formatting",
+ "index": 24,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticIncompleteModule",
+ "shortDescription": {
+ "text": "incomplete-module clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wincomplete-module clang diagnostic · Learn more",
+ "markdown": "-Wincomplete-module clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincomplete-module)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticIncompleteModule",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppMissingKeywordThrow",
+ "shortDescription": {
+ "text": "May be missing keyword 'throw'"
+ },
+ "fullDescription": {
+ "text": "Object of exception type is created, but is not thrown",
+ "markdown": "Object of exception type is created, but is not thrown"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppMissingKeywordThrow",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppNonInlineFunctionDefinitionInHeaderFile",
+ "shortDescription": {
+ "text": "Non-inline function definition in a header file"
+ },
+ "fullDescription": {
+ "text": "A function definition in a header file that will lead to a multiple definition linkage error Learn more...",
+ "markdown": "A function definition in a header file that will lead to a multiple definition linkage error [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rs-inline)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppNonInlineFunctionDefinitionInHeaderFile",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "UnusedMemberHierarchy.Local",
+ "shortDescription": {
+ "text": "Type member is only used in overrides (private accessibility)"
+ },
+ "fullDescription": {
+ "text": "Type member is never used from outside of implementation hierarchy, it is only accessed from overrides through base call",
+ "markdown": "Type member is never used from outside of implementation hierarchy, it is only accessed from overrides through base call"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "UnusedMemberHierarchy.Local",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Redundancies in Symbol Declarations",
+ "index": 36,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticGnuStaticFloatInit",
+ "shortDescription": {
+ "text": "gnu-static-float-init clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wgnu-static-float-init clang diagnostic · Learn more",
+ "markdown": "-Wgnu-static-float-init clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-static-float-init)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticGnuStaticFloatInit",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Unity.NoNullPatternMatching",
+ "shortDescription": {
+ "text": "Possible unintended bypass of lifetime check of underlying Unity engine object (pattern matching null checks on a type deriving from 'UnityEngine.Object' bypasses the lifetime check on the underlying Unity engine object)"
+ },
+ "fullDescription": {
+ "text": "Pattern matching null checks operators do not call custom equality operators defined on 'UnityEngine.Object'. These operators check if the underlying Unity engine object has been destroyed. Prefer an explicit null comparison or implicit bool comparison if the lifetime check is intended, or explicitly use 'object.ReferenceEquals()' for a standard (and quicker) CLR null check. Learn more...",
+ "markdown": "Pattern matching null checks operators do not call custom equality operators defined on 'UnityEngine.Object'. These operators check if the underlying Unity engine object has been destroyed. Prefer an explicit null comparison or implicit bool comparison if the lifetime check is intended, or explicitly use 'object.ReferenceEquals()' for a standard (and quicker) CLR null check. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Possible-unintended-bypass-of-lifetime-check-of-underlying-Unity-engine-object)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "Unity.NoNullPatternMatching",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Unity",
+ "index": 18,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticAssume",
+ "shortDescription": {
+ "text": "assume clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wassume clang diagnostic · Learn more",
+ "markdown": "-Wassume clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wassume)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticAssume",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticCpp98CompatUnnamedTypeTemplateArgs",
+ "shortDescription": {
+ "text": "c++98-compat-unnamed-type-template-args clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wc++98-compat-unnamed-type-template-args clang diagnostic · Learn more",
+ "markdown": "-Wc++98-compat-unnamed-type-template-args clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-compat-unnamed-type-template-args)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticCpp98CompatUnnamedTypeTemplateArgs",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "DefaultStructEqualityIsUsed.Global",
+ "shortDescription": {
+ "text": "Struct with default equality members is used for comparison (non-private accessibility)"
+ },
+ "fullDescription": {
+ "text": "Default implementations of the 'Equals' and 'GetHashCode' methods of a struct are based on reflection and perform poorly. To prevent boxing and improve performance, overriding the equality members is recommended. This inspection only triggers if the struct or its containing type (such as record) is actually used for equality comparisons in the solution. Learn more...",
+ "markdown": "Default implementations of the 'Equals' and 'GetHashCode' methods of a struct are based on reflection and perform poorly. To prevent boxing and improve performance, overriding the equality members is recommended. This inspection only triggers if the struct or its containing type (such as record) is actually used for equality comparisons in the solution. [Learn more...](https://www.jetbrains.com/help/rider/DefaultStructEqualityIsUsed.Global.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "DefaultStructEqualityIsUsed.Global",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CSharpWarnings__CS1717",
+ "shortDescription": {
+ "text": "Assignment made to same variable"
+ },
+ "fullDescription": {
+ "text": "Learn more...",
+ "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/a1kzfw0z.aspx)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CSharpWarnings__CS1717",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Compiler Warnings",
+ "index": 27,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CSharpWarnings__CS1711",
+ "shortDescription": {
+ "text": "XML comment has a 'typeparam' tag for 'TypeParameter', but there is no type parameter by that name"
+ },
+ "fullDescription": {
+ "text": "Learn more...",
+ "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs1711)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CSharpWarnings__CS1711",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Compiler Warnings",
+ "index": 27,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CSharpWarnings__CS1712",
+ "shortDescription": {
+ "text": "Type parameter has no matching typeparam tag in the XML comment"
+ },
+ "fullDescription": {
+ "text": "Learn more...",
+ "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/t8zca749.aspx)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CSharpWarnings__CS1712",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Compiler Warnings",
+ "index": 27,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ReplaceWithSimpleAssignment.False",
+ "shortDescription": {
+ "text": "Replace with simple assignment"
+ },
+ "fullDescription": {
+ "text": "$bool1$ &= false",
+ "markdown": "$bool1$ \\&= false"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ReplaceWithSimpleAssignment.False",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CSharpWarnings__CS1710",
+ "shortDescription": {
+ "text": "Duplicate typeparam tag in XML comment"
+ },
+ "fullDescription": {
+ "text": "Learn more...",
+ "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/k5ya7w1x.aspx)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "CSharpWarnings__CS1710",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Compiler Warnings",
+ "index": 27,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyAndroidComparisonInTempFailureRetry",
+ "shortDescription": {
+ "text": "android-comparison-in-temp-failure-retry clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "android-comparison-in-temp-failure-retry clang-tidy check · Learn more",
+ "markdown": "android-comparison-in-temp-failure-retry clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/comparison-in-temp-failure-retry.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyAndroidComparisonInTempFailureRetry",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticCpp20CompatPedantic",
+ "shortDescription": {
+ "text": "c++20-compat-pedantic clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wc++20-compat-pedantic clang diagnostic · Learn more",
+ "markdown": "-Wc++20-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-20-compat-pedantic)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticCpp20CompatPedantic",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ClassWithVirtualMembersNeverInherited.Local",
+ "shortDescription": {
+ "text": "Class with virtual (overridable) members never inherited (private accessibility)"
+ },
+ "fullDescription": {
+ "text": "Non-abstract class has virtual (overridable) members but has no inheritors Learn more...",
+ "markdown": "Non-abstract class has virtual (overridable) members but has no inheritors [Learn more...](https://www.jetbrains.com/help/rider/ClassWithVirtualMembersNeverInherited.Local.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ClassWithVirtualMembersNeverInherited.Local",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Redundancies in Symbol Declarations",
+ "index": 36,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyCertOop57Cpp",
+ "shortDescription": {
+ "text": "cert-oop57-cpp clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "cert-oop57-cpp clang-tidy check · Learn more",
+ "markdown": "cert-oop57-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/oop57-cpp.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyCertOop57Cpp",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "NUnit.TestCaseResultPropertyIsObsolete",
+ "shortDescription": {
+ "text": "NUnit. Test case Result property is obsolete."
+ },
+ "fullDescription": {
+ "text": "NUnit. Test case Result property is obsolete since NUnit 2.6. Learn more...",
+ "markdown": "NUnit. Test case Result property is obsolete since NUnit 2.6. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.TestCaseResultPropertyIsObsolete.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "NUnit.TestCaseResultPropertyIsObsolete",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/NUnit",
+ "index": 26,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppUE4ProbableMemoryIssuesWithUObjectsInContainer",
+ "shortDescription": {
+ "text": "Objects stored in non-uproperty member can be destroyed during garbage collection, resulting in stale pointers"
+ },
+ "fullDescription": {
+ "text": "Objects stored in non-uproperty member can be destroyed during garbage collection, resulting in stale pointers",
+ "markdown": "Objects stored in non-uproperty member can be destroyed during garbage collection, resulting in stale pointers"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppUE4ProbableMemoryIssuesWithUObjectsInContainer",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Unreal Engine",
+ "index": 6,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppPrintfRiskyFormat",
+ "shortDescription": {
+ "text": "Possibly invalid printf format specifier"
+ },
+ "fullDescription": {
+ "text": "Format string contains a potential error",
+ "markdown": "Format string contains a potential error"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppPrintfRiskyFormat",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "UsePositionalDeconstructionPattern",
+ "shortDescription": {
+ "text": "Use positional deconstruction pattern"
+ },
+ "fullDescription": {
+ "text": "Replace property pattern member(s) of recursive pattern with positional deconstruction patterns",
+ "markdown": "Replace property pattern member(s) of recursive pattern with positional deconstruction patterns"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "UsePositionalDeconstructionPattern",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Language Usage Opportunities",
+ "index": 7,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Unity.SharedStaticUnmanagedType",
+ "shortDescription": {
+ "text": "Shared static type parameter requires the unmanaged constraint"
+ },
+ "fullDescription": {
+ "text": "Shared static type parameter requires the unmanaged constraint",
+ "markdown": "Shared static type parameter requires the unmanaged constraint"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Unity.SharedStaticUnmanagedType",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Unity Burst Compiler Warnings",
+ "index": 57,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticPadded",
+ "shortDescription": {
+ "text": "padded clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wpadded clang diagnostic · Learn more",
+ "markdown": "-Wpadded clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpadded)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticPadded",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RedundantLogicalConditionalExpressionOperand",
+ "shortDescription": {
+ "text": "Redundant operand in logical conditional expression"
+ },
+ "fullDescription": {
+ "text": "Redundant operand in logical conditional expression, for example \r\n expr || false\r\n expr && true\r\n Learn more...",
+ "markdown": "Redundant operand in logical conditional expression, for example\n\n```\n\r\n expr || false\r\n expr && true\r\n```\n\n[Learn more...](https://www.jetbrains.com/help/rider/RedundantLogicalConditionalExpressionOperand.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RedundantLogicalConditionalExpressionOperand",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Redundancies in Code",
+ "index": 23,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticLanguageExtensionToken",
+ "shortDescription": {
+ "text": "language-extension-token clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wlanguage-extension-token clang diagnostic · Learn more",
+ "markdown": "-Wlanguage-extension-token clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wlanguage-extension-token)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticLanguageExtensionToken",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "NonAtomicCompoundOperator",
+ "shortDescription": {
+ "text": "Suspicious 'volatile' field usage: compound operation is not atomic. 'Interlocked' class can be used instead."
+ },
+ "fullDescription": {
+ "text": "Suspicious 'volatile' field usage: compound operation is not atomic. 'Interlocked' class can be used instead.",
+ "markdown": "Suspicious 'volatile' field usage: compound operation is not atomic. 'Interlocked' class can be used instead."
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "NonAtomicCompoundOperator",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyHighlighting",
+ "shortDescription": {
+ "text": "Unknown clang-tidy checks"
+ },
+ "fullDescription": {
+ "text": "Unknown clang-tidy checks.",
+ "markdown": "Unknown clang-tidy checks."
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyHighlighting",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticUnusedButSetVariable",
+ "shortDescription": {
+ "text": "unused-but-set-variable clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wunused-but-set-variable clang diagnostic · Learn more",
+ "markdown": "-Wunused-but-set-variable clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-but-set-variable)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticUnusedButSetVariable",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1015FadeOut",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Use nameof operator"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1015FadeOut",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticTautologicalObjcBoolCompare",
+ "shortDescription": {
+ "text": "tautological-objc-bool-compare clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wtautological-objc-bool-compare clang diagnostic · Learn more",
+ "markdown": "-Wtautological-objc-bool-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-objc-bool-compare)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticTautologicalObjcBoolCompare",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "OverriddenWithSameValue",
+ "shortDescription": {
+ "text": "Resource is overridden with identical value"
+ },
+ "fullDescription": {
+ "text": "Base resource item and the current item have the same value Learn more...",
+ "markdown": "Base resource item and the current item have the same value [Learn more...](https://www.jetbrains.com/help/rider/OverriddenWithSameValue.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "OverriddenWithSameValue",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "ResX/Redundancies in Code",
+ "index": 99,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Asxx.PathError",
+ "shortDescription": {
+ "text": "Path error"
+ },
+ "fullDescription": {
+ "text": "Path error",
+ "markdown": "Path error"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Asxx.PathError",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "HttpHandler or WebService/Potential Code Quality Issues",
+ "index": 101,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticMisspelledAssumption",
+ "shortDescription": {
+ "text": "misspelled-assumption clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wmisspelled-assumption clang diagnostic · Learn more",
+ "markdown": "-Wmisspelled-assumption clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmisspelled-assumption)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticMisspelledAssumption",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ArrangeNamespaceBody",
+ "shortDescription": {
+ "text": "Use preferred namespace body style"
+ },
+ "fullDescription": {
+ "text": "Use file-scoped or block-scoped namespace body Learn more...",
+ "markdown": "Use file-scoped or block-scoped namespace body [Learn more...](https://www.jetbrains.com/help/rider/ArrangeNamespaceBody.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ArrangeNamespaceBody",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Syntax Style",
+ "index": 21,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyModernizeUseTrailingReturnType",
+ "shortDescription": {
+ "text": "modernize-use-trailing-return-type clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "modernize-use-trailing-return-type clang-tidy check · Learn more",
+ "markdown": "modernize-use-trailing-return-type clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-trailing-return-type.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyModernizeUseTrailingReturnType",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticMicrosoftStaticAssert",
+ "shortDescription": {
+ "text": "microsoft-static-assert clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wmicrosoft-static-assert clang diagnostic · Learn more",
+ "markdown": "-Wmicrosoft-static-assert clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-static-assert)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftStaticAssert",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticMissingTemplateArgListAfterTemplateKw",
+ "shortDescription": {
+ "text": "missing-template-arg-list-after-template-kw clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wmissing-template-arg-list-after-template-kw clang diagnostic · Learn more",
+ "markdown": "-Wmissing-template-arg-list-after-template-kw clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-template-arg-list-after-template-kw)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticMissingTemplateArgListAfterTemplateKw",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "PropertyCanBeMadeInitOnly.Local",
+ "shortDescription": {
+ "text": "Property can be made init-only (private accessibility)"
+ },
+ "fullDescription": {
+ "text": "Property setter can be replaced with 'init' accessor to enforce property immutability Learn more...",
+ "markdown": "Property setter can be replaced with 'init' accessor to enforce property immutability [Learn more...](https://www.jetbrains.com/help/rider/PropertyCanBeMadeInitOnly.Local.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "PropertyCanBeMadeInitOnly.Local",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticCastQual",
+ "shortDescription": {
+ "text": "cast-qual clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wcast-qual clang diagnostic · Learn more",
+ "markdown": "-Wcast-qual clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcast-qual)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticCastQual",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticCpp11Compat",
+ "shortDescription": {
+ "text": "c++11-compat clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wc++11-compat clang diagnostic · Learn more",
+ "markdown": "-Wc++11-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-11-compat)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticCpp11Compat",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticMicrosoftEnumValue",
+ "shortDescription": {
+ "text": "microsoft-enum-value clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wmicrosoft-enum-value clang diagnostic · Learn more",
+ "markdown": "-Wmicrosoft-enum-value clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-enum-value)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftEnumValue",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RS2007",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Invalid entry in analyzer release file"
+ },
+ "fullDescription": {
+ "text": "Invalid entry in analyzer release file.",
+ "markdown": "Invalid entry in analyzer release file."
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RS2007",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyBugproneUnusedRaii",
+ "shortDescription": {
+ "text": "bugprone-unused-raii clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "bugprone-unused-raii clang-tidy check · Learn more",
+ "markdown": "bugprone-unused-raii clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unused-raii.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyBugproneUnusedRaii",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyBugproneMisplacedOperatorInStrlenInAlloc",
+ "shortDescription": {
+ "text": "bugprone-misplaced-operator-in-strlen-in-alloc clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "bugprone-misplaced-operator-in-strlen-in-alloc clang-tidy check · Learn more",
+ "markdown": "bugprone-misplaced-operator-in-strlen-in-alloc clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/misplaced-operator-in-strlen-in-alloc.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyBugproneMisplacedOperatorInStrlenInAlloc",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RS2008",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Enable analyzer release tracking"
+ },
+ "fullDescription": {
+ "text": "Enabling release tracking for analyzer packages helps in tracking and documenting the analyzer diagnostics that ship and/or change with each analyzer release. See details at https://github.com/dotnet/roslyn-analyzers/blob/main/src/Microsoft.CodeAnalysis.Analyzers/ReleaseTrackingAnalyzers.Help.md.",
+ "markdown": "Enabling release tracking for analyzer packages helps in tracking and documenting the analyzer diagnostics that ship and/or change with each analyzer release. See details at https://github.com/dotnet/roslyn-analyzers/blob/main/src/Microsoft.CodeAnalysis.Analyzers/ReleaseTrackingAnalyzers.Help.md."
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RS2008",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RS2005",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Remove duplicate entries for diagnostic ID in the same analyzer release"
+ },
+ "fullDescription": {
+ "text": "Remove duplicate entries for diagnostic ID in the same analyzer release.",
+ "markdown": "Remove duplicate entries for diagnostic ID in the same analyzer release."
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RS2005",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RS2006",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Remove duplicate entries for diagnostic ID between analyzer releases"
+ },
+ "fullDescription": {
+ "text": "Remove duplicate entries for diagnostic ID between analyzer releases.",
+ "markdown": "Remove duplicate entries for diagnostic ID between analyzer releases."
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RS2006",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RS2003",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Shipped diagnostic IDs that are no longer reported should have an entry in the 'Removed Rules' table in unshipped file"
+ },
+ "fullDescription": {
+ "text": "Shipped diagnostic IDs that are no longer reported should have an entry in the 'Removed Rules' table in unshipped file.",
+ "markdown": "Shipped diagnostic IDs that are no longer reported should have an entry in the 'Removed Rules' table in unshipped file."
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RS2003",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticShorten64To32",
+ "shortDescription": {
+ "text": "shorten-64-to-32 clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wshorten-64-to-32 clang diagnostic · Learn more",
+ "markdown": "-Wshorten-64-to-32 clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshorten-64-to-32)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticShorten64To32",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RS2004",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Diagnostic IDs marked as removed in analyzer release file should not be reported by analyzers"
+ },
+ "fullDescription": {
+ "text": "Diagnostic IDs marked as removed in analyzer release file should not be reported by analyzers.",
+ "markdown": "Diagnostic IDs marked as removed in analyzer release file should not be reported by analyzers."
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RS2004",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Html.EventNotResolved",
+ "shortDescription": {
+ "text": "Unknown event"
+ },
+ "fullDescription": {
+ "text": "Unknown event in HTML and related technologies",
+ "markdown": "Unknown event in HTML and related technologies"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Html.EventNotResolved",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML/Potential Code Quality Issues",
+ "index": 54,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyAndroidCloexecEpollCreate",
+ "shortDescription": {
+ "text": "android-cloexec-epoll-create clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "android-cloexec-epoll-create clang-tidy check · Learn more",
+ "markdown": "android-cloexec-epoll-create clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-epoll-create.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyAndroidCloexecEpollCreate",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyReadabilityAvoidUnconditionalPreprocessorIf",
+ "shortDescription": {
+ "text": "readability-avoid-unconditional-preprocessor-if clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "readability-avoid-unconditional-preprocessor-if clang-tidy check · Learn more",
+ "markdown": "readability-avoid-unconditional-preprocessor-if clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/avoid-unconditional-preprocessor-if.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyReadabilityAvoidUnconditionalPreprocessorIf",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RS2001",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Ensure up-to-date entry for analyzer diagnostic IDs are added to analyzer release"
+ },
+ "fullDescription": {
+ "text": "Ensure up-to-date entry for analyzer diagnostic IDs are added to analyzer release.",
+ "markdown": "Ensure up-to-date entry for analyzer diagnostic IDs are added to analyzer release."
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RS2001",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppUninitializedDependentBaseClass",
+ "shortDescription": {
+ "text": "Uninitialized dependent base class"
+ },
+ "fullDescription": {
+ "text": "Possibly uninitialized dependent base class",
+ "markdown": "Possibly uninitialized dependent base class"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppUninitializedDependentBaseClass",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Compiler Warnings",
+ "index": 75,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticParenthesesEquality",
+ "shortDescription": {
+ "text": "parentheses-equality clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wparentheses-equality clang diagnostic · Learn more",
+ "markdown": "-Wparentheses-equality clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wparentheses-equality)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticParenthesesEquality",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RS2002",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Do not add removed analyzer diagnostic IDs to unshipped analyzer release"
+ },
+ "fullDescription": {
+ "text": "Entries for analyzer diagnostic IDs that are no longer reported and never shipped can be removed from unshipped analyzer release.",
+ "markdown": "Entries for analyzer diagnostic IDs that are no longer reported and never shipped can be removed from unshipped analyzer release."
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RS2002",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppUseAutoForNumeric",
+ "shortDescription": {
+ "text": "Use preferred 'auto' style (numeric type can be replaced with auto)"
+ },
+ "fullDescription": {
+ "text": "A numeric type can be replaced with 'auto'",
+ "markdown": "A numeric type can be replaced with 'auto'"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppUseAutoForNumeric",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Syntax Style",
+ "index": 91,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VBReplaceWithSingleAssignment.1",
+ "shortDescription": {
+ "text": "Replace with single assignment"
+ },
+ "fullDescription": {
+ "text": "Dim $x$ = False If($bool1$) Then $x$ = True",
+ "markdown": "Dim $x$ = False If($bool1$) Then $x$ = True"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "VBReplaceWithSingleAssignment.1",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Common Practices and Code Improvements",
+ "index": 40,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VBReplaceWithSingleAssignment.2",
+ "shortDescription": {
+ "text": "Replace with single assignment"
+ },
+ "fullDescription": {
+ "text": "Dim $x$ = True If($bool1$) Then $x$ = False",
+ "markdown": "Dim $x$ = True If($bool1$) Then $x$ = False"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "VBReplaceWithSingleAssignment.2",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Common Practices and Code Improvements",
+ "index": 40,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppTypeAliasNeverUsed",
+ "shortDescription": {
+ "text": "Type alias is never used"
+ },
+ "fullDescription": {
+ "text": "A type alias is never used",
+ "markdown": "A type alias is never used"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppTypeAliasNeverUsed",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RedundantReadonlyModifier",
+ "shortDescription": {
+ "text": "Redundant 'readonly' modifier"
+ },
+ "fullDescription": {
+ "text": "Readonly 'redundant' member/accessor modifier in struct declaration",
+ "markdown": "Readonly 'redundant' member/accessor modifier in struct declaration"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RedundantReadonlyModifier",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Redundancies in Code",
+ "index": 23,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticSelfAssignField",
+ "shortDescription": {
+ "text": "self-assign-field clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wself-assign-field clang diagnostic · Learn more",
+ "markdown": "-Wself-assign-field clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wself-assign-field)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticSelfAssignField",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppPassValueParameterByConstReference",
+ "shortDescription": {
+ "text": "Pass value parameters by const reference"
+ },
+ "fullDescription": {
+ "text": "Parameter of a type that is expensive to copy is passed by value, but it can be passed by const reference instead Learn more...",
+ "markdown": "Parameter of a type that is expensive to copy is passed by value, but it can be passed by const reference instead [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rf-in)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppPassValueParameterByConstReference",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Common Practices and Code Improvements",
+ "index": 16,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticConditionalTypeMismatch",
+ "shortDescription": {
+ "text": "conditional-type-mismatch clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wconditional-type-mismatch clang diagnostic · Learn more",
+ "markdown": "-Wconditional-type-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wconditional-type-mismatch)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticConditionalTypeMismatch",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RedundantArrayLowerBoundSpecification",
+ "shortDescription": {
+ "text": "Redundant array lower bound specification"
+ },
+ "fullDescription": {
+ "text": "Array lower bound specification is redundant",
+ "markdown": "Array lower bound specification is redundant"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RedundantArrayLowerBoundSpecification",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Redundancies in Code",
+ "index": 96,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyBoostUseToString",
+ "shortDescription": {
+ "text": "boost-use-to-string clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "boost-use-to-string clang-tidy check · Learn more",
+ "markdown": "boost-use-to-string clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/boost/use-to-string.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyBoostUseToString",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "JoinDeclarationAndInitializer",
+ "shortDescription": {
+ "text": "Join local variable declaration and assignment"
+ },
+ "fullDescription": {
+ "text": "Join local variable declaration and assignment Learn more...",
+ "markdown": "Join local variable declaration and assignment [Learn more...](https://www.jetbrains.com/help/rider/JoinDeclarationAndInitializer.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "JoinDeclarationAndInitializer",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RouteTemplates.SyntaxError",
+ "shortDescription": {
+ "text": "Syntax error"
+ },
+ "fullDescription": {
+ "text": "Syntax error",
+ "markdown": "Syntax error"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RouteTemplates.SyntaxError",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "ASP.NET route templates/Code Notification",
+ "index": 48,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "SwitchStatementMissingSomeEnumCasesNoDefault",
+ "shortDescription": {
+ "text": "Some values of the enum are not processed inside 'switch' statement"
+ },
+ "fullDescription": {
+ "text": "Some values of the enum are not processed inside 'switch' statement Learn more...",
+ "markdown": "Some values of the enum are not processed inside 'switch' statement [Learn more...](https://www.jetbrains.com/help/rider/SwitchStatementMissingSomeEnumCasesNoDefault.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "SwitchStatementMissingSomeEnumCasesNoDefault",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyBugproneThrowKeywordMissing",
+ "shortDescription": {
+ "text": "bugprone-throw-keyword-missing clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "bugprone-throw-keyword-missing clang-tidy check · Learn more",
+ "markdown": "bugprone-throw-keyword-missing clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/throw-keyword-missing.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyBugproneThrowKeywordMissing",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ConstructorWithMustDisposeResourceAttributeBaseIsNotAnnotated",
+ "shortDescription": {
+ "text": "[MustDisposeResource] annotation is not inherited from the base constructor and should be placed explicitly"
+ },
+ "fullDescription": {
+ "text": "[MustDisposeResource] annotation is not inherited from the base constructor Learn more...",
+ "markdown": "\\[MustDisposeResource\\] annotation is not inherited from the base constructor [Learn more...](https://www.jetbrains.com/help/rider/ConstructorWithMustDisposeResourceAttributeBaseIsNotAnnotated.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "ConstructorWithMustDisposeResourceAttributeBaseIsNotAnnotated",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RedundantPatternParentheses",
+ "shortDescription": {
+ "text": "Remove redundant pattern-matching parentheses"
+ },
+ "fullDescription": {
+ "text": "Parentheses surrounding a pattern are redundant if they do not change precedence of `or`-/`and`-patterns",
+ "markdown": "Parentheses surrounding a pattern are redundant if they do not change precedence of \\`or\\`-/\\`and\\`-patterns"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RedundantPatternParentheses",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Redundancies in Code",
+ "index": 23,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ConvertToPrimaryConstructor",
+ "shortDescription": {
+ "text": "Convert constructor into primary constructor"
+ },
+ "fullDescription": {
+ "text": "Replace ordinary constructor with primary constructor Learn more...",
+ "markdown": "Replace ordinary constructor with primary constructor [Learn more...](https://www.jetbrains.com/help/rider/ConvertToPrimaryConstructor.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ConvertToPrimaryConstructor",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Language Usage Opportunities",
+ "index": 7,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppRedundantLinebreak",
+ "shortDescription": {
+ "text": "Incorrect line breaks (line break is redundant elsewhere)"
+ },
+ "fullDescription": {
+ "text": "Line break is redundant elsewhere",
+ "markdown": "Line break is redundant elsewhere"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppRedundantLinebreak",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Formatting",
+ "index": 28,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyZirconTemporaryObjects",
+ "shortDescription": {
+ "text": "zircon-temporary-objects clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "zircon-temporary-objects clang-tidy check · Learn more",
+ "markdown": "zircon-temporary-objects clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/zircon/temporary-objects.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyZirconTemporaryObjects",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticGlobalConstructors",
+ "shortDescription": {
+ "text": "global-constructors clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wglobal-constructors clang diagnostic · Learn more",
+ "markdown": "-Wglobal-constructors clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wglobal-constructors)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticGlobalConstructors",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppRedundantTypenameKeyword",
+ "shortDescription": {
+ "text": "Redundant 'typename' keyword"
+ },
+ "fullDescription": {
+ "text": "Redundant 'typename' keyword",
+ "markdown": "Redundant 'typename' keyword"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppRedundantTypenameKeyword",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Redundancies in Code",
+ "index": 34,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppDoxygenSyntaxError",
+ "shortDescription": {
+ "text": "Syntax error in doxygen comment"
+ },
+ "fullDescription": {
+ "text": "Syntax error in a doxygen comment",
+ "markdown": "Syntax error in a doxygen comment"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppDoxygenSyntaxError",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "UselessComparisonToIntegralConstant",
+ "shortDescription": {
+ "text": "Comparison to integral constant is useless"
+ },
+ "fullDescription": {
+ "text": "Comparison to integral constant is useless; the constant is outside the range of the target type",
+ "markdown": "Comparison to integral constant is useless; the constant is outside the range of the target type"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "UselessComparisonToIntegralConstant",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Redundancies in Code",
+ "index": 23,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppRedundantElseKeyword",
+ "shortDescription": {
+ "text": "Redundant 'else' keyword"
+ },
+ "fullDescription": {
+ "text": "Redundant 'else' keyword",
+ "markdown": "Redundant 'else' keyword"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppRedundantElseKeyword",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Redundancies in Code",
+ "index": 34,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticPackedNonPod",
+ "shortDescription": {
+ "text": "packed-non-pod clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wpacked-non-pod clang diagnostic · Learn more",
+ "markdown": "-Wpacked-non-pod clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpacked-non-pod)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticPackedNonPod",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyCppcoreguidelinesSpecialMemberFunctions",
+ "shortDescription": {
+ "text": "cppcoreguidelines-special-member-functions clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "cppcoreguidelines-special-member-functions clang-tidy check · Learn more",
+ "markdown": "cppcoreguidelines-special-member-functions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/special-member-functions.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyCppcoreguidelinesSpecialMemberFunctions",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "EmptyConstructor",
+ "shortDescription": {
+ "text": "Empty constructor"
+ },
+ "fullDescription": {
+ "text": "Empty public constructor declaration with no parameters is redundant. The compiler generates the same by default. Learn more...",
+ "markdown": "Empty public constructor declaration with no parameters is redundant. The compiler generates the same by default. [Learn more...](https://www.jetbrains.com/help/rider/EmptyConstructor.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "EmptyConstructor",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Redundancies in Symbol Declarations",
+ "index": 36,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "StringIndexOfIsCultureSpecific.2",
+ "shortDescription": {
+ "text": "String.IndexOf is culture-specific (string.IndexOf(string, int) is culture-specific)"
+ },
+ "fullDescription": {
+ "text": "$s$.IndexOf($sarg$, $iarg1$) Learn more...",
+ "markdown": "$s$.IndexOf($sarg$, $iarg1$) [Learn more...](https://www.jetbrains.com/help/rider/StringIndexOfIsCultureSpecific.2.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "StringIndexOfIsCultureSpecific.2",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyBugproneUnsafeFunctions",
+ "shortDescription": {
+ "text": "bugprone-unsafe-functions clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "bugprone-unsafe-functions clang-tidy check · Learn more",
+ "markdown": "bugprone-unsafe-functions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unsafe-functions.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyBugproneUnsafeFunctions",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyCppcoreguidelinesSlicing",
+ "shortDescription": {
+ "text": "cppcoreguidelines-slicing clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "cppcoreguidelines-slicing clang-tidy check · Learn more",
+ "markdown": "cppcoreguidelines-slicing clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/slicing.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyCppcoreguidelinesSlicing",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "StringIndexOfIsCultureSpecific.3",
+ "shortDescription": {
+ "text": "String.IndexOf is culture-specific (string.IndexOf(string, int) is culture-specific)"
+ },
+ "fullDescription": {
+ "text": "$s$.IndexOf($sarg$, $iarg1$, $iarg2$) Learn more...",
+ "markdown": "$s$.IndexOf($sarg$, $iarg1$, $iarg2$) [Learn more...](https://www.jetbrains.com/help/rider/StringIndexOfIsCultureSpecific.3.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "StringIndexOfIsCultureSpecific.3",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticMixPackoffset",
+ "shortDescription": {
+ "text": "mix-packoffset clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wmix-packoffset clang diagnostic · Learn more",
+ "markdown": "-Wmix-packoffset clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmix-packoffset)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticMixPackoffset",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "StringIndexOfIsCultureSpecific.1",
+ "shortDescription": {
+ "text": "String.IndexOf is culture-specific (string.IndexOf(string) is culture-specific)"
+ },
+ "fullDescription": {
+ "text": "$s$.IndexOf($sarg$) Learn more...",
+ "markdown": "$s$.IndexOf($sarg$) [Learn more...](https://www.jetbrains.com/help/rider/StringIndexOfIsCultureSpecific.1.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "StringIndexOfIsCultureSpecific.1",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyMiscMisleadingBidirectional",
+ "shortDescription": {
+ "text": "misc-misleading-bidirectional clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "misc-misleading-bidirectional clang-tidy check · Learn more",
+ "markdown": "misc-misleading-bidirectional clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/misleading-bidirectional.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyMiscMisleadingBidirectional",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyReadabilityConvertMemberFunctionsToStatic",
+ "shortDescription": {
+ "text": "readability-convert-member-functions-to-static clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "readability-convert-member-functions-to-static clang-tidy check · Learn more",
+ "markdown": "readability-convert-member-functions-to-static clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/convert-member-functions-to-static.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyReadabilityConvertMemberFunctionsToStatic",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "StaticMemberInGenericType",
+ "shortDescription": {
+ "text": "Static field or auto-property in generic type"
+ },
+ "fullDescription": {
+ "text": "Static field or auto-property in generic type may result in state duplication per each generic type instantiation Learn more...",
+ "markdown": "Static field or auto-property in generic type may result in state duplication per each generic type instantiation [Learn more...](https://www.jetbrains.com/help/rider/StaticMemberInGenericType.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "StaticMemberInGenericType",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticUndefinedArmZa",
+ "shortDescription": {
+ "text": "undefined-arm-za clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wundefined-arm-za clang diagnostic · Learn more",
+ "markdown": "-Wundefined-arm-za clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wundefined-arm-za)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticUndefinedArmZa",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticReservedMacroIdentifier",
+ "shortDescription": {
+ "text": "reserved-macro-identifier clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wreserved-macro-identifier clang diagnostic · Learn more",
+ "markdown": "-Wreserved-macro-identifier clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreserved-macro-identifier)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticReservedMacroIdentifier",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyHicppVararg",
+ "shortDescription": {
+ "text": "hicpp-vararg clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "hicpp-vararg clang-tidy check · Learn more",
+ "markdown": "hicpp-vararg clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/vararg.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyHicppVararg",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyMiscDefinitionsInHeaders",
+ "shortDescription": {
+ "text": "misc-definitions-in-headers clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "misc-definitions-in-headers clang-tidy check · Learn more",
+ "markdown": "misc-definitions-in-headers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/definitions-in-headers.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyMiscDefinitionsInHeaders",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RedundantUsingDirective.Global",
+ "shortDescription": {
+ "text": "Redundant global using directive"
+ },
+ "fullDescription": {
+ "text": "Global using directive is not required by the code and can be safely removed Learn more...",
+ "markdown": "Global using directive is not required by the code and can be safely removed [Learn more...](https://www.jetbrains.com/help/rider/RedundantUsingDirective.Global.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RedundantUsingDirective.Global",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Redundancies in Code",
+ "index": 23,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "UseIndexedProperty",
+ "shortDescription": {
+ "text": "Use indexed property"
+ },
+ "fullDescription": {
+ "text": "Use indexed property in COM import types instead of the accessor usage",
+ "markdown": "Use indexed property in COM import types instead of the accessor usage"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "UseIndexedProperty",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyMiscNewDeleteOverloads",
+ "shortDescription": {
+ "text": "misc-new-delete-overloads clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "misc-new-delete-overloads clang-tidy check · Learn more",
+ "markdown": "misc-new-delete-overloads clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/new-delete-overloads.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyMiscNewDeleteOverloads",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1049FadeOut",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Simplify boolean comparison"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1049FadeOut",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticDeprecatedEnumFloatConversion",
+ "shortDescription": {
+ "text": "deprecated-enum-float-conversion clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wdeprecated-enum-float-conversion clang diagnostic · Learn more",
+ "markdown": "-Wdeprecated-enum-float-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-enum-float-conversion)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedEnumFloatConversion",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppRedundantComplexityInComparison",
+ "shortDescription": {
+ "text": "Expression can be simplified"
+ },
+ "fullDescription": {
+ "text": "Expression can be simplified",
+ "markdown": "Expression can be simplified"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppRedundantComplexityInComparison",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticRangeLoopBindReference",
+ "shortDescription": {
+ "text": "range-loop-bind-reference clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wrange-loop-bind-reference clang diagnostic · Learn more",
+ "markdown": "-Wrange-loop-bind-reference clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wrange-loop-bind-reference)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticRangeLoopBindReference",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Unity.LoadSceneWrongIndex",
+ "shortDescription": {
+ "text": "The index is missing in the build settings"
+ },
+ "fullDescription": {
+ "text": "There is no scene with the same index in the Unity build settings.",
+ "markdown": "There is no scene with the same index in the Unity build settings."
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Unity.LoadSceneWrongIndex",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Unity",
+ "index": 18,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyBugproneSuspiciousReallocUsage",
+ "shortDescription": {
+ "text": "bugprone-suspicious-realloc-usage clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "bugprone-suspicious-realloc-usage clang-tidy check · Learn more",
+ "markdown": "bugprone-suspicious-realloc-usage clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-realloc-usage.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyBugproneSuspiciousReallocUsage",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "StringCompareToIsCultureSpecific",
+ "shortDescription": {
+ "text": "String.CompareTo is culture-specific"
+ },
+ "fullDescription": {
+ "text": "$s1$.CompareTo($s2$) Learn more...",
+ "markdown": "$s1$.CompareTo($s2$) [Learn more...](https://www.jetbrains.com/help/rider/StringCompareToIsCultureSpecific.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "StringCompareToIsCultureSpecific",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "EventNeverInvoked",
+ "shortDescription": {
+ "text": "Event never invoked"
+ },
+ "fullDescription": {
+ "text": "Event never invoked. Note that in C# this warning is the compiler warning CS0067 and is not configured here.",
+ "markdown": "Event never invoked. Note that in C# this warning is the compiler warning CS0067 and is not configured here."
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "EventNeverInvoked",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangAnalyzerOsxCocoaNSAutoreleasePool",
+ "shortDescription": {
+ "text": "osx.cocoa.NSAutoreleasePool clang static analyzer check"
+ },
+ "fullDescription": {
+ "text": "osx.cocoa.NSAutoreleasePool clang static analyzer check · Learn more",
+ "markdown": "osx.cocoa.NSAutoreleasePool clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaNSAutoreleasePool",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Static Analyzer Checks",
+ "index": 32,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticOverridingMethodMismatch",
+ "shortDescription": {
+ "text": "overriding-method-mismatch clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Woverriding-method-mismatch clang diagnostic · Learn more",
+ "markdown": "-Woverriding-method-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#woverriding-method-mismatch)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticOverridingMethodMismatch",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ArrangeObjectCreationWhenTypeNotEvident",
+ "shortDescription": {
+ "text": "Use preferred style of 'new' expression when created type is not evident"
+ },
+ "fullDescription": {
+ "text": "Add or remove explicit type specification in 'new' expression when type is not evident from the usage Learn more...",
+ "markdown": "Add or remove explicit type specification in 'new' expression when type is not evident from the usage [Learn more...](https://www.jetbrains.com/help/rider/ArrangeObjectCreationWhenTypeNotEvident.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ArrangeObjectCreationWhenTypeNotEvident",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Syntax Style",
+ "index": 21,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "EmptyForStatement",
+ "shortDescription": {
+ "text": "Empty 'for' loop is redundant"
+ },
+ "fullDescription": {
+ "text": "Empty 'for' loop is redundant Learn more...",
+ "markdown": "Empty 'for' loop is redundant [Learn more...](https://www.jetbrains.com/help/rider/EmptyForStatement.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "EmptyForStatement",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Redundancies in Code",
+ "index": 23,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Asp.NotResolved",
+ "shortDescription": {
+ "text": "Unknown symbol"
+ },
+ "fullDescription": {
+ "text": "Unknown symbol in ASP.NET and related technologies",
+ "markdown": "Unknown symbol in ASP.NET and related technologies"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "Asp.NotResolved",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Aspx/Potential Code Quality Issues",
+ "index": 64,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticUnsupportedFriend",
+ "shortDescription": {
+ "text": "unsupported-friend clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wunsupported-friend clang diagnostic · Learn more",
+ "markdown": "-Wunsupported-friend clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsupported-friend)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticUnsupportedFriend",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyBugproneSpuriouslyWakeUpFunctions",
+ "shortDescription": {
+ "text": "bugprone-spuriously-wake-up-functions clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "bugprone-spuriously-wake-up-functions clang-tidy check · Learn more",
+ "markdown": "bugprone-spuriously-wake-up-functions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/spuriously-wake-up-functions.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyBugproneSpuriouslyWakeUpFunctions",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyAndroidCloexecAccept4",
+ "shortDescription": {
+ "text": "android-cloexec-accept4 clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "android-cloexec-accept4 clang-tidy check · Learn more",
+ "markdown": "android-cloexec-accept4 clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-accept4.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyAndroidCloexecAccept4",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangAnalyzerOsxCocoaDealloc",
+ "shortDescription": {
+ "text": "osx.cocoa.Dealloc clang static analyzer check"
+ },
+ "fullDescription": {
+ "text": "osx.cocoa.Dealloc clang static analyzer check · Learn more",
+ "markdown": "osx.cocoa.Dealloc clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaDealloc",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Static Analyzer Checks",
+ "index": 32,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "IntDivisionByZero",
+ "shortDescription": {
+ "text": "Division by zero in at least one execution path"
+ },
+ "fullDescription": {
+ "text": "Division by zero in at least one execution path",
+ "markdown": "Division by zero in at least one execution path"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "IntDivisionByZero",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticEnumTooLarge",
+ "shortDescription": {
+ "text": "enum-too-large clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wenum-too-large clang diagnostic · Learn more",
+ "markdown": "-Wenum-too-large clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wenum-too-large)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticEnumTooLarge",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticProfileInstrUnprofiled",
+ "shortDescription": {
+ "text": "profile-instr-unprofiled clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wprofile-instr-unprofiled clang diagnostic · Learn more",
+ "markdown": "-Wprofile-instr-unprofiled clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wprofile-instr-unprofiled)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticProfileInstrUnprofiled",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangAnalyzerCoreUninitializedBranch",
+ "shortDescription": {
+ "text": "core.uninitialized.Branch clang static analyzer check"
+ },
+ "fullDescription": {
+ "text": "core.uninitialized.Branch clang static analyzer check · Learn more",
+ "markdown": "core.uninitialized.Branch clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangAnalyzerCoreUninitializedBranch",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Static Analyzer Checks",
+ "index": 32,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangAnalyzerOsxCocoaVariadicMethodTypes",
+ "shortDescription": {
+ "text": "osx.cocoa.VariadicMethodTypes clang static analyzer check"
+ },
+ "fullDescription": {
+ "text": "osx.cocoa.VariadicMethodTypes clang static analyzer check · Learn more",
+ "markdown": "osx.cocoa.VariadicMethodTypes clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaVariadicMethodTypes",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Static Analyzer Checks",
+ "index": 32,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1005FadeOut",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Simplify nested using statement"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1005FadeOut",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyLlvmlibcCalleeNamespace",
+ "shortDescription": {
+ "text": "llvmlibc-callee-namespace clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "llvmlibc-callee-namespace clang-tidy check · Learn more",
+ "markdown": "llvmlibc-callee-namespace clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/llvmlibc/callee-namespace.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyLlvmlibcCalleeNamespace",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyAbseilDurationComparison",
+ "shortDescription": {
+ "text": "abseil-duration-comparison clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "abseil-duration-comparison clang-tidy check · Learn more",
+ "markdown": "abseil-duration-comparison clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/duration-comparison.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyAbseilDurationComparison",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticAutoVarId",
+ "shortDescription": {
+ "text": "auto-var-id clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wauto-var-id clang diagnostic · Learn more",
+ "markdown": "-Wauto-var-id clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wauto-var-id)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticAutoVarId",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "UseCollectionExpression",
+ "shortDescription": {
+ "text": "Use collection expression syntax"
+ },
+ "fullDescription": {
+ "text": "Suggest to replace collection object construction and items additions with C# 12 collection expression syntax Learn more...",
+ "markdown": "Suggest to replace collection object construction and items additions with C# 12 collection expression syntax [Learn more...](https://www.jetbrains.com/help/rider/UseCollectionExpression.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "UseCollectionExpression",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Language Usage Opportunities",
+ "index": 7,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppUnmatchedPragmaRegionDirective",
+ "shortDescription": {
+ "text": "Missing a matching '#pragma endregion' directive"
+ },
+ "fullDescription": {
+ "text": "A '#pragma region' directive is missing a matching '#pragma endregion' directive",
+ "markdown": "A '#pragma region' directive is missing a matching '#pragma endregion' directive"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppUnmatchedPragmaRegionDirective",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ReplaceWithSingleOrDefault.4",
+ "shortDescription": {
+ "text": "Replace with SingleOrDefault($args$)"
+ },
+ "fullDescription": {
+ "text": "$expr$ && $seq$.Any($args$) ? $seq$.Single($args$) : default($T$)",
+ "markdown": "$expr$ \\&\\& $seq$.Any($args$) ? $seq$.Single($args$) : default($T$)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ReplaceWithSingleOrDefault.4",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ReplaceWithSingleOrDefault.2",
+ "shortDescription": {
+ "text": "Replace with SingleOrDefault($args$)"
+ },
+ "fullDescription": {
+ "text": "$expr$ && $seq$.Any($args$) ? $seq$.Single($args$) : null",
+ "markdown": "$expr$ \\&\\& $seq$.Any($args$) ? $seq$.Single($args$) : null"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ReplaceWithSingleOrDefault.2",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ReplaceWithSingleOrDefault.3",
+ "shortDescription": {
+ "text": "Replace with SingleOrDefault($args$)"
+ },
+ "fullDescription": {
+ "text": "$seq$.Any($args$) ? $seq$.Single($args$) : default($T$)",
+ "markdown": "$seq$.Any($args$) ? $seq$.Single($args$) : default($T$)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ReplaceWithSingleOrDefault.3",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticModuleFileExtension",
+ "shortDescription": {
+ "text": "module-file-extension clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wmodule-file-extension clang diagnostic · Learn more",
+ "markdown": "-Wmodule-file-extension clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmodule-file-extension)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticModuleFileExtension",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Unity.BurstLoadingManagedType",
+ "shortDescription": {
+ "text": "Loading managed type is not supported"
+ },
+ "fullDescription": {
+ "text": "Loading managed type is not supported",
+ "markdown": "Loading managed type is not supported"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Unity.BurstLoadingManagedType",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Unity Burst Compiler Warnings",
+ "index": 57,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyHicppFunctionSize",
+ "shortDescription": {
+ "text": "hicpp-function-size clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "hicpp-function-size clang-tidy check · Learn more",
+ "markdown": "hicpp-function-size clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/function-size.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyHicppFunctionSize",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ReturnTypeCanBeEnumerable.Local",
+ "shortDescription": {
+ "text": "Return type can be IEnumerable (private accessibility)"
+ },
+ "fullDescription": {
+ "text": "All usages of a method (or read-only property/indexer) use returned value as IEnumerable, but it is declared with more specific type (e.g. List) Learn more...",
+ "markdown": "All usages of a method (or read-only property/indexer) use returned value as IEnumerable, but it is declared with more specific type (e.g. List) [Learn more...](https://www.jetbrains.com/help/rider/ReturnTypeCanBeEnumerable.Local.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ReturnTypeCanBeEnumerable.Local",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticUnusedMemberFunction",
+ "shortDescription": {
+ "text": "unused-member-function clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wunused-member-function clang diagnostic · Learn more",
+ "markdown": "-Wunused-member-function clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-member-function)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticUnusedMemberFunction",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticExtraTokens",
+ "shortDescription": {
+ "text": "extra-tokens clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wextra-tokens clang diagnostic · Learn more",
+ "markdown": "-Wextra-tokens clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wextra-tokens)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticExtraTokens",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ReplaceWithSingleOrDefault.1",
+ "shortDescription": {
+ "text": "Replace with SingleOrDefault($args$)"
+ },
+ "fullDescription": {
+ "text": "$seq$.Any($args$) ? $seq$.Single($args$) : null",
+ "markdown": "$seq$.Any($args$) ? $seq$.Single($args$) : null"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ReplaceWithSingleOrDefault.1",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "StaticProblemInText",
+ "shortDescription": {
+ "text": "Cannot access static symbol in text argument"
+ },
+ "fullDescription": {
+ "text": "Cannot access static symbol in text argument",
+ "markdown": "Cannot access static symbol in text argument"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "StaticProblemInText",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RS2000",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Add analyzer diagnostic IDs to analyzer release"
+ },
+ "fullDescription": {
+ "text": "All supported analyzer diagnostic IDs should be part of an analyzer release.",
+ "markdown": "All supported analyzer diagnostic IDs should be part of an analyzer release."
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RS2000",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RouteTemplates.ActionRoutePrefixCanBeExtractedToControllerRoute",
+ "shortDescription": {
+ "text": "Action's route prefix can be extracted to controller's route"
+ },
+ "fullDescription": {
+ "text": "When all controller's actions' route templates have same prefixes, it's possible to extract their common prefix to controller's route template",
+ "markdown": "When all controller's actions' route templates have same prefixes, it's possible to extract their common prefix to controller's route template"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RouteTemplates.ActionRoutePrefixCanBeExtractedToControllerRoute",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "ASP.NET route templates/Code Notification",
+ "index": 48,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticAixCompat",
+ "shortDescription": {
+ "text": "aix-compat clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Waix-compat clang diagnostic · Learn more",
+ "markdown": "-Waix-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#waix-compat)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticAixCompat",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "InterpolatedStringExpressionIsNotIFormattable",
+ "shortDescription": {
+ "text": "Formatting is specified, but interpolated string expression is not IFormattable"
+ },
+ "fullDescription": {
+ "text": "Formatting is specified, but interpolated string expression is not IFormattable",
+ "markdown": "Formatting is specified, but interpolated string expression is not IFormattable"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "InterpolatedStringExpressionIsNotIFormattable",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "InvertIf",
+ "shortDescription": {
+ "text": "Invert 'if' statement to reduce nesting"
+ },
+ "fullDescription": {
+ "text": "Invert 'if' statement to reduce nesting Learn more...",
+ "markdown": "Invert 'if' statement to reduce nesting [Learn more...](https://www.jetbrains.com/help/rider/InvertIf.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "InvertIf",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Language Usage Opportunities",
+ "index": 7,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "UnusedField.Compiler",
+ "shortDescription": {
+ "text": "Field is never used"
+ },
+ "fullDescription": {
+ "text": "Field is never used (compiler warning) Learn more...",
+ "markdown": "Field is never used (compiler warning) [Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0169)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "UnusedField.Compiler",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Compiler Warnings",
+ "index": 27,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticMicrosoftStringLiteralFromPredefined",
+ "shortDescription": {
+ "text": "microsoft-string-literal-from-predefined clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wmicrosoft-string-literal-from-predefined clang diagnostic · Learn more",
+ "markdown": "-Wmicrosoft-string-literal-from-predefined clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-string-literal-from-predefined)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftStringLiteralFromPredefined",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyFuchsiaOverloadedOperator",
+ "shortDescription": {
+ "text": "fuchsia-overloaded-operator clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "fuchsia-overloaded-operator clang-tidy check · Learn more",
+ "markdown": "fuchsia-overloaded-operator clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/fuchsia/overloaded-operator.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyFuchsiaOverloadedOperator",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticCastOfSelType",
+ "shortDescription": {
+ "text": "cast-of-sel-type clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wcast-of-sel-type clang diagnostic · Learn more",
+ "markdown": "-Wcast-of-sel-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcast-of-sel-type)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticCastOfSelType",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "IntVariableOverflowInUncheckedContext",
+ "shortDescription": {
+ "text": "Possible overflow in unchecked context"
+ },
+ "fullDescription": {
+ "text": "Possible overflow in unchecked context",
+ "markdown": "Possible overflow in unchecked context"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "IntVariableOverflowInUncheckedContext",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ObjectCreationAsStatement",
+ "shortDescription": {
+ "text": "Possible unassigned object created by 'new' expression"
+ },
+ "fullDescription": {
+ "text": "Object created by 'new' expression is possibly not assigned anywhere",
+ "markdown": "Object created by 'new' expression is possibly not assigned anywhere"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "ObjectCreationAsStatement",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RedundantNullnessAttributeWithNullableReferenceTypes",
+ "shortDescription": {
+ "text": "[NotNull] or [CanBeNull] attribute is applied to a type that already has the same annotation from nullable reference types"
+ },
+ "fullDescription": {
+ "text": "[NotNull] or [CanBeNull] attribute has no effect because the target type already has the same annotation from nullable reference types",
+ "markdown": "\\[NotNull\\] or \\[CanBeNull\\] attribute has no effect because the target type already has the same annotation from nullable reference types"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RedundantNullnessAttributeWithNullableReferenceTypes",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Redundancies in Code",
+ "index": 23,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangAnalyzerCoreUninitializedNewArraySize",
+ "shortDescription": {
+ "text": "core.uninitialized.NewArraySize clang static analyzer check"
+ },
+ "fullDescription": {
+ "text": "core.uninitialized.NewArraySize clang static analyzer check · Learn more",
+ "markdown": "core.uninitialized.NewArraySize clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangAnalyzerCoreUninitializedNewArraySize",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Static Analyzer Checks",
+ "index": 32,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "StreamReadReturnValueIgnored",
+ "shortDescription": {
+ "text": "Actual number of bytes read by 'Stream.Read()' is ignored"
+ },
+ "fullDescription": {
+ "text": "Use 'Stream.ReadExactly()' instead of 'Read()' to ensure that the number of bytes read from the stream is equal to the expected value",
+ "markdown": "Use 'Stream.ReadExactly()' instead of 'Read()' to ensure that the number of bytes read from the stream is equal to the expected value"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "StreamReadReturnValueIgnored",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1130",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Bitwise operation on enum without Flags attribute"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1130",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppRedundantExportKeyword",
+ "shortDescription": {
+ "text": "Keyword 'export' is redundant, because there is enclosing export declaration"
+ },
+ "fullDescription": {
+ "text": "Keyword 'export' is redundant, because there is enclosing export declaration",
+ "markdown": "Keyword 'export' is redundant, because there is enclosing export declaration"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppRedundantExportKeyword",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Redundancies in Code",
+ "index": 34,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Xaml.PathError",
+ "shortDescription": {
+ "text": "Path error"
+ },
+ "fullDescription": {
+ "text": "Path error",
+ "markdown": "Path error"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Xaml.PathError",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "XAML/Potential Code Quality Issues",
+ "index": 45,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticC2xCompat",
+ "shortDescription": {
+ "text": "c2x-compat clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wc2x-compat clang diagnostic · Learn more",
+ "markdown": "-Wc2x-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc2x-compat)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticC2xCompat",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyPerformanceFasterStringFind",
+ "shortDescription": {
+ "text": "performance-faster-string-find clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "performance-faster-string-find clang-tidy check · Learn more",
+ "markdown": "performance-faster-string-find clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/faster-string-find.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyPerformanceFasterStringFind",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ConditionIsAlwaysTrueOrFalse",
+ "shortDescription": {
+ "text": "Expression is always 'true' or always 'false'"
+ },
+ "fullDescription": {
+ "text": "Value of a boolean expression is always the same at this point Learn more...",
+ "markdown": "Value of a boolean expression is always the same at this point [Learn more...](https://www.jetbrains.com/help/rider/ConditionIsAlwaysTrueOrFalse.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "ConditionIsAlwaysTrueOrFalse",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Redundancies in Code",
+ "index": 23,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticStringPlusInt",
+ "shortDescription": {
+ "text": "string-plus-int clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wstring-plus-int clang diagnostic · Learn more",
+ "markdown": "-Wstring-plus-int clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstring-plus-int)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticStringPlusInt",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ConstructorInitializerLoop",
+ "shortDescription": {
+ "text": "Possible cyclic constructor call"
+ },
+ "fullDescription": {
+ "text": "Possible cyclic constructor call Learn more...",
+ "markdown": "Possible cyclic constructor call [Learn more...](https://www.jetbrains.com/help/rider/ConstructorInitializerLoop.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "ConstructorInitializerLoop",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VBReplaceWithFirstOrDefault",
+ "shortDescription": {
+ "text": "Replace with FirstOrDefault($args$)"
+ },
+ "fullDescription": {
+ "text": "If ($seq$.Any($args$), $seq$.First($args$), Nothing)",
+ "markdown": "If ($seq$.Any($args$), $seq$.First($args$), Nothing)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "VBReplaceWithFirstOrDefault",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Common Practices and Code Improvements",
+ "index": 40,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1128",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Use coalesce expression"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1128",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1129",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Remove redundant field initialization"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1129",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppUseAssociativeContains",
+ "shortDescription": {
+ "text": "'contains' member function can be used"
+ },
+ "fullDescription": {
+ "text": "'contains' member function can be used",
+ "markdown": "'contains' member function can be used"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppUseAssociativeContains",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Common Practices and Code Improvements",
+ "index": 16,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1124",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Inline local variable"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1124",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticMultichar",
+ "shortDescription": {
+ "text": "multichar clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wmultichar clang diagnostic · Learn more",
+ "markdown": "-Wmultichar clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmultichar)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticMultichar",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1126",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Add braces to if-else"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1126",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyHicppMemberInit",
+ "shortDescription": {
+ "text": "hicpp-member-init clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "hicpp-member-init clang-tidy check · Learn more",
+ "markdown": "hicpp-member-init clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/member-init.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyHicppMemberInit",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1123",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Add parentheses when necessary"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1123",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VBSimplifyLinqExpression.9",
+ "shortDescription": {
+ "text": "Simplify expression"
+ },
+ "fullDescription": {
+ "text": "!$seq$.All(Function ($x$) $expr$ Is $expr2$)",
+ "markdown": "!$seq$.All(Function ($x$) $expr$ Is $expr2$)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "VBSimplifyLinqExpression.9",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Common Practices and Code Improvements",
+ "index": 40,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyReadabilityRedundantAccessSpecifiers",
+ "shortDescription": {
+ "text": "readability-redundant-access-specifiers clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "readability-redundant-access-specifiers clang-tidy check · Learn more",
+ "markdown": "readability-redundant-access-specifiers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-access-specifiers.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyReadabilityRedundantAccessSpecifiers",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticInvalidOffsetof",
+ "shortDescription": {
+ "text": "invalid-offsetof clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Winvalid-offsetof clang diagnostic · Learn more",
+ "markdown": "-Winvalid-offsetof clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-offsetof)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticInvalidOffsetof",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticPrivateExtern",
+ "shortDescription": {
+ "text": "private-extern clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wprivate-extern clang diagnostic · Learn more",
+ "markdown": "-Wprivate-extern clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wprivate-extern)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticPrivateExtern",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VBSimplifyLinqExpression.1",
+ "shortDescription": {
+ "text": "Simplify expression"
+ },
+ "fullDescription": {
+ "text": "!$seq$.Any(Function ($x$) Not $expr$)",
+ "markdown": "!$seq$.Any(Function ($x$) Not $expr$)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "VBSimplifyLinqExpression.1",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Common Practices and Code Improvements",
+ "index": 40,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VBSimplifyLinqExpression.2",
+ "shortDescription": {
+ "text": "Simplify expression"
+ },
+ "fullDescription": {
+ "text": "!$seq$.All(Function ($x$) Not $expr$)",
+ "markdown": "!$seq$.All(Function ($x$) Not $expr$)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "VBSimplifyLinqExpression.2",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Common Practices and Code Improvements",
+ "index": 40,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VBSimplifyLinqExpression.3",
+ "shortDescription": {
+ "text": "Simplify expression"
+ },
+ "fullDescription": {
+ "text": "!$seq$.Any(Function ($x$) $expr$ IsNot $expr2$)",
+ "markdown": "!$seq$.Any(Function ($x$) $expr$ IsNot $expr2$)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "VBSimplifyLinqExpression.3",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Common Practices and Code Improvements",
+ "index": 40,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VBSimplifyLinqExpression.4",
+ "shortDescription": {
+ "text": "Simplify expression"
+ },
+ "fullDescription": {
+ "text": "!$seq$.Any(Function ($x$) $expr$ <> $expr2$)",
+ "markdown": "!$seq$.Any(Function ($x$) $expr$ \\<\\> $expr2$)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "VBSimplifyLinqExpression.4",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Common Practices and Code Improvements",
+ "index": 40,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RazorErrors",
+ "shortDescription": {
+ "text": "Razor Errors"
+ },
+ "fullDescription": {
+ "text": "Razor Errors",
+ "markdown": "Razor Errors"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "RazorErrors",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Razor/Non configurable",
+ "index": 107,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VBSimplifyLinqExpression.5",
+ "shortDescription": {
+ "text": "Simplify expression"
+ },
+ "fullDescription": {
+ "text": "!$seq$.All(Function ($x$) $expr$ IsNot $expr2$)",
+ "markdown": "!$seq$.All(Function ($x$) $expr$ IsNot $expr2$)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "VBSimplifyLinqExpression.5",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Common Practices and Code Improvements",
+ "index": 40,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VBSimplifyLinqExpression.6",
+ "shortDescription": {
+ "text": "Simplify expression"
+ },
+ "fullDescription": {
+ "text": "!$seq$.All(Function ($x$) $expr$ <> $expr2$)",
+ "markdown": "!$seq$.All(Function ($x$) $expr$ \\<\\> $expr2$)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "VBSimplifyLinqExpression.6",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Common Practices and Code Improvements",
+ "index": 40,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticStaticLocalInInline",
+ "shortDescription": {
+ "text": "static-local-in-inline clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wstatic-local-in-inline clang diagnostic · Learn more",
+ "markdown": "-Wstatic-local-in-inline clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstatic-local-in-inline)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticStaticLocalInInline",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VBSimplifyLinqExpression.7",
+ "shortDescription": {
+ "text": "Simplify expression"
+ },
+ "fullDescription": {
+ "text": "!$seq$.Any(Function ($x$) $expr$ Is $expr2$)",
+ "markdown": "!$seq$.Any(Function ($x$) $expr$ Is $expr2$)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "VBSimplifyLinqExpression.7",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Common Practices and Code Improvements",
+ "index": 40,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VBSimplifyLinqExpression.8",
+ "shortDescription": {
+ "text": "Simplify expression"
+ },
+ "fullDescription": {
+ "text": "!$seq$.Any(Function ($x$) $expr$ = $expr2$)",
+ "markdown": "!$seq$.Any(Function ($x$) $expr$ = $expr2$)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "VBSimplifyLinqExpression.8",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Common Practices and Code Improvements",
+ "index": 40,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "AccessRightsInText",
+ "shortDescription": {
+ "text": "Cannot access symbol in text argument"
+ },
+ "fullDescription": {
+ "text": "Cannot access symbol in text argument",
+ "markdown": "Cannot access symbol in text argument"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "AccessRightsInText",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticArcNonPodMemaccess",
+ "shortDescription": {
+ "text": "arc-non-pod-memaccess clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Warc-non-pod-memaccess clang diagnostic · Learn more",
+ "markdown": "-Warc-non-pod-memaccess clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#warc-non-pod-memaccess)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticArcNonPodMemaccess",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangAnalyzerSecuritySetgidSetuidOrder",
+ "shortDescription": {
+ "text": "security.SetgidSetuidOrder clang static analyzer check"
+ },
+ "fullDescription": {
+ "text": "security.SetgidSetuidOrder clang static analyzer check · Learn more",
+ "markdown": "security.SetgidSetuidOrder clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangAnalyzerSecuritySetgidSetuidOrder",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Static Analyzer Checks",
+ "index": 32,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1118",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Mark local variable as const"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1118",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1113",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Use 'string.IsNullOrEmpty' method"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1113",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1114",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Remove redundant delegate creation"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1114",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "WebConfig.RedundantAddNamespaceTag",
+ "shortDescription": {
+ "text": "Redundant add namespace element"
+ },
+ "fullDescription": {
+ "text": "Add namespace element is redundant because it duplicates another element of is cleared later and can be safely removed",
+ "markdown": "Add namespace element is redundant because it duplicates another element of is cleared later and can be safely removed"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "WebConfig.RedundantAddNamespaceTag",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Web.Config/Redundancies in Code",
+ "index": 98,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticCpp11InlineNamespace",
+ "shortDescription": {
+ "text": "c++11-inline-namespace clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wc++11-inline-namespace clang diagnostic · Learn more",
+ "markdown": "-Wc++11-inline-namespace clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-11-inline-namespace)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticCpp11InlineNamespace",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1110",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Declare type inside namespace"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1110",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1111",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Add braces to switch section with multiple statements"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1111",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1112",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Combine 'Enumerable.Where' method chain"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1112",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1151",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Remove redundant cast"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1151",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "EntityFramework.ClientSideDbFunctionCall",
+ "shortDescription": {
+ "text": "Database function must not be called in non-database context"
+ },
+ "fullDescription": {
+ "text": "Reports database-only methods that can produce runtime exceptions when called outside the 'LINQ to Entities' context Learn more...",
+ "markdown": "Reports database-only methods that can produce runtime exceptions when called outside the 'LINQ to Entities' context [Learn more...](https://www.jetbrains.com/help/rider/EntityFramework.ClientSideDbFunctionCall.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "EntityFramework.ClientSideDbFunctionCall",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Entity Framework",
+ "index": 37,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyModernizeMakeUnique",
+ "shortDescription": {
+ "text": "modernize-make-unique clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "modernize-make-unique clang-tidy check · Learn more",
+ "markdown": "modernize-make-unique clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/make-unique.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyModernizeMakeUnique",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppNonExplicitConvertingConstructor",
+ "shortDescription": {
+ "text": "Non-explicit converting constructor"
+ },
+ "fullDescription": {
+ "text": "Non-explicit converting constructor Learn more...",
+ "markdown": "Non-explicit converting constructor [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rc-explicit)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppNonExplicitConvertingConstructor",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Common Practices and Code Improvements",
+ "index": 16,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyGoogleBuildUsingNamespace",
+ "shortDescription": {
+ "text": "google-build-using-namespace clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "google-build-using-namespace clang-tidy check · Learn more",
+ "markdown": "google-build-using-namespace clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/build-using-namespace.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyGoogleBuildUsingNamespace",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "UseDiscardAssignment",
+ "shortDescription": {
+ "text": "Use discard assignment"
+ },
+ "fullDescription": {
+ "text": "Replace intentionally ignored variable declaration 'var _ = ...' with discard assignment '_ = ...'. Learn more...",
+ "markdown": "Replace intentionally ignored variable declaration 'var _ = ...' with discard assignment '_ = ...'. [Learn more...](https://www.jetbrains.com/help/rider/UseDiscardAssignment.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "UseDiscardAssignment",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Language Usage Opportunities",
+ "index": 7,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyGoogleRuntimeInt",
+ "shortDescription": {
+ "text": "google-runtime-int clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "google-runtime-int clang-tidy check · Learn more",
+ "markdown": "google-runtime-int clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/runtime-int.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyGoogleRuntimeInt",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1146",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Use conditional access"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1146",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1142",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Add 'typeparam' element to documentation comment"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1142",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1143",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Simplify coalesce expression"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1143",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ContractAnnotationNotParsed",
+ "shortDescription": {
+ "text": "Problem in contract annotation definition"
+ },
+ "fullDescription": {
+ "text": "Input string in ContractAnnotation attribute could not be parsed Learn more...",
+ "markdown": "Input string in ContractAnnotation attribute could not be parsed [Learn more...](https://www.jetbrains.com/help/rider/ContractAnnotationNotParsed.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "ContractAnnotationNotParsed",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Constraints Violations",
+ "index": 80,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1145",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Remove redundant 'as' operator"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1145",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1140",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Add exception to documentation comment"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1140",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppRedundantDereferencingAndTakingAddress",
+ "shortDescription": {
+ "text": "Redundant dereferencing and taking address"
+ },
+ "fullDescription": {
+ "text": "Redundant dereferencing and taking address",
+ "markdown": "Redundant dereferencing and taking address"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppRedundantDereferencingAndTakingAddress",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Redundancies in Code",
+ "index": 34,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticTautologicalBitwiseCompare",
+ "shortDescription": {
+ "text": "tautological-bitwise-compare clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wtautological-bitwise-compare clang diagnostic · Learn more",
+ "markdown": "-Wtautological-bitwise-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-bitwise-compare)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticTautologicalBitwiseCompare",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1141",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Add 'param' element to documentation comment"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1141",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VBReplaceWithLastOrDefault",
+ "shortDescription": {
+ "text": "Replace with LastOrDefault($args$)"
+ },
+ "fullDescription": {
+ "text": "If ($seq$.Any($args$), $seq$.Last($args$), Nothing)",
+ "markdown": "If ($seq$.Any($args$), $seq$.Last($args$), Nothing)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "VBReplaceWithLastOrDefault",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Common Practices and Code Improvements",
+ "index": 40,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "WithExpressionInsteadOfInitializer",
+ "shortDescription": {
+ "text": "'with' expression is used instead of object initializer"
+ },
+ "fullDescription": {
+ "text": "'with' expression applied to a newly created object instance results in unnecessary clone creation",
+ "markdown": "'with' expression applied to a newly created object instance results in unnecessary clone creation"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "WithExpressionInsteadOfInitializer",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticExperimentalHeaderUnits",
+ "shortDescription": {
+ "text": "experimental-header-units clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wexperimental-header-units clang diagnostic · Learn more",
+ "markdown": "-Wexperimental-header-units clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wexperimental-header-units)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticExperimentalHeaderUnits",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticNullPointerSubtraction",
+ "shortDescription": {
+ "text": "null-pointer-subtraction clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wnull-pointer-subtraction clang diagnostic · Learn more",
+ "markdown": "-Wnull-pointer-subtraction clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnull-pointer-subtraction)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticNullPointerSubtraction",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ReplaceObjectPatternWithVarPattern",
+ "shortDescription": {
+ "text": "Replace object pattern not performing any additional checks with 'var' pattern"
+ },
+ "fullDescription": {
+ "text": "Replace '{ } x' object pattern not performing any additional checks with 'var x' pattern",
+ "markdown": "Replace '{ } x' object pattern not performing any additional checks with 'var x' pattern"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ReplaceObjectPatternWithVarPattern",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Language Usage Opportunities",
+ "index": 7,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RedundantExplicitArrayCreation",
+ "shortDescription": {
+ "text": "Redundant explicit type in array creation"
+ },
+ "fullDescription": {
+ "text": "When array type can be inferred from the initializer, you can use an implicitly-typed array Learn more...",
+ "markdown": "When array type can be inferred from the initializer, you can use an implicitly-typed array [Learn more...](https://www.jetbrains.com/help/rider/RedundantExplicitArrayCreation.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "RedundantExplicitArrayCreation",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Redundancies in Code",
+ "index": 23,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "SimplifyIIf",
+ "shortDescription": {
+ "text": "Simplify 'IIf'"
+ },
+ "fullDescription": {
+ "text": "'IIf' contains 'True' or 'False' in result branch, for example \r\n IIf(condition, True, elseBranch)\r\n IIf(condition, thenBranch : True)",
+ "markdown": "'IIf' contains 'True' or 'False' in result branch, for example\n\n```\n\r\n IIf(condition, True, elseBranch)\r\n IIf(condition, thenBranch : True)\r\n \n```"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "SimplifyIIf",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Common Practices and Code Improvements",
+ "index": 40,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1139",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Add summary element to documentation comment"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RCS1139",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1135",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Declare enum member with zero value (when enum has FlagsAttribute)"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1135",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1136",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Merge switch sections with equivalent content"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1136",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1138",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Add summary to documentation comment"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RCS1138",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "PartialTypeWithSinglePart",
+ "shortDescription": {
+ "text": "Redundant 'partial' modifier on type declaration"
+ },
+ "fullDescription": {
+ "text": "Class is declared as 'partial', but has only one part Learn more...",
+ "markdown": "Class is declared as 'partial', but has only one part [Learn more...](https://www.jetbrains.com/help/rider/PartialTypeWithSinglePart.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "PartialTypeWithSinglePart",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Redundancies in Symbol Declarations",
+ "index": 36,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1132",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Remove redundant overriding member"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1132",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1133",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Remove redundant Dispose/Close call"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1133",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "PossibleInvalidOperationExceptionCollectionWasModified",
+ "shortDescription": {
+ "text": "Possible 'System.InvalidOperationException: Collection was modified'"
+ },
+ "fullDescription": {
+ "text": "Modifying the collection could result in a 'System.InvalidOperationException: Collection was modified' in the next foreach iteration",
+ "markdown": "Modifying the collection could result in a 'System.InvalidOperationException: Collection was modified' in the next foreach iteration"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "PossibleInvalidOperationExceptionCollectionWasModified",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1134",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Remove redundant statement"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1134",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticUnknownPragmas",
+ "shortDescription": {
+ "text": "unknown-pragmas clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wunknown-pragmas clang diagnostic · Learn more",
+ "markdown": "-Wunknown-pragmas clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunknown-pragmas)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticUnknownPragmas",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "MemberCanBeInternal",
+ "shortDescription": {
+ "text": "Member or type can be made internal (friend)"
+ },
+ "fullDescription": {
+ "text": "Member or type can be made internal (friend)",
+ "markdown": "Member or type can be made internal (friend)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "MemberCanBeInternal",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticDisabledMacroExpansion",
+ "shortDescription": {
+ "text": "disabled-macro-expansion clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wdisabled-macro-expansion clang diagnostic · Learn more",
+ "markdown": "-Wdisabled-macro-expansion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdisabled-macro-expansion)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticDisabledMacroExpansion",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyBugproneSharedPtrArrayMismatch",
+ "shortDescription": {
+ "text": "bugprone-shared-ptr-array-mismatch clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "bugprone-shared-ptr-array-mismatch clang-tidy check · Learn more",
+ "markdown": "bugprone-shared-ptr-array-mismatch clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/shared-ptr-array-mismatch.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyBugproneSharedPtrArrayMismatch",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyHicppNamedParameter",
+ "shortDescription": {
+ "text": "hicpp-named-parameter clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "hicpp-named-parameter clang-tidy check · Learn more",
+ "markdown": "hicpp-named-parameter clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/named-parameter.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyHicppNamedParameter",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "UseFormatSpecifierInFormatString",
+ "shortDescription": {
+ "text": "Use format specifier in format strings"
+ },
+ "fullDescription": {
+ "text": "'.ToString()' call can be replaced with format specifier Learn more...",
+ "markdown": "'.ToString()' call can be replaced with format specifier [Learn more...](https://www.jetbrains.com/help/rider/UseFormatSpecifierInFormatString.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "UseFormatSpecifierInFormatString",
+ "ideaSeverity": "WEAK WARNING",
+ "qodanaSeverity": "Moderate",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "MissingSpace",
+ "shortDescription": {
+ "text": "Incorrect spacing (space is missing elsewhere)"
+ },
+ "fullDescription": {
+ "text": "Space is missing elsewhere Learn more...",
+ "markdown": "Space is missing elsewhere [Learn more...](https://www.jetbrains.com/help/rider/MissingSpace.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "MissingSpace",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Formatting",
+ "index": 24,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ForeachCanBeConvertedToQueryUsingAnotherGetEnumerator",
+ "shortDescription": {
+ "text": "Foreach loop can be converted into LINQ-expression but another 'GetEnumerator' method will be used"
+ },
+ "fullDescription": {
+ "text": "A 'foreach' ('For Each' for VB.NET) can be converted into a LINQ-expression but another 'GetEnumerator' method will be used",
+ "markdown": "A 'foreach' ('For Each' for VB.NET) can be converted into a LINQ-expression but another 'GetEnumerator' method will be used"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ForeachCanBeConvertedToQueryUsingAnotherGetEnumerator",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Language Usage Opportunities",
+ "index": 7,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangAnalyzerOsxCocoaMissingSuperCall",
+ "shortDescription": {
+ "text": "osx.cocoa.MissingSuperCall clang static analyzer check"
+ },
+ "fullDescription": {
+ "text": "osx.cocoa.MissingSuperCall clang static analyzer check · Learn more",
+ "markdown": "osx.cocoa.MissingSuperCall clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaMissingSuperCall",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Static Analyzer Checks",
+ "index": 32,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "HeuristicUnreachableCode",
+ "shortDescription": {
+ "text": "Heuristically unreachable code"
+ },
+ "fullDescription": {
+ "text": "Heuristically unreachable code detected Learn more...",
+ "markdown": "Heuristically unreachable code detected [Learn more...](https://www.jetbrains.com/help/rider/HeuristicUnreachableCode.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "HeuristicUnreachableCode",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Redundancies in Code",
+ "index": 23,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RedundantSuppressNullableWarningExpression",
+ "shortDescription": {
+ "text": "Redundant nullable warning suppression expression"
+ },
+ "fullDescription": {
+ "text": "Nullable warning suppression expression does not suppress any warnings and is applied to an already non-nullable operand Learn more...",
+ "markdown": "Nullable warning suppression expression does not suppress any warnings and is applied to an already non-nullable operand [Learn more...](https://www.jetbrains.com/help/rider/RedundantSuppressNullableWarningExpression.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RedundantSuppressNullableWarningExpression",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Redundancies in Code",
+ "index": 23,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyBugproneParentVirtualCall",
+ "shortDescription": {
+ "text": "bugprone-parent-virtual-call clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "bugprone-parent-virtual-call clang-tidy check · Learn more",
+ "markdown": "bugprone-parent-virtual-call clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/parent-virtual-call.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyBugproneParentVirtualCall",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ArrangeAccessorOwnerBody",
+ "shortDescription": {
+ "text": "Use preferred body style (convert into property, indexer, or event with preferred body style)"
+ },
+ "fullDescription": {
+ "text": "Use expression or block body Learn more...",
+ "markdown": "Use expression or block body [Learn more...](https://www.jetbrains.com/help/rider/ArrangeAccessorOwnerBody.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "ArrangeAccessorOwnerBody",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Syntax Style",
+ "index": 21,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "NotAccessedPositionalProperty.Global",
+ "shortDescription": {
+ "text": "Non-accessed positional property (non-private accessibility)"
+ },
+ "fullDescription": {
+ "text": "Positional property is never accessed for reading Learn more...",
+ "markdown": "Positional property is never accessed for reading [Learn more...](https://www.jetbrains.com/help/rider/NotAccessedPositionalProperty.Global.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "NotAccessedPositionalProperty.Global",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticIncompatiblePropertyType",
+ "shortDescription": {
+ "text": "incompatible-property-type clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wincompatible-property-type clang diagnostic · Learn more",
+ "markdown": "-Wincompatible-property-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-property-type)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticIncompatiblePropertyType",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "Mvc.ViewNotResolved",
+ "shortDescription": {
+ "text": "MVC (unknown view)"
+ },
+ "fullDescription": {
+ "text": "Unknown ASP.NET MVC View Learn more...",
+ "markdown": "Unknown ASP.NET MVC View [Learn more...](https://www.jetbrains.com/help/rider/Mvc.ViewNotResolved.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "Mvc.ViewNotResolved",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "Aspx/Potential Code Quality Issues",
+ "index": 64,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppBadAngleBracketsSpaces",
+ "shortDescription": {
+ "text": "Incorrect spacing (around angle brackets)"
+ },
+ "fullDescription": {
+ "text": "Around angle brackets",
+ "markdown": "Around angle brackets"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppBadAngleBracketsSpaces",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Formatting",
+ "index": 28,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyGoogleReadabilityAvoidUnderscoreInGoogletestName",
+ "shortDescription": {
+ "text": "google-readability-avoid-underscore-in-googletest-name clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "google-readability-avoid-underscore-in-googletest-name clang-tidy check · Learn more",
+ "markdown": "google-readability-avoid-underscore-in-googletest-name clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/readability-avoid-underscore-in-googletest-name.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyGoogleReadabilityAvoidUnderscoreInGoogletestName",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangAnalyzerCplusplusPureVirtualCall",
+ "shortDescription": {
+ "text": "cplusplus.PureVirtualCall clang static analyzer check"
+ },
+ "fullDescription": {
+ "text": "cplusplus.PureVirtualCall clang static analyzer check · Learn more",
+ "markdown": "cplusplus.PureVirtualCall clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangAnalyzerCplusplusPureVirtualCall",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Static Analyzer Checks",
+ "index": 32,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppBoostFormatMixedArgs",
+ "shortDescription": {
+ "text": "Positional and non-positional arguments in the same boost::format call"
+ },
+ "fullDescription": {
+ "text": "An argument of boost::format should contain either positional (%N%, %|N$...|) or serial (%|...|, %s) arguments, not both",
+ "markdown": "An argument of boost::format should contain either positional (%N%, %\\|N$...\\|) or serial (%\\|...\\|, %s) arguments, not both"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "error",
+ "parameters": {
+ "suppressToolId": "CppBoostFormatMixedArgs",
+ "ideaSeverity": "ERROR",
+ "qodanaSeverity": "Critical",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1106",
+ "shortDescription": {
+ "text": "RoslynAnalyzers [deprecated] Remove empty destructor"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1106",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1107",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Remove redundant 'ToCharArray' call"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1107",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppEnforceFunctionDeclarationStyle",
+ "shortDescription": {
+ "text": "Use preferred declaration style (enforce function declaration style)"
+ },
+ "fullDescription": {
+ "text": "Enforce usage of the trailing return type or the regular return type syntax",
+ "markdown": "Enforce usage of the trailing return type or the regular return type syntax"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "CppEnforceFunctionDeclarationStyle",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Syntax Style",
+ "index": 91,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1108",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Add 'static' modifier to all partial class declarations"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1108",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticNullConversion",
+ "shortDescription": {
+ "text": "null-conversion clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wnull-conversion clang diagnostic · Learn more",
+ "markdown": "-Wnull-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnull-conversion)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticNullConversion",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1102",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Make class static"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "RCS1102",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1103",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Convert 'if' to assignment"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1103",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1104",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Simplify conditional expression"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1104",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1105",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Unnecessary interpolation"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1105",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1100",
+ "shortDescription": {
+ "text": "RoslynAnalyzers [deprecated] Format documentation summary on a single line"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1100",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1101",
+ "shortDescription": {
+ "text": "RoslynAnalyzers [deprecated] Format documentation summary on multiple lines"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1101",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticPedanticCoreFeatures",
+ "shortDescription": {
+ "text": "pedantic-core-features clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wpedantic-core-features clang diagnostic · Learn more",
+ "markdown": "-Wpedantic-core-features clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpedantic-core-features)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticPedanticCoreFeatures",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyPerformanceNoAutomaticMove",
+ "shortDescription": {
+ "text": "performance-no-automatic-move clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "performance-no-automatic-move clang-tidy check · Learn more",
+ "markdown": "performance-no-automatic-move clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/no-automatic-move.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyPerformanceNoAutomaticMove",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticVexingParse",
+ "shortDescription": {
+ "text": "vexing-parse clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wvexing-parse clang diagnostic · Learn more",
+ "markdown": "-Wvexing-parse clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wvexing-parse)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticVexingParse",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VBWarnings__BC42505",
+ "shortDescription": {
+ "text": "The CallerArgumentExpressionAttribute applied to parameter will have no effect. It is applied with an invalid parameter name."
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "VBWarnings__BC42505",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Compiler Warnings",
+ "index": 110,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppMsExtReinterpretCastFromNullptr",
+ "shortDescription": {
+ "text": "Casting from nullptr to pointer type with reinterpret_cast is non-standard Microsoft C++ extension"
+ },
+ "fullDescription": {
+ "text": "Casting from nullptr to pointer type with reinterpret_cast is non-standard Microsoft C++ extension",
+ "markdown": "Casting from nullptr to pointer type with reinterpret_cast is non-standard Microsoft C++ extension"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppMsExtReinterpretCastFromNullptr",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Potential Code Quality Issues",
+ "index": 9,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "UnreachableSwitchCaseDueToIntegerAnalysis",
+ "shortDescription": {
+ "text": "Heuristically unreachable case according to integer analysis"
+ },
+ "fullDescription": {
+ "text": "Heuristically unreachable case label according to integer analysis Learn more...",
+ "markdown": "Heuristically unreachable case label according to integer analysis [Learn more...](https://www.jetbrains.com/help/rider/UnreachableSwitchCaseDueToIntegerAnalysis.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "UnreachableSwitchCaseDueToIntegerAnalysis",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Potential Code Quality Issues",
+ "index": 1,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyCppcoreguidelinesInterfacesGlobalInit",
+ "shortDescription": {
+ "text": "cppcoreguidelines-interfaces-global-init clang-tidy check"
+ },
+ "fullDescription": {
+ "text": "cppcoreguidelines-interfaces-global-init clang-tidy check · Learn more",
+ "markdown": "cppcoreguidelines-interfaces-global-init clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/interfaces-global-init.html)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyCppcoreguidelinesInterfacesGlobalInit",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang-Tidy Checks",
+ "index": 8,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "VBWarnings__BC42504",
+ "shortDescription": {
+ "text": "The CallerArgumentExpressionAttribute applied to parameter will have no effect because it's self-referential"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "VBWarnings__BC42504",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "VB.NET/Compiler Warnings",
+ "index": 110,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticBoundsSafetyCountedByEltTypeUnknownSize",
+ "shortDescription": {
+ "text": "bounds-safety-counted-by-elt-type-unknown-size clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wbounds-safety-counted-by-elt-type-unknown-size clang diagnostic · Learn more",
+ "markdown": "-Wbounds-safety-counted-by-elt-type-unknown-size clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbounds-safety-counted-by-elt-type-unknown-size)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticBoundsSafetyCountedByEltTypeUnknownSize",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1066FadeOut",
+ "shortDescription": {
+ "text": "RoslynAnalyzers [deprecated] Remove empty 'finally' clause"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1066FadeOut",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "RCS1212FadeOut",
+ "shortDescription": {
+ "text": "RoslynAnalyzers Remove redundant assignment"
+ },
+ "fullDescription": {
+ "text": "",
+ "markdown": ""
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "RCS1212FadeOut",
+ "ideaSeverity": "INFORMATION",
+ "qodanaSeverity": "Info",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Roslyn Analyzers",
+ "index": 35,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "ConvertToConstant.Local",
+ "shortDescription": {
+ "text": "Convert local variable or field into constant (private accessibility)"
+ },
+ "fullDescription": {
+ "text": "Convert local variable or field into constant",
+ "markdown": "Convert local variable or field into constant"
+ },
+ "defaultConfiguration": {
+ "enabled": true,
+ "level": "note",
+ "parameters": {
+ "suppressToolId": "ConvertToConstant.Local",
+ "ideaSeverity": "TYPO",
+ "qodanaSeverity": "Low",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C#/Common Practices and Code Improvements",
+ "index": 12,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "CppClangTidyClangDiagnosticGnuOffsetofExtensions",
+ "shortDescription": {
+ "text": "gnu-offsetof-extensions clang diagnostic"
+ },
+ "fullDescription": {
+ "text": "-Wgnu-offsetof-extensions clang diagnostic · Learn more",
+ "markdown": "-Wgnu-offsetof-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-offsetof-extensions)"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CppClangTidyClangDiagnosticGnuOffsetofExtensions",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "C_C++/Clang Diagnostics",
+ "index": 3,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "OtherTagsInsideScript1",
+ "shortDescription": {
+ "text": "Script tag errors (other tags inside \n '",
+ "markdown": "Reports empty tags that do not work in some browsers.\n\n**Example:**\n\n\n \n \n \n\nAfter the quick-fix is applied:\n\n\n \n \n \n"
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "CheckEmptyScriptTag",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML",
+ "index": 11,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "HtmlUnknownTarget",
+ "shortDescription": {
+ "text": "Unresolved file in a link"
+ },
+ "fullDescription": {
+ "text": "Reports an unresolved file in a link.",
+ "markdown": "Reports an unresolved file in a link."
+ },
+ "defaultConfiguration": {
+ "enabled": false,
+ "level": "warning",
+ "parameters": {
+ "suppressToolId": "HtmlUnknownTarget",
+ "ideaSeverity": "WARNING",
+ "qodanaSeverity": "High",
+ "codeQualityCategory": "Unspecified"
+ }
+ },
+ "relationships": [
+ {
+ "target": {
+ "id": "HTML",
+ "index": 11,
+ "toolComponent": {
+ "name": "QDNET"
+ }
+ },
+ "kinds": [
+ "superset"
+ ]
+ }
+ ]
+ },
+ {
+ "id": "XmlWrongRootElement",
+ "shortDescription": {
+ "text": "Wrong root element"
+ },
+ "fullDescription": {
+ "text": "Reports a root tag name different from the name specified in the '' tag.",
+ "markdown": "Reports a root tag name different from the name specified in the `