diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
index 151689b63..aaff6e7fc 100644
--- a/.config/dotnet-tools.json
+++ b/.config/dotnet-tools.json
@@ -3,28 +3,32 @@
"isRoot": true,
"tools": {
"powershell": {
- "version": "7.3.4",
+ "version": "7.4.6",
"commands": [
"pwsh"
- ]
- },
- "dotnet-format": {
- "version": "5.1.250801",
- "commands": [
- "dotnet-format"
- ]
+ ],
+ "rollForward": false
},
"dotnet-coverage": {
- "version": "17.7.0",
+ "version": "17.13.1",
"commands": [
"dotnet-coverage"
- ]
+ ],
+ "rollForward": false
},
"nbgv": {
- "version": "3.5.119",
+ "version": "3.6.146",
"commands": [
"nbgv"
- ]
+ ],
+ "rollForward": false
+ },
+ "docfx": {
+ "version": "2.78.2",
+ "commands": [
+ "docfx"
+ ],
+ "rollForward": false
}
}
}
diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
index 01c94a90e..42fd12a7a 100644
--- a/.devcontainer/Dockerfile
+++ b/.devcontainer/Dockerfile
@@ -1,5 +1,5 @@
# Refer to https://hub.docker.com/_/microsoft-dotnet-sdk for available versions
-FROM mcr.microsoft.com/dotnet/sdk:7.0.203-jammy
+FROM mcr.microsoft.com/dotnet/sdk:9.0.100-noble
# Installing mono makes `dotnet test` work without errors even for net472.
# But installing it takes a long time, so it's excluded by default.
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index f4e3b31a3..01a087c7c 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -10,11 +10,12 @@
"ms-dotnettools.csharp",
"k--kato.docomment",
"editorconfig.editorconfig",
+ "esbenp.prettier-vscode",
"pflannery.vscode-versionlens",
"davidanson.vscode-markdownlint",
"dotjoshjohnson.xml",
"ms-vscode-remote.remote-containers",
"ms-azuretools.vscode-docker",
- "ms-vscode.powershell"
+ "tintoy.msbuild-project-tools"
]
}
diff --git a/.editorconfig b/.editorconfig
index e0b8f0331..2983186b0 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -26,16 +26,22 @@ indent_size = 2
# Xml config files
[*.{ruleset,config,nuspec,resx,vsixmanifest,vsct,runsettings}]
indent_size = 2
+indent_style = space
# JSON files
[*.json]
indent_size = 2
indent_style = space
+[*.ps1]
+indent_style = space
+indent_size = 4
+
# Dotnet code style settings:
[*.{cs,vb}]
# Sort using and Import directives with System.* appearing first
dotnet_sort_system_directives_first = true
+dotnet_separate_import_directive_groups = false
dotnet_style_qualification_for_field = true:warning
dotnet_style_qualification_for_property = true:warning
dotnet_style_qualification_for_method = true:warning
@@ -182,5 +188,11 @@ dotnet_diagnostic.DOC108.severity = warning
dotnet_diagnostic.DOC200.severity = warning
dotnet_diagnostic.DOC202.severity = warning
+# CA1062: Validate arguments of public methods
+dotnet_diagnostic.CA1062.severity = suggestion
+
+# CA2016: Forward the CancellationToken parameter
+dotnet_diagnostic.CA2016.severity = warning
+
[*.sln]
indent_style = tab
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index f4b57a230..4423eef66 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -1,5 +1,5 @@
# Please see the documentation for all configuration options:
-# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
+# https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
version: 2
updates:
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
new file mode 100644
index 000000000..1820866e7
--- /dev/null
+++ b/.github/workflows/docs.yml
@@ -0,0 +1,43 @@
+name: ๐ Docs
+
+on:
+ push:
+ branches:
+ - main
+
+# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
+permissions:
+ actions: read
+ pages: write
+ id-token: write
+
+# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
+# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
+concurrency:
+ group: pages
+ cancel-in-progress: false
+
+jobs:
+ publish-docs:
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0 # avoid shallow clone so nbgv can do its work.
+ - name: โ Install prerequisites
+ run: ./init.ps1 -UpgradePrerequisites
+
+ - run: dotnet docfx docfx/docfx.json
+ name: ๐ Generate documentation
+
+ - name: Upload artifact
+ uses: actions/upload-pages-artifact@v3
+ with:
+ path: docfx/_site
+
+ - name: Deploy to GitHub Pages
+ id: deployment
+ uses: actions/deploy-pages@v4
diff --git a/.github/workflows/libtemplate-update.yml b/.github/workflows/libtemplate-update.yml
new file mode 100644
index 000000000..0501d5eed
--- /dev/null
+++ b/.github/workflows/libtemplate-update.yml
@@ -0,0 +1,98 @@
+name: Library.Template update
+
+# PREREQUISITE: This workflow requires the repo to be configured to allow workflows to create pull requests.
+# Visit https://github.com/USER/REPO/settings/actions
+# Under "Workflow permissions" check "Allow GitHub Actions to create ...pull requests"
+# Click Save.
+
+on:
+ schedule:
+ - cron: "0 3 * * Mon" # Sun @ 8 or 9 PM Mountain Time (depending on DST)
+ workflow_dispatch:
+
+jobs:
+ merge:
+ runs-on: ubuntu-latest
+ permissions:
+ contents: write
+ pull-requests: write
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0 # avoid shallow clone so nbgv can do its work.
+
+ - name: merge
+ id: merge
+ shell: pwsh
+ run: |
+ $LibTemplateBranch = & ./azure-pipelines/Get-LibTemplateBasis.ps1 -ErrorIfNotRelated
+ if ($LASTEXITCODE -ne 0) {
+ exit $LASTEXITCODE
+ }
+
+ git fetch https://github.com/aarnott/Library.Template $LibTemplateBranch
+ if ($LASTEXITCODE -ne 0) {
+ exit $LASTEXITCODE
+ }
+ $LibTemplateCommit = git rev-parse FETCH_HEAD
+ git diff --stat ...FETCH_HEAD
+
+ if ((git rev-list FETCH_HEAD ^HEAD --count) -eq 0) {
+ Write-Host "There are no Library.Template updates to merge."
+ echo "uptodate=true" >> $env:GITHUB_OUTPUT
+ exit 0
+ }
+
+ # Pushing commits that add or change files under .github/workflows will cause our workflow to fail.
+ # But it usually isn't necessary because the target branch already has (or doesn't have) these changes.
+ # So if the merged doesn't bring in any changes to these files, try the merge locally and push that
+ # to keep github happy.
+ if ((git rev-list FETCH_HEAD ^HEAD --count -- .github/workflows) -eq 0) {
+ # Indeed there are no changes in that area. So merge locally to try to appease GitHub.
+ git checkout -b auto/libtemplateUpdate
+ git config user.name "Andrew Arnott"
+ git config user.email "andrewarnott@live.com"
+ git merge FETCH_HEAD
+ if ($LASTEXITCODE -ne 0) {
+ Write-Host "Merge conflicts prevent creating the pull request. Please run tools/MergeFrom-Template.ps1 locally and push the result as a pull request."
+ exit 2
+ }
+
+ git -c http.extraheader="AUTHORIZATION: bearer $env:GH_TOKEN" push origin -u HEAD
+ } else {
+ Write-Host "Changes to github workflows are included in this update. Please run tools/MergeFrom-Template.ps1 locally and push the result as a pull request."
+ exit 1
+ }
+ - name: pull request
+ shell: pwsh
+ if: success() && steps.merge.outputs.uptodate != 'true'
+ run: |
+ # If there is already an active pull request, don't create a new one.
+ $existingPR = gh pr list -H auto/libtemplateUpdate --json url | ConvertFrom-Json
+ if ($existingPR) {
+ Write-Host "::warning::Skipping pull request creation because one already exists at $($existingPR[0].url)"
+ exit 0
+ }
+
+ $prTitle = "Merge latest Library.Template"
+ $prBody = "This merges the latest features and fixes from [Library.Template's branch](https://github.com/AArnott/Library.Template/tree/).
+
+ โ ๏ธ Do **not** squash this pull request when completing it. You must *merge* it.
+
+
+ Merge conflicts?
+ Resolve merge conflicts locally by carrying out these steps:
+
+ ```
+ git fetch
+ git checkout auto/libtemplateUpdate
+ git merge origin/main
+ # resolve conflicts
+ git commit
+ git push
+ ```
+ "
+
+ gh pr create -H auto/libtemplateUpdate -b $prBody -t $prTitle
+ env:
+ GH_TOKEN: ${{ github.token }}
diff --git a/.gitignore b/.gitignore
index 69599b879..cc2b12470 100644
--- a/.gitignore
+++ b/.gitignore
@@ -37,6 +37,9 @@ bld/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
+# Jetbrains Rider cache directory
+.idea/
+
# Visual Studio 2017 auto generated files
Generated\ Files/
@@ -352,3 +355,6 @@ MigrationBackup/
# mac-created file to track user view preferences for a directory
.DS_Store
+
+# Analysis results
+*.sarif
diff --git a/.prettierrc.yaml b/.prettierrc.yaml
new file mode 100644
index 000000000..e69de29bb
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
index c4ddc1a71..9883c6ba2 100644
--- a/.vscode/extensions.json
+++ b/.vscode/extensions.json
@@ -8,6 +8,7 @@
"k--kato.docomment",
"editorconfig.editorconfig",
"formulahendry.dotnet-test-explorer",
+ "esbenp.prettier-vscode",
"pflannery.vscode-versionlens",
"davidanson.vscode-markdownlint",
"dotjoshjohnson.xml",
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 9fccf55b4..30eab397b 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -4,6 +4,21 @@
"files.insertFinalNewline": true,
"files.trimFinalNewlines": true,
"omnisharp.enableEditorConfigSupport": true,
- "omnisharp.enableImportCompletion": true,
- "omnisharp.enableRoslynAnalyzers": true
+ "omnisharp.enableRoslynAnalyzers": true,
+ "dotnet.completion.showCompletionItemsFromUnimportedNamespaces": true,
+ "editor.formatOnSave": true,
+ "[xml]": {
+ "editor.wordWrap": "off"
+ },
+ // Treat these files as Azure Pipelines files
+ "files.associations": {
+ "**/azure-pipelines/**/*.yml": "azure-pipelines",
+ "azure-pipelines.yml": "azure-pipelines"
+ },
+ // Use Prettier as the default formatter for Azure Pipelines files.
+ // Needs to be explicitly configured: https://github.com/Microsoft/azure-pipelines-vscode#document-formatting
+ "[azure-pipelines]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
+ "editor.formatOnSave": false // enable this when they conform
+ },
}
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 86ea3ae2f..5b3ec3698 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -45,6 +45,15 @@ NPM packages too.
The Visual Studio 2019 Test Explorer will list and execute all tests.
+## Tutorial and API documentation
+
+API and hand-written docs are found under the `docfx/` directory. and are built by [docfx](https://dotnet.github.io/docfx/).
+
+You can make changes and host the site locally to preview them by switching to that directory and running the `dotnet docfx --serve` command.
+After making a change, you can rebuild the docs site while the localhost server is running by running `dotnet docfx` again from a separate terminal.
+
+The `.github/workflows/docs.yml` GitHub Actions workflow publishes the content of these docs to github.io if the workflow itself and [GitHub Pages is enabled for your repository](https://docs.github.com/en/pages/quickstart).
+
## Pull requests
Pull requests are welcome! They may contain additional test cases (e.g. to demonstrate a failure),
diff --git a/Directory.Build.props b/Directory.Build.props
index 22caf1d1c..402e2a15e 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -1,3 +1,4 @@
+
Debug
@@ -6,7 +7,6 @@
$(RepoRootPath)bin\$(MSBuildProjectName)\
$(RepoRootPath)bin\Packages\$(Configuration)\
$(MSBuildThisFileDirectory)..\wiki\api
- latest
enable
latest
@@ -38,10 +38,6 @@
true
-
-
- 2.0.315-alpha.0.9
-
@@ -56,26 +52,7 @@
- $(PackageProjectUrl)/releases/tag/v$(Version)
+ $(RepositoryUrl)/releases/tag/v$(Version)
-
-
- false
- true
-
-
-
-
- false
- false
- false
- false
-
diff --git a/Directory.Build.targets b/Directory.Build.targets
index ea7b6e6f8..ffbdb5021 100644
--- a/Directory.Build.targets
+++ b/Directory.Build.targets
@@ -1,9 +1,9 @@
+
-
- false
+ 13
+ 16.9
-
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 797af4f61..7e592b668 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -1,52 +1,53 @@
+
true
true
- 0.13.5
- 16.9.0
- 15.9.20
+ 0.13.12
+ 16.11.0
+ 16.11.0
+
+ 2.0.320
-
+
-
+
+
-
+
-
+
-
+
-
-
+
-
+
-
+
-
-
+
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
-
-
+
+
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index 8ab8348e1..8414d1063 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -21,17 +21,16 @@ parameters:
resources:
containers:
- - container: focal
- image: mcr.microsoft.com/dotnet/sdk:6.0-focal
- - container: jammy60
- image: mcr.microsoft.com/dotnet/sdk:6.0-jammy
- - container: jammy70
- image: mcr.microsoft.com/dotnet/sdk:7.0-jammy
- - container: debian
- image: mcr.microsoft.com/dotnet/sdk:latest
+ - container: jammy80
+ image: mcr.microsoft.com/dotnet/sdk:8.0-jammy
+ - container: noble90
+ image: mcr.microsoft.com/dotnet/sdk:9.0-noble
+ - container: debian80
+ image: mcr.microsoft.com/dotnet/sdk:8.0
+ - container: debian90
+ image: mcr.microsoft.com/dotnet/sdk:9.0
variables:
- MSBuildTreatWarningsAsErrors: true
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
BuildConfiguration: Release
codecov_token: 92266a45-648d-454e-8fec-beffae2e6553
@@ -53,14 +52,18 @@ stages:
- job: linux
strategy:
matrix:
- Ubuntu_Focal:
- containerImage: focal
- Ubuntu_Jammy_60:
- containerImage: jammy60
- Ubuntu_Jammy_70:
- containerImage: jammy70
- Debian:
- containerImage: debian
+ Ubuntu_Jammy_80:
+ containerImage: jammy80
+ testCake: true
+ Ubuntu_Noble_90:
+ containerImage: noble90
+ testCake: true
+ Debian_80:
+ containerImage: debian80
+ testCake: true
+ Debian_90:
+ containerImage: debian90
+ testCake: true
pool:
vmImage: ubuntu-22.04
container: $[ variables['containerImage'] ]
@@ -74,9 +77,9 @@ stages:
strategy:
matrix:
macOS_Catalina:
- vmImage: macOS-12
+ vmImage: macOS-14
macOS_Monterey:
- vmImage: macOS-12
+ vmImage: macOS-14
pool:
vmImage: $[ variables['vmImage'] ]
steps:
@@ -96,7 +99,7 @@ stages:
imageName: windows-2022
repoDir: '${USERPROFILE}/source/repos'
macOS:
- imageName: macOS-12
+ imageName: macOS-14
repoDir: '~/git'
pool:
vmImage: $(imageName)
@@ -106,10 +109,10 @@ stages:
clean: true
submodules: true # keep the warnings quiet about the wiki not being enlisted
- task: UseDotNet@2
- displayName: Install .NET 7.0.203 SDK
+ displayName: Install .NET 9.0.100 SDK
inputs:
packageType: sdk
- version: 7.0.203
+ version: 9.0.100
- script: dotnet --info
displayName: Show dotnet SDK info
- bash: |
@@ -123,7 +126,7 @@ stages:
dotnet build -c Release
displayName: Build in Release mode
- script: |
- dotnet run -c Release -f net7.0 -- --filter *GetVersionBenchmarks* --artifacts $(Build.ArtifactStagingDirectory)/benchmarks/packed/$(imageName)
+ dotnet run -c Release -f net9.0 -- --filter *GetVersionBenchmarks* --artifacts $(Build.ArtifactStagingDirectory)/benchmarks/packed/$(imageName)
workingDirectory: test/Nerdbank.GitVersioning.Benchmarks
displayName: Run benchmarks (packed)
- bash: |
@@ -140,7 +143,7 @@ stages:
git unpack-objects < .git/objects/pack/*.pack
displayName: Unpack Git repositories
- script: |
- dotnet run -c Release -f net7.0 -- --filter '*GetVersionBenchmarks*' --artifacts $(Build.ArtifactStagingDirectory)/benchmarks/unpacked/$(imageName)
+ dotnet run -c Release -f net9.0 -- --filter '*GetVersionBenchmarks*' --artifacts $(Build.ArtifactStagingDirectory)/benchmarks/unpacked/$(imageName)
workingDirectory: test/Nerdbank.GitVersioning.Benchmarks
displayName: Run benchmarks (unpacked)
- task: PublishBuildArtifacts@1
diff --git a/azure-pipelines/Get-CodeCovTool.ps1 b/azure-pipelines/Get-CodeCovTool.ps1
index ca580b4db..734ee6079 100644
--- a/azure-pipelines/Get-CodeCovTool.ps1
+++ b/azure-pipelines/Get-CodeCovTool.ps1
@@ -68,7 +68,7 @@ if (!(Test-Path $finalToolPath)) {
}
Write-Host "Verifying hash on downloaded tool" -ForegroundColor Yellow
- $actualHash = (Get-FileHash -Path $tool -Algorithm SHA256).Hash
+ $actualHash = (Get-FileHash -LiteralPath $tool -Algorithm SHA256).Hash
$expectedHash = (Get-Content $sha).Split()[0]
if ($actualHash -ne $expectedHash) {
# Validation failed. Delete the tool so we can't execute it.
diff --git a/azure-pipelines/Get-LibTemplateBasis.ps1 b/azure-pipelines/Get-LibTemplateBasis.ps1
new file mode 100644
index 000000000..2181c77b6
--- /dev/null
+++ b/azure-pipelines/Get-LibTemplateBasis.ps1
@@ -0,0 +1,25 @@
+<#
+.SYNOPSIS
+ Returns the name of the well-known branch in the Library.Template repository upon which HEAD is based.
+#>
+[CmdletBinding(SupportsShouldProcess = $true)]
+Param(
+ [switch]$ErrorIfNotRelated
+)
+
+# This list should be sorted in order of decreasing specificity.
+$branchMarkers = @(
+ @{ commit = 'fd0a7b25ccf030bbd16880cca6efe009d5b1fffc'; branch = 'microbuild' };
+ @{ commit = '05f49ce799c1f9cc696d53eea89699d80f59f833'; branch = 'main' };
+)
+
+foreach ($entry in $branchMarkers) {
+ if (git rev-list HEAD | Select-String -Pattern $entry.commit) {
+ return $entry.branch
+ }
+}
+
+if ($ErrorIfNotRelated) {
+ Write-Error "Library.Template has not been previously merged with this repo. Please review https://github.com/AArnott/Library.Template/tree/main?tab=readme-ov-file#readme for instructions."
+ exit 1
+}
diff --git a/azure-pipelines/Get-SymbolFiles.ps1 b/azure-pipelines/Get-SymbolFiles.ps1
index 0ce229fc2..b5063cec6 100644
--- a/azure-pipelines/Get-SymbolFiles.ps1
+++ b/azure-pipelines/Get-SymbolFiles.ps1
@@ -43,8 +43,13 @@ $PDBs |% {
}
} |% {
# Collect the DLLs/EXEs as well.
- $dllPath = "$($_.Directory)/$($_.BaseName).dll"
- $exePath = "$($_.Directory)/$($_.BaseName).exe"
+ $rootName = "$($_.Directory)/$($_.BaseName)"
+ if ($rootName.EndsWith('.ni')) {
+ $rootName = $rootName.Substring(0, $rootName.Length - 3)
+ }
+
+ $dllPath = "$rootName.dll"
+ $exePath = "$rootName.exe"
if (Test-Path $dllPath) {
$BinaryImagePath = $dllPath
} elseif (Test-Path $exePath) {
diff --git a/azure-pipelines/Merge-CodeCoverage.ps1 b/azure-pipelines/Merge-CodeCoverage.ps1
index 5ecabbc9b..308f57546 100644
--- a/azure-pipelines/Merge-CodeCoverage.ps1
+++ b/azure-pipelines/Merge-CodeCoverage.ps1
@@ -28,7 +28,7 @@ try {
if ($reports) {
$reports |% { $_.FullName } |% {
# In addition to replacing {reporoot}, we also normalize on one kind of slash so that the report aggregates data for a file whether data was collected on Windows or not.
- $xml = [xml](Get-Content -Path $_)
+ $xml = [xml](Get-Content -LiteralPath $_)
$xml.coverage.packages.package.classes.class |? { $_.filename} |% {
$_.filename = $_.filename.Replace('{reporoot}', $RepoRoot).Replace([IO.Path]::AltDirectorySeparatorChar, [IO.Path]::DirectorySeparatorChar)
}
diff --git a/azure-pipelines/artifacts/Variables.ps1 b/azure-pipelines/artifacts/Variables.ps1
index 4bc6d2165..7a320c7ea 100644
--- a/azure-pipelines/artifacts/Variables.ps1
+++ b/azure-pipelines/artifacts/Variables.ps1
@@ -32,10 +32,10 @@ Get-ChildItem "$PSScriptRoot/../variables" |% {
# If that didn't get us anything, just copy the script itself
if (-not $value) {
- $value = Get-Content -Path $_.FullName
+ $value = Get-Content -LiteralPath $_.FullName
}
- Set-Content -Path "$VariablesArtifactPath/$($_.Name)" -Value $value
+ Set-Content -LiteralPath "$VariablesArtifactPath/$($_.Name)" -Value $value
}
@{
diff --git a/azure-pipelines/artifacts/_pipelines.ps1 b/azure-pipelines/artifacts/_pipelines.ps1
index 2d3338b24..5f259a512 100644
--- a/azure-pipelines/artifacts/_pipelines.ps1
+++ b/azure-pipelines/artifacts/_pipelines.ps1
@@ -7,7 +7,8 @@
[CmdletBinding()]
param (
[string]$ArtifactNameSuffix,
- [switch]$StageOnly
+ [switch]$StageOnly,
+ [switch]$AvoidSymbolicLinks
)
Function Set-PipelineVariable($name, $value) {
@@ -15,7 +16,7 @@ Function Set-PipelineVariable($name, $value) {
return # already set
}
- #New-Item -Path "Env:\$name".ToUpper() -Value $value -Force | Out-Null
+ #New-Item -LiteralPath "Env:\$name".ToUpper() -Value $value -Force | Out-Null
Write-Host "##vso[task.setvariable variable=$name]$value"
}
@@ -24,7 +25,7 @@ Function Test-ArtifactUploaded($artifactName) {
Test-Path "env:$varName"
}
-& "$PSScriptRoot/_stage_all.ps1" -ArtifactNameSuffix $ArtifactNameSuffix |% {
+& "$PSScriptRoot/_stage_all.ps1" -ArtifactNameSuffix $ArtifactNameSuffix -AvoidSymbolicLinks:$AvoidSymbolicLinks |% {
# Set a variable which will out-live this script so that a subsequent attempt to collect and upload artifacts
# will skip this one from a check in the _all.ps1 script.
Set-PipelineVariable "ARTIFACTSTAGED_$($_.Name.ToUpper())" 'true'
diff --git a/azure-pipelines/artifacts/_stage_all.ps1 b/azure-pipelines/artifacts/_stage_all.ps1
index d81d16d46..bf961ce57 100644
--- a/azure-pipelines/artifacts/_stage_all.ps1
+++ b/azure-pipelines/artifacts/_stage_all.ps1
@@ -7,7 +7,8 @@
[CmdletBinding()]
param (
- [string]$ArtifactNameSuffix
+ [string]$ArtifactNameSuffix,
+ [switch]$AvoidSymbolicLinks
)
$ArtifactStagingFolder = & "$PSScriptRoot/../Get-ArtifactsStagingDirectory.ps1" -CleanIfLocal
@@ -30,6 +31,12 @@ function Create-SymbolicLink {
} else {
cmd /c "mklink `"$Link`" `"$Target`"" | Out-Null
}
+
+ if ($LASTEXITCODE -ne 0) {
+ # Windows requires admin privileges to create symbolic links
+ # unless Developer Mode has been enabled.
+ throw "Failed to create symbolic link at $Link that points to $Target"
+ }
}
# Stage all artifacts
@@ -42,7 +49,12 @@ $Artifacts |% {
if (-not (Test-Path $DestinationFolder)) { New-Item -ItemType Directory -Path $DestinationFolder | Out-Null }
if (Test-Path -PathType Leaf $_.Source) { # skip folders
- Create-SymbolicLink -Link (Join-Path $DestinationFolder $Name) -Target $_.Source
+ $TargetPath = Join-Path $DestinationFolder $Name
+ if ($AvoidSymbolicLinks) {
+ Copy-Item -LiteralPath $_.Source -Destination $TargetPath
+ } else {
+ Create-SymbolicLink -Link $TargetPath -Target $_.Source
+ }
}
}
diff --git a/azure-pipelines/artifacts/coverageResults.ps1 b/azure-pipelines/artifacts/coverageResults.ps1
index 280ff9ae0..a6c8f4200 100644
--- a/azure-pipelines/artifacts/coverageResults.ps1
+++ b/azure-pipelines/artifacts/coverageResults.ps1
@@ -6,8 +6,8 @@ $coverageFiles = @(Get-ChildItem "$RepoRoot/test/*.cobertura.xml" -Recurse | Whe
if ($env:SYSTEM_DEFAULTWORKINGDIRECTORY) {
Write-Host "Substituting $env:SYSTEM_DEFAULTWORKINGDIRECTORY with `"{reporoot}`""
$coverageFiles |% {
- $content = Get-Content -Path $_ |% { $_ -Replace [regex]::Escape($env:SYSTEM_DEFAULTWORKINGDIRECTORY), "{reporoot}" }
- Set-Content -Path $_ -Value $content -Encoding UTF8
+ $content = Get-Content -LiteralPath $_ |% { $_ -Replace [regex]::Escape($env:SYSTEM_DEFAULTWORKINGDIRECTORY), "{reporoot}" }
+ Set-Content -LiteralPath $_ -Value $content -Encoding UTF8
}
} else {
Write-Warning "coverageResults: Azure Pipelines not detected. Machine-neutral token replacement skipped."
diff --git a/azure-pipelines/build.yml b/azure-pipelines/build.yml
index 021256aeb..15b2c7de9 100644
--- a/azure-pipelines/build.yml
+++ b/azure-pipelines/build.yml
@@ -23,7 +23,7 @@ jobs:
- template: install-dependencies.yml
- pwsh: |
Invoke-WebRequest -Uri "https://dot.net/v1/dotnet-install.ps1" -OutFile dotnet-install.ps1
- & .\dotnet-install.ps1 -Architecture x86 -Version 7.0.203 -InstallDir "C:\Program Files (x86)\dotnet\" -NoPath -Verbose
+ & .\dotnet-install.ps1 -Architecture x86 -Version 9.0.100 -InstallDir "C:\Program Files (x86)\dotnet\" -NoPath -Verbose
displayName: โ Install 32-bit .NET SDK and runtimes
- template: dotnet.yml
@@ -32,7 +32,7 @@ jobs:
- job: Linux
pool:
- vmImage: Ubuntu 20.04
+ vmImage: Ubuntu-22.04
steps:
- checkout: self
fetchDepth: 0 # avoid shallow clone so nbgv can do its work.
@@ -44,6 +44,10 @@ jobs:
- template: dotnet.yml
parameters:
RunTests: ${{ parameters.RunTests }}
+ - script: dotnet format --verify-no-changes
+ displayName: ๐
Verify formatted code
+ env:
+ dotnetformat: true # part of a workaround for https://github.com/dotnet/sdk/issues/44951
- job: WrapUp
dependsOn:
diff --git a/azure-pipelines/dotnet-test-cloud.ps1 b/azure-pipelines/dotnet-test-cloud.ps1
index 24bf812a1..33ff3d7c0 100644
--- a/azure-pipelines/dotnet-test-cloud.ps1
+++ b/azure-pipelines/dotnet-test-cloud.ps1
@@ -61,7 +61,7 @@ Get-ChildItem -Recurse -Path $RepoRoot\test\*.trx |% {
Copy-Item $_ -Destination $ArtifactStagingFolder/test_logs/
if ($PublishResults) {
- $x = [xml](Get-Content -Path $_)
+ $x = [xml](Get-Content -LiteralPath $_)
$runTitle = $null
if ($x.TestRun.TestDefinitions -and $x.TestRun.TestDefinitions.GetElementsByTagName('UnitTest')) {
$storage = $x.TestRun.TestDefinitions.GetElementsByTagName('UnitTest')[0].storage -replace '\\','/'
diff --git a/azure-pipelines/dotnet.yml b/azure-pipelines/dotnet.yml
index 92ffd9701..ef94301a1 100644
--- a/azure-pipelines/dotnet.yml
+++ b/azure-pipelines/dotnet.yml
@@ -8,14 +8,14 @@ steps:
git config --global user.email me@ci.com
displayName: โ๏ธ Configure git commit author for testing
-- script: dotnet build -t:build,pack --no-restore -c $(BuildConfiguration) /bl:"$(Build.ArtifactStagingDirectory)/build_logs/build.binlog"
+- script: dotnet build -t:build,pack --no-restore -c $(BuildConfiguration) -warnAsError -warnNotAsError:NU1901,NU1902,NU1903,NU1904 /bl:"$(Build.ArtifactStagingDirectory)/build_logs/build.binlog"
displayName: ๐ dotnet build
- script: dotnet pack -c $(BuildConfiguration) --no-build -p:PackLKG=true /bl:"$(Build.ArtifactStagingDirectory)/build_logs/msbuild_lkg.binlog"
displayName: ๐ ๏ธ Build LKG package
workingDirectory: src/Nerdbank.GitVersioning.Tasks
-- script: dotnet publish -c $(BuildConfiguration) -o ../nerdbank-gitversioning.npm/out/nbgv.cli/tools/net6.0/any /bl:"$(Build.ArtifactStagingDirectory)/build_logs/nbgv_publish.binlog"
+- script: dotnet publish -c $(BuildConfiguration) -o ../nerdbank-gitversioning.npm/out/nbgv.cli/tools/net8.0/any /bl:"$(Build.ArtifactStagingDirectory)/build_logs/nbgv_publish.binlog"
displayName: ๐ข Publish nbgv tool
workingDirectory: src/nbgv
@@ -23,6 +23,13 @@ steps:
displayName: ๐ ๏ธ Build nerdbank-gitversioning NPM package
workingDirectory: src/nerdbank-gitversioning.npm
+- pwsh: |
+ md $(Build.ArtifactStagingDirectory)\drop
+ 7z a $(Build.ArtifactStagingDirectory)\drop\nbgv.7z * -r
+ Write-Host "##vso[artifact.upload containerfolder=drop;artifactname=drop;]$(Build.ArtifactStagingDirectory)\drop"
+ displayName: Capture .git directory
+ condition: and(failed(), eq(variables['Agent.OS'], 'Windows_NT'))
+
- powershell: azure-pipelines/dotnet-test-cloud.ps1 -Configuration $(BuildConfiguration) -Agent $(Agent.JobName) -PublishResults
displayName: ๐งช dotnet test
condition: and(succeeded(), ${{ parameters.RunTests }})
@@ -78,7 +85,7 @@ steps:
- powershell: |
$ArtifactStagingFolder = & "azure-pipelines/Get-ArtifactsStagingDirectory.ps1"
$CoverageResultsFolder = Join-Path $ArtifactStagingFolder "coverageResults-$(Agent.JobName)"
- azure-pipelines/publish-CodeCov.ps1 -CodeCovToken "$(codecov_token)" -PathToCodeCoverage "$CoverageResultsFolder" -Name "$(Agent.JobName) Coverage Results" -Flags "$(Agent.JobName)Host,$(BuildConfiguration)"
+ azure-pipelines/publish-CodeCov.ps1 -CodeCovToken "$(codecov_token)" -PathToCodeCoverage "$CoverageResultsFolder" -Name "$(Agent.JobName) Coverage Results" -Flags "$(Agent.JobName)"
displayName: ๐ข Publish code coverage results to codecov.io
timeoutInMinutes: 3
continueOnError: true
diff --git a/azure-pipelines/install-dependencies.yml b/azure-pipelines/install-dependencies.yml
index 761d18002..a57044d2e 100644
--- a/azure-pipelines/install-dependencies.yml
+++ b/azure-pipelines/install-dependencies.yml
@@ -5,7 +5,7 @@ steps:
- task: NodeTool@0
inputs:
- versionSpec: 16.x
+ versionSpec: 20.x
displayName: โ๏ธ Install Node.js
- task: NuGetAuthenticate@1
diff --git a/azure-pipelines/libtemplate-update.yml b/azure-pipelines/libtemplate-update.yml
new file mode 100644
index 000000000..87302b067
--- /dev/null
+++ b/azure-pipelines/libtemplate-update.yml
@@ -0,0 +1,146 @@
+# This pipeline schedules regular merges of Library.Template into a repo that is based on it.
+# Only Azure Repos are supported. GitHub support comes via a GitHub Actions workflow.
+
+trigger: none
+pr: none
+schedules:
+- cron: "0 3 * * Mon" # Sun @ 8 or 9 PM Mountain Time (depending on DST)
+ displayName: Weekly trigger
+ branches:
+ include:
+ - main
+ always: true
+
+parameters:
+- name: AutoComplete
+ displayName: Auto-complete pull request
+ type: boolean
+ default: false
+
+stages:
+- stage: Merge
+ jobs:
+ - job: merge
+ pool:
+ vmImage: ubuntu-latest
+ steps:
+ - checkout: self
+ fetchDepth: 0
+ clean: true
+ - pwsh: |
+ $LibTemplateBranch = & ./azure-pipelines/Get-LibTemplateBasis.ps1 -ErrorIfNotRelated
+ if ($LASTEXITCODE -ne 0) {
+ exit $LASTEXITCODE
+ }
+
+ git fetch https://github.com/aarnott/Library.Template $LibTemplateBranch
+ if ($LASTEXITCODE -ne 0) {
+ exit $LASTEXITCODE
+ }
+ $LibTemplateCommit = git rev-parse FETCH_HEAD
+
+ if ((git rev-list FETCH_HEAD ^HEAD --count) -eq 0) {
+ Write-Host "There are no Library.Template updates to merge."
+ exit 0
+ }
+
+ $UpdateBranchName = 'auto/libtemplateUpdate'
+ git -c http.extraheader="AUTHORIZATION: bearer $(System.AccessToken)" push origin -f FETCH_HEAD:refs/heads/$UpdateBranchName
+
+ Write-Host "Creating pull request"
+ $contentType = 'application/json';
+ $headers = @{ Authorization = 'Bearer $(System.AccessToken)' };
+ $rawRequest = @{
+ sourceRefName = "refs/heads/$UpdateBranchName";
+ targetRefName = "refs/heads/main";
+ title = 'Merge latest Library.Template';
+ description = "This merges the latest features and fixes from [Library.Template's $LibTemplateBranch branch](https://github.com/AArnott/Library.Template/tree/$LibTemplateBranch).";
+ }
+ $request = ConvertTo-Json $rawRequest
+
+ $prApiBaseUri = '$(System.TeamFoundationCollectionUri)/$(System.TeamProject)/_apis/git/repositories/$(Build.Repository.ID)/pullrequests'
+ $prCreationUri = $prApiBaseUri + "?api-version=6.0"
+ Write-Host "POST $prCreationUri"
+ Write-Host $request
+
+ $prCreationResult = Invoke-RestMethod -uri $prCreationUri -method POST -Headers $headers -ContentType $contentType -Body $request
+ $prUrl = "$($prCreationResult.repository.webUrl)/pullrequest/$($prCreationResult.pullRequestId)"
+ Write-Host "Pull request: $prUrl"
+ $prApiBaseUri += "/$($prCreationResult.pullRequestId)"
+
+ $SummaryPath = Join-Path '$(Agent.TempDirectory)' 'summary.md'
+ Set-Content -Path $SummaryPath -Value "[Insertion pull request]($prUrl)"
+ Write-Host "##vso[task.uploadsummary]$SummaryPath"
+
+ # Tag the PR
+ $tagUri = "$prApiBaseUri/labels?api-version=7.0"
+ $rawRequest = @{
+ name = 'auto-template-merge';
+ }
+ $request = ConvertTo-Json $rawRequest
+ Invoke-RestMethod -uri $tagUri -method POST -Headers $headers -ContentType $contentType -Body $request | Out-Null
+
+ # Add properties to the PR that we can programatically parse later.
+ Function Set-PRProperties($properties) {
+ $rawRequest = $properties.GetEnumerator() |% {
+ @{
+ op = 'add'
+ path = "/$($_.key)"
+ from = $null
+ value = $_.value
+ }
+ }
+ $request = ConvertTo-Json $rawRequest
+ $setPrPropertyUri = "$prApiBaseUri/properties?api-version=7.0"
+ Write-Debug "$request"
+ $setPrPropertyResult = Invoke-RestMethod -uri $setPrPropertyUri -method PATCH -Headers $headers -ContentType 'application/json-patch+json' -Body $request -StatusCodeVariable setPrPropertyStatus -SkipHttpErrorCheck
+ if ($setPrPropertyStatus -ne 200) {
+ Write-Host "##vso[task.logissue type=warning]Failed to set pull request properties. Result: $setPrPropertyStatus. $($setPrPropertyResult.message)"
+ }
+ }
+ Write-Host "Setting pull request properties"
+ Set-PRProperties @{
+ 'AutomatedMerge.SourceBranch' = $LibTemplateBranch
+ 'AutomatedMerge.SourceCommit' = $LibTemplateCommit
+ }
+
+ # Add an *active* PR comment to warn users to *merge* the pull request instead of squash it.
+ $request = ConvertTo-Json @{
+ comments = @(
+ @{
+ parentCommentId = 0
+ content = "Do **not** squash this pull request when completing it. You must *merge* it."
+ commentType = 'system'
+ }
+ )
+ status = 'active'
+ }
+ $result = Invoke-RestMethod -uri "$prApiBaseUri/threads?api-version=7.1" -method POST -Headers $headers -ContentType $contentType -Body $request -StatusCodeVariable addCommentStatus -SkipHttpErrorCheck
+ if ($addCommentStatus -ne 200) {
+ Write-Host "##vso[task.logissue type=warning]Failed to post comment on pull request. Result: $addCommentStatus. $($result.message)"
+ }
+
+ # Set auto-complete on the PR
+ if ('${{ parameters.AutoComplete }}' -eq 'True') {
+ Write-Host "Setting auto-complete"
+ $mergeMessage = "Merged PR $($prCreationResult.pullRequestId): " + $commitMessage
+ $rawRequest = @{
+ autoCompleteSetBy = @{
+ id = $prCreationResult.createdBy.id
+ };
+ completionOptions = @{
+ deleteSourceBranch = $true;
+ mergeCommitMessage = $mergeMessage;
+ mergeStrategy = 'noFastForward';
+ };
+ }
+ $request = ConvertTo-Json $rawRequest
+ Write-Host $request
+ $uri = "$($prApiBaseUri)?api-version=6.0"
+ $result = Invoke-RestMethod -uri $uri -method PATCH -Headers $headers -ContentType $contentType -Body $request -StatusCodeVariable autoCompleteStatus -SkipHttpErrorCheck
+ if ($autoCompleteStatus -ne 200) {
+ Write-Host "##vso[task.logissue type=warning]Failed to set auto-complete on pull request. Result: $autoCompleteStatus. $($result.message)"
+ }
+ }
+
+ displayName: Create pull request
diff --git a/azure-pipelines/publish-CodeCov.ps1 b/azure-pipelines/publish-CodeCov.ps1
index 9926f0188..1d7365110 100644
--- a/azure-pipelines/publish-CodeCov.ps1
+++ b/azure-pipelines/publish-CodeCov.ps1
@@ -22,7 +22,7 @@ Param (
$RepoRoot = (Resolve-Path "$PSScriptRoot/..").Path
-Get-ChildItem -Recurse -Path $PathToCodeCoverage -Filter "*.cobertura.xml" | % {
+Get-ChildItem -Recurse -LiteralPath $PathToCodeCoverage -Filter "*.cobertura.xml" | % {
$relativeFilePath = Resolve-Path -relative $_.FullName
Write-Host "Uploading: $relativeFilePath" -ForegroundColor Yellow
diff --git a/azure-pipelines/publish-codecoverage.yml b/azure-pipelines/publish-codecoverage.yml
index 403b769f9..1c9d859ac 100644
--- a/azure-pipelines/publish-codecoverage.yml
+++ b/azure-pipelines/publish-codecoverage.yml
@@ -9,9 +9,8 @@ steps:
continueOnError: true
- powershell: azure-pipelines/Merge-CodeCoverage.ps1 -Path '$(Pipeline.Workspace)' -OutputFile coveragereport/merged.cobertura.xml -Format Cobertura -Verbose
displayName: โ Merge coverage
-- task: PublishCodeCoverageResults@1
+- task: PublishCodeCoverageResults@2
displayName: ๐ข Publish code coverage results to Azure DevOps
inputs:
- codeCoverageTool: cobertura
summaryFileLocation: coveragereport/merged.cobertura.xml
failIfCoverageEmpty: true
diff --git a/azure-pipelines/variables/DotNetSdkVersion.ps1 b/azure-pipelines/variables/DotNetSdkVersion.ps1
index b213fbc27..722cc5845 100644
--- a/azure-pipelines/variables/DotNetSdkVersion.ps1
+++ b/azure-pipelines/variables/DotNetSdkVersion.ps1
@@ -1,2 +1,2 @@
-$globalJson = Get-Content -Path "$PSScriptRoot\..\..\global.json" | ConvertFrom-Json
+$globalJson = Get-Content -LiteralPath "$PSScriptRoot\..\..\global.json" | ConvertFrom-Json
$globalJson.sdk.version
diff --git a/azure-pipelines/variables/_pipelines.ps1 b/azure-pipelines/variables/_pipelines.ps1
index 11748b81b..d40e5cf14 100644
--- a/azure-pipelines/variables/_pipelines.ps1
+++ b/azure-pipelines/variables/_pipelines.ps1
@@ -24,8 +24,8 @@ param (
# and the second that works across jobs and stages but must be fully qualified when referenced.
Write-Host "##vso[task.setvariable variable=$keyCaps;isOutput=true]$($_.Value)"
} elseif ($env:GITHUB_ACTIONS) {
- Add-Content -Path $env:GITHUB_ENV -Value "$keyCaps=$($_.Value)"
+ Add-Content -LiteralPath $env:GITHUB_ENV -Value "$keyCaps=$($_.Value)"
}
- Set-Item -Path "env:$keyCaps" -Value $_.Value
+ Set-Item -LiteralPath "env:$keyCaps" -Value $_.Value
}
}
diff --git a/azure-pipelines/xplattest-pipeline.yml b/azure-pipelines/xplattest-pipeline.yml
index 0b2e29f9a..30fe90b47 100644
--- a/azure-pipelines/xplattest-pipeline.yml
+++ b/azure-pipelines/xplattest-pipeline.yml
@@ -63,6 +63,7 @@ steps:
dotnet cake
displayName: Consume Cake.GitVersioning
+ condition: and(succeeded(), ne(variables.testCake, 'false'))
failOnStderr: true
- script: >
diff --git a/azurepipelines-coverage.yml b/azurepipelines-coverage.yml
new file mode 100644
index 000000000..0cd5dad36
--- /dev/null
+++ b/azurepipelines-coverage.yml
@@ -0,0 +1,6 @@
+# https://learn.microsoft.com/azure/devops/pipelines/test/codecoverage-for-pullrequests?view=azure-devops
+coverage:
+ status:
+ comments: on # add comment to PRs reporting diff in coverage of modified files
+ diff: # diff coverage is code coverage only for the lines changed in a pull request.
+ target: 70% # set this to a desired %. Default is 70%
diff --git a/build.ps1 b/build.ps1
index 1d150f01a..b37ea8059 100644
--- a/build.ps1
+++ b/build.ps1
@@ -31,7 +31,7 @@ try {
}
if ($PSCmdlet.ShouldProcess('src/nbgv', 'dotnet publish')) {
- dotnet publish src/nbgv -c $Configuration -o src/nerdbank-gitversioning.npm/out/nbgv.cli/tools/net6.0/any
+ dotnet publish src/nbgv -c $Configuration -o src/nerdbank-gitversioning.npm/out/nbgv.cli/tools/net8.0/any
if ($LASTEXITCODE -ne 0) {
throw "dotnet publish failed"
}
diff --git a/doc/msbuild.md b/doc/msbuild.md
index 10b23e8a8..b756b78f1 100644
--- a/doc/msbuild.md
+++ b/doc/msbuild.md
@@ -38,7 +38,49 @@ You should only build with this property set from one release branch per
major.minor version to avoid the risk of producing multiple unique NuGet
packages with a colliding version spec.
-## Custom build authoring
+## Customization through MSBuild
+
+### Properties
+
+The following MSBuild properties may be set in your project to customize certain Nerdbank.GitVersioning behaviors:
+
+Property | Default | Description
+--|--|--
+`NBGV_ThisAssemblyNamespace` | (empty) | Sets the namespace to use for the generated `ThisAssembly` class.
+`NBGV_EmitThisAssemblyClass` | `true` | When `false`, suppresses generation of the `ThisAssembly` class.
+`NBGV_ThisAssemblyIncludesPackageVersion` | `false` | When `true`, a `NuGetPackageVersion` property is added to the `ThisAssembly` class.
+`NBGV_UseAssemblyVersionInNativeVersion` | `true` | When `false`, uses the `AssemblyFileVersion` as a native `PRODUCTVERSION`.
+
+### Custom `ThisAssembly` static fields and constants
+
+Custom constants may be added to the `ThisAssembly` class through `AdditionalThisAssemblyFields` items defined in your project.
+The item name becomes the constant's name. The value of the constant may be defined by metadata whose name determines the type of the constant as follows:
+
+Metadata name | Property type | Notes
+--|--|--
+`String` | `string` | These may also carry `EmitIfEmpty="true"` metadata to force generation of the constant even if the string value is empty.
+`Boolean` | `bool` |
+`Ticks` | `DateTime` | The integer specified in msbuild metadata will be interpreted as ticks to construct the `DateTime` value.
+
+For example, to the following MSBuild items:
+
+```xml
+
+
+
+
+
+```
+
+Will add the following constants or static fields to the `ThisAssembly` class:
+
+```cs
+internal const bool FinalRelease = true;
+internal const string MyMessage = "Hello World";
+internal static readonly DateTime AGoodMoment = new System.DateTime(638300335845163552L, System.DateTimeKind.Utc);
+```
+
+### Custom build authoring
If you are writing your own MSBuild targets or properties and need to consume version information,
Nerdbank.GitVersioning is there to help.
@@ -60,6 +102,11 @@ In the above example, the `AssemblyVersion` property, which is set by the
another property.
It could also be used to define msbuild items or anything else you want.
+Note that in the simple example above, `MyPropertySetter` will not execute unless explicitly requested from the command line with a `/t:MyPropertySetter` switch.
+If you want your target to run as part of a build by default, you will need to add attributes to the `Target` or set other properties that influence existing targets to depend on this one.
+For example, you might add `BeforeTargets="CoreCompile"` if your target sets properties that will be consumed by the compiler.
+[Learn more about custom MSBuild targets from the Microsoft documentation](https://learn.microsoft.com/visualstudio/msbuild/msbuild-targets).
+
### MSBuild properties defined in `GetBuildVersion`
Many MSBuild properties are set by `GetBuildVersion` allowing you to define or redefine
diff --git a/doc/nbgv-cli.md b/doc/nbgv-cli.md
index b7e58610e..dfe4f55a5 100644
--- a/doc/nbgv-cli.md
+++ b/doc/nbgv-cli.md
@@ -165,6 +165,23 @@ For each branch, the following properties are provided:
**Note:** When the current branch is already the release branch for the current version, no new branch will be created.
In that case, the `NewBranch` property will be `null`.
+### Customizing the `prepare-release` commit message
+
+By default, the `prepare-release` command generates a commit message with the format "Set version to {version}".
+A switch allows you to customize the commit message, using `{0}` as a placeholder for the version.
+
+For example, running the following command:
+
+```
+nbgv prepare-release --commit-message-pattern "Custom commit message pattern - {0} custom message"
+```
+
+So your commit message is going to be this:
+
+```
+Custom commit message pattern - 1.0 custom message
+```
+
## Creating a version tag
The `tag` command automates the task of tagging a commit with a version.
diff --git a/docfx/.gitignore b/docfx/.gitignore
new file mode 100644
index 000000000..d5bcab175
--- /dev/null
+++ b/docfx/.gitignore
@@ -0,0 +1,2 @@
+_site/
+api/
diff --git a/docfx/docfx.json b/docfx/docfx.json
new file mode 100644
index 000000000..729d67313
--- /dev/null
+++ b/docfx/docfx.json
@@ -0,0 +1,48 @@
+{
+ "metadata": [
+ {
+ "src": [
+ {
+ "src": "../src/Library",
+ "files": [
+ "**/*.csproj"
+ ]
+ }
+ ],
+ "dest": "api"
+ }
+ ],
+ "build": {
+ "content": [
+ {
+ "files": [
+ "**/*.{md,yml}"
+ ],
+ "exclude": [
+ "_site/**"
+ ]
+ }
+ ],
+ "resource": [
+ {
+ "files": [
+ "images/**"
+ ]
+ }
+ ],
+ "xref": [
+ "https://learn.microsoft.com/en-us/dotnet/.xrefmap.json"
+ ],
+ "output": "_site",
+ "template": [
+ "default",
+ "modern"
+ ],
+ "globalMetadata": {
+ "_appName": "Library",
+ "_appTitle": "Library",
+ "_enableSearch": true,
+ "pdf": false
+ }
+ }
+}
diff --git a/docfx/docs/features.md b/docfx/docs/features.md
new file mode 100644
index 000000000..eb3fbeb0d
--- /dev/null
+++ b/docfx/docs/features.md
@@ -0,0 +1,3 @@
+# Features
+
+TODO
diff --git a/docfx/docs/getting-started.md b/docfx/docs/getting-started.md
new file mode 100644
index 000000000..eff2c2fbc
--- /dev/null
+++ b/docfx/docs/getting-started.md
@@ -0,0 +1,12 @@
+# Getting Started
+
+## Installation
+
+Consume this library via its NuGet Package.
+Click on the badge to find its latest version and the instructions for consuming it that best apply to your project.
+
+[](https://nuget.org/packages/Library)
+
+## Usage
+
+TODO
diff --git a/docfx/docs/toc.yml b/docfx/docs/toc.yml
new file mode 100644
index 000000000..36a380208
--- /dev/null
+++ b/docfx/docs/toc.yml
@@ -0,0 +1,5 @@
+- name: Features
+ href: features.md
+- name: Getting Started
+ href: getting-started.md
+
diff --git a/docfx/index.md b/docfx/index.md
new file mode 100644
index 000000000..391ee6ec5
--- /dev/null
+++ b/docfx/index.md
@@ -0,0 +1,9 @@
+---
+_layout: landing
+---
+
+# Overview
+
+This is your docfx landing page.
+
+Click "Docs" across the top to get started.
diff --git a/docfx/toc.yml b/docfx/toc.yml
new file mode 100644
index 000000000..abd17b8c7
--- /dev/null
+++ b/docfx/toc.yml
@@ -0,0 +1,4 @@
+- name: Docs
+ href: docs/
+- name: API
+ href: api/
diff --git a/global.json b/global.json
index c7d7e468c..088f23e11 100644
--- a/global.json
+++ b/global.json
@@ -1,6 +1,6 @@
{
"sdk": {
- "version": "7.0.203",
+ "version": "9.0.100",
"rollForward": "patch",
"allowPrerelease": false
}
diff --git a/init.ps1 b/init.ps1
index 062c8c85a..624b0397d 100755
--- a/init.ps1
+++ b/init.ps1
@@ -83,13 +83,12 @@ Push-Location $PSScriptRoot
try {
$HeaderColor = 'Green'
- if (!$NoRestore -and $PSCmdlet.ShouldProcess("NuGet packages", "Restore")) {
- $RestoreArguments = @()
- if ($Interactive)
- {
- $RestoreArguments += '--interactive'
- }
+ $RestoreArguments = @()
+ if ($Interactive) {
+ $RestoreArguments += '--interactive'
+ }
+ if (!$NoRestore -and $PSCmdlet.ShouldProcess("NuGet packages", "Restore")) {
Write-Host "Restoring NuGet packages" -ForegroundColor $HeaderColor
dotnet restore @RestoreArguments
if ($lastexitcode -ne 0) {
@@ -98,10 +97,10 @@ try {
}
if (!$NoToolRestore -and $PSCmdlet.ShouldProcess("dotnet tool", "restore")) {
- dotnet tool restore @RestoreArguments
- if ($lastexitcode -ne 0) {
- throw "Failure while restoring dotnet CLI tools."
- }
+ dotnet tool restore @RestoreArguments
+ if ($lastexitcode -ne 0) {
+ throw "Failure while restoring dotnet CLI tools."
+ }
}
if (!$NoRestore -and $PSCmdlet.ShouldProcess("NPM packages", "Restore")) {
diff --git a/settings.VisualStudio.json b/settings.VisualStudio.json
new file mode 100644
index 000000000..7abb4a060
--- /dev/null
+++ b/settings.VisualStudio.json
@@ -0,0 +1,3 @@
+{
+ "textEditor.codeCleanup.profile": "profile1"
+}
diff --git a/src/AssemblyInfo.vb b/src/AssemblyInfo.vb
new file mode 100644
index 000000000..d6a99bec8
--- /dev/null
+++ b/src/AssemblyInfo.vb
@@ -0,0 +1,6 @@
+' Copyright (c) .NET Foundation and Contributors. All rights reserved.
+' Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+Imports System.Runtime.InteropServices
+
+
diff --git a/src/Cake.GitVersioning/Cake.GitVersioning.csproj b/src/Cake.GitVersioning/Cake.GitVersioning.csproj
index 7c978f077..f2538a180 100644
--- a/src/Cake.GitVersioning/Cake.GitVersioning.csproj
+++ b/src/Cake.GitVersioning/Cake.GitVersioning.csproj
@@ -1,7 +1,7 @@
-๏ปฟ
+
- net6.0
+ net8.0
true
Chris Crutchfield, Andrew Arnott
andarno
@@ -37,14 +37,14 @@
-
+
-
-
-
-
-
+
+
+
+
+
diff --git a/src/Cake.GitVersioning/GitVersioningAliases.cs b/src/Cake.GitVersioning/GitVersioningAliases.cs
index 02303b15b..f0713c72d 100644
--- a/src/Cake.GitVersioning/GitVersioningAliases.cs
+++ b/src/Cake.GitVersioning/GitVersioningAliases.cs
@@ -29,7 +29,7 @@ public static class GitVersioningAliases
/// Task("GetVersion")
/// .Does(() =>
/// {
- /// Information(GetVersioningGetVersion().SemVer2)
+ /// Information(GitVersioningGetVersion().SemVer2)
/// });
/// ]]>
///
diff --git a/src/Cake.GitVersioning/README.md b/src/Cake.GitVersioning/README.md
new file mode 100644
index 000000000..4de5522e4
--- /dev/null
+++ b/src/Cake.GitVersioning/README.md
@@ -0,0 +1,14 @@
+This is a [Cake Build](https://cakebuild.net/) plugin that adds [Nerdbank.GitVersioning](https://github.com/dotnet/Nerdbank.GitVersioning#readme) functionality to your build.
+
+## Usage
+
+Add `#addin Cake.GitVersioning` to the top of your Cake Build script. See [here](https://github.com/dotnet/Nerdbank.GitVersioning/wiki/GitVersioningAliases) for usage. See [here](https://github.com/dotnet/Nerdbank.GitVersioning/wiki/VersionOracle) for the VersionOracle usage.
+
+### Example
+~~~~csharp
+Task("GetVersion")
+ .Does(() =>
+{
+ Information(GitVersioningGetVersion().SemVer2)
+});
+~~~~
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index 052fe3ef0..9ba7818d4 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -1,3 +1,12 @@
+
+
+
+ README.md
+
+
+
+
+
diff --git a/src/Directory.Build.targets b/src/Directory.Build.targets
index c1d929a5b..654f5c6d3 100644
--- a/src/Directory.Build.targets
+++ b/src/Directory.Build.targets
@@ -1,6 +1,8 @@
+
-
+
+
diff --git a/src/NerdBank.GitVersioning/CloudBuildServices/GitLab.cs b/src/NerdBank.GitVersioning/CloudBuildServices/GitLab.cs
index f02e4e17f..939d3050d 100644
--- a/src/NerdBank.GitVersioning/CloudBuildServices/GitLab.cs
+++ b/src/NerdBank.GitVersioning/CloudBuildServices/GitLab.cs
@@ -20,7 +20,7 @@ internal class GitLab : ICloudBuild
///
public string BuildingTag =>
- Environment.GetEnvironmentVariable("CI_COMMIT_TAG") is not null ?
+ !string.IsNullOrEmpty(Environment.GetEnvironmentVariable("CI_COMMIT_TAG")) ?
$"refs/tags/{Environment.GetEnvironmentVariable("CI_COMMIT_TAG")}" : null;
///
diff --git a/src/NerdBank.GitVersioning/CloudBuildServices/TeamCity.cs b/src/NerdBank.GitVersioning/CloudBuildServices/TeamCity.cs
index 89f5b2436..f6f5f6c58 100644
--- a/src/NerdBank.GitVersioning/CloudBuildServices/TeamCity.cs
+++ b/src/NerdBank.GitVersioning/CloudBuildServices/TeamCity.cs
@@ -21,7 +21,7 @@ internal class TeamCity : ICloudBuild
public string GitCommitId => Environment.GetEnvironmentVariable("BUILD_VCS_NUMBER");
///
- public bool IsApplicable => this.GitCommitId is not null;
+ public bool IsApplicable => !string.IsNullOrEmpty(this.GitCommitId);
///
public bool IsPullRequest => false;
diff --git a/src/NerdBank.GitVersioning/DisabledGit/DisabledGitContext.cs b/src/NerdBank.GitVersioning/DisabledGit/DisabledGitContext.cs
index baf180128..df6576c68 100644
--- a/src/NerdBank.GitVersioning/DisabledGit/DisabledGitContext.cs
+++ b/src/NerdBank.GitVersioning/DisabledGit/DisabledGitContext.cs
@@ -24,8 +24,12 @@ public DisabledGitContext(string workingTreePath)
public override DateTimeOffset? GitCommitDate => null;
+ public override DateTimeOffset? GitCommitAuthorDate => null;
+
public override string? HeadCanonicalName => null;
+ public override IReadOnlyCollection? HeadTags => null;
+
private string DebuggerDisplay => $"\"{this.WorkingTreePath}\" (disabled-git)";
public override void ApplyTag(string name) => throw new NotSupportedException();
diff --git a/src/NerdBank.GitVersioning/GitContext.cs b/src/NerdBank.GitVersioning/GitContext.cs
index 22e792f49..4db82865b 100644
--- a/src/NerdBank.GitVersioning/GitContext.cs
+++ b/src/NerdBank.GitVersioning/GitContext.cs
@@ -113,11 +113,21 @@ public string RepoRelativeProjectDirectory
///
public abstract DateTimeOffset? GitCommitDate { get; }
+ ///
+ /// Gets the date that the commit identified by was authored.
+ ///
+ public abstract DateTimeOffset? GitCommitAuthorDate { get; }
+
///
/// Gets the canonical name for HEAD's position (e.g. refs/heads/main).
///
public abstract string? HeadCanonicalName { get; }
+ ///
+ /// Gets a collection of the tags that reference HEAD.
+ ///
+ public abstract IReadOnlyCollection? HeadTags { get; }
+
///
/// Gets the path to the .git folder.
///
diff --git a/src/NerdBank.GitVersioning/GitException.cs b/src/NerdBank.GitVersioning/GitException.cs
index 2a37dc938..e5ef129dd 100644
--- a/src/NerdBank.GitVersioning/GitException.cs
+++ b/src/NerdBank.GitVersioning/GitException.cs
@@ -48,6 +48,9 @@ public GitException(string message, Exception innerException)
/// Initializes a new instance of the class.
///
///
+#if NET
+ [Obsolete]
+#endif
protected GitException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
@@ -82,6 +85,9 @@ public enum ErrorCodes
public bool IsShallowClone { get; set; }
///
+#if NET
+ [Obsolete]
+#endif
public override void GetObjectData(SerializationInfo info, StreamingContext context)
{
base.GetObjectData(info, context);
diff --git a/src/NerdBank.GitVersioning/LibGit2/LibGit2Context.cs b/src/NerdBank.GitVersioning/LibGit2/LibGit2Context.cs
index 1aa804c17..684c9a2e3 100644
--- a/src/NerdBank.GitVersioning/LibGit2/LibGit2Context.cs
+++ b/src/NerdBank.GitVersioning/LibGit2/LibGit2Context.cs
@@ -14,6 +14,11 @@ namespace Nerdbank.GitVersioning.LibGit2;
[DebuggerDisplay("{" + nameof(DebuggerDisplay) + ",nq}")]
public class LibGit2Context : GitContext
{
+ ///
+ /// Caching field behind property.
+ ///
+ private IReadOnlyCollection? headTags;
+
internal LibGit2Context(string workingTreeDirectory, string dotGitPath, string? committish = null)
: base(workingTreeDirectory, dotGitPath)
{
@@ -46,11 +51,28 @@ internal LibGit2Context(string workingTreeDirectory, string dotGitPath, string?
public override bool IsHead => this.Repository.Head?.Tip?.Equals(this.Commit) ?? false;
///
- public override DateTimeOffset? GitCommitDate => this.Commit?.Author.When;
+ public override DateTimeOffset? GitCommitDate => this.Commit?.Committer.When;
+
+ ///
+ public override DateTimeOffset? GitCommitAuthorDate => this.Commit?.Author.When;
///
public override string HeadCanonicalName => this.Repository.Head.CanonicalName;
+ ///
+ public override IReadOnlyCollection? HeadTags
+ {
+ get
+ {
+ return this.headTags ??= this.Commit is not null
+ ? this.Repository.Tags
+ .Where(tag => tag.Target.Sha.Equals(this.Commit.Sha))
+ .Select(tag => tag.CanonicalName)
+ .ToList()
+ : null;
+ }
+ }
+
private string DebuggerDisplay => $"\"{this.WorkingTreePath}\" (libgit2)";
/// Initializes a new instance of the class.
diff --git a/src/NerdBank.GitVersioning/Managed/ManagedGitContext.cs b/src/NerdBank.GitVersioning/Managed/ManagedGitContext.cs
index aa4cc1072..2fc987a57 100644
--- a/src/NerdBank.GitVersioning/Managed/ManagedGitContext.cs
+++ b/src/NerdBank.GitVersioning/Managed/ManagedGitContext.cs
@@ -15,6 +15,11 @@ namespace Nerdbank.GitVersioning.Managed;
[DebuggerDisplay("{" + nameof(DebuggerDisplay) + ",nq}")]
public class ManagedGitContext : GitContext
{
+ ///
+ /// Caching field behind property.
+ ///
+ private IReadOnlyCollection? headTags;
+
internal ManagedGitContext(string workingDirectory, string dotGitPath, string? committish = null)
: base(workingDirectory, dotGitPath)
{
@@ -48,11 +53,20 @@ internal ManagedGitContext(string workingDirectory, string dotGitPath, string? c
public override bool IsHead => this.Repository.GetHeadCommit().Equals(this.Commit);
///
- public override DateTimeOffset? GitCommitDate => this.Commit is { } commit ? (commit.Author?.Date ?? this.Repository.GetCommit(commit.Sha, readAuthor: true).Author?.Date) : null;
+ public override DateTimeOffset? GitCommitDate => this.Commit is { } commit ? (commit.Committer?.Date ?? this.Repository.GetCommit(commit.Sha, readAuthor: true).Committer?.Date) : null;
+
+ ///
+ public override DateTimeOffset? GitCommitAuthorDate => this.Commit is { } commit ? (commit.Author?.Date ?? this.Repository.GetCommit(commit.Sha, readAuthor: true).Author?.Date) : null;
///
public override string HeadCanonicalName => this.Repository.GetHeadAsReferenceOrSha().ToString() ?? throw new InvalidOperationException("Unable to determine the HEAD position.");
+ ///
+ public override IReadOnlyCollection? HeadTags
+ {
+ get => this.headTags ??= this.Repository.Lookup("HEAD") is GitObjectId head ? this.Repository.LookupTags(head) : null;
+ }
+
private string DebuggerDisplay => $"\"{this.WorkingTreePath}\" (managed)";
/// Initializes a new instance of the class.
diff --git a/src/NerdBank.GitVersioning/ManagedGit/GitAnnotatedTag.cs b/src/NerdBank.GitVersioning/ManagedGit/GitAnnotatedTag.cs
new file mode 100644
index 000000000..6ca2ffa89
--- /dev/null
+++ b/src/NerdBank.GitVersioning/ManagedGit/GitAnnotatedTag.cs
@@ -0,0 +1,53 @@
+๏ปฟ// Copyright (c) .NET Foundation and Contributors. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+#nullable enable
+
+using System.Collections;
+
+namespace Nerdbank.GitVersioning.ManagedGit;
+
+///
+/// Represents a Git annotated tag, as stored in the Git object database.
+///
+public struct GitAnnotatedTag : IEquatable
+{
+ ///
+ /// Gets or sets the of object this tag is pointing at.
+ ///
+ public GitObjectId Object { get; set; }
+
+ ///
+ /// Gets or sets a which uniquely identifies the .
+ ///
+ public GitObjectId Sha { get; set; }
+
+ ///
+ /// Gets or sets the tag name of this annotated tag.
+ ///
+ public string Tag { get; set; }
+
+ ///
+ /// Gets or sets the type of the object this tag is pointing to, e.g. "commit" or, for nested tags, "tag".
+ ///
+ public string Type { get; set; }
+
+ public static bool operator ==(GitAnnotatedTag left, GitAnnotatedTag right) => left.Equals(right);
+
+ public static bool operator !=(GitAnnotatedTag left, GitAnnotatedTag right) => !(left == right);
+
+ ///
+ public override bool Equals(object? obj) => obj is GitAnnotatedTag tag ? this.Equals(tag) : false;
+
+ ///
+ public bool Equals(GitAnnotatedTag other) => this.Sha.Equals(other.Sha);
+
+ ///
+ public override int GetHashCode() => this.Sha.GetHashCode();
+
+ ///
+ public override string ToString()
+ {
+ return $"Git Tag: {this.Tag} with id {this.Sha}";
+ }
+}
diff --git a/src/NerdBank.GitVersioning/ManagedGit/GitAnnotatedTagReader.cs b/src/NerdBank.GitVersioning/ManagedGit/GitAnnotatedTagReader.cs
new file mode 100644
index 000000000..654bfee0a
--- /dev/null
+++ b/src/NerdBank.GitVersioning/ManagedGit/GitAnnotatedTagReader.cs
@@ -0,0 +1,133 @@
+๏ปฟ// Copyright (c) .NET Foundation and Contributors. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+#nullable enable
+
+using System.Buffers;
+using System.Diagnostics;
+using System.Xml.Linq;
+using LibGit2Sharp;
+using Validation;
+
+namespace Nerdbank.GitVersioning.ManagedGit;
+
+///
+/// Reads a object.
+///
+public static class GitAnnotatedTagReader
+{
+ private const int ObjectLineLength = 48;
+
+ private static readonly byte[] ObjectStart = GitRepository.Encoding.GetBytes("object ");
+ private static readonly byte[] TypeStart = GitRepository.Encoding.GetBytes("type ");
+ private static readonly byte[] TagStart = GitRepository.Encoding.GetBytes("tag ");
+
+ ///
+ /// Reads a object from a .
+ ///
+ ///
+ /// A which contains the in its text representation.
+ ///
+ ///
+ /// The of the commit.
+ ///
+ ///
+ /// The .
+ ///
+ public static GitAnnotatedTag Read(Stream stream, GitObjectId sha)
+ {
+ Requires.NotNull(stream, nameof(stream));
+
+ byte[] buffer = ArrayPool.Shared.Rent(checked((int)stream.Length));
+
+ try
+ {
+ Span span = buffer.AsSpan(0, (int)stream.Length);
+ stream.ReadAll(span);
+
+ return Read(span, sha);
+ }
+ finally
+ {
+ ArrayPool.Shared.Return(buffer);
+ }
+ }
+
+ ///
+ /// Reads a object from a .
+ ///
+ ///
+ /// A which contains the in its text representation.
+ ///
+ ///
+ /// The of the annotated tag.
+ ///
+ ///
+ /// The .
+ ///
+ public static GitAnnotatedTag Read(ReadOnlySpan tag, GitObjectId sha)
+ {
+ ReadOnlySpan buffer = tag;
+
+ GitObjectId obj = ReadObject(buffer.Slice(0, ObjectLineLength));
+ buffer = buffer.Slice(ObjectLineLength);
+
+ (string type, int typeLen) = ReadType(buffer);
+ buffer = buffer.Slice(typeLen);
+
+ (string tagName, _) = ReadTag(buffer);
+
+ return new GitAnnotatedTag
+ {
+ Sha = sha,
+ Object = obj,
+ Type = type,
+ Tag = tagName,
+ };
+ }
+
+ private static GitObjectId ReadObject(ReadOnlySpan line)
+ {
+ // Format: object d8329fc1cc938780ffdd9f94e0d364e0ea74f579\n
+ // 48 bytes:
+ // object: 6 bytes
+ // space: 1 byte
+ // hash: 40 bytes
+ // \n: 1 byte
+ Debug.Assert(line.Slice(0, ObjectStart.Length).SequenceEqual(ObjectStart));
+ Debug.Assert(line[ObjectLineLength - 1] == (byte)'\n');
+
+ return GitObjectId.ParseHex(line.Slice(ObjectStart.Length, 40));
+ }
+
+ private static (string Content, int BytesRead) ReadPrefixedString(ReadOnlySpan remaining, byte[] prefix)
+ {
+ Debug.Assert(remaining.Slice(0, prefix.Length).SequenceEqual(prefix));
+
+ int lineEnd = remaining.IndexOf((byte)'\n');
+ ReadOnlySpan type = remaining.Slice(prefix.Length, lineEnd - prefix.Length);
+ return (GitRepository.GetString(type), lineEnd + 1);
+ }
+
+ private static (string Content, int BytesRead) ReadType(ReadOnlySpan remaining)
+ {
+ // Format: type commit\n
+ // bytes:
+ // type: 4 bytes
+ // space: 1 byte
+ // : bytes
+ // \n: 1 byte
+ return ReadPrefixedString(remaining, TypeStart);
+ }
+
+ private static (string Content, int BytesRead) ReadTag(ReadOnlySpan remaining)
+ {
+ // Format: tag someAnnotatedTag\n
+ // bytes:
+ // tag: 3 bytes
+ // space: 1 byte
+ // : bytes
+ // \n: 1 byte
+ return ReadPrefixedString(remaining, TagStart);
+ }
+}
diff --git a/src/NerdBank.GitVersioning/ManagedGit/GitCommit.cs b/src/NerdBank.GitVersioning/ManagedGit/GitCommit.cs
index 2e01be1db..35df39476 100644
--- a/src/NerdBank.GitVersioning/ManagedGit/GitCommit.cs
+++ b/src/NerdBank.GitVersioning/ManagedGit/GitCommit.cs
@@ -48,6 +48,11 @@ public struct GitCommit : IEquatable
///
public GitSignature? Author { get; set; }
+ ///
+ /// Gets or sets the committer of this commit.
+ ///
+ public GitSignature? Committer { get; set; }
+
public static bool operator ==(GitCommit left, GitCommit right)
{
return Equals(left, right);
diff --git a/src/NerdBank.GitVersioning/ManagedGit/GitCommitReader.cs b/src/NerdBank.GitVersioning/ManagedGit/GitCommitReader.cs
index e4629e2ad..6d9b4cdf6 100644
--- a/src/NerdBank.GitVersioning/ManagedGit/GitCommitReader.cs
+++ b/src/NerdBank.GitVersioning/ManagedGit/GitCommitReader.cs
@@ -19,6 +19,7 @@ public static class GitCommitReader
private static readonly byte[] TreeStart = GitRepository.Encoding.GetBytes("tree ");
private static readonly byte[] ParentStart = GitRepository.Encoding.GetBytes("parent ");
private static readonly byte[] AuthorStart = GitRepository.Encoding.GetBytes("author ");
+ private static readonly byte[] CommitterStart = GitRepository.Encoding.GetBytes("committer ");
///
/// Reads a object from a .
@@ -30,7 +31,7 @@ public static class GitCommitReader
/// The of the commit.
///
///
- /// A value indicating whether to populate the field.
+ /// A value indicating whether to populate the and fields.
///
///
/// The .
@@ -67,7 +68,7 @@ public static GitCommit Read(Stream stream, GitObjectId sha, bool readAuthor = f
/// The of the commit.
///
///
- /// A value indicating whether to populate the field.
+ /// A value indicating whether to populate the and fields.
///
///
/// The .
@@ -102,11 +103,22 @@ public static GitCommit Read(ReadOnlySpan commit, GitObjectId sha, bool re
buffer = buffer.Slice(ParentLineLength);
}
- GitSignature signature = default;
+ GitSignature author = default;
+ GitSignature committer = default;
- if (readAuthor && !TryReadAuthor(buffer, out signature))
+ if (readAuthor)
{
- throw new GitException();
+ if (!TryReadAuthor(buffer, out author, out int lineLength))
+ {
+ throw new GitException();
+ }
+
+ buffer = buffer.Slice(lineLength);
+
+ if (!TryReadCommitter(buffer, out committer))
+ {
+ throw new GitException();
+ }
}
return new GitCommit()
@@ -116,15 +128,16 @@ public static GitCommit Read(ReadOnlySpan commit, GitObjectId sha, bool re
SecondParent = secondParent,
AdditionalParents = additionalParents,
Tree = tree,
- Author = readAuthor ? signature : null,
+ Author = readAuthor ? author : null,
+ Committer = readAuthor ? committer : null,
};
}
private static GitObjectId ReadTree(ReadOnlySpan line)
{
// Format: tree d8329fc1cc938780ffdd9f94e0d364e0ea74f579\n
- // 47 bytes:
- // tree: 5 bytes
+ // 46 bytes:
+ // tree: 4 bytes
// space: 1 byte
// hash: 40 bytes
// \n: 1 byte
@@ -153,16 +166,27 @@ private static bool TryReadParent(ReadOnlySpan line, out GitObjectId paren
return true;
}
- private static bool TryReadAuthor(ReadOnlySpan line, out GitSignature signature)
+ private static bool TryReadAuthor(ReadOnlySpan line, out GitSignature signature, out int lineLength)
+ {
+ return TryReadSignature(line, AuthorStart, out signature, out lineLength);
+ }
+
+ private static bool TryReadCommitter(ReadOnlySpan line, out GitSignature signature)
+ {
+ return TryReadSignature(line, CommitterStart, out signature, out _);
+ }
+
+ private static bool TryReadSignature(ReadOnlySpan line, byte[] signatureStart, out GitSignature signature, out int lineLength)
{
signature = default;
+ lineLength = default;
- if (!line.Slice(0, AuthorStart.Length).SequenceEqual(AuthorStart))
+ if (!line.Slice(0, signatureStart.Length).SequenceEqual(signatureStart))
{
return false;
}
- line = line.Slice(AuthorStart.Length);
+ line = line.Slice(signatureStart.Length);
int emailStart = line.IndexOf((byte)'<');
int emailEnd = line.IndexOf((byte)'>');
@@ -179,6 +203,7 @@ private static bool TryReadAuthor(ReadOnlySpan line, out GitSignature sign
long ticks = long.Parse(GitRepository.GetString(time.Slice(0, offsetStart)));
signature.Date = DateTimeOffset.FromUnixTimeSeconds(ticks);
+ lineLength = signatureStart.Length + lineEnd + 1;
return true;
}
}
diff --git a/src/NerdBank.GitVersioning/ManagedGit/GitObjectId.cs b/src/NerdBank.GitVersioning/ManagedGit/GitObjectId.cs
index 9dc03ef0b..f8aeb63d2 100644
--- a/src/NerdBank.GitVersioning/ManagedGit/GitObjectId.cs
+++ b/src/NerdBank.GitVersioning/ManagedGit/GitObjectId.cs
@@ -67,17 +67,17 @@ public static GitObjectId Parse(ReadOnlySpan value)
}
///
- /// Parses a which contains the hexadecimal representation of a
- /// .
+ /// Parses a of which contains the
+ /// hexadecimal representation of a .
///
///
- /// A which contains the hexadecimal representation of the
- /// .
+ /// A of which contains the
+ /// hexadecimal representation of the .
///
///
/// A .
///
- public static GitObjectId Parse(string value)
+ public static GitObjectId Parse(ReadOnlySpan value)
{
Debug.Assert(value.Length == 40);
@@ -92,6 +92,23 @@ public static GitObjectId Parse(string value)
bytes[i >> 1] = (byte)(c1 + c2);
}
+ return objectId;
+ }
+
+ ///
+ /// Parses a which contains the hexadecimal representation of a
+ /// .
+ ///
+ ///
+ /// A which contains the hexadecimal representation of the
+ /// .
+ ///
+ ///
+ /// A .
+ ///
+ public static GitObjectId Parse(string value)
+ {
+ GitObjectId objectId = Parse(value.AsSpan());
objectId.sha = value.ToLower();
return objectId;
}
@@ -109,7 +126,10 @@ public static GitObjectId Parse(string value)
///
public static GitObjectId ParseHex(ReadOnlySpan value)
{
- Debug.Assert(value.Length == 40);
+ if (value.Length != 40)
+ {
+ throw new ArgumentException($"Length should be exactly 40, but was {value.Length}.", nameof(value));
+ }
var objectId = default(GitObjectId);
Span bytes = objectId.Value;
diff --git a/src/NerdBank.GitVersioning/ManagedGit/GitObjectStream.cs b/src/NerdBank.GitVersioning/ManagedGit/GitObjectStream.cs
index 7b4749d0e..a452d8898 100644
--- a/src/NerdBank.GitVersioning/ManagedGit/GitObjectStream.cs
+++ b/src/NerdBank.GitVersioning/ManagedGit/GitObjectStream.cs
@@ -45,7 +45,7 @@ public GitObjectStream(Stream stream, string objectType)
private void ReadObjectTypeAndLength(string objectType)
{
Span buffer = stackalloc byte[128];
- this.Read(buffer.Slice(0, objectType.Length + 1));
+ this.ReadAll(buffer.Slice(0, objectType.Length + 1));
string? actualObjectType = GitRepository.GetString(buffer.Slice(0, objectType.Length));
this.ObjectType = actualObjectType;
@@ -55,7 +55,7 @@ private void ReadObjectTypeAndLength(string objectType)
while (headerLength < buffer.Length)
{
- this.Read(buffer.Slice(headerLength, 1));
+ this.ReadAll(buffer.Slice(headerLength, 1));
if (buffer[headerLength] == 0)
{
diff --git a/src/NerdBank.GitVersioning/ManagedGit/GitPack.cs b/src/NerdBank.GitVersioning/ManagedGit/GitPack.cs
index 8b0934285..d8b94526b 100644
--- a/src/NerdBank.GitVersioning/ManagedGit/GitPack.cs
+++ b/src/NerdBank.GitVersioning/ManagedGit/GitPack.cs
@@ -3,6 +3,7 @@
#nullable enable
+using System.Diagnostics.CodeAnalysis;
using System.IO.MemoryMappedFiles;
using System.Text;
@@ -141,7 +142,7 @@ public GitPack(GetObjectFromRepositoryDelegate getObjectFromRepositoryDelegate,
///
/// if the object was found; otherwise, .
///
- public bool TryGetObject(GitObjectId objectId, string objectType, out Stream? value)
+ public bool TryGetObject(GitObjectId objectId, string objectType, [NotNullWhen(true)] out Stream? value)
{
long? offset = this.GetOffset(objectId);
@@ -152,8 +153,18 @@ public bool TryGetObject(GitObjectId objectId, string objectType, out Stream? va
}
else
{
- value = this.GetObject(offset.Value, objectType);
- return true;
+ // This try-catch should probably be replaced by a non-throwing GetObject implementation.
+ // This is in turn dependend on a proper GitPackReader.TryGetObject implementation.
+ try
+ {
+ value = this.GetObject(offset.Value, objectType);
+ return true;
+ }
+ catch (GitException gexc) when (gexc.ErrorCode == GitException.ErrorCodes.ObjectNotFound)
+ {
+ value = null;
+ return false;
+ }
}
}
@@ -178,9 +189,14 @@ public Stream GetObject(long offset, string objectType)
}
#endif
- if (this.cache.TryOpen(offset, out Stream? stream))
+ if (this.cache.TryOpen(offset, out (Stream ContentStream, string ObjectType)? hit))
{
- return stream!;
+ if (hit.Value.ObjectType != objectType)
+ {
+ throw new GitException($"An object of type {objectType} could not be located at offset {offset}.") { ErrorCode = GitException.ErrorCodes.ObjectNotFound };
+ }
+
+ return hit.Value.ContentStream;
}
GitPackObjectType packObjectType;
@@ -199,6 +215,10 @@ public Stream GetObject(long offset, string objectType)
packObjectType = GitPackObjectType.OBJ_BLOB;
break;
+ case "tag":
+ packObjectType = GitPackObjectType.OBJ_TAG;
+ break;
+
default:
throw new GitException($"The object type '{objectType}' is not supported by the {nameof(GitPack)} class.");
}
@@ -216,7 +236,7 @@ public Stream GetObject(long offset, string objectType)
throw;
}
- return this.cache.Add(offset, objectStream);
+ return this.cache.Add(offset, objectStream, objectType);
}
///
diff --git a/src/NerdBank.GitVersioning/ManagedGit/GitPackCache.cs b/src/NerdBank.GitVersioning/ManagedGit/GitPackCache.cs
index 50e054abe..eaefca928 100644
--- a/src/NerdBank.GitVersioning/ManagedGit/GitPackCache.cs
+++ b/src/NerdBank.GitVersioning/ManagedGit/GitPackCache.cs
@@ -22,14 +22,14 @@ public abstract class GitPackCache : IDisposable
///
/// The offset of the Git object in the Git pack.
///
- ///
- /// A which will be set to the cached Git object.
+ ///
+ /// A (, ContentType) tuple which will be set to the cached data if found.
///
///
/// if the object was found in cache; otherwise,
/// .
///
- public abstract bool TryOpen(long offset, [NotNullWhen(true)] out Stream? stream);
+ public abstract bool TryOpen(long offset, [NotNullWhen(true)] out (Stream ContentStream, string ObjectType)? hit);
///
/// Gets statistics about the cache usage.
@@ -49,10 +49,11 @@ public abstract class GitPackCache : IDisposable
/// A which represents the object to add. This stream
/// will be copied to the cache.
///
+ /// The object type of the object to add to the cache.
///
/// A which represents the cached entry.
///
- public abstract Stream Add(long offset, Stream stream);
+ public abstract Stream Add(long offset, Stream stream, string objectType);
///
public void Dispose()
diff --git a/src/NerdBank.GitVersioning/ManagedGit/GitPackDeltafiedStream.cs b/src/NerdBank.GitVersioning/ManagedGit/GitPackDeltafiedStream.cs
index 45c9db132..3c08112d0 100644
--- a/src/NerdBank.GitVersioning/ManagedGit/GitPackDeltafiedStream.cs
+++ b/src/NerdBank.GitVersioning/ManagedGit/GitPackDeltafiedStream.cs
@@ -65,7 +65,7 @@ public override long Position
set => throw new NotImplementedException();
}
-#if NETSTANDARD2_0
+#if NETFRAMEWORK
///
/// Reads a sequence of bytes from the current and advances the position
/// within the stream by the number of bytes read.
diff --git a/src/NerdBank.GitVersioning/ManagedGit/GitPackMemoryCache.cs b/src/NerdBank.GitVersioning/ManagedGit/GitPackMemoryCache.cs
index c7f8c6eb8..8043d87e1 100644
--- a/src/NerdBank.GitVersioning/ManagedGit/GitPackMemoryCache.cs
+++ b/src/NerdBank.GitVersioning/ManagedGit/GitPackMemoryCache.cs
@@ -21,33 +21,33 @@ namespace Nerdbank.GitVersioning.ManagedGit;
/// twice, it is read from the , rather than the underlying .
///
///
-/// and return
+/// and return
/// objects which may operate on the same underlying , but independently maintain
/// their state.
///
///
public class GitPackMemoryCache : GitPackCache
{
- private readonly Dictionary cache = new Dictionary();
+ private readonly Dictionary cache = new();
///
- public override Stream Add(long offset, Stream stream)
+ public override Stream Add(long offset, Stream stream, string objectType)
{
var cacheStream = new GitPackMemoryCacheStream(stream);
- this.cache.Add(offset, cacheStream);
+ this.cache.Add(offset, (cacheStream, objectType));
return new GitPackMemoryCacheViewStream(cacheStream);
}
///
- public override bool TryOpen(long offset, [NotNullWhen(true)] out Stream? stream)
+ public override bool TryOpen(long offset, [NotNullWhen(true)] out (Stream ContentStream, string ObjectType)? hit)
{
- if (this.cache.TryGetValue(offset, out GitPackMemoryCacheStream? cacheStream))
+ if (this.cache.TryGetValue(offset, out (GitPackMemoryCacheStream Stream, string ObjectType) tuple))
{
- stream = new GitPackMemoryCacheViewStream(cacheStream!);
+ hit = (new GitPackMemoryCacheViewStream(tuple.Stream), tuple.ObjectType);
return true;
}
- stream = null;
+ hit = null;
return false;
}
@@ -64,8 +64,8 @@ protected override void Dispose(bool disposing)
{
while (this.cache.Count > 0)
{
- long key = this.cache.Keys.First();
- GitPackMemoryCacheStream? stream = this.cache[key];
+ var key = this.cache.Keys.First();
+ (GitPackMemoryCacheStream? stream, _) = this.cache[key];
stream.Dispose();
this.cache.Remove(key);
}
diff --git a/src/NerdBank.GitVersioning/ManagedGit/GitPackMemoryCacheStream.cs b/src/NerdBank.GitVersioning/ManagedGit/GitPackMemoryCacheStream.cs
index 79dc845c1..703d3aa35 100644
--- a/src/NerdBank.GitVersioning/ManagedGit/GitPackMemoryCacheStream.cs
+++ b/src/NerdBank.GitVersioning/ManagedGit/GitPackMemoryCacheStream.cs
@@ -44,7 +44,7 @@ public override void Flush()
throw new NotSupportedException();
}
-#if NETSTANDARD2_0
+#if NETFRAMEWORK
public int Read(Span buffer)
#else
///
diff --git a/src/NerdBank.GitVersioning/ManagedGit/GitPackMemoryCacheViewStream.cs b/src/NerdBank.GitVersioning/ManagedGit/GitPackMemoryCacheViewStream.cs
index 80f47b33e..9d97134da 100644
--- a/src/NerdBank.GitVersioning/ManagedGit/GitPackMemoryCacheViewStream.cs
+++ b/src/NerdBank.GitVersioning/ManagedGit/GitPackMemoryCacheViewStream.cs
@@ -42,7 +42,7 @@ public override int Read(byte[] buffer, int offset, int count)
return this.Read(buffer.AsSpan(offset, count));
}
-#if NETSTANDARD2_0
+#if NETFRAMEWORK
public int Read(Span buffer)
#else
///
diff --git a/src/NerdBank.GitVersioning/ManagedGit/GitPackNullCache.cs b/src/NerdBank.GitVersioning/ManagedGit/GitPackNullCache.cs
index f96e8ba94..67ffdc14e 100644
--- a/src/NerdBank.GitVersioning/ManagedGit/GitPackNullCache.cs
+++ b/src/NerdBank.GitVersioning/ManagedGit/GitPackNullCache.cs
@@ -19,15 +19,15 @@ public class GitPackNullCache : GitPackCache
public static GitPackNullCache Instance { get; } = new GitPackNullCache();
///
- public override Stream Add(long offset, Stream stream)
+ public override Stream Add(long offset, Stream stream, string objectType)
{
return stream;
}
///
- public override bool TryOpen(long offset, [NotNullWhen(true)] out Stream? stream)
+ public override bool TryOpen(long offset, [NotNullWhen(true)] out (Stream ContentStream, string ObjectType)? hit)
{
- stream = null;
+ hit = null;
return false;
}
diff --git a/src/NerdBank.GitVersioning/ManagedGit/GitPackPooledStream.cs b/src/NerdBank.GitVersioning/ManagedGit/GitPackPooledStream.cs
index 53ca67696..efb80fb8a 100644
--- a/src/NerdBank.GitVersioning/ManagedGit/GitPackPooledStream.cs
+++ b/src/NerdBank.GitVersioning/ManagedGit/GitPackPooledStream.cs
@@ -62,7 +62,7 @@ public override void Flush()
this.stream.Flush();
}
-#if !NETSTANDARD2_0
+#if NET6_0_OR_GREATER
///
public override int Read(Span buffer)
{
diff --git a/src/NerdBank.GitVersioning/ManagedGit/GitPackReader.cs b/src/NerdBank.GitVersioning/ManagedGit/GitPackReader.cs
index 12ca78659..df76e5861 100644
--- a/src/NerdBank.GitVersioning/ManagedGit/GitPackReader.cs
+++ b/src/NerdBank.GitVersioning/ManagedGit/GitPackReader.cs
@@ -24,60 +24,67 @@ public static Stream GetObject(GitPack pack, Stream stream, long offset, string
throw new ArgumentNullException(nameof(stream));
}
- // Read the signature
+ try
+ {
+ // Read the signature
#if DEBUG
- stream.Seek(0, SeekOrigin.Begin);
- Span buffer = stackalloc byte[12];
- stream.ReadAll(buffer);
+ stream.Seek(0, SeekOrigin.Begin);
+ Span buffer = stackalloc byte[12];
+ stream.ReadAll(buffer);
- Debug.Assert(buffer.Slice(0, 4).SequenceEqual(Signature));
+ Debug.Assert(buffer.Slice(0, 4).SequenceEqual(Signature));
- int versionNumber = BinaryPrimitives.ReadInt32BigEndian(buffer.Slice(4, 4));
- Debug.Assert(versionNumber == 2);
+ int versionNumber = BinaryPrimitives.ReadInt32BigEndian(buffer.Slice(4, 4));
+ Debug.Assert(versionNumber == 2);
- int numberOfObjects = BinaryPrimitives.ReadInt32BigEndian(buffer.Slice(8, 4));
+ int numberOfObjects = BinaryPrimitives.ReadInt32BigEndian(buffer.Slice(8, 4));
#endif
- stream.Seek(offset, SeekOrigin.Begin);
+ stream.Seek(offset, SeekOrigin.Begin);
- (GitPackObjectType type, long decompressedSize) = ReadObjectHeader(stream);
+ (GitPackObjectType type, long decompressedSize) = ReadObjectHeader(stream);
- if (type == GitPackObjectType.OBJ_OFS_DELTA)
- {
- long baseObjectRelativeOffset = ReadVariableLengthInteger(stream);
- long baseObjectOffset = offset - baseObjectRelativeOffset;
+ if (type == GitPackObjectType.OBJ_OFS_DELTA)
+ {
+ long baseObjectRelativeOffset = ReadVariableLengthInteger(stream);
+ long baseObjectOffset = offset - baseObjectRelativeOffset;
- var deltaStream = new ZLibStream(stream, decompressedSize);
- Stream? baseObjectStream = pack.GetObject(baseObjectOffset, objectType);
+ var deltaStream = new ZLibStream(stream, decompressedSize);
+ Stream? baseObjectStream = pack.GetObject(baseObjectOffset, objectType);
- return new GitPackDeltafiedStream(baseObjectStream, deltaStream);
- }
- else if (type == GitPackObjectType.OBJ_REF_DELTA)
- {
- Span baseObjectId = stackalloc byte[20];
- stream.ReadAll(baseObjectId);
+ return new GitPackDeltafiedStream(baseObjectStream, deltaStream);
+ }
+ else if (type == GitPackObjectType.OBJ_REF_DELTA)
+ {
+ Span baseObjectId = stackalloc byte[20];
+ stream.ReadAll(baseObjectId);
- Stream baseObject = pack.GetObjectFromRepository(GitObjectId.Parse(baseObjectId), objectType)!;
- var seekableBaseObject = new GitPackMemoryCacheStream(baseObject);
+ Stream baseObject = pack.GetObjectFromRepository(GitObjectId.Parse(baseObjectId), objectType)!;
+ var seekableBaseObject = new GitPackMemoryCacheStream(baseObject);
- var deltaStream = new ZLibStream(stream, decompressedSize);
+ var deltaStream = new ZLibStream(stream, decompressedSize);
- return new GitPackDeltafiedStream(seekableBaseObject, deltaStream);
- }
+ return new GitPackDeltafiedStream(seekableBaseObject, deltaStream);
+ }
+
+ // Tips for handling deltas: https://github.com/choffmeister/gitnet/blob/4d907623d5ce2d79a8875aee82e718c12a8aad0b/src/GitNet/GitPack.cs
+ if (type != packObjectType)
+ {
+ throw new GitException($"An object of type {objectType} could not be located at offset {offset}.") { ErrorCode = GitException.ErrorCodes.ObjectNotFound };
+ }
- // Tips for handling deltas: https://github.com/choffmeister/gitnet/blob/4d907623d5ce2d79a8875aee82e718c12a8aad0b/src/GitNet/GitPack.cs
- if (type != packObjectType)
+ return new ZLibStream(stream, decompressedSize);
+ }
+ catch (EndOfStreamException eof)
{
- throw new GitException($"An object of type {objectType} could not be located at offset {offset}.") { ErrorCode = GitException.ErrorCodes.ObjectNotFound };
+ throw new GitException($"An object of type {objectType} could not be located at offset {offset}.", eof) { ErrorCode = GitException.ErrorCodes.ObjectNotFound };
}
-
- return new ZLibStream(stream, decompressedSize);
}
private static (GitPackObjectType ObjectType, long Length) ReadObjectHeader(Stream stream)
{
Span value = stackalloc byte[1];
- stream.Read(value);
+ stream.ReadAll(value);
var type = (GitPackObjectType)((value[0] & 0b0111_0000) >> 4);
long length = value[0] & 0b_1111;
@@ -91,7 +98,7 @@ private static (GitPackObjectType ObjectType, long Length) ReadObjectHeader(Stre
do
{
- stream.Read(value);
+ stream.ReadAll(value);
length = length | ((value[0] & 0b0111_1111L) << shift);
shift += 7;
}
diff --git a/src/NerdBank.GitVersioning/ManagedGit/GitRepository.cs b/src/NerdBank.GitVersioning/ManagedGit/GitRepository.cs
index 183f04ef2..7d37f7150 100644
--- a/src/NerdBank.GitVersioning/ManagedGit/GitRepository.cs
+++ b/src/NerdBank.GitVersioning/ManagedGit/GitRepository.cs
@@ -1,4 +1,4 @@
-๏ปฟ// Copyright (c) .NET Foundation and Contributors. All rights reserved.
+// Copyright (c) .NET Foundation and Contributors. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
#nullable enable
@@ -296,7 +296,7 @@ public GitObjectId GetHeadCommitSha()
/// Gets the current HEAD commit, if available.
///
///
- /// A value indicating whether to populate the field.
+ /// A value indicating whether to populate the and fields.
///
///
/// The current HEAD commit, or if not available.
@@ -320,7 +320,7 @@ public GitObjectId GetHeadCommitSha()
/// The Git object Id of the commit.
///
///
- /// A value indicating whether to populate the field.
+ /// A value indicating whether to populate the and fields.
///
///
/// The requested commit.
@@ -377,38 +377,29 @@ public GitCommit GetCommit(GitObjectId sha, bool readAuthor = false)
}
// Match in packed-refs file.
- string packedRefPath = Path.Combine(this.CommonDirectory, "packed-refs");
- if (File.Exists(packedRefPath))
+ foreach ((string line, string? _) in this.EnumeratePackedRefsWithPeelLines(out var _))
{
- using StreamReader? refReader = File.OpenText(packedRefPath);
- string? line;
- while ((line = refReader.ReadLine()) is object)
+ var refName = line.Substring(41);
+ GitObjectId GetObjId() => GitObjectId.Parse(line.AsSpan().Slice(0, 40));
+
+ if (string.Equals(refName, objectish, StringComparison.Ordinal))
{
- if (line.StartsWith("#", StringComparison.Ordinal))
+ return GetObjId();
+ }
+ else if (!objectish.StartsWith("refs/", StringComparison.Ordinal))
+ {
+ // Not a canonical ref, so try heads and tags
+ if (string.Equals(refName, "refs/heads/" + objectish, StringComparison.Ordinal))
{
- continue;
+ return GetObjId();
}
-
- string refName = line.Substring(41);
- if (string.Equals(refName, objectish, StringComparison.Ordinal))
+ else if (string.Equals(refName, "refs/tags/" + objectish, StringComparison.Ordinal))
{
- return GitObjectId.Parse(line.Substring(0, 40));
+ return GetObjId();
}
- else if (!objectish.StartsWith("refs/", StringComparison.Ordinal))
+ else if (string.Equals(refName, "refs/remotes/" + objectish, StringComparison.Ordinal))
{
- // Not a canonical ref, so try heads and tags
- if (string.Equals(refName, "refs/heads/" + objectish, StringComparison.Ordinal))
- {
- return GitObjectId.Parse(line.Substring(0, 40));
- }
- else if (string.Equals(refName, "refs/tags/" + objectish, StringComparison.Ordinal))
- {
- return GitObjectId.Parse(line.Substring(0, 40));
- }
- else if (string.Equals(refName, "refs/remotes/" + objectish, StringComparison.Ordinal))
- {
- return GitObjectId.Parse(line.Substring(0, 40));
- }
+ return GetObjId();
}
}
}
@@ -582,7 +573,7 @@ public GitObjectId GetTreeEntry(GitObjectId treeId, ReadOnlySpan nodeName)
/// if the object could be found; otherwise,
/// .
///
- public bool TryGetObjectBySha(GitObjectId sha, string objectType, out Stream? value)
+ public bool TryGetObjectBySha(GitObjectId sha, string objectType, [NotNullWhen(true)] out Stream? value)
{
#if DEBUG
if (!this.histogram.TryAdd(sha, 1))
@@ -648,6 +639,62 @@ public string GetCacheStatistics()
return builder.ToString();
}
+ ///
+ /// Returns a list of canonical names of tags that point to the given Git object id.
+ ///
+ /// The git object id to get the corresponding tags for.
+ /// A list of canonical names of tags.
+ public List LookupTags(GitObjectId objectId)
+ {
+ var tags = new List();
+
+ void HandleCandidate(GitObjectId pointsAt, string tagName, bool isPeeled)
+ {
+ if (objectId.Equals(pointsAt))
+ {
+ tags.Add(tagName);
+ }
+ else if (!isPeeled && this.TryGetObjectBySha(pointsAt, "tag", out Stream? tagContent))
+ {
+ GitAnnotatedTag tag = GitAnnotatedTagReader.Read(tagContent, pointsAt);
+ if ("commit".Equals(tag.Type, StringComparison.Ordinal) && objectId.Equals(tag.Object))
+ {
+ tags.Add($"refs/tags/{tag.Tag}");
+ }
+ }
+ }
+
+ // Both tag files and packed-refs might either contain lightweight or annotated tags.
+ // tag files
+ var tagDir = Path.Combine(this.CommonDirectory, "refs", "tags");
+ foreach (var tagFile in Directory.EnumerateFiles(tagDir, "*", SearchOption.AllDirectories))
+ {
+ var tagObjId = GitObjectId.ParseHex(File.ReadAllBytes(tagFile).AsSpan().Slice(0, 40));
+
+ // \ is not legal in git tag names
+ var tagName = tagFile.Substring(tagDir.Length + 1).Replace('\\', '/');
+ var canonical = $"refs/tags/{tagName}";
+
+ HandleCandidate(tagObjId, canonical, false);
+ }
+
+ // packed-refs file
+ foreach ((string line, string? peelLine) in this.EnumeratePackedRefsWithPeelLines(out var tagsPeeled))
+ {
+ var refName = line.Substring(41);
+
+ // If we remove this check we do find local and remote branch heads too.
+ if (refName.StartsWith("refs/tags/", StringComparison.Ordinal))
+ {
+ ReadOnlySpan tagSpan = peelLine is null ? line.AsSpan().Slice(0, 40) : peelLine.AsSpan().Slice(1, 40);
+ var tagObjId = GitObjectId.Parse(tagSpan);
+ HandleCandidate(tagObjId, refName, tagsPeeled);
+ }
+ }
+
+ return tags;
+ }
+
///
public override string ToString()
{
@@ -668,7 +715,7 @@ public void Dispose()
private static string TrimEndingDirectorySeparator(string path)
{
-#if NETSTANDARD2_0
+#if NETFRAMEWORK
if (string.IsNullOrEmpty(path) || path.Length == 1)
{
return path;
@@ -699,7 +746,7 @@ private static bool TryConvertHexStringToByteArray(string hexString, Span
Requires.Argument(data.Length == hexString.Length / 2, nameof(data), "Length must be exactly half that of " + nameof(hexString) + ".");
for (int index = 0; index < data.Length; index++)
{
-#if !NETSTANDARD2_0
+#if NET6_0_OR_GREATER
ReadOnlySpan byteValue = hexString.AsSpan(index * 2, 2);
if (!byte.TryParse(byteValue, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out data[index]))
{
@@ -732,7 +779,8 @@ private bool TryGetObjectByPath(GitObjectId sha, string objectType, [NotNullWhen
if (string.CompareOrdinal(objectStream.ObjectType, objectType) != 0)
{
- throw new GitException($"Got a {objectStream.ObjectType} instead of a {objectType} when opening object {sha}");
+ value = null;
+ return false;
}
value = objectStream;
@@ -767,4 +815,112 @@ private ReadOnlyMemory LoadPacks()
return packs.AsMemory(0, addCount);
}
+
+ private IEnumerable EnumerateLines(string filePath)
+ {
+ using StreamReader sr = File.OpenText(filePath);
+ string? line;
+ while ((line = sr.ReadLine()) is not null)
+ {
+ yield return line;
+ }
+ }
+
+ ///
+ /// Enumerate the lines in the packed-refs file. Skips comment lines.
+ ///
+ private IEnumerable EnumeratePackedRefsRaw(out bool tagsPeeled)
+ {
+ tagsPeeled = false;
+ string packedRefPath = Path.Combine(this.CommonDirectory, "packed-refs");
+ if (!File.Exists(packedRefPath))
+ {
+ return Enumerable.Empty();
+ }
+
+ // We use the rather simple EnumerateLines iterator here because this way
+ // the disposable StreamReader can survive when this method already returned and
+ // Enumerate() runs.
+ IEnumerator lines = this.EnumerateLines(packedRefPath).GetEnumerator();
+ if (!lines.MoveNext())
+ {
+ return Enumerable.Empty();
+ }
+
+ // see https://github.com/git/git/blob/d9d677b2d8cc5f70499db04e633ba7a400f64cbf/refs/packed-backend.c#L618
+ const string fileHeaderPrefix = "# pack-refs with:";
+ string firstLine = lines.Current;
+ if (firstLine.StartsWith(fileHeaderPrefix))
+ {
+ // could contain "peeled" or "fully-peeled" or (typically) both.
+ // The meaning of any of these is equivalent for our use case.
+#if NETFRAMEWORK
+ tagsPeeled = firstLine.IndexOf("peeled", StringComparison.Ordinal) >= 0;
+#else
+ tagsPeeled = firstLine.Contains("peeled", StringComparison.Ordinal);
+#endif
+ }
+
+ IEnumerable Enumerate()
+ {
+ do
+ {
+ // We process the first line here again and continue because it starts with #.
+ // We could add a MoveNext() above if the header prefix was found, but we'd need
+ // to handle the case that it returned false then.
+ var line = lines.Current;
+ if (line.StartsWith("#", StringComparison.Ordinal))
+ {
+ continue;
+ }
+
+ yield return line;
+ }
+ while (lines.MoveNext());
+ }
+
+ return Enumerate();
+ }
+
+ ///
+ /// Enumerate the lines in the packed-refs file. If a line has a corresponding peel
+ /// line, they are returned together.
+ ///
+ private IEnumerable<(string Record, string? PeelLine)> EnumeratePackedRefsWithPeelLines(out bool tagsPeeled)
+ {
+ IEnumerable rawEnum = this.EnumeratePackedRefsRaw(out tagsPeeled);
+ return Enumerate();
+
+ IEnumerable<(string Record, string? PeelLine)> Enumerate()
+ {
+ string? recordLine = null;
+ foreach (var line in rawEnum)
+ {
+ if (line[0] == '^')
+ {
+ if (recordLine is null)
+ {
+ throw new GitException("packed-refs format is broken. Found a peel line without a preceeding record it belongs to.");
+ }
+
+ yield return (recordLine, line);
+ recordLine = null;
+ }
+ else
+ {
+ if (recordLine is not null)
+ {
+ yield return (recordLine, null);
+ }
+
+ recordLine = line;
+ }
+ }
+
+ if (recordLine is not null)
+ {
+ yield return (recordLine, null);
+ }
+ }
+ }
}
diff --git a/src/NerdBank.GitVersioning/ManagedGit/MemoryMappedStream.cs b/src/NerdBank.GitVersioning/ManagedGit/MemoryMappedStream.cs
index cecef5edd..70a298702 100644
--- a/src/NerdBank.GitVersioning/ManagedGit/MemoryMappedStream.cs
+++ b/src/NerdBank.GitVersioning/ManagedGit/MemoryMappedStream.cs
@@ -73,7 +73,7 @@ public override int Read(byte[] buffer, int offset, int count)
return read;
}
-#if !NETSTANDARD2_0
+#if NET6_0_OR_GREATER
///
public override int Read(Span buffer)
{
diff --git a/src/NerdBank.GitVersioning/ManagedGit/StreamExtensions.cs b/src/NerdBank.GitVersioning/ManagedGit/StreamExtensions.cs
index 87ca6a1fc..142312e8f 100644
--- a/src/NerdBank.GitVersioning/ManagedGit/StreamExtensions.cs
+++ b/src/NerdBank.GitVersioning/ManagedGit/StreamExtensions.cs
@@ -78,7 +78,7 @@ public static int ReadMbsInt(this Stream stream)
return value;
}
-#if NETSTANDARD2_0
+#if NETFRAMEWORK
///
/// Reads a sequence of bytes from the current stream and advances the position within the stream by
/// the number of bytes read.
diff --git a/src/NerdBank.GitVersioning/ManagedGit/ZLibStream.cs b/src/NerdBank.GitVersioning/ManagedGit/ZLibStream.cs
index 564380254..49d58afc3 100644
--- a/src/NerdBank.GitVersioning/ManagedGit/ZLibStream.cs
+++ b/src/NerdBank.GitVersioning/ManagedGit/ZLibStream.cs
@@ -92,7 +92,7 @@ public override int Read(byte[] array, int offset, int count)
return read;
}
-#if !NETSTANDARD2_0
+#if NET6_0_OR_GREATER
///
public override int Read(Span buffer)
{
@@ -110,7 +110,7 @@ public override async Task ReadAsync(byte[] array, int offset, int count, C
return read;
}
-#if !NETSTANDARD2_0
+#if NET6_0_OR_GREATER
///
public override async ValueTask ReadAsync(Memory buffer, CancellationToken cancellationToken = default)
{
diff --git a/src/NerdBank.GitVersioning/Nerdbank.GitVersioning.csproj b/src/NerdBank.GitVersioning/Nerdbank.GitVersioning.csproj
index 54346b178..5d4a4af4a 100644
--- a/src/NerdBank.GitVersioning/Nerdbank.GitVersioning.csproj
+++ b/src/NerdBank.GitVersioning/Nerdbank.GitVersioning.csproj
@@ -1,6 +1,6 @@
-๏ปฟ
+
- netstandard2.0;net6.0
+ net472;net8.0
true
Full
false
diff --git a/src/NerdBank.GitVersioning/NoGit/NoGitContext.cs b/src/NerdBank.GitVersioning/NoGit/NoGitContext.cs
index b1e15b472..24e861790 100644
--- a/src/NerdBank.GitVersioning/NoGit/NoGitContext.cs
+++ b/src/NerdBank.GitVersioning/NoGit/NoGitContext.cs
@@ -30,9 +30,14 @@ public NoGitContext(string workingTreePath)
///
public override DateTimeOffset? GitCommitDate => null;
+ public override DateTimeOffset? GitCommitAuthorDate => null;
+
///
public override string? HeadCanonicalName => null;
+ ///
+ public override IReadOnlyCollection? HeadTags => null;
+
private string DebuggerDisplay => $"\"{this.WorkingTreePath}\" (no-git)";
///
diff --git a/src/NerdBank.GitVersioning/ReleaseManager.cs b/src/NerdBank.GitVersioning/ReleaseManager.cs
index 9dc198010..2b1ceb6a6 100644
--- a/src/NerdBank.GitVersioning/ReleaseManager.cs
+++ b/src/NerdBank.GitVersioning/ReleaseManager.cs
@@ -1,6 +1,7 @@
๏ปฟ// Copyright (c) .NET Foundation and Contributors. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+using System.Globalization;
using LibGit2Sharp;
using Nerdbank.GitVersioning.LibGit2;
using Newtonsoft.Json;
@@ -127,7 +128,10 @@ public enum ReleaseManagerOutputMode
///
/// The output format to use for writing to stdout.
///
- public void PrepareRelease(string projectDirectory, string releaseUnstableTag = null, Version nextVersion = null, VersionOptions.ReleaseVersionIncrement? versionIncrement = null, ReleaseManagerOutputMode outputMode = default)
+ ///
+ /// An optional, custom message to use for the commit that sets the new version number. May use {0} to substitute the new version number.
+ ///
+ public void PrepareRelease(string projectDirectory, string releaseUnstableTag = null, Version nextVersion = null, VersionOptions.ReleaseVersionIncrement? versionIncrement = null, ReleaseManagerOutputMode outputMode = default, string unformattedCommitMessage = null)
{
Requires.NotNull(projectDirectory, nameof(projectDirectory));
@@ -168,7 +172,7 @@ public void PrepareRelease(string projectDirectory, string releaseUnstableTag =
this.WriteToOutput(releaseInfo);
}
- this.UpdateVersion(context, versionOptions.Version, releaseVersion);
+ this.UpdateVersion(context, versionOptions.Version, releaseVersion, unformattedCommitMessage);
return;
}
@@ -192,7 +196,7 @@ public void PrepareRelease(string projectDirectory, string releaseUnstableTag =
// create release branch and update version
Branch releaseBranch = repository.CreateBranch(releaseBranchName);
global::LibGit2Sharp.Commands.Checkout(repository, releaseBranch);
- this.UpdateVersion(context, versionOptions.Version, releaseVersion);
+ this.UpdateVersion(context, versionOptions.Version, releaseVersion, unformattedCommitMessage);
if (outputMode == ReleaseManagerOutputMode.Text)
{
@@ -201,7 +205,7 @@ public void PrepareRelease(string projectDirectory, string releaseUnstableTag =
// update version on main branch
global::LibGit2Sharp.Commands.Checkout(repository, originalBranchName);
- this.UpdateVersion(context, versionOptions.Version, nextDevVersion);
+ this.UpdateVersion(context, versionOptions.Version, nextDevVersion, unformattedCommitMessage);
if (outputMode == ReleaseManagerOutputMode.Text)
{
@@ -261,7 +265,7 @@ private string GetReleaseBranchName(VersionOptions versionOptions)
return branchNameFormat.Replace("{version}", versionOptions.Version.Version.ToString());
}
- private void UpdateVersion(LibGit2Context context, SemanticVersion oldVersion, SemanticVersion newVersion)
+ private void UpdateVersion(LibGit2Context context, SemanticVersion oldVersion, SemanticVersion newVersion, string unformattedCommitMessage)
{
Requires.NotNull(context, nameof(context));
@@ -276,7 +280,7 @@ private void UpdateVersion(LibGit2Context context, SemanticVersion oldVersion, S
if (!EqualityComparer.Default.Equals(versionOptions.Version, newVersion))
{
- if (versionOptions.VersionHeightPosition.HasValue && SemanticVersion.WillVersionChangeResetVersionHeight(versionOptions.Version, newVersion, versionOptions.VersionHeightPosition.Value))
+ if (versionOptions.VersionHeightOffset != -1 && versionOptions.VersionHeightPosition.HasValue && SemanticVersion.WillVersionChangeResetVersionHeight(versionOptions.Version, newVersion, versionOptions.VersionHeightPosition.Value))
{
// The version will be reset by this change, so remove the version height offset property.
versionOptions.VersionHeightOffset = null;
@@ -290,7 +294,13 @@ private void UpdateVersion(LibGit2Context context, SemanticVersion oldVersion, S
// Author a commit only if we effectively changed something.
if (!context.Repository.Head.Tip.Tree.Equals(context.Repository.Index.WriteToTree()))
{
- context.Repository.Commit($"Set version to '{versionOptions.Version}'", signature, signature, new CommitOptions() { AllowEmptyCommit = false });
+ if (string.IsNullOrEmpty(unformattedCommitMessage))
+ {
+ unformattedCommitMessage = "Set version to '{0}'";
+ }
+
+ string commitMessage = string.Format(CultureInfo.CurrentCulture, unformattedCommitMessage, versionOptions.Version);
+ context.Repository.Commit(commitMessage, signature, signature, new CommitOptions() { AllowEmptyCommit = false });
}
}
}
diff --git a/src/NerdBank.GitVersioning/VersionOracle.cs b/src/NerdBank.GitVersioning/VersionOracle.cs
index 8f43f8c5f..89157ee3c 100644
--- a/src/NerdBank.GitVersioning/VersionOracle.cs
+++ b/src/NerdBank.GitVersioning/VersionOracle.cs
@@ -61,6 +61,7 @@ public VersionOracle(GitContext context, ICloudBuild? cloudBuild = null, int? ov
}
this.BuildingRef = cloudBuild?.BuildingTag ?? cloudBuild?.BuildingBranch ?? context.HeadCanonicalName;
+
try
{
this.VersionHeight = context.CalculateVersionHeight(this.CommittedVersion, this.WorkingVersion);
@@ -102,10 +103,19 @@ public VersionOracle(GitContext context, ICloudBuild? cloudBuild = null, int? ov
: this.GitCommitId!.Substring(0, gitCommitIdShortFixedLength);
}
- if (!string.IsNullOrEmpty(this.BuildingRef) && this.VersionOptions?.PublicReleaseRefSpec?.Count > 0)
+ if (this.VersionOptions?.PublicReleaseRefSpec?.Count > 0)
{
- this.PublicRelease = this.VersionOptions.PublicReleaseRefSpec.Any(
- expr => Regex.IsMatch(this.BuildingRef, expr));
+ if (this.BuildingRef is not null)
+ {
+ this.PublicRelease = this.VersionOptions.PublicReleaseRefSpec.Any(
+ expr => Regex.IsMatch(this.BuildingRef, expr));
+ }
+
+ if (!this.PublicRelease && this.VersionOptions.PublicReleaseRefSpec.Any(expr => expr.StartsWith("^refs/tags/", StringComparison.Ordinal)) && this.Tags is not null)
+ {
+ this.PublicRelease = this.VersionOptions.PublicReleaseRefSpec.Any(
+ expr => this.Tags.Any(cand => Regex.IsMatch(cand, expr)));
+ }
}
}
@@ -255,6 +265,11 @@ public IEnumerable BuildMetadataWithCommitId
///
public DateTimeOffset? GitCommitDate => this.context.GitCommitDate;
+ ///
+ /// Gets the Git revision control commit author date for HEAD (the current source code version).
+ ///
+ public DateTimeOffset? GitCommitAuthorDate => this.context.GitCommitAuthorDate;
+
///
/// Gets or sets the number of commits in the longest single path between
/// the specified commit and the most distant ancestor (inclusive)
@@ -272,8 +287,17 @@ public IEnumerable BuildMetadataWithCommitId
///
/// Gets or sets the ref (branch or tag) being built.
///
+ ///
+ /// Just contains a tag if it is known that explicitly this tag is built, e.g. in a cloud build context.
+ ///
public string? BuildingRef { get; protected set; }
+ ///
+ /// Gets a collection of the tags that reference HEAD.
+ ///
+ [Ignore]
+ public IReadOnlyCollection? Tags => this.context.HeadTags;
+
///
/// Gets or sets the version for this project, with up to 4 components.
///
diff --git a/src/Nerdbank.GitVersioning.Tasks/AssemblyVersionInfo.cs b/src/Nerdbank.GitVersioning.Tasks/AssemblyVersionInfo.cs
index 8745d89a6..28bb33201 100644
--- a/src/Nerdbank.GitVersioning.Tasks/AssemblyVersionInfo.cs
+++ b/src/Nerdbank.GitVersioning.Tasks/AssemblyVersionInfo.cs
@@ -37,7 +37,7 @@ the code is regenerated.
------------------------------------------------------------------------------
";
-#if NET462
+#if NETFRAMEWORK
private static readonly CodeGeneratorOptions CodeGeneratorOptions = new CodeGeneratorOptions
{
BlankLinesBetweenMembers = false,
@@ -91,6 +91,8 @@ the code is regenerated.
public string GitCommitDateTicks { get; set; }
+ public string GitCommitAuthorDateTicks { get; set; }
+
public bool EmitThisAssemblyClass { get; set; } = true;
///
@@ -136,7 +138,7 @@ public string BuildCode()
return null;
}
-#if NET462
+#if NETFRAMEWORK
///
public override bool Execute()
{
@@ -186,7 +188,7 @@ public override bool Execute()
}
#endif
-#if !NET462
+#if !NETFRAMEWORK
///
public override bool Execute()
{
@@ -233,7 +235,7 @@ private static byte[] GetPublicKeyFromKeyPair(byte[] keyPair)
}
}
-#if NET462
+#if NETFRAMEWORK
private static CodeMemberField CreateField(string name, T value)
{
return new CodeMemberField(typeof(T), name)
@@ -247,7 +249,7 @@ private static IEnumerable CreateDateTimeField(string name, Date
{
Requires.NotNullOrEmpty(name, nameof(name));
- ////internal static System.DateTime GitCommitDate => new System.DateTime({ticks}, System.DateTimeKind.Utc);");
+ ////internal static global::System.DateTime GitCommitDate => new global::System.DateTime({ticks}, global::System.DateTimeKind.Utc);");
var property = new CodeMemberProperty()
{
@@ -294,7 +296,7 @@ private CodeTypeDeclaration CreateThisAssemblyClass()
var codeAttributeDeclarationCollection = new CodeAttributeDeclarationCollection();
codeAttributeDeclarationCollection.Add(new CodeAttributeDeclaration(
- "System.CodeDom.Compiler.GeneratedCode",
+ "global::System.CodeDom.Compiler.GeneratedCode",
new CodeAttributeArgument(new CodePrimitiveExpression(GeneratorName)),
new CodeAttributeArgument(new CodePrimitiveExpression(GeneratorVersion))));
thisAssembly.CustomAttributes = codeAttributeDeclarationCollection;
@@ -440,6 +442,11 @@ private void GenerateAssemblyAttributes()
fields.Add("GitCommitDate", (new DateTime(gitCommitDateTicks, DateTimeKind.Utc), true));
}
+ if (long.TryParse(this.GitCommitAuthorDateTicks, out long gitCommitAuthorDateTicks))
+ {
+ fields.Add("GitCommitAuthorDate", (new DateTime(gitCommitAuthorDateTicks, DateTimeKind.Utc), true));
+ }
+
if (this.AdditionalThisAssemblyFields is object)
{
foreach (ITaskItem item in this.AdditionalThisAssemblyFields)
@@ -724,7 +731,7 @@ internal override void AddThisAssemblyMember(string name, bool value)
internal override void AddThisAssemblyMember(string name, DateTime value)
{
- this.CodeBuilder.AppendLine($" static member internal {name} = new System.DateTime({value.Ticks}L, System.DateTimeKind.Utc)");
+ this.CodeBuilder.AppendLine($" static member internal {name} = new global.System.DateTime({value.Ticks}L, global.System.DateTimeKind.Utc)");
}
internal override void StartAssemblyAttributes()
@@ -739,7 +746,7 @@ internal override void EndAssemblyAttributes()
internal override void DeclareAttribute(Type type, string arg)
{
- this.CodeBuilder.AppendLine($"[]");
+ this.CodeBuilder.AppendLine($"[]");
}
internal override void EndThisAssemblyClass()
@@ -750,10 +757,10 @@ internal override void EndThisAssemblyClass()
internal override void StartThisAssemblyClass()
{
this.CodeBuilder.AppendLine($"#if {CompilerDefinesAroundGeneratedCodeAttribute}");
- this.CodeBuilder.AppendLine($"[]");
+ this.CodeBuilder.AppendLine($"[]");
this.CodeBuilder.AppendLine("#endif");
this.CodeBuilder.AppendLine($"#if {CompilerDefinesAroundExcludeFromCodeCoverageAttribute}");
- this.CodeBuilder.AppendLine("[]");
+ this.CodeBuilder.AppendLine("[]");
this.CodeBuilder.AppendLine("#endif");
this.CodeBuilder.AppendLine("type internal ThisAssembly() =");
}
@@ -778,7 +785,7 @@ internal override void AddComment(string comment)
internal override void DeclareAttribute(Type type, string arg)
{
- this.CodeBuilder.AppendLine($"[assembly: {type.FullName}(\"{arg}\")]");
+ this.CodeBuilder.AppendLine($"[assembly: global::{type.FullName}(\"{arg}\")]");
}
internal override void StartThisAssemblyClass()
@@ -789,10 +796,10 @@ internal override void StartThisAssemblyClass()
}
this.CodeBuilder.AppendLine($"#if {CompilerDefinesAroundGeneratedCodeAttribute}");
- this.CodeBuilder.AppendLine($"[System.CodeDom.Compiler.GeneratedCode(\"{GeneratorName}\",\"{GeneratorVersion}\")]");
+ this.CodeBuilder.AppendLine($"[global::System.CodeDom.Compiler.GeneratedCode(\"{GeneratorName}\",\"{GeneratorVersion}\")]");
this.CodeBuilder.AppendLine("#endif");
this.CodeBuilder.AppendLine($"#if {CompilerDefinesAroundExcludeFromCodeCoverageAttribute}");
- this.CodeBuilder.AppendLine("[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]");
+ this.CodeBuilder.AppendLine("[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]");
this.CodeBuilder.AppendLine("#endif");
this.CodeBuilder.AppendLine("internal static partial class ThisAssembly {");
}
@@ -809,7 +816,7 @@ internal override void AddThisAssemblyMember(string name, bool value)
internal override void AddThisAssemblyMember(string name, DateTime value)
{
- this.CodeBuilder.AppendLine($" internal static readonly System.DateTime {name} = new System.DateTime({value.Ticks}L, System.DateTimeKind.Utc);");
+ this.CodeBuilder.AppendLine($" internal static readonly global::System.DateTime {name} = new global::System.DateTime({value.Ticks}L, global::System.DateTimeKind.Utc);");
}
internal override void EndThisAssemblyClass()
@@ -842,7 +849,7 @@ internal override void AddComment(string comment)
internal override void DeclareAttribute(Type type, string arg)
{
- this.CodeBuilder.AppendLine($"");
+ this.CodeBuilder.AppendLine($"");
}
internal override void StartThisAssemblyClass()
@@ -853,11 +860,11 @@ internal override void StartThisAssemblyClass()
}
this.CodeBuilder.AppendLine($"#If {CompilerDefinesAroundExcludeFromCodeCoverageAttribute.Replace("||", " Or ")} Then");
- this.CodeBuilder.AppendLine($"");
- this.CodeBuilder.AppendLine("");
+ this.CodeBuilder.AppendLine($"");
+ this.CodeBuilder.AppendLine("");
this.CodeBuilder.AppendLine("Partial Friend NotInheritable Class ThisAssembly");
this.CodeBuilder.AppendLine($"#ElseIf {CompilerDefinesAroundGeneratedCodeAttribute.Replace("||", " Or ")} Then");
- this.CodeBuilder.AppendLine($"");
+ this.CodeBuilder.AppendLine($"");
this.CodeBuilder.AppendLine("Partial Friend NotInheritable Class ThisAssembly");
this.CodeBuilder.AppendLine("#Else");
this.CodeBuilder.AppendLine("Partial Friend NotInheritable Class ThisAssembly");
@@ -876,7 +883,7 @@ internal override void AddThisAssemblyMember(string name, bool value)
internal override void AddThisAssemblyMember(string name, DateTime value)
{
- this.CodeBuilder.AppendLine($" Friend Shared ReadOnly {name} As System.DateTime = New System.DateTime({value.Ticks}L, System.DateTimeKind.Utc)");
+ this.CodeBuilder.AppendLine($" Friend Shared ReadOnly {name} As Global.System.DateTime = New Global.System.DateTime({value.Ticks}L, Global.System.DateTimeKind.Utc)");
}
internal override void EndThisAssemblyClass()
diff --git a/src/Nerdbank.GitVersioning.Tasks/GetBuildVersion.cs b/src/Nerdbank.GitVersioning.Tasks/GetBuildVersion.cs
index f38aeb252..2a5113b69 100644
--- a/src/Nerdbank.GitVersioning.Tasks/GetBuildVersion.cs
+++ b/src/Nerdbank.GitVersioning.Tasks/GetBuildVersion.cs
@@ -165,6 +165,13 @@ public GetBuildVersion()
[Output]
public string GitCommitDateTicks { get; private set; }
+ ///
+ /// Gets the Git revision control commit author date for HEAD (the current source code version), expressed as the number of 100-nanosecond
+ /// intervals that have elapsed since January 1, 0001 at 00:00:00.000 in the Gregorian calendar.
+ ///
+ [Output]
+ public string GitCommitAuthorDateTicks { get; private set; }
+
///
/// Gets the number of commits in the longest single path between
/// the specified commit and the most distant ancestor (inclusive)
@@ -266,6 +273,7 @@ protected override bool ExecuteInner()
this.GitCommitId = oracle.GitCommitId;
this.GitCommitIdShort = oracle.GitCommitIdShort;
this.GitCommitDateTicks = oracle.GitCommitDate is not null ? oracle.GitCommitDate.Value.UtcTicks.ToString(CultureInfo.InvariantCulture) : null;
+ this.GitCommitAuthorDateTicks = oracle.GitCommitAuthorDate is not null ? oracle.GitCommitAuthorDate.Value.UtcTicks.ToString(CultureInfo.InvariantCulture) : null;
this.GitVersionHeight = oracle.VersionHeight;
this.BuildMetadataFragment = oracle.BuildMetadataFragment;
this.CloudBuildNumber = oracle.CloudBuildNumberEnabled ? oracle.CloudBuildNumber : null;
@@ -314,6 +322,7 @@ protected override bool ExecuteInner()
{ "GitCommitId", this.GitCommitId },
{ "GitCommitIdShort", this.GitCommitIdShort },
{ "GitCommitDateTicks", this.GitCommitDateTicks },
+ { "GitCommitAuthorDateTicks", this.GitCommitAuthorDateTicks },
{ "GitVersionHeight", this.GitVersionHeight.ToString(CultureInfo.InvariantCulture) },
{ "BuildNumber", this.BuildNumber.ToString(CultureInfo.InvariantCulture) },
{ "BuildVersionNumberComponent", this.BuildNumber.ToString(CultureInfo.InvariantCulture) },
diff --git a/src/Nerdbank.GitVersioning.Tasks/NativeVersionInfo.cs b/src/Nerdbank.GitVersioning.Tasks/NativeVersionInfo.cs
index e6d9530f9..463af62e8 100644
--- a/src/Nerdbank.GitVersioning.Tasks/NativeVersionInfo.cs
+++ b/src/Nerdbank.GitVersioning.Tasks/NativeVersionInfo.cs
@@ -108,6 +108,8 @@ BLOCK NBGV_VERSION_BLOCK
public string TargetFileName { get; set; }
+ public bool UseAssemblyVersionInNativeVersion { get; set; } = true;
+
///
public override bool Execute()
{
@@ -166,7 +168,7 @@ private void CreateDefines()
return;
}
- if (!Version.TryParse(this.AssemblyVersion, out Version productVersion))
+ if (!Version.TryParse(this.AssemblyVersion, out Version productVersion) || !this.UseAssemblyVersionInNativeVersion)
{
productVersion = fileVersion;
}
@@ -177,7 +179,7 @@ private void CreateDefines()
{
if (!int.TryParse(this.AssemblyLanguage, out lcid))
{
-#if NET462
+#if NETFRAMEWORK
try
{
var cultureInfo = new CultureInfo(this.AssemblyLanguage);
diff --git a/src/Nerdbank.GitVersioning.Tasks/Nerdbank.GitVersioning.Tasks.csproj b/src/Nerdbank.GitVersioning.Tasks/Nerdbank.GitVersioning.Tasks.csproj
index da3e1629b..8b8a4a4b1 100644
--- a/src/Nerdbank.GitVersioning.Tasks/Nerdbank.GitVersioning.Tasks.csproj
+++ b/src/Nerdbank.GitVersioning.Tasks/Nerdbank.GitVersioning.Tasks.csproj
@@ -1,6 +1,6 @@
-๏ปฟ
+
- net462;net6.0
+ net472;net8.0
true
Nerdbank.GitVersioning.nuspec
@@ -25,10 +25,6 @@
true
buildCrossTargeting\
-
- true
- readme.txt
-
@@ -41,21 +37,18 @@
+
-
-
-
-
-
+
-
+
diff --git a/src/Nerdbank.GitVersioning.Tasks/Nerdbank.GitVersioning.Tasks.targets b/src/Nerdbank.GitVersioning.Tasks/Nerdbank.GitVersioning.Tasks.targets
index f61154dfe..eb4b11c2b 100644
--- a/src/Nerdbank.GitVersioning.Tasks/Nerdbank.GitVersioning.Tasks.targets
+++ b/src/Nerdbank.GitVersioning.Tasks/Nerdbank.GitVersioning.Tasks.targets
@@ -2,15 +2,15 @@
$(NuGetPackageRoot)libgit2sharp.nativebinaries\$(LibGit2SharpNativeVersion)\
- $(NuspecProperties);Version=$(Version);commit=$(GitCommitId);BaseOutputPath=$(OutputPath);LibGit2SharpNativeBinaries=$(LibGit2SharpNativeBinaries)
+ $(NuspecProperties);Version=$(Version);commit=$(GitCommitId);BaseOutputPath=$(OutputPath);LibGit2SharpNativeBinaries=$(LibGit2SharpNativeBinaries);libgit2_filename=$(libgit2_filename)
$(NuspecProperties);LKGSuffix=.LKG
- MSBuildCore\
- MSBuildFull\
+ MSBuildCore\
+ MSBuildFull\
diff --git a/src/Nerdbank.GitVersioning.Tasks/Nerdbank.GitVersioning.nuspec b/src/Nerdbank.GitVersioning.Tasks/Nerdbank.GitVersioning.nuspec
index 7cbd11177..3515b8e72 100644
--- a/src/Nerdbank.GitVersioning.Tasks/Nerdbank.GitVersioning.nuspec
+++ b/src/Nerdbank.GitVersioning.Tasks/Nerdbank.GitVersioning.nuspec
@@ -17,32 +17,32 @@ IMPORTANT: The 3.x release may produce a different version height than prior maj
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/src/Nerdbank.GitVersioning.Tasks/build/Nerdbank.GitVersioning.targets b/src/Nerdbank.GitVersioning.Tasks/build/Nerdbank.GitVersioning.targets
index bd163e4ed..ae5a21449 100644
--- a/src/Nerdbank.GitVersioning.Tasks/build/Nerdbank.GitVersioning.targets
+++ b/src/Nerdbank.GitVersioning.Tasks/build/Nerdbank.GitVersioning.targets
@@ -8,6 +8,11 @@
$(VersionDependsOn)
+
+ GetBuildVersion;
+ $(CleanDependsOn)
+
+
GetBuildVersion;
$(GenerateNuspecDependsOn)
@@ -40,8 +45,31 @@
false
false
-
- false
+
+ <_NBGV_LanguageMode Condition=" '$(Language)' == 'c++' ">Native
+ <_NBGV_LanguageMode Condition=" '$(Language)' == 'c#' ">Managed
+ <_NBGV_LanguageMode Condition=" '$(Language)' == 'cs' ">Managed
+ <_NBGV_LanguageMode Condition=" '$(Language)' == 'csharp' ">Managed
+ <_NBGV_LanguageMode Condition=" '$(Language)' == 'vb' ">Managed
+ <_NBGV_LanguageMode Condition=" '$(Language)' == 'visualbasic' ">Managed
+ <_NBGV_LanguageMode Condition=" '$(Language)' == 'visual basic' ">Managed
+ <_NBGV_LanguageMode Condition=" '$(Language)' == 'f#' ">Managed
+ <_NBGV_LanguageMode Condition=" '$(Language)' == 'fs' ">Managed
+ <_NBGV_LanguageMode Condition=" '$(Language)' == 'fsharp' ">Managed
+
+ false
@@ -115,7 +143,7 @@
-
+
$([MSBuild]::NormalizePath('$(IntermediateOutputPath)', '$(AssemblyName).Version$(DefaultLanguageSourceExtension)'))
$(VersionSourceFile).new
@@ -123,6 +151,9 @@
$(RootNamespace)
$(_TargetAssemblyProjectName)
+
+
+
-
+
$([MSBuild]::NormalizePath('$(IntermediateOutputPath)', '$(AssemblyName).Version.rc'))
$(VersionSourceFile).new
@@ -183,6 +215,7 @@
AssemblyLanguage="$(AssemblyLanguage)"
AssemblyCodepage="$(AssemblyCodepage)"
TargetFileName="$(TargetFileName)"
+ UseAssemblyVersionInNativeVersion="$(NBGV_UseAssemblyVersionInNativeVersion)"
/>
diff --git a/src/nbgv/Program.cs b/src/nbgv/Program.cs
index 960e2062f..5eaa19cb1 100644
--- a/src/nbgv/Program.cs
+++ b/src/nbgv/Program.cs
@@ -10,6 +10,7 @@
using System.IO;
using System.Linq;
using System.Reflection;
+using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Build.Construction;
@@ -69,6 +70,7 @@ private enum ExitCodes
ShallowClone,
InternalError,
InvalidTagNameSetting,
+ InvalidUnformattedCommitMessage,
}
private static bool AlwaysUseLibGit2 => string.Equals(Environment.GetEnvironmentVariable("NBGV_GitEngine"), "LibGit2", StringComparison.Ordinal);
@@ -217,6 +219,7 @@ private static Parser BuildCommandLine()
var nextVersion = new Option("--nextVersion", "The version to set for the current branch. If omitted, the next version is determined automatically by incrementing the current version.");
var versionIncrement = new Option("--versionIncrement", "Overrides the 'versionIncrement' setting set in version.json for determining the next version of the current branch.");
var format = new Option(new[] { "--format", "-f" }, $"The format to write information about the release. Allowed values are: {string.Join(", ", SupportedFormats)}. The default is {DefaultOutputFormat}.").FromAmong(SupportedFormats);
+ var unformattedCommitMessage = new Option("--commit-message-pattern", "A custom message to use for the commit that changes the version number. May include {0} for the version number. If not specified, the default is \"Set version to '{0}'\".");
var tagArgument = new Argument("tag", "The prerelease tag to apply on the release branch (if any). If not specified, any existing prerelease tag will be removed. The preceding hyphen may be omitted.")
{
Arity = ArgumentArity.ZeroOrOne,
@@ -227,10 +230,11 @@ private static Parser BuildCommandLine()
nextVersion,
versionIncrement,
format,
+ unformattedCommitMessage,
tagArgument,
};
- prepareRelease.SetHandler(OnPrepareReleaseCommand, project, nextVersion, versionIncrement, format, tagArgument);
+ prepareRelease.SetHandler(OnPrepareReleaseCommand, project, nextVersion, versionIncrement, format, tagArgument, unformattedCommitMessage);
}
var root = new RootCommand($"{ThisAssembly.AssemblyTitle} v{ThisAssembly.AssemblyInformationalVersion}")
@@ -710,7 +714,7 @@ private static Task OnCloudCommand(string project, string[] metadata, strin
return Task.FromResult((int)ExitCodes.OK);
}
- private static Task OnPrepareReleaseCommand(string project, string nextVersion, string versionIncrement, string format, string tag)
+ private static Task OnPrepareReleaseCommand(string project, string nextVersion, string versionIncrement, string format, string tag, string unformattedCommitMessage)
{
// validate project path property
string searchPath = GetSpecifiedOrCurrentDirectoryPath(project);
@@ -763,11 +767,24 @@ private static Task OnPrepareReleaseCommand(string project, string nextVers
return Task.FromResult((int)ExitCodes.UnsupportedFormat);
}
+ if (!string.IsNullOrEmpty(unformattedCommitMessage))
+ {
+ try
+ {
+ string.Format(unformattedCommitMessage, "FormatValidator");
+ }
+ catch (FormatException ex)
+ {
+ Console.Error.WriteLine($"Invalid commit message pattern: {ex.Message}");
+ return Task.FromResult((int)ExitCodes.InvalidUnformattedCommitMessage);
+ }
+ }
+
// run prepare-release
try
{
var releaseManager = new ReleaseManager(Console.Out, Console.Error);
- releaseManager.PrepareRelease(searchPath, tag, nextVersionParsed, versionIncrementParsed, outputMode);
+ releaseManager.PrepareRelease(searchPath, tag, nextVersionParsed, versionIncrementParsed, outputMode, unformattedCommitMessage);
return Task.FromResult((int)ExitCodes.OK);
}
catch (ReleaseManager.ReleasePreparationException ex)
diff --git a/src/nbgv/README.md b/src/nbgv/README.md
new file mode 100644
index 000000000..da398a612
--- /dev/null
+++ b/src/nbgv/README.md
@@ -0,0 +1,11 @@
+This is a .NET tool that provides CLI access to [Nerdbank.GitVersioning](https://github.com/dotnet/Nerdbank.GitVersioning#readme) functions.
+
+Some operations supported by this tool:
+
+- Install Nerdbank.GitVersioning to an msbuild-based repo.
+- Translate between computed versions and the commits that create them.
+- Tag a commit with its computed version.
+- Set variables in a CI build.
+- Prepares for a stable release of your software.
+
+After installing, use `nbgv -?` to learn more.
diff --git a/src/nbgv/nbgv.csproj b/src/nbgv/nbgv.csproj
index 8dfcf1255..1bfdefae0 100644
--- a/src/nbgv/nbgv.csproj
+++ b/src/nbgv/nbgv.csproj
@@ -1,10 +1,10 @@
-๏ปฟ
+
nbgv
True
Exe
- net6.0
+ net8.0
Nerdbank.GitVersioning.Tool
A .NET Core Tool that can install, read and set version information based on git history, using Nerdbank.GitVersioning.
diff --git a/src/nerdbank-gitversioning.npm/gulpfile.js b/src/nerdbank-gitversioning.npm/gulpfile.js
index 8850d780a..643d6c9ba 100644
--- a/src/nerdbank-gitversioning.npm/gulpfile.js
+++ b/src/nerdbank-gitversioning.npm/gulpfile.js
@@ -5,7 +5,6 @@ var ts = require('gulp-typescript');
var sourcemaps = require('gulp-sourcemaps');
var merge = require('merge2');
// var tslint = require('gulp-tslint');
-var del = import('del');
var path = require('path');
const outDir = 'out';
@@ -20,12 +19,9 @@ gulp.task('tsc', function () {
.pipe(sourcemaps.init())
.pipe(tsProject());
- return merge([
- tsResult.dts.pipe(gulp.dest(outDir)),
- tsResult.js
- .pipe(sourcemaps.write('.'))
- .pipe(gulp.dest(outDir))
- ]);
+ return merge(
+ tsResult.js.pipe(sourcemaps.write('.')).pipe(gulp.dest(outDir)),
+ tsResult.dts.pipe(gulp.dest(outDir)));
});
gulp.task('copyPackageContents', gulp.series('tsc', function () {
@@ -53,10 +49,9 @@ gulp.task('package', gulp.series('setPackageVersion', function () {
});
}));
-gulp.task('clean', function () {
- return del([
- outDir
- ])
+gulp.task('clean', async function () {
+ const del = await import('del');
+ await del.deleteAsync([outDir]);
});
gulp.task('default', gulp.series('package', function (done) {
@@ -64,7 +59,7 @@ gulp.task('default', gulp.series('package', function (done) {
}));
gulp.task('watch', gulp.series('tsc', function () {
- return gulp.watch('**/*.ts', ['tsc']);
+ return gulp.watch('**/*.ts', gulp.series('tsc'));
}));
gulp.task('test', gulp.series('tsc', async function () {
diff --git a/src/nerdbank-gitversioning.npm/jsconfig.json b/src/nerdbank-gitversioning.npm/jsconfig.json
index 0136d6f20..a98b54d77 100644
--- a/src/nerdbank-gitversioning.npm/jsconfig.json
+++ b/src/nerdbank-gitversioning.npm/jsconfig.json
@@ -2,8 +2,8 @@
// See https://go.microsoft.com/fwlink/?LinkId=759670
// for the documentation about the jsconfig.json format
"compilerOptions": {
- "target": "es6",
- "module": "commonjs",
+ "target": "ES2022",
+ "module": "ES2022",
"allowSyntheticDefaultImports": true
},
"exclude": [
diff --git a/src/nerdbank-gitversioning.npm/package.json b/src/nerdbank-gitversioning.npm/package.json
index b56dcd964..3ed8c3635 100644
--- a/src/nerdbank-gitversioning.npm/package.json
+++ b/src/nerdbank-gitversioning.npm/package.json
@@ -24,21 +24,19 @@
"versioning"
],
"devDependencies": {
- "@types/camel-case": "^1.2.1",
"@types/node": "^18.7.14",
- "del": "^7.0.0",
- "gulp": "^4.0.2",
- "gulp-cli": "^2.3.0",
+ "del": "^8.0.0",
+ "gulp": "^5.0.0",
+ "gulp-cli": "^3.0.0",
"gulp-sourcemaps": "3.0.0",
"gulp-typescript": "^5.0.1",
"gulp-util": "^3.0.8",
"merge2": "^1.4.1",
"path": "^0.12.7",
+ "source-map": "^0.7.4",
"typescript": "^5.0.4"
},
- "dependencies": {
- "camel-case": "^4.1.2"
- },
+ "dependencies": {},
"scripts": {
"build": "gulp"
}
diff --git a/src/nerdbank-gitversioning.npm/ts/core.ts b/src/nerdbank-gitversioning.npm/ts/core.ts
index 10c786754..706544a88 100644
--- a/src/nerdbank-gitversioning.npm/ts/core.ts
+++ b/src/nerdbank-gitversioning.npm/ts/core.ts
@@ -5,6 +5,6 @@ const nbgvPath = 'nbgv.cli';
export function getNbgvCommand(dotnetCommand?: string): string {
var command = dotnetCommand || 'dotnet';
- const nbgvDll = path.join(__dirname, nbgvPath, "tools", "net6.0", "any", "nbgv.dll");
+ const nbgvDll = path.join(__dirname, nbgvPath, "tools", "net8.0", "any", "nbgv.dll");
return `${command} "${nbgvDll}"`;
}
diff --git a/src/nerdbank-gitversioning.npm/ts/index.ts b/src/nerdbank-gitversioning.npm/ts/index.ts
index d66eb388a..21263a1c3 100644
--- a/src/nerdbank-gitversioning.npm/ts/index.ts
+++ b/src/nerdbank-gitversioning.npm/ts/index.ts
@@ -1,6 +1,5 @@
'use strict';
-import * as camelCase from 'camel-case';
import { execAsync } from './asyncprocess';
import { getNbgvCommand } from './core';
@@ -48,7 +47,8 @@ export async function getVersion(projectDirectory?: string, dotnetCommand?: stri
var directResult = JSON.parse(versionText.stdout);
var result = {};
for (var field in directResult) {
- result[camelCase.camelCase(field)] = directResult[field];
+ const camelCaseFieldName = field.charAt(0).toLowerCase() + field.slice(1);
+ result[camelCaseFieldName] = directResult[field];
}
return result;
diff --git a/src/nerdbank-gitversioning.npm/tsconfig.json b/src/nerdbank-gitversioning.npm/tsconfig.json
index b0f1d903f..a927ba38f 100644
--- a/src/nerdbank-gitversioning.npm/tsconfig.json
+++ b/src/nerdbank-gitversioning.npm/tsconfig.json
@@ -1,9 +1,9 @@
{
"compilerOptions": {
- "target": "es6",
+ "target": "ES2022",
"declaration": true,
- "module": "commonjs",
- "moduleResolution": "node",
+ "module": "Node16",
+ "moduleResolution": "Node16",
"sourceMap": true,
"noImplicitAny": false,
"outDir": "js"
diff --git a/src/nerdbank-gitversioning.npm/yarn.lock b/src/nerdbank-gitversioning.npm/yarn.lock
index 1ceb2a9fd..43bd0a08f 100644
--- a/src/nerdbank-gitversioning.npm/yarn.lock
+++ b/src/nerdbank-gitversioning.npm/yarn.lock
@@ -16,57 +16,61 @@
"@gulp-sourcemaps/map-sources@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz#890ae7c5d8c877f6d384860215ace9d7ec945bda"
- integrity sha1-iQrnxdjId/bThIYCFazp1+yUW9o=
+ integrity sha512-o/EatdaGt8+x2qpb0vFLC/2Gug/xYPRXb6a+ET1wGYKozKN3krDWC/zZFZAtrzxJHuDL12mwdfEFKcKMNvc55A==
dependencies:
normalize-path "^2.0.1"
through2 "^2.0.3"
-"@nodelib/fs.scandir@2.1.3":
- version "2.1.3"
- resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b"
- integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==
+"@gulpjs/messages@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@gulpjs/messages/-/messages-1.1.0.tgz#94e70978ff676ade541faab459c37ae0c7095e5a"
+ integrity sha512-Ys9sazDatyTgZVb4xPlDufLweJ/Os2uHWOv+Caxvy2O85JcnT4M3vc73bi8pdLWlv3fdWQz3pdI9tVwo8rQQSg==
+
+"@gulpjs/to-absolute-glob@^4.0.0":
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/@gulpjs/to-absolute-glob/-/to-absolute-glob-4.0.0.tgz#1fc2460d3953e1d9b9f2dfdb4bcc99da4710c021"
+ integrity sha512-kjotm7XJrJ6v+7knhPaRgaT6q8F8K2jiafwYdNHLzmV0uGLuZY43FK6smNSHUPrhq5kX2slCUy+RGG/xGqmIKA==
dependencies:
- "@nodelib/fs.stat" "2.0.3"
+ is-negated-glob "^1.0.0"
+
+"@nodelib/fs.scandir@2.1.5":
+ version "2.1.5"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
+ integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
+ dependencies:
+ "@nodelib/fs.stat" "2.0.5"
run-parallel "^1.1.9"
-"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2":
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3"
- integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==
+"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
+ integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
"@nodelib/fs.walk@^1.2.3":
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976"
- integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==
+ version "1.2.8"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
+ integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
dependencies:
- "@nodelib/fs.scandir" "2.1.3"
+ "@nodelib/fs.scandir" "2.1.5"
fastq "^1.6.0"
-"@types/camel-case@^1.2.1":
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/@types/camel-case/-/camel-case-1.2.1.tgz#c7ba835a1dca5ef82b40e24d7a7a807bb9fc0e4c"
- integrity sha1-x7qDWh3KXvgrQOJNenqAe7n8Dkw=
- dependencies:
- camel-case "*"
+"@sindresorhus/merge-streams@^2.1.0":
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz#719df7fb41766bc143369eaa0dd56d8dc87c9958"
+ integrity sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==
"@types/node@^18.7.14":
- version "18.15.11"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.11.tgz#b3b790f09cb1696cffcec605de025b088fa4225f"
- integrity sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==
+ version "18.19.43"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.43.tgz#fe01bb599b60bb3279c26d0fdb751d2f3e299ae0"
+ integrity sha512-Mw/YlgXnyJdEwLoFv2dpuJaDFriX+Pc+0qOBJ57jC1H6cDxIj2xc5yUrdtArDVG0m+KV6622a4p2tenEqB3C/g==
+ dependencies:
+ undici-types "~5.26.4"
acorn@^6.4.1:
version "6.4.2"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6"
integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==
-aggregate-error@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-4.0.1.tgz#25091fe1573b9e0be892aeda15c7c66a545f758e"
- integrity sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==
- dependencies:
- clean-stack "^4.0.0"
- indent-string "^5.0.0"
-
ansi-colors@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-1.1.0.tgz#6374b4dd5d4718ff3ce27a671a3b1cad077132a9"
@@ -82,204 +86,155 @@ ansi-colors@^3.0.5:
ansi-gray@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251"
- integrity sha1-KWLPVOyXksSFEKPetSRDaGHvclE=
+ integrity sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==
dependencies:
ansi-wrap "0.1.0"
ansi-regex@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
- integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
+ integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==
+
+ansi-regex@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
+ integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
ansi-styles@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
- integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=
+ integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==
+
+ansi-styles@^4.0.0, ansi-styles@^4.1.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
+ integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
+ dependencies:
+ color-convert "^2.0.1"
ansi-wrap@0.1.0, ansi-wrap@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf"
- integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768=
+ integrity sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==
-anymatch@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
- integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==
+anymatch@^3.1.3, anymatch@~3.1.2:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
+ integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
dependencies:
- micromatch "^3.1.4"
- normalize-path "^2.1.1"
+ normalize-path "^3.0.0"
+ picomatch "^2.0.4"
append-buffer@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/append-buffer/-/append-buffer-1.0.2.tgz#d8220cf466081525efea50614f3de6514dfa58f1"
- integrity sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=
+ integrity sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==
dependencies:
buffer-equal "^1.0.0"
-archy@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40"
- integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=
-
arr-diff@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
- integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
-
-arr-filter@^1.1.1:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/arr-filter/-/arr-filter-1.1.2.tgz#43fdddd091e8ef11aa4c45d9cdc18e2dff1711ee"
- integrity sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=
- dependencies:
- make-iterator "^1.0.0"
-
-arr-flatten@^1.0.1, arr-flatten@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
- integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
-
-arr-map@^2.0.0, arr-map@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/arr-map/-/arr-map-2.0.2.tgz#3a77345ffc1cf35e2a91825601f9e58f2e24cac4"
- integrity sha1-Onc0X/wc814qkYJWAfnljy4kysQ=
- dependencies:
- make-iterator "^1.0.0"
+ integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==
arr-union@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
- integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
+ integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==
array-differ@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031"
- integrity sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=
+ integrity sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==
-array-each@^1.0.0, array-each@^1.0.1:
+array-each@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f"
- integrity sha1-p5SvDAWrF1KEbudTofIRoFugxE8=
-
-array-initial@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/array-initial/-/array-initial-1.1.0.tgz#2fa74b26739371c3947bd7a7adc73be334b3d795"
- integrity sha1-L6dLJnOTccOUe9enrcc74zSz15U=
- dependencies:
- array-slice "^1.0.0"
- is-number "^4.0.0"
-
-array-last@^1.1.1:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/array-last/-/array-last-1.3.0.tgz#7aa77073fec565ddab2493f5f88185f404a9d336"
- integrity sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==
- dependencies:
- is-number "^4.0.0"
+ integrity sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==
array-slice@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4"
integrity sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==
-array-sort@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/array-sort/-/array-sort-1.0.0.tgz#e4c05356453f56f53512a7d1d6123f2c54c0a88a"
- integrity sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==
- dependencies:
- default-compare "^1.0.0"
- get-value "^2.0.6"
- kind-of "^5.0.2"
-
array-uniq@^1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
- integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=
-
-array-unique@^0.3.2:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
- integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
+ integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==
assign-symbols@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
- integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
+ integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==
-async-done@^1.2.0, async-done@^1.2.2:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/async-done/-/async-done-1.3.2.tgz#5e15aa729962a4b07414f528a88cdf18e0b290a2"
- integrity sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==
+async-done@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/async-done/-/async-done-2.0.0.tgz#f1ec5df738c6383a52b0a30d0902fd897329c15a"
+ integrity sha512-j0s3bzYq9yKIVLKGE/tWlCpa3PfFLcrDZLTSVdnnCTGagXuXBJO4SsY9Xdk/fQBirCkH4evW5xOeJXqlAQFdsw==
dependencies:
- end-of-stream "^1.1.0"
- once "^1.3.2"
- process-nextick-args "^2.0.0"
- stream-exhaust "^1.0.1"
-
-async-each@^1.0.1:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf"
- integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==
+ end-of-stream "^1.4.4"
+ once "^1.4.0"
+ stream-exhaust "^1.0.2"
-async-settle@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/async-settle/-/async-settle-1.0.0.tgz#1d0a914bb02575bec8a8f3a74e5080f72b2c0c6b"
- integrity sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=
+async-settle@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/async-settle/-/async-settle-2.0.0.tgz#c695ad14e070f6a755d019d32d6eb38029020287"
+ integrity sha512-Obu/KE8FurfQRN6ODdHN9LuXqwC+JFIM9NRyZqJJ4ZfLJmIYN9Rg0/kb+wF70VV5+fJusTMQlJ1t5rF7J/ETdg==
dependencies:
- async-done "^1.2.2"
+ async-done "^2.0.0"
atob@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
-bach@^1.0.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/bach/-/bach-1.2.0.tgz#4b3ce96bf27134f79a1b414a51c14e34c3bd9880"
- integrity sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=
- dependencies:
- arr-filter "^1.1.1"
- arr-flatten "^1.0.1"
- arr-map "^2.0.0"
- array-each "^1.0.0"
- array-initial "^1.0.0"
- array-last "^1.1.1"
- async-done "^1.2.2"
- async-settle "^1.0.0"
- now-and-later "^2.0.0"
+b4a@^1.6.4:
+ version "1.6.6"
+ resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.6.tgz#a4cc349a3851987c3c4ac2d7785c18744f6da9ba"
+ integrity sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==
+
+bach@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/bach/-/bach-2.0.1.tgz#45a3a3cbf7dbba3132087185c60357482b988972"
+ integrity sha512-A7bvGMGiTOxGMpNupYl9HQTf0FFDNF4VCmks4PJpFyN1AX2pdKuxuwdvUz2Hu388wcgp+OvGFNsumBfFNkR7eg==
+ dependencies:
+ async-done "^2.0.0"
+ async-settle "^2.0.0"
+ now-and-later "^3.0.0"
balanced-match@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
-base@^0.11.1:
- version "0.11.2"
- resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
- integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==
- dependencies:
- cache-base "^1.0.1"
- class-utils "^0.3.5"
- component-emitter "^1.2.1"
- define-property "^1.0.0"
- isobject "^3.0.1"
- mixin-deep "^1.2.0"
- pascalcase "^0.1.1"
+bare-events@^2.2.0:
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/bare-events/-/bare-events-2.4.2.tgz#3140cca7a0e11d49b3edc5041ab560659fd8e1f8"
+ integrity sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==
+
+base64-js@^1.3.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
+ integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
beeper@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809"
- integrity sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=
+ integrity sha512-3vqtKL1N45I5dV0RdssXZG7X6pCqQrWPNOlBPZPrd+QkE2HEhR57Z04m0KtpbsZH73j+a3F8UD1TQnn+ExTvIA==
-binary-extensions@^1.0.0:
- version "1.13.1"
- resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65"
- integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==
+binary-extensions@^2.0.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522"
+ integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==
-bindings@^1.5.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df"
- integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
+bl@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/bl/-/bl-5.1.0.tgz#183715f678c7188ecef9fe475d90209400624273"
+ integrity sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==
dependencies:
- file-uri-to-path "1.0.0"
+ buffer "^6.0.3"
+ inherits "^2.0.4"
+ readable-stream "^3.4.0"
brace-expansion@^1.1.7:
version "1.1.11"
@@ -289,79 +244,41 @@ brace-expansion@^1.1.7:
balanced-match "^1.0.0"
concat-map "0.0.1"
-braces@^2.3.1, braces@^2.3.2:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
- integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==
- dependencies:
- arr-flatten "^1.1.0"
- array-unique "^0.3.2"
- extend-shallow "^2.0.1"
- fill-range "^4.0.0"
- isobject "^3.0.1"
- repeat-element "^1.1.2"
- snapdragon "^0.8.1"
- snapdragon-node "^2.0.1"
- split-string "^3.0.2"
- to-regex "^3.0.1"
-
-braces@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
- integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
+braces@^3.0.3, braces@~3.0.2:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
+ integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
dependencies:
- fill-range "^7.0.1"
+ fill-range "^7.1.1"
buffer-equal@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe"
- integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74=
-
-buffer-from@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
- integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
-
-cache-base@^1.0.1:
version "1.0.1"
- resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
- integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==
- dependencies:
- collection-visit "^1.0.0"
- component-emitter "^1.2.1"
- get-value "^2.0.6"
- has-value "^1.0.0"
- isobject "^3.0.1"
- set-value "^2.0.0"
- to-object-path "^0.3.0"
- union-value "^1.0.0"
- unset-value "^1.0.0"
+ resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.1.tgz#2f7651be5b1b3f057fcd6e7ee16cf34767077d90"
+ integrity sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==
-camel-case@*:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.1.tgz#1fc41c854f00e2f7d0139dfeba1542d6896fe547"
- integrity sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==
+buffer@^6.0.3:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6"
+ integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==
dependencies:
- pascal-case "^3.1.1"
- tslib "^1.10.0"
+ base64-js "^1.3.1"
+ ieee754 "^1.2.1"
-camel-case@^4.1.2:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a"
- integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==
+call-bind@^1.0.5:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9"
+ integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==
dependencies:
- pascal-case "^3.1.2"
- tslib "^2.0.3"
-
-camelcase@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"
- integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo=
+ es-define-property "^1.0.0"
+ es-errors "^1.3.0"
+ function-bind "^1.1.2"
+ get-intrinsic "^1.2.4"
+ set-function-length "^1.2.1"
chalk@^1.0.0:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
- integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=
+ integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==
dependencies:
ansi-styles "^2.2.1"
escape-string-regexp "^1.0.2"
@@ -369,75 +286,62 @@ chalk@^1.0.0:
strip-ansi "^3.0.0"
supports-color "^2.0.0"
-chokidar@^2.0.0:
- version "2.1.8"
- resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917"
- integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==
- dependencies:
- anymatch "^2.0.0"
- async-each "^1.0.1"
- braces "^2.3.2"
- glob-parent "^3.1.0"
- inherits "^2.0.3"
- is-binary-path "^1.0.0"
- is-glob "^4.0.0"
- normalize-path "^3.0.0"
- path-is-absolute "^1.0.0"
- readdirp "^2.2.1"
- upath "^1.1.1"
- optionalDependencies:
- fsevents "^1.2.7"
-
-class-utils@^0.3.5:
- version "0.3.6"
- resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
- integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==
+chalk@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
+ integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
dependencies:
- arr-union "^3.1.0"
- define-property "^0.2.5"
- isobject "^3.0.0"
- static-extend "^0.1.1"
+ ansi-styles "^4.1.0"
+ supports-color "^7.1.0"
-clean-stack@^4.0.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-4.2.0.tgz#c464e4cde4ac789f4e0735c5d75beb49d7b30b31"
- integrity sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==
- dependencies:
- escape-string-regexp "5.0.0"
+chokidar@^3.5.3:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b"
+ integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==
+ dependencies:
+ anymatch "~3.1.2"
+ braces "~3.0.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"
+ optionalDependencies:
+ fsevents "~2.3.2"
-cliui@^3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
- integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=
+cliui@^7.0.2:
+ version "7.0.4"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
+ integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
dependencies:
- string-width "^1.0.1"
- strip-ansi "^3.0.1"
- wrap-ansi "^2.0.0"
+ string-width "^4.2.0"
+ strip-ansi "^6.0.0"
+ wrap-ansi "^7.0.0"
clone-buffer@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58"
- integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg=
+ integrity sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==
clone-stats@^0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1"
- integrity sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=
+ integrity sha512-dhUqc57gSMCo6TX85FLfe51eC/s+Im2MLkAgJwfaRRexR2tA4dd3eLEW4L6efzHc2iNorrRRXITifnDLlRrhaA==
clone-stats@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680"
- integrity sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=
+ integrity sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==
clone@^1.0.0:
version "1.0.4"
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
- integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
+ integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==
-clone@^2.1.1:
+clone@^2.1.1, clone@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
- integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=
+ integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==
cloneable-readable@^1.0.0:
version "1.1.3"
@@ -448,84 +352,50 @@ cloneable-readable@^1.0.0:
process-nextick-args "^2.0.0"
readable-stream "^2.3.5"
-code-point-at@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
- integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
-
-collection-map@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/collection-map/-/collection-map-1.0.0.tgz#aea0f06f8d26c780c2b75494385544b2255af18c"
- integrity sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=
+color-convert@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
+ integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
dependencies:
- arr-map "^2.0.2"
- for-own "^1.0.0"
- make-iterator "^1.0.0"
+ color-name "~1.1.4"
-collection-visit@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
- integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=
- dependencies:
- map-visit "^1.0.0"
- object-visit "^1.0.0"
+color-name@~1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+ integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
color-support@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2"
integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==
-component-emitter@^1.2.1:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
- integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
-
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
-concat-stream@^1.6.0:
- version "1.6.2"
- resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
- integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
- dependencies:
- buffer-from "^1.0.0"
- inherits "^2.0.3"
- readable-stream "^2.2.2"
- typedarray "^0.0.6"
-
-convert-source-map@^1.0.0:
- version "1.8.0"
- resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369"
- integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
- dependencies:
- safe-buffer "~5.1.1"
-
-convert-source-map@^1.5.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
- integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
- dependencies:
- safe-buffer "~5.1.1"
+convert-source-map@^1.0.0, convert-source-map@^1.5.0:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f"
+ integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==
-copy-descriptor@^0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
- integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
+convert-source-map@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
+ integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
-copy-props@^2.0.1:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/copy-props/-/copy-props-2.0.5.tgz#03cf9ae328d4ebb36f8f1d804448a6af9ee3f2d2"
- integrity sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==
+copy-props@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/copy-props/-/copy-props-4.0.0.tgz#01d249198b8c2e4d8a5e87b90c9630f52c99a9c9"
+ integrity sha512-bVWtw1wQLzzKiYROtvNlbJgxgBYt2bMJpkCbKmXM3xyijvcjjWXEk5nyrrT3bgJ7ODb19ZohE2T0Y3FgNPyoTw==
dependencies:
- each-props "^1.3.2"
+ each-props "^3.0.0"
is-plain-object "^5.0.0"
core-util-is@~1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
- integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
+ integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
css@^3.0.0:
version "3.0.0"
@@ -536,18 +406,18 @@ css@^3.0.0:
source-map "^0.6.1"
source-map-resolve "^0.6.0"
-d@1, d@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a"
- integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==
+d@1, d@^1.0.1, d@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/d/-/d-1.0.2.tgz#2aefd554b81981e7dccf72d6842ae725cb17e5de"
+ integrity sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==
dependencies:
- es5-ext "^0.10.50"
- type "^1.0.1"
+ es5-ext "^0.10.64"
+ type "^2.7.2"
dateformat@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062"
- integrity sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=
+ integrity sha512-GODcnWq3YGoTnygPfi02ygEiRxqUxpJwuRHjdhJYuxpcZmDq4rjBiXYmbCCzStxo176ixfLT6i4NPwQooRySnw==
debug-fabulous@^1.0.0:
version "1.1.0"
@@ -559,105 +429,61 @@ debug-fabulous@^1.0.0:
object-assign "4.X"
debug@3.X:
- version "3.2.6"
- resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
- integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
+ version "3.2.7"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
+ integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
dependencies:
ms "^2.1.1"
-debug@^2.2.0, debug@^2.3.3:
- version "2.6.9"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
- integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
- dependencies:
- ms "2.0.0"
-
-decamelize@^1.1.1:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
- integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
-
decode-uri-component@^0.2.0:
version "0.2.2"
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9"
integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==
-default-compare@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/default-compare/-/default-compare-1.0.0.tgz#cb61131844ad84d84788fb68fd01681ca7781a2f"
- integrity sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==
- dependencies:
- kind-of "^5.0.2"
-
-default-resolution@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/default-resolution/-/default-resolution-2.0.0.tgz#bcb82baa72ad79b426a76732f1a81ad6df26d684"
- integrity sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=
-
-define-properties@^1.1.2:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
- integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
- dependencies:
- object-keys "^1.0.12"
-
-define-property@^0.2.5:
- version "0.2.5"
- resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
- integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=
- dependencies:
- is-descriptor "^0.1.0"
-
-define-property@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
- integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY=
+define-data-property@^1.0.1, define-data-property@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e"
+ integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==
dependencies:
- is-descriptor "^1.0.0"
+ es-define-property "^1.0.0"
+ es-errors "^1.3.0"
+ gopd "^1.0.1"
-define-property@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
- integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==
+define-properties@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c"
+ integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==
dependencies:
- is-descriptor "^1.0.2"
- isobject "^3.0.1"
+ define-data-property "^1.0.1"
+ has-property-descriptors "^1.0.0"
+ object-keys "^1.1.1"
-del@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/del/-/del-7.0.0.tgz#79db048bec96f83f344b46c1a66e35d9c09fe8ac"
- integrity sha512-tQbV/4u5WVB8HMJr08pgw0b6nG4RGt/tj+7Numvq+zqcvUFeMaIWWOUFltiU+6go8BSO2/ogsB4EasDaj0y68Q==
+del@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/del/-/del-8.0.0.tgz#f333a5673cfeb72e46084031714a7c30515e80aa"
+ integrity sha512-R6ep6JJ+eOBZsBr9esiNN1gxFbZE4Q2cULkUSFumGYecAiS6qodDvcPx/sFuWHMNul7DWmrtoEOpYSm7o6tbSA==
dependencies:
- globby "^13.1.2"
- graceful-fs "^4.2.10"
+ globby "^14.0.2"
is-glob "^4.0.3"
is-path-cwd "^3.0.0"
is-path-inside "^4.0.0"
- p-map "^5.5.0"
- rimraf "^3.0.2"
- slash "^4.0.0"
+ p-map "^7.0.2"
+ slash "^5.1.0"
detect-file@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7"
- integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=
+ integrity sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==
detect-newline@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2"
- integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=
-
-dir-glob@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
- integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
- dependencies:
- path-type "^4.0.0"
+ integrity sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg==
duplexer2@0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db"
- integrity sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=
+ integrity sha512-+AWBwjGadtksxjOQSFDhPNQbed7icNXApT4+2BNpsXzcCBiInq2H9XW0O8sfHFaPmnQRs7cg/P0fAr2IWQSW0g==
dependencies:
readable-stream "~1.1.9"
@@ -671,55 +497,66 @@ duplexify@^3.6.0:
readable-stream "^2.0.0"
stream-shift "^1.0.0"
-each-props@^1.3.2:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/each-props/-/each-props-1.3.2.tgz#ea45a414d16dd5cfa419b1a81720d5ca06892333"
- integrity sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==
+each-props@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/each-props/-/each-props-3.0.0.tgz#a88fb17634a4828307610ec68269fba2f7280cd8"
+ integrity sha512-IYf1hpuWrdzse/s/YJOrFmU15lyhSzxelNVAHTEG3DtP4QsLTWZUzcUL3HMXmKQxXpa4EIrBPpwRgj0aehdvAw==
dependencies:
- is-plain-object "^2.0.1"
+ is-plain-object "^5.0.0"
object.defaults "^1.1.0"
-end-of-stream@^1.0.0, end-of-stream@^1.1.0:
+emoji-regex@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
+ integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+
+end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.4:
version "1.4.4"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
dependencies:
once "^1.4.0"
-error-ex@^1.2.0:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
- integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
+es-define-property@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845"
+ integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==
dependencies:
- is-arrayish "^0.2.1"
+ get-intrinsic "^1.2.4"
+
+es-errors@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
+ integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
-es5-ext@^0.10.35, es5-ext@^0.10.45, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46:
- version "0.10.53"
- resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1"
- integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==
+es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.62, es5-ext@^0.10.64, es5-ext@~0.10.14, es5-ext@~0.10.2:
+ version "0.10.64"
+ resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.64.tgz#12e4ffb48f1ba2ea777f1fcdd1918ef73ea21714"
+ integrity sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==
dependencies:
- es6-iterator "~2.0.3"
- es6-symbol "~3.1.3"
- next-tick "~1.0.0"
+ es6-iterator "^2.0.3"
+ es6-symbol "^3.1.3"
+ esniff "^2.0.1"
+ next-tick "^1.1.0"
-es6-iterator@^2.0.1, es6-iterator@^2.0.3, es6-iterator@~2.0.3:
+es6-iterator@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
- integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c=
+ integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==
dependencies:
d "1"
es5-ext "^0.10.35"
es6-symbol "^3.1.1"
-es6-symbol@^3.1.1, es6-symbol@~3.1.3:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18"
- integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==
+es6-symbol@^3.1.1, es6-symbol@^3.1.3:
+ version "3.1.4"
+ resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.4.tgz#f4e7d28013770b4208ecbf3e0bf14d3bcb557b8c"
+ integrity sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==
dependencies:
- d "^1.0.1"
- ext "^1.1.2"
+ d "^1.0.2"
+ ext "^1.7.0"
-es6-weak-map@^2.0.1, es6-weak-map@^2.0.2:
+es6-weak-map@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53"
integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==
@@ -729,86 +566,62 @@ es6-weak-map@^2.0.1, es6-weak-map@^2.0.2:
es6-iterator "^2.0.3"
es6-symbol "^3.1.1"
-escape-string-regexp@5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8"
- integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==
+escalade@^3.1.1:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27"
+ integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==
escape-string-regexp@^1.0.2:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
- integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
+ integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
+
+esniff@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/esniff/-/esniff-2.0.1.tgz#a4d4b43a5c71c7ec51c51098c1d8a29081f9b308"
+ integrity sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==
+ dependencies:
+ d "^1.0.1"
+ es5-ext "^0.10.62"
+ event-emitter "^0.3.5"
+ type "^2.7.2"
event-emitter@^0.3.5:
version "0.3.5"
resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
- integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=
+ integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==
dependencies:
d "1"
es5-ext "~0.10.14"
-expand-brackets@^2.1.4:
- version "2.1.4"
- resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
- integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI=
- dependencies:
- debug "^2.3.3"
- define-property "^0.2.5"
- extend-shallow "^2.0.1"
- posix-character-classes "^0.1.0"
- regex-not "^1.0.0"
- snapdragon "^0.8.1"
- to-regex "^3.0.1"
-
expand-tilde@^2.0.0, expand-tilde@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502"
- integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=
+ integrity sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==
dependencies:
homedir-polyfill "^1.0.1"
-ext@^1.1.2:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244"
- integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==
- dependencies:
- type "^2.0.0"
-
-extend-shallow@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
- integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
+ext@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f"
+ integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==
dependencies:
- is-extendable "^0.1.0"
+ type "^2.7.2"
-extend-shallow@^3.0.0, extend-shallow@^3.0.2:
+extend-shallow@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
- integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=
+ integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==
dependencies:
assign-symbols "^1.0.0"
is-extendable "^1.0.1"
-extend@^3.0.0:
+extend@^3.0.0, extend@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
-extglob@^2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
- integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==
- dependencies:
- array-unique "^0.3.2"
- define-property "^1.0.0"
- expand-brackets "^2.1.4"
- extend-shallow "^2.0.1"
- fragment-cache "^0.2.1"
- regex-not "^1.0.0"
- snapdragon "^0.8.1"
- to-regex "^3.0.1"
-
-fancy-log@^1.1.0, fancy-log@^1.3.2:
+fancy-log@^1.1.0:
version "1.3.3"
resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7"
integrity sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==
@@ -818,10 +631,15 @@ fancy-log@^1.1.0, fancy-log@^1.3.2:
parse-node-version "^1.0.0"
time-stamp "^1.0.0"
-fast-glob@^3.2.11:
- version "3.2.11"
- resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9"
- integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==
+fast-fifo@^1.3.2:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c"
+ integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==
+
+fast-glob@^3.3.2:
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129"
+ integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==
dependencies:
"@nodelib/fs.stat" "^2.0.2"
"@nodelib/fs.walk" "^1.2.3"
@@ -829,78 +647,57 @@ fast-glob@^3.2.11:
merge2 "^1.3.0"
micromatch "^4.0.4"
-fastq@^1.6.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.7.0.tgz#fcd79a08c5bd7ec5b55cd3f5c4720db551929801"
- integrity sha512-YOadQRnHd5q6PogvAR/x62BGituF2ufiEA6s8aavQANw5YKHERI4AREboX6KotzP8oX2klxYF2wcV/7bn1clfQ==
+fast-levenshtein@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz#37b899ae47e1090e40e3fd2318e4d5f0142ca912"
+ integrity sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==
dependencies:
- reusify "^1.0.4"
+ fastest-levenshtein "^1.0.7"
-file-uri-to-path@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
- integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
+fastest-levenshtein@^1.0.7:
+ version "1.0.16"
+ resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5"
+ integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==
-fill-range@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
- integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=
+fastq@^1.13.0, fastq@^1.6.0:
+ version "1.17.1"
+ resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47"
+ integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==
dependencies:
- extend-shallow "^2.0.1"
- is-number "^3.0.0"
- repeat-string "^1.6.1"
- to-regex-range "^2.1.0"
+ reusify "^1.0.4"
-fill-range@^7.0.1:
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
- integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
+fill-range@^7.1.1:
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
+ integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
dependencies:
to-regex-range "^5.0.1"
-find-up@^1.0.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
- integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=
- dependencies:
- path-exists "^2.0.0"
- pinkie-promise "^2.0.0"
-
-findup-sync@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc"
- integrity sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=
- dependencies:
- detect-file "^1.0.0"
- is-glob "^3.1.0"
- micromatch "^3.0.4"
- resolve-dir "^1.0.1"
-
-findup-sync@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1"
- integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==
+findup-sync@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-5.0.0.tgz#54380ad965a7edca00cc8f63113559aadc541bd2"
+ integrity sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==
dependencies:
detect-file "^1.0.0"
- is-glob "^4.0.0"
- micromatch "^3.0.4"
+ is-glob "^4.0.3"
+ micromatch "^4.0.4"
resolve-dir "^1.0.1"
-fined@^1.0.1:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/fined/-/fined-1.2.0.tgz#d00beccf1aa2b475d16d423b0238b713a2c4a37b"
- integrity sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==
+fined@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/fined/-/fined-2.0.0.tgz#6846563ed96879ce6de6c85c715c42250f8d8089"
+ integrity sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==
dependencies:
expand-tilde "^2.0.2"
- is-plain-object "^2.0.3"
+ is-plain-object "^5.0.0"
object.defaults "^1.1.0"
- object.pick "^1.2.0"
- parse-filepath "^1.0.1"
+ object.pick "^1.3.0"
+ parse-filepath "^1.0.2"
-flagged-respawn@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.1.tgz#e7de6f1279ddd9ca9aac8a5971d618606b3aab41"
- integrity sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==
+flagged-respawn@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-2.0.0.tgz#abf39719dcfe1ac06c86c9466081c541c682987b"
+ integrity sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==
flush-write-stream@^1.0.2:
version "1.1.1"
@@ -910,80 +707,91 @@ flush-write-stream@^1.0.2:
inherits "^2.0.3"
readable-stream "^2.3.6"
-for-in@^1.0.1, for-in@^1.0.2:
+for-in@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
- integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
+ integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==
for-own@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b"
- integrity sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=
+ integrity sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==
dependencies:
for-in "^1.0.1"
-fragment-cache@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
- integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=
- dependencies:
- map-cache "^0.2.2"
-
fs-mkdirp-stream@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb"
- integrity sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=
+ integrity sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==
dependencies:
graceful-fs "^4.1.11"
through2 "^2.0.3"
+fs-mkdirp-stream@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-2.0.1.tgz#1e82575c4023929ad35cf69269f84f1a8c973aa7"
+ integrity sha512-UTOY+59K6IA94tec8Wjqm0FSh5OVudGNB0NL/P6fB3HiE3bYOY3VYBGijsnOHNkQSwC1FKkU77pmq7xp9CskLw==
+ dependencies:
+ graceful-fs "^4.2.8"
+ streamx "^2.12.0"
+
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
- integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
+ integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
-fsevents@^1.2.7:
- version "1.2.12"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.12.tgz#db7e0d8ec3b0b45724fd4d83d43554a8f1f0de5c"
- integrity sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q==
- dependencies:
- bindings "^1.5.0"
- nan "^2.12.1"
+fsevents@~2.3.2:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
+ integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
-function-bind@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
- integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
+function-bind@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
+ integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
-get-caller-file@^1.0.1:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
- integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==
+get-caller-file@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
+ integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
-get-value@^2.0.3, get-value@^2.0.6:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
- integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
+get-intrinsic@^1.1.3, get-intrinsic@^1.2.4:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd"
+ integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==
+ dependencies:
+ es-errors "^1.3.0"
+ function-bind "^1.1.2"
+ has-proto "^1.0.1"
+ has-symbols "^1.0.3"
+ hasown "^2.0.0"
glob-parent@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
- integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=
+ integrity sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==
dependencies:
is-glob "^3.1.0"
path-dirname "^1.0.0"
-glob-parent@^5.1.2:
+glob-parent@^5.1.2, glob-parent@~5.1.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
dependencies:
is-glob "^4.0.1"
+glob-parent@^6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
+ integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
+ dependencies:
+ is-glob "^4.0.3"
+
glob-stream@^6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4"
- integrity sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=
+ integrity sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==
dependencies:
extend "^3.0.0"
glob "^7.1.1"
@@ -996,27 +804,37 @@ glob-stream@^6.1.0:
to-absolute-glob "^2.0.0"
unique-stream "^2.0.2"
-glob-watcher@^5.0.3:
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-5.0.3.tgz#88a8abf1c4d131eb93928994bc4a593c2e5dd626"
- integrity sha512-8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg==
+glob-stream@^8.0.0:
+ version "8.0.2"
+ resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-8.0.2.tgz#09e5818e41c16dd85274d72c7a7158d307426313"
+ integrity sha512-R8z6eTB55t3QeZMmU1C+Gv+t5UnNRkA55c5yo67fAVfxODxieTwsjNG7utxS/73NdP1NbDgCrhVEg2h00y4fFw==
dependencies:
- anymatch "^2.0.0"
- async-done "^1.2.0"
- chokidar "^2.0.0"
+ "@gulpjs/to-absolute-glob" "^4.0.0"
+ anymatch "^3.1.3"
+ fastq "^1.13.0"
+ glob-parent "^6.0.2"
+ is-glob "^4.0.3"
is-negated-glob "^1.0.0"
- just-debounce "^1.0.0"
- object.defaults "^1.1.0"
+ normalize-path "^3.0.0"
+ streamx "^2.12.5"
-glob@^7.1.1, glob@^7.1.3:
- version "7.1.6"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
- integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
+glob-watcher@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-6.0.0.tgz#8565341978a92233fb3881b8857b4d1e9c6bf080"
+ integrity sha512-wGM28Ehmcnk2NqRORXFOTOR064L4imSw3EeOqU5bIwUf62eXGwg89WivH6VMahL8zlQHeodzvHpXplrqzrz3Nw==
+ dependencies:
+ async-done "^2.0.0"
+ chokidar "^3.5.3"
+
+glob@^7.1.1:
+ version "7.2.3"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
+ integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
inherits "2"
- minimatch "^3.0.4"
+ minimatch "^3.1.1"
once "^1.3.0"
path-is-absolute "^1.0.0"
@@ -1032,7 +850,7 @@ global-modules@^1.0.0:
global-prefix@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe"
- integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=
+ integrity sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==
dependencies:
expand-tilde "^2.0.2"
homedir-polyfill "^1.0.1"
@@ -1040,16 +858,17 @@ global-prefix@^1.0.1:
is-windows "^1.0.1"
which "^1.2.14"
-globby@^13.1.2:
- version "13.1.2"
- resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.2.tgz#29047105582427ab6eca4f905200667b056da515"
- integrity sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==
+globby@^14.0.2:
+ version "14.0.2"
+ resolved "https://registry.yarnpkg.com/globby/-/globby-14.0.2.tgz#06554a54ccfe9264e5a9ff8eded46aa1e306482f"
+ integrity sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==
dependencies:
- dir-glob "^3.0.1"
- fast-glob "^3.2.11"
- ignore "^5.2.0"
- merge2 "^1.4.1"
- slash "^4.0.0"
+ "@sindresorhus/merge-streams" "^2.1.0"
+ fast-glob "^3.3.2"
+ ignore "^5.2.4"
+ path-type "^5.0.0"
+ slash "^5.1.0"
+ unicorn-magic "^0.1.0"
glogg@^1.0.0:
version "1.0.2"
@@ -1058,58 +877,42 @@ glogg@^1.0.0:
dependencies:
sparkles "^1.0.0"
-graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.10:
- version "4.2.10"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c"
- integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
-
-gulp-cli@^2.2.0:
+glogg@^2.2.0:
version "2.2.0"
- resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-2.2.0.tgz#5533126eeb7fe415a7e3e84a297d334d5cf70ebc"
- integrity sha512-rGs3bVYHdyJpLqR0TUBnlcZ1O5O++Zs4bA0ajm+zr3WFCfiSLjGwoCBqFs18wzN+ZxahT9DkOK5nDf26iDsWjA==
+ resolved "https://registry.yarnpkg.com/glogg/-/glogg-2.2.0.tgz#956ceb855a05a2aa1fa668d748f2be8e7361c11c"
+ integrity sha512-eWv1ds/zAlz+M1ioHsyKJomfY7jbDDPpwSkv14KQj89bycx1nvK5/2Cj/T9g7kzJcX5Bc7Yv22FjfBZS/jl94A==
dependencies:
- ansi-colors "^1.0.1"
- archy "^1.0.0"
- array-sort "^1.0.0"
- color-support "^1.1.3"
- concat-stream "^1.6.0"
- copy-props "^2.0.1"
- fancy-log "^1.3.2"
- gulplog "^1.0.0"
- interpret "^1.1.0"
- isobject "^3.0.1"
- liftoff "^3.1.0"
- matchdep "^2.0.0"
- mute-stdout "^1.0.0"
- pretty-hrtime "^1.0.0"
- replace-homedir "^1.0.0"
- semver-greatest-satisfied-range "^1.1.0"
- v8flags "^3.0.1"
- yargs "^7.1.0"
-
-gulp-cli@^2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-2.3.0.tgz#ec0d380e29e52aa45e47977f0d32e18fd161122f"
- integrity sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==
+ sparkles "^2.1.0"
+
+gopd@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c"
+ integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==
dependencies:
- ansi-colors "^1.0.1"
- archy "^1.0.0"
- array-sort "^1.0.0"
- color-support "^1.1.3"
- concat-stream "^1.6.0"
- copy-props "^2.0.1"
- fancy-log "^1.3.2"
- gulplog "^1.0.0"
- interpret "^1.4.0"
- isobject "^3.0.1"
- liftoff "^3.1.0"
- matchdep "^2.0.0"
- mute-stdout "^1.0.0"
- pretty-hrtime "^1.0.0"
- replace-homedir "^1.0.0"
- semver-greatest-satisfied-range "^1.1.0"
- v8flags "^3.2.0"
- yargs "^7.1.0"
+ get-intrinsic "^1.1.3"
+
+graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.6, graceful-fs@^4.2.10, graceful-fs@^4.2.11, graceful-fs@^4.2.8:
+ version "4.2.11"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
+ integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
+
+gulp-cli@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-3.0.0.tgz#577008f5323fad6106b44db24803c27c3a649841"
+ integrity sha512-RtMIitkT8DEMZZygHK2vEuLPqLPAFB4sntSxg4NoDta7ciwGZ18l7JuhCTiS5deOJi2IoK0btE+hs6R4sfj7AA==
+ dependencies:
+ "@gulpjs/messages" "^1.1.0"
+ chalk "^4.1.2"
+ copy-props "^4.0.0"
+ gulplog "^2.2.0"
+ interpret "^3.1.1"
+ liftoff "^5.0.0"
+ mute-stdout "^2.0.0"
+ replace-homedir "^2.0.0"
+ semver-greatest-satisfied-range "^2.0.0"
+ string-width "^4.2.3"
+ v8flags "^4.0.0"
+ yargs "^16.2.0"
gulp-sourcemaps@3.0.0:
version "3.0.0"
@@ -1143,7 +946,7 @@ gulp-typescript@^5.0.1:
gulp-util@^3.0.8:
version "3.0.8"
resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f"
- integrity sha1-AFTh50RQLifATBh8PsxQXdVLu08=
+ integrity sha512-q5oWPc12lwSFS9h/4VIjG+1NuNDlJ48ywV2JKItY4Ycc/n1fXJeYPVQsfu5ZrhQi7FGSDBalwUCLar/GyHXKGw==
dependencies:
array-differ "^1.0.0"
array-uniq "^1.0.2"
@@ -1164,72 +967,72 @@ gulp-util@^3.0.8:
through2 "^2.0.0"
vinyl "^0.5.0"
-gulp@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/gulp/-/gulp-4.0.2.tgz#543651070fd0f6ab0a0650c6a3e6ff5a7cb09caa"
- integrity sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==
+gulp@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/gulp/-/gulp-5.0.0.tgz#78f4b8ac48a0bf61b354d39e5be844de2c5cc3f3"
+ integrity sha512-S8Z8066SSileaYw1S2N1I64IUc/myI2bqe2ihOBzO6+nKpvNSg7ZcWJt/AwF8LC/NVN+/QZ560Cb/5OPsyhkhg==
dependencies:
- glob-watcher "^5.0.3"
- gulp-cli "^2.2.0"
- undertaker "^1.2.1"
- vinyl-fs "^3.0.0"
+ glob-watcher "^6.0.0"
+ gulp-cli "^3.0.0"
+ undertaker "^2.0.0"
+ vinyl-fs "^4.0.0"
gulplog@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5"
- integrity sha1-4oxNRdBey77YGDY86PnFkmIp/+U=
+ integrity sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw==
dependencies:
glogg "^1.0.0"
+gulplog@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-2.2.0.tgz#71adf43ea5cd07c23ded0fb8af4a844b67c63be8"
+ integrity sha512-V2FaKiOhpR3DRXZuYdRLn/qiY0yI5XmqbTKrYbdemJ+xOh2d2MOweI/XFgMzd/9+1twdvMwllnZbWZNJ+BOm4A==
+ dependencies:
+ glogg "^2.2.0"
+
has-ansi@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
- integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=
+ integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==
dependencies:
ansi-regex "^2.0.0"
+has-flag@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
+ integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+
has-gulplog@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce"
- integrity sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=
+ integrity sha512-+F4GzLjwHNNDEAJW2DC1xXfEoPkRDmUdJ7CBYw4MpqtDwOnqdImJl7GWlpqx+Wko6//J8uKTnIe4wZSv7yCqmw==
dependencies:
sparkles "^1.0.0"
-has-symbols@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
- integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==
-
-has-value@^0.3.1:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
- integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=
+has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854"
+ integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==
dependencies:
- get-value "^2.0.3"
- has-values "^0.1.4"
- isobject "^2.0.0"
+ es-define-property "^1.0.0"
-has-value@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
- integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=
- dependencies:
- get-value "^2.0.6"
- has-values "^1.0.0"
- isobject "^3.0.0"
+has-proto@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd"
+ integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==
-has-values@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
- integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E=
+has-symbols@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
+ integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
-has-values@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
- integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=
+hasown@^2.0.0, hasown@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
+ integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
dependencies:
- is-number "^3.0.0"
- kind-of "^4.0.0"
+ function-bind "^1.1.2"
homedir-polyfill@^1.0.1:
version "1.0.3"
@@ -1238,25 +1041,27 @@ homedir-polyfill@^1.0.1:
dependencies:
parse-passwd "^1.0.0"
-hosted-git-info@^2.1.4:
- version "2.8.9"
- resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
- integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
+iconv-lite@^0.6.3:
+ version "0.6.3"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
+ integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3.0.0"
-ignore@^5.2.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a"
- integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==
+ieee754@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
+ integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
-indent-string@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-5.0.0.tgz#4fd2980fccaf8622d14c64d694f4cf33c81951a5"
- integrity sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==
+ignore@^5.2.4:
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef"
+ integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==
inflight@^1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
- integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
+ integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
dependencies:
once "^1.3.0"
wrappy "1"
@@ -1269,27 +1074,17 @@ inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1,
inherits@2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
- integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
+ integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==
ini@^1.3.4:
- version "1.3.7"
- resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84"
- integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==
-
-interpret@^1.1.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296"
- integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==
+ version "1.3.8"
+ resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
+ integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
-interpret@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
- integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==
-
-invert-kv@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
- integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY=
+interpret@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4"
+ integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==
is-absolute@^1.0.0:
version "1.0.0"
@@ -1299,73 +1094,24 @@ is-absolute@^1.0.0:
is-relative "^1.0.0"
is-windows "^1.0.1"
-is-accessor-descriptor@^0.1.6:
- version "0.1.6"
- resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
- integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=
- dependencies:
- kind-of "^3.0.2"
-
-is-accessor-descriptor@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
- integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==
- dependencies:
- kind-of "^6.0.0"
-
-is-arrayish@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
- integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
-
-is-binary-path@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
- integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=
+is-binary-path@~2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
+ integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
dependencies:
- binary-extensions "^1.0.0"
+ binary-extensions "^2.0.0"
is-buffer@^1.1.5:
version "1.1.6"
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
-is-data-descriptor@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
- integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=
- dependencies:
- kind-of "^3.0.2"
-
-is-data-descriptor@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
- integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==
- dependencies:
- kind-of "^6.0.0"
-
-is-descriptor@^0.1.0:
- version "0.1.6"
- resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
- integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
- dependencies:
- is-accessor-descriptor "^0.1.6"
- is-data-descriptor "^0.1.4"
- kind-of "^5.0.0"
-
-is-descriptor@^1.0.0, is-descriptor@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
- integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==
+is-core-module@^2.13.0:
+ version "2.15.0"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.0.tgz#71c72ec5442ace7e76b306e9d48db361f22699ea"
+ integrity sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==
dependencies:
- is-accessor-descriptor "^1.0.0"
- is-data-descriptor "^1.0.0"
- kind-of "^6.0.2"
-
-is-extendable@^0.1.0, is-extendable@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
- integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
+ hasown "^2.0.2"
is-extendable@^1.0.1:
version "1.0.1"
@@ -1377,23 +1123,21 @@ is-extendable@^1.0.1:
is-extglob@^2.1.0, is-extglob@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
- integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
+ integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
-is-fullwidth-code-point@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
- integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
- dependencies:
- number-is-nan "^1.0.0"
+is-fullwidth-code-point@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
+ integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
is-glob@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"
- integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=
+ integrity sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==
dependencies:
is-extglob "^2.1.0"
-is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3:
+is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
version "4.0.3"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
@@ -1403,19 +1147,7 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3:
is-negated-glob@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2"
- integrity sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=
-
-is-number@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
- integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=
- dependencies:
- kind-of "^3.0.2"
-
-is-number@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff"
- integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==
+ integrity sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==
is-number@^7.0.0:
version "7.0.0"
@@ -1432,7 +1164,7 @@ is-path-inside@^4.0.0:
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-4.0.0.tgz#805aeb62c47c1b12fc3fd13bfb3ed1e7430071db"
integrity sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==
-is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4:
+is-plain-object@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
@@ -1444,10 +1176,10 @@ is-plain-object@^5.0.0:
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"
integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==
-is-promise@^2.1:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
- integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=
+is-promise@^2.2.2:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1"
+ integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==
is-relative@^1.0.0:
version "1.0.0"
@@ -1463,17 +1195,17 @@ is-unc-path@^1.0.0:
dependencies:
unc-path-regex "^0.1.2"
-is-utf8@^0.2.0, is-utf8@^0.2.1:
+is-utf8@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
- integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=
+ integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==
is-valid-glob@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa"
- integrity sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=
+ integrity sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==
-is-windows@^1.0.1, is-windows@^1.0.2:
+is-windows@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
@@ -1481,184 +1213,131 @@ is-windows@^1.0.1, is-windows@^1.0.2:
isarray@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
- integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=
+ integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==
-isarray@1.0.0, isarray@~1.0.0:
+isarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
- integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
+ integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==
isexe@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
- integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
-
-isobject@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
- integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=
- dependencies:
- isarray "1.0.0"
+ integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
isobject@^3.0.0, isobject@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
- integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
+ integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==
json-stable-stringify-without-jsonify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
- integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
-
-just-debounce@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/just-debounce/-/just-debounce-1.0.0.tgz#87fccfaeffc0b68cd19d55f6722943f929ea35ea"
- integrity sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=
-
-kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
- integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
- dependencies:
- is-buffer "^1.1.5"
-
-kind-of@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
- integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc=
- dependencies:
- is-buffer "^1.1.5"
+ integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
-kind-of@^5.0.0, kind-of@^5.0.2:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
- integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
-
-kind-of@^6.0.0, kind-of@^6.0.2:
- version "6.0.3"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
- integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
-
-last-run@^1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/last-run/-/last-run-1.1.1.tgz#45b96942c17b1c79c772198259ba943bebf8ca5b"
- integrity sha1-RblpQsF7HHnHchmCWbqUO+v4yls=
- dependencies:
- default-resolution "^2.0.0"
- es6-weak-map "^2.0.1"
+last-run@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/last-run/-/last-run-2.0.0.tgz#f82dcfbfce6e63d041bd83d64c82e34cdba6572e"
+ integrity sha512-j+y6WhTLN4Itnf9j5ZQos1BGPCS8DAwmgMroR3OzfxAsBxam0hMw7J8M3KqZl0pLQJ1jNnwIexg5DYpC/ctwEQ==
lazystream@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4"
- integrity sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638"
+ integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==
dependencies:
readable-stream "^2.0.5"
-lcid@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
- integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=
- dependencies:
- invert-kv "^1.0.0"
-
lead@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/lead/-/lead-1.0.0.tgz#6f14f99a37be3a9dd784f5495690e5903466ee42"
- integrity sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=
+ integrity sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==
dependencies:
flush-write-stream "^1.0.2"
-liftoff@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-3.1.0.tgz#c9ba6081f908670607ee79062d700df062c52ed3"
- integrity sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==
- dependencies:
- extend "^3.0.0"
- findup-sync "^3.0.0"
- fined "^1.0.1"
- flagged-respawn "^1.0.0"
- is-plain-object "^2.0.4"
- object.map "^1.0.0"
- rechoir "^0.6.2"
- resolve "^1.1.7"
+lead@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/lead/-/lead-4.0.0.tgz#5317a49effb0e7ec3a0c8fb9c1b24fb716aab939"
+ integrity sha512-DpMa59o5uGUWWjruMp71e6knmwKU3jRBBn1kjuLWN9EeIOxNeSAwvHf03WIl8g/ZMR2oSQC9ej3yeLBwdDc/pg==
-load-json-file@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
- integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=
+liftoff@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-5.0.0.tgz#0e5ed275bc334caec0e551ecf08bb22be583e236"
+ integrity sha512-a5BQjbCHnB+cy+gsro8lXJ4kZluzOijzJ1UVVfyJYZC+IP2pLv1h4+aysQeKuTmyO8NAqfyQAk4HWaP/HjcKTg==
dependencies:
- graceful-fs "^4.1.2"
- parse-json "^2.2.0"
- pify "^2.0.0"
- pinkie-promise "^2.0.0"
- strip-bom "^2.0.0"
+ extend "^3.0.2"
+ findup-sync "^5.0.0"
+ fined "^2.0.0"
+ flagged-respawn "^2.0.0"
+ is-plain-object "^5.0.0"
+ rechoir "^0.8.0"
+ resolve "^1.20.0"
lodash._basecopy@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36"
- integrity sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=
+ integrity sha512-rFR6Vpm4HeCK1WPGvjZSJ+7yik8d8PVUdCJx5rT2pogG4Ve/2ZS7kfmO5l5T2o5V2mqlNIfSF5MZlr1+xOoYQQ==
lodash._basetostring@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5"
- integrity sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=
+ integrity sha512-mTzAr1aNAv/i7W43vOR/uD/aJ4ngbtsRaCubp2BfZhlGU/eORUjg/7F6X0orNMdv33JOrdgGybtvMN/po3EWrA==
lodash._basevalues@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7"
- integrity sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=
+ integrity sha512-H94wl5P13uEqlCg7OcNNhMQ8KvWSIyqXzOPusRgHC9DK3o54P6P3xtbXlVbRABG4q5gSmp7EDdJ0MSuW9HX6Mg==
lodash._getnative@^3.0.0:
version "3.9.1"
resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
- integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=
+ integrity sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA==
lodash._isiterateecall@^3.0.0:
version "3.0.9"
resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c"
- integrity sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=
+ integrity sha512-De+ZbrMu6eThFti/CSzhRvTKMgQToLxbij58LMfM8JnYDNSOjkjTCIaa8ixglOeGh2nyPlakbt5bJWJ7gvpYlQ==
lodash._reescape@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a"
- integrity sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=
+ integrity sha512-Sjlavm5y+FUVIF3vF3B75GyXrzsfYV8Dlv3L4mEpuB9leg8N6yf/7rU06iLPx9fY0Mv3khVp9p7Dx0mGV6V5OQ==
lodash._reevaluate@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed"
- integrity sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=
+ integrity sha512-OrPwdDc65iJiBeUe5n/LIjd7Viy99bKwDdk7Z5ljfZg0uFRFlfQaCy9tZ4YMAag9WAZmlVpe1iZrkIMMSMHD3w==
lodash._reinterpolate@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
- integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=
+ integrity sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==
lodash._root@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692"
- integrity sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=
+ integrity sha512-O0pWuFSK6x4EXhM1dhZ8gchNtG7JMqBtrHdoUFUWXD7dJnNSUze1GuyQr5sOs0aCvgGeI3o/OJW8f4ca7FDxmQ==
lodash.escape@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698"
- integrity sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=
+ integrity sha512-n1PZMXgaaDWZDSvuNZ/8XOcYO2hOKDqZel5adtR30VKQAtoWs/5AOeFA0vPV8moiPzlqe7F4cP2tzpFewQyelQ==
dependencies:
lodash._root "^3.0.0"
lodash.isarguments@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
- integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=
+ integrity sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==
lodash.isarray@^3.0.0:
version "3.0.4"
resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
- integrity sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=
+ integrity sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ==
lodash.keys@^3.0.0:
version "3.1.2"
resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
- integrity sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=
+ integrity sha512-CuBsapFjcubOGMn3VD+24HOAPxM79tH+V6ivJL3CHYjtrawauDJHUk//Yew9Hvc6e9rbCrURGk8z6PC+8WJBfQ==
dependencies:
lodash._getnative "^3.0.0"
lodash.isarguments "^3.0.0"
@@ -1667,12 +1346,12 @@ lodash.keys@^3.0.0:
lodash.restparam@^3.0.0:
version "3.6.1"
resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805"
- integrity sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=
+ integrity sha512-L4/arjjuq4noiUJpt3yS6KIKDtJwNe2fIYgMqyYYKoeIfV1iEqvPwhCx23o+R9dzouGihDAPN1dTIRWa7zk8tw==
lodash.template@^3.0.0:
version "3.6.2"
resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f"
- integrity sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=
+ integrity sha512-0B4Y53I0OgHUJkt+7RmlDFWKjVAI/YUpWNiL9GQz5ORDr4ttgfQGo+phBWKFLJbBdtOwgMuUkdOHOnPg45jKmQ==
dependencies:
lodash._basecopy "^3.0.0"
lodash._basetostring "^3.0.0"
@@ -1687,113 +1366,51 @@ lodash.template@^3.0.0:
lodash.templatesettings@^3.0.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5"
- integrity sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=
+ integrity sha512-TcrlEr31tDYnWkHFWDCV3dHYroKEXpJZ2YJYvJdhN+y4AkWMDZ5I4I8XDtUKqSAyG81N7w+I1mFEJtcED+tGqQ==
dependencies:
lodash._reinterpolate "^3.0.0"
lodash.escape "^3.0.0"
-lower-case@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.1.tgz#39eeb36e396115cc05e29422eaea9e692c9408c7"
- integrity sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==
- dependencies:
- tslib "^1.10.0"
-
-lower-case@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28"
- integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==
- dependencies:
- tslib "^2.0.3"
-
-lru-queue@0.1:
+lru-queue@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3"
- integrity sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=
+ integrity sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==
dependencies:
es5-ext "~0.10.2"
-make-iterator@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.1.tgz#29b33f312aa8f547c4a5e490f56afcec99133ad6"
- integrity sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==
- dependencies:
- kind-of "^6.0.2"
-
-map-cache@^0.2.0, map-cache@^0.2.2:
+map-cache@^0.2.0:
version "0.2.2"
resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
- integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=
-
-map-visit@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
- integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=
- dependencies:
- object-visit "^1.0.0"
-
-matchdep@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/matchdep/-/matchdep-2.0.0.tgz#c6f34834a0d8dbc3b37c27ee8bbcb27c7775582e"
- integrity sha1-xvNINKDY28OzfCfui7yyfHd1WC4=
- dependencies:
- findup-sync "^2.0.0"
- micromatch "^3.0.4"
- resolve "^1.4.0"
- stack-trace "0.0.10"
+ integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==
memoizee@0.4.X:
- version "0.4.14"
- resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.14.tgz#07a00f204699f9a95c2d9e77218271c7cd610d57"
- integrity sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg==
+ version "0.4.17"
+ resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.17.tgz#942a5f8acee281fa6fb9c620bddc57e3b7382949"
+ integrity sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA==
dependencies:
- d "1"
- es5-ext "^0.10.45"
- es6-weak-map "^2.0.2"
+ d "^1.0.2"
+ es5-ext "^0.10.64"
+ es6-weak-map "^2.0.3"
event-emitter "^0.3.5"
- is-promise "^2.1"
- lru-queue "0.1"
- next-tick "1"
- timers-ext "^0.1.5"
+ is-promise "^2.2.2"
+ lru-queue "^0.1.0"
+ next-tick "^1.1.0"
+ timers-ext "^0.1.7"
-merge2@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81"
- integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==
-
-merge2@^1.4.1:
+merge2@^1.3.0, merge2@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
-micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4:
- version "3.1.10"
- resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
- integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
- dependencies:
- arr-diff "^4.0.0"
- array-unique "^0.3.2"
- braces "^2.3.1"
- define-property "^2.0.2"
- extend-shallow "^3.0.2"
- extglob "^2.0.4"
- fragment-cache "^0.2.1"
- kind-of "^6.0.2"
- nanomatch "^1.2.9"
- object.pick "^1.3.0"
- regex-not "^1.0.0"
- snapdragon "^0.8.1"
- to-regex "^3.0.2"
-
micromatch@^4.0.4:
- version "4.0.5"
- resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
- integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202"
+ integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
dependencies:
- braces "^3.0.2"
+ braces "^3.0.3"
picomatch "^2.3.1"
-minimatch@^3.0.4:
+minimatch@^3.1.1:
version "3.1.2"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
@@ -1801,110 +1418,44 @@ minimatch@^3.0.4:
brace-expansion "^1.1.7"
minimist@^1.1.0:
- version "1.2.6"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
- integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
-
-mixin-deep@^1.2.0:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
- integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==
- dependencies:
- for-in "^1.0.2"
- is-extendable "^1.0.1"
-
-ms@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
- integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
+ version "1.2.8"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
+ integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
ms@^2.1.1:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
- integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
+ integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
multipipe@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b"
- integrity sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=
+ integrity sha512-7ZxrUybYv9NonoXgwoOqtStIu18D1c3eFZj27hqgf5kBrBF8Q+tE8V0MW8dKM5QLkQPh1JhhbKgHLY9kifov4Q==
dependencies:
duplexer2 "0.0.2"
-mute-stdout@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/mute-stdout/-/mute-stdout-1.0.1.tgz#acb0300eb4de23a7ddeec014e3e96044b3472331"
- integrity sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==
-
-nan@^2.12.1:
- version "2.14.0"
- resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c"
- integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==
-
-nanomatch@^1.2.9:
- version "1.2.13"
- resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
- integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==
- dependencies:
- arr-diff "^4.0.0"
- array-unique "^0.3.2"
- define-property "^2.0.2"
- extend-shallow "^3.0.2"
- fragment-cache "^0.2.1"
- is-windows "^1.0.2"
- kind-of "^6.0.2"
- object.pick "^1.3.0"
- regex-not "^1.0.0"
- snapdragon "^0.8.1"
- to-regex "^3.0.1"
+mute-stdout@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/mute-stdout/-/mute-stdout-2.0.0.tgz#c6a9b4b6185d3b7f70d3ffcb734cbfc8b0f38761"
+ integrity sha512-32GSKM3Wyc8dg/p39lWPKYu8zci9mJFzV1Np9Of0ZEpe6Fhssn/FbI7ywAMd40uX+p3ZKh3T5EeCFv81qS3HmQ==
-next-tick@1:
+next-tick@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb"
integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==
-next-tick@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"
- integrity sha1-yobR/ogoFpsBICCOPchCS524NCw=
-
-no-case@^3.0.3:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.3.tgz#c21b434c1ffe48b39087e86cfb4d2582e9df18f8"
- integrity sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==
- dependencies:
- lower-case "^2.0.1"
- tslib "^1.10.0"
-
-no-case@^3.0.4:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d"
- integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==
- dependencies:
- lower-case "^2.0.2"
- tslib "^2.0.3"
-
-normalize-package-data@^2.3.2:
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
- integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
- dependencies:
- hosted-git-info "^2.1.4"
- resolve "^1.10.0"
- semver "2 || 3 || 4 || 5"
- validate-npm-package-license "^3.0.1"
+normalize-path@3.0.0, normalize-path@^3.0.0, normalize-path@~3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
+ integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
normalize-path@^2.0.1, normalize-path@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
- integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
+ integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==
dependencies:
remove-trailing-separator "^1.0.1"
-normalize-path@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
- integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
-
now-and-later@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/now-and-later/-/now-and-later-2.0.1.tgz#8e579c8685764a7cc02cb680380e94f43ccb1f7c"
@@ -1912,129 +1463,83 @@ now-and-later@^2.0.0:
dependencies:
once "^1.3.2"
-number-is-nan@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
- integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
+now-and-later@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/now-and-later/-/now-and-later-3.0.0.tgz#cdc045dc5b894b35793cf276cc3206077bb7302d"
+ integrity sha512-pGO4pzSdaxhWTGkfSfHx3hVzJVslFPwBp2Myq9MYN/ChfJZF87ochMAXnvz6/58RJSf5ik2q9tXprBBrk2cpcg==
+ dependencies:
+ once "^1.4.0"
object-assign@4.X:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
- integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
+ integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
object-assign@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2"
- integrity sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=
+ integrity sha512-jHP15vXVGeVh1HuaA2wY6lxk+whK/x4KBG88VXeRma7CCun7iGD5qPc4eYykQ9sdQvg8jkwFKsSxHln2ybW3xQ==
-object-copy@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
- integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw=
- dependencies:
- copy-descriptor "^0.1.0"
- define-property "^0.2.5"
- kind-of "^3.0.3"
-
-object-keys@^1.0.11, object-keys@^1.0.12:
+object-keys@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
-object-visit@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
- integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=
- dependencies:
- isobject "^3.0.0"
-
object.assign@^4.0.4:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da"
- integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==
+ version "4.1.5"
+ resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0"
+ integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==
dependencies:
- define-properties "^1.1.2"
- function-bind "^1.1.1"
- has-symbols "^1.0.0"
- object-keys "^1.0.11"
+ call-bind "^1.0.5"
+ define-properties "^1.2.1"
+ has-symbols "^1.0.3"
+ object-keys "^1.1.1"
-object.defaults@^1.0.0, object.defaults@^1.1.0:
+object.defaults@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf"
- integrity sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=
+ integrity sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==
dependencies:
array-each "^1.0.1"
array-slice "^1.0.0"
for-own "^1.0.0"
isobject "^3.0.0"
-object.map@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37"
- integrity sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=
- dependencies:
- for-own "^1.0.0"
- make-iterator "^1.0.0"
-
-object.pick@^1.2.0, object.pick@^1.3.0:
+object.pick@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
- integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=
+ integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==
dependencies:
isobject "^3.0.1"
-object.reduce@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/object.reduce/-/object.reduce-1.0.1.tgz#6fe348f2ac7fa0f95ca621226599096825bb03ad"
- integrity sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=
- dependencies:
- for-own "^1.0.0"
- make-iterator "^1.0.0"
-
once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
- integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
+ integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
dependencies:
wrappy "1"
ordered-read-streams@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e"
- integrity sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=
+ integrity sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==
dependencies:
readable-stream "^2.0.1"
-os-locale@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9"
- integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=
- dependencies:
- lcid "^1.0.0"
-
-p-map@^5.5.0:
- version "5.5.0"
- resolved "https://registry.yarnpkg.com/p-map/-/p-map-5.5.0.tgz#054ca8ca778dfa4cf3f8db6638ccb5b937266715"
- integrity sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==
- dependencies:
- aggregate-error "^4.0.0"
+p-map@^7.0.2:
+ version "7.0.2"
+ resolved "https://registry.yarnpkg.com/p-map/-/p-map-7.0.2.tgz#7c5119fada4755660f70199a66aa3fe2f85a1fe8"
+ integrity sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q==
-parse-filepath@^1.0.1:
+parse-filepath@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891"
- integrity sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=
+ integrity sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==
dependencies:
is-absolute "^1.0.0"
map-cache "^0.2.0"
path-root "^0.1.1"
-parse-json@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
- integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=
- dependencies:
- error-ex "^1.2.0"
-
parse-node-version@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b"
@@ -2043,47 +1548,19 @@ parse-node-version@^1.0.0:
parse-passwd@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
- integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=
-
-pascal-case@^3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.1.tgz#5ac1975133ed619281e88920973d2cd1f279de5f"
- integrity sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA==
- dependencies:
- no-case "^3.0.3"
- tslib "^1.10.0"
-
-pascal-case@^3.1.2:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb"
- integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==
- dependencies:
- no-case "^3.0.4"
- tslib "^2.0.3"
-
-pascalcase@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
- integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
+ integrity sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==
path-dirname@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
- integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=
-
-path-exists@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
- integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=
- dependencies:
- pinkie-promise "^2.0.0"
+ integrity sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==
path-is-absolute@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
- integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
+ integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
-path-parse@^1.0.6:
+path-parse@^1.0.7:
version "1.0.7"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
@@ -2091,33 +1568,24 @@ path-parse@^1.0.6:
path-root-regex@^0.1.0:
version "0.1.2"
resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d"
- integrity sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=
+ integrity sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==
path-root@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7"
- integrity sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=
+ integrity sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==
dependencies:
path-root-regex "^0.1.0"
-path-type@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
- integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=
- dependencies:
- graceful-fs "^4.1.2"
- pify "^2.0.0"
- pinkie-promise "^2.0.0"
-
-path-type@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
- integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+path-type@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-5.0.0.tgz#14b01ed7aea7ddf9c7c3f46181d4d04f9c785bb8"
+ integrity sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==
path@^0.12.7:
version "0.12.7"
resolved "https://registry.yarnpkg.com/path/-/path-0.12.7.tgz#d4dc2a506c4ce2197eb481ebfcd5b36c0140b10f"
- integrity sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=
+ integrity sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==
dependencies:
process "^0.11.1"
util "^0.10.3"
@@ -2127,28 +1595,11 @@ picocolors@^0.2.1:
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f"
integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==
-picomatch@^2.3.1:
+picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
-pify@^2.0.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
- integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
-
-pinkie-promise@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
- integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o=
- dependencies:
- pinkie "^2.0.0"
-
-pinkie@^2.0.0:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
- integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA=
-
plugin-error@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-1.0.1.tgz#77016bd8919d0ac377fdcdd0322328953ca5781c"
@@ -2159,11 +1610,6 @@ plugin-error@^1.0.1:
arr-union "^3.1.0"
extend-shallow "^3.0.2"
-posix-character-classes@^0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
- integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
-
postcss@^7.0.16:
version "7.0.39"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309"
@@ -2172,11 +1618,6 @@ postcss@^7.0.16:
picocolors "^0.2.1"
source-map "^0.6.1"
-pretty-hrtime@^1.0.0:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1"
- integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=
-
process-nextick-args@^2.0.0, process-nextick-args@~2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
@@ -2185,7 +1626,7 @@ process-nextick-args@^2.0.0, process-nextick-args@~2.0.0:
process@^0.11.1:
version "0.11.10"
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
- integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
+ integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==
pump@^2.0.0:
version "2.0.1"
@@ -2204,36 +1645,29 @@ pumpify@^1.3.5:
inherits "^2.0.3"
pump "^2.0.0"
-read-pkg-up@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
- integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=
- dependencies:
- find-up "^1.0.0"
- read-pkg "^1.0.0"
+queue-microtask@^1.2.2:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
+ integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
-read-pkg@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
- integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=
- dependencies:
- load-json-file "^1.0.0"
- normalize-package-data "^2.3.2"
- path-type "^1.0.0"
+queue-tick@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/queue-tick/-/queue-tick-1.0.1.tgz#f6f07ac82c1fd60f82e098b417a80e52f1f4c142"
+ integrity sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==
-"readable-stream@2 || 3":
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
- integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
+"readable-stream@2 || 3", readable-stream@3, readable-stream@^3.4.0:
+ version "3.6.2"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
+ integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
dependencies:
inherits "^2.0.3"
string_decoder "^1.1.1"
util-deprecate "^1.0.1"
-readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6:
- version "2.3.7"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
- integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
+readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6:
+ version "2.3.8"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b"
+ integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.3"
@@ -2246,36 +1680,26 @@ readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable
readable-stream@~1.1.9:
version "1.1.14"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9"
- integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk=
+ integrity sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.1"
isarray "0.0.1"
string_decoder "~0.10.x"
-readdirp@^2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
- integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==
- dependencies:
- graceful-fs "^4.1.11"
- micromatch "^3.1.10"
- readable-stream "^2.0.2"
-
-rechoir@^0.6.2:
- version "0.6.2"
- resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
- integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=
+readdirp@~3.6.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
+ integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
dependencies:
- resolve "^1.1.6"
+ picomatch "^2.2.1"
-regex-not@^1.0.0, regex-not@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
- integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==
+rechoir@^0.8.0:
+ version "0.8.0"
+ resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22"
+ integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==
dependencies:
- extend-shallow "^3.0.2"
- safe-regex "^1.1.0"
+ resolve "^1.20.0"
remove-bom-buffer@^3.0.0:
version "3.0.0"
@@ -2288,7 +1712,7 @@ remove-bom-buffer@^3.0.0:
remove-bom-stream@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz#05f1a593f16e42e1fb90ebf59de8e569525f9523"
- integrity sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=
+ integrity sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA==
dependencies:
remove-bom-buffer "^3.0.0"
safe-buffer "^5.1.0"
@@ -2297,51 +1721,37 @@ remove-bom-stream@^1.2.0:
remove-trailing-separator@^1.0.1, remove-trailing-separator@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
- integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
-
-repeat-element@^1.1.2:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce"
- integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==
-
-repeat-string@^1.6.1:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
- integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
+ integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==
replace-ext@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924"
- integrity sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=
+ integrity sha512-AFBWBy9EVRTa/LhEcG8QDP3FvpwZqmvN2QFDuJswFeaVhWnZMp8q3E6Zd90SR04PlIwfGdyVjNyLPyen/ek5CQ==
replace-ext@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb"
- integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a"
+ integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==
-replace-homedir@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/replace-homedir/-/replace-homedir-1.0.0.tgz#e87f6d513b928dde808260c12be7fec6ff6e798c"
- integrity sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=
- dependencies:
- homedir-polyfill "^1.0.1"
- is-absolute "^1.0.0"
- remove-trailing-separator "^1.1.0"
+replace-ext@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-2.0.0.tgz#9471c213d22e1bcc26717cd6e50881d88f812b06"
+ integrity sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==
+
+replace-homedir@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/replace-homedir/-/replace-homedir-2.0.0.tgz#245bd9c909275e0beee75eae85bb40780cd61903"
+ integrity sha512-bgEuQQ/BHW0XkkJtawzrfzHFSN70f/3cNOiHa2QsYxqrjaC30X1k74FJ6xswVBP0sr0SpGIdVFuPwfrYziVeyw==
require-directory@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
- integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
-
-require-main-filename@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
- integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=
+ integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
resolve-dir@^1.0.0, resolve-dir@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43"
- integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=
+ integrity sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==
dependencies:
expand-tilde "^2.0.0"
global-modules "^1.0.0"
@@ -2349,133 +1759,81 @@ resolve-dir@^1.0.0, resolve-dir@^1.0.1:
resolve-options@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/resolve-options/-/resolve-options-1.1.0.tgz#32bb9e39c06d67338dc9378c0d6d6074566ad131"
- integrity sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=
+ integrity sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A==
dependencies:
value-or-function "^3.0.0"
-resolve-url@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
- integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
-
-resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.4.0:
- version "1.15.1"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8"
- integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==
+resolve-options@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-options/-/resolve-options-2.0.0.tgz#a1a57a9949db549dd075de3f5550675f02f1e4c5"
+ integrity sha512-/FopbmmFOQCfsCx77BRFdKOniglTiHumLgwvd6IDPihy1GKkadZbgQJBcTb2lMzSR1pndzd96b1nZrreZ7+9/A==
dependencies:
- path-parse "^1.0.6"
+ value-or-function "^4.0.0"
-ret@~0.1.10:
- version "0.1.15"
- resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
- integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
+resolve@^1.20.0:
+ version "1.22.8"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d"
+ integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==
+ dependencies:
+ is-core-module "^2.13.0"
+ path-parse "^1.0.7"
+ supports-preserve-symlinks-flag "^1.0.0"
reusify@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
-rimraf@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
- integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
- dependencies:
- glob "^7.1.3"
-
run-parallel@^1.1.9:
- version "1.1.9"
- resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679"
- integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
+ integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
+ dependencies:
+ queue-microtask "^1.2.2"
safe-buffer@^5.1.0, safe-buffer@~5.2.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
- integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
-safe-regex@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
- integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4=
- dependencies:
- ret "~0.1.10"
-
-semver-greatest-satisfied-range@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz#13e8c2658ab9691cb0cd71093240280d36f77a5b"
- integrity sha1-E+jCZYq5aRywzXEJMkAoDTb3els=
- dependencies:
- sver-compat "^1.5.0"
-
-"semver@2 || 3 || 4 || 5":
- version "5.7.1"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
- integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
+"safer-buffer@>= 2.1.2 < 3.0.0":
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
-set-blocking@^2.0.0:
+semver-greatest-satisfied-range@^2.0.0:
version "2.0.0"
- resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
- integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
-
-set-value@^2.0.0, set-value@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
- integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==
+ resolved "https://registry.yarnpkg.com/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-2.0.0.tgz#4b62942a7a1ccbdb252e5329677c003bac546fe7"
+ integrity sha512-lH3f6kMbwyANB7HuOWRMlLCa2itaCrZJ+SAqqkSZrZKO/cAsk2EOyaKHUtNkVLFyFW9pct22SFesFp3Z7zpA0g==
dependencies:
- extend-shallow "^2.0.1"
- is-extendable "^0.1.1"
- is-plain-object "^2.0.3"
- split-string "^3.0.1"
+ sver "^1.8.3"
-slash@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7"
- integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==
+semver@^6.3.0:
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
+ integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
-snapdragon-node@^2.0.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
- integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==
+set-function-length@^1.2.1:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449"
+ integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==
dependencies:
- define-property "^1.0.0"
- isobject "^3.0.0"
- snapdragon-util "^3.0.1"
+ define-data-property "^1.1.4"
+ es-errors "^1.3.0"
+ function-bind "^1.1.2"
+ get-intrinsic "^1.2.4"
+ gopd "^1.0.1"
+ has-property-descriptors "^1.0.2"
-snapdragon-util@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
- integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==
- dependencies:
- kind-of "^3.2.0"
-
-snapdragon@^0.8.1:
- version "0.8.2"
- resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d"
- integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==
- dependencies:
- base "^0.11.1"
- debug "^2.2.0"
- define-property "^0.2.5"
- extend-shallow "^2.0.1"
- map-cache "^0.2.2"
- source-map "^0.5.6"
- source-map-resolve "^0.5.0"
- use "^3.1.0"
-
-source-map-resolve@^0.5.0:
- version "0.5.3"
- resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
- integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==
- dependencies:
- atob "^2.1.2"
- decode-uri-component "^0.2.0"
- resolve-url "^0.2.1"
- source-map-url "^0.4.0"
- urix "^0.1.0"
+slash@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/slash/-/slash-5.1.0.tgz#be3adddcdf09ac38eebe8dcdc7b1a57a75b095ce"
+ integrity sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==
source-map-resolve@^0.6.0:
version "0.6.0"
@@ -2485,95 +1843,62 @@ source-map-resolve@^0.6.0:
atob "^2.1.2"
decode-uri-component "^0.2.0"
-source-map-url@^0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
- integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=
-
-source-map@^0.5.6:
- version "0.5.7"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
- integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
-
source-map@^0.6.0, source-map@^0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
-source-map@^0.7.3:
- version "0.7.3"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
- integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
+source-map@^0.7.3, source-map@^0.7.4:
+ version "0.7.4"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656"
+ integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==
sparkles@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.1.tgz#008db65edce6c50eec0c5e228e1945061dd0437c"
integrity sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==
-spdx-correct@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4"
- integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==
- dependencies:
- spdx-expression-parse "^3.0.0"
- spdx-license-ids "^3.0.0"
-
-spdx-exceptions@^2.1.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977"
- integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==
-
-spdx-expression-parse@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0"
- integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==
- dependencies:
- spdx-exceptions "^2.1.0"
- spdx-license-ids "^3.0.0"
-
-spdx-license-ids@^3.0.0:
- version "3.0.5"
- resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654"
- integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==
-
-split-string@^3.0.1, split-string@^3.0.2:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
- integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==
- dependencies:
- extend-shallow "^3.0.0"
-
-stack-trace@0.0.10:
- version "0.0.10"
- resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"
- integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=
+sparkles@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-2.1.0.tgz#8ad4e8cecba7e568bba660c39b6db46625ecf1ad"
+ integrity sha512-r7iW1bDw8R/cFifrD3JnQJX0K1jqT0kprL48BiBpLZLJPmAm34zsVBsK5lc7HirZYZqMW65dOXZgbAGt/I6frg==
-static-extend@^0.1.1:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
- integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=
+stream-composer@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/stream-composer/-/stream-composer-1.0.2.tgz#7ee61ca1587bf5f31b2e29aa2093cbf11442d152"
+ integrity sha512-bnBselmwfX5K10AH6L4c8+S5lgZMWI7ZYrz2rvYjCPB2DIMC4Ig8OpxGpNJSxRZ58oti7y1IcNvjBAz9vW5m4w==
dependencies:
- define-property "^0.2.5"
- object-copy "^0.1.0"
+ streamx "^2.13.2"
-stream-exhaust@^1.0.1:
+stream-exhaust@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/stream-exhaust/-/stream-exhaust-1.0.2.tgz#acdac8da59ef2bc1e17a2c0ccf6c320d120e555d"
integrity sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==
stream-shift@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"
- integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.3.tgz#85b8fab4d71010fc3ba8772e8046cc49b8a3864b"
+ integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==
-string-width@^1.0.1, string-width@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
- integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
+streamx@^2.12.0, streamx@^2.12.5, streamx@^2.13.2, streamx@^2.14.0:
+ version "2.18.0"
+ resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.18.0.tgz#5bc1a51eb412a667ebfdcd4e6cf6a6fc65721ac7"
+ integrity sha512-LLUC1TWdjVdn1weXGcSxyTR3T4+acB6tVGXT95y0nGbca4t4o/ng1wKAGTljm9VicuCVLvRlqFYXYy5GwgM7sQ==
dependencies:
- code-point-at "^1.0.0"
- is-fullwidth-code-point "^1.0.0"
- strip-ansi "^3.0.0"
+ fast-fifo "^1.3.2"
+ queue-tick "^1.0.1"
+ text-decoder "^1.1.0"
+ optionalDependencies:
+ bare-events "^2.2.0"
+
+string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+ integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
+ dependencies:
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.1"
string_decoder@^1.1.1:
version "1.3.0"
@@ -2585,7 +1910,7 @@ string_decoder@^1.1.1:
string_decoder@~0.10.x:
version "0.10.31"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
- integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=
+ integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==
string_decoder@~1.1.1:
version "1.1.1"
@@ -2594,47 +1919,71 @@ string_decoder@~1.1.1:
dependencies:
safe-buffer "~5.1.0"
-strip-ansi@^3.0.0, strip-ansi@^3.0.1:
+strip-ansi@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
- integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
+ integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==
dependencies:
ansi-regex "^2.0.0"
+strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+ integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+ dependencies:
+ ansi-regex "^5.0.1"
+
strip-bom-string@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92"
- integrity sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=
-
-strip-bom@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
- integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=
- dependencies:
- is-utf8 "^0.2.0"
+ integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==
supports-color@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
- integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
+ integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==
-sver-compat@^1.5.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/sver-compat/-/sver-compat-1.5.0.tgz#3cf87dfeb4d07b4a3f14827bc186b3fd0c645cd8"
- integrity sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=
+supports-color@^7.1.0:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
+ integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
dependencies:
- es6-iterator "^2.0.1"
- es6-symbol "^3.1.1"
+ has-flag "^4.0.0"
+
+supports-preserve-symlinks-flag@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
+ integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
+
+sver@^1.8.3:
+ version "1.8.4"
+ resolved "https://registry.yarnpkg.com/sver/-/sver-1.8.4.tgz#9bd6f6265263f01aab152df935dc7a554c15673f"
+ integrity sha512-71o1zfzyawLfIWBOmw8brleKyvnbn73oVHNCsu51uPMz/HWiKkkXsI31JjHW5zqXEqnPYkIiHd8ZmL7FCimLEA==
+ optionalDependencies:
+ semver "^6.3.0"
+
+teex@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/teex/-/teex-1.0.1.tgz#b8fa7245ef8e8effa8078281946c85ab780a0b12"
+ integrity sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==
+ dependencies:
+ streamx "^2.12.5"
+
+text-decoder@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/text-decoder/-/text-decoder-1.1.1.tgz#5df9c224cebac4a7977720b9f083f9efa1aefde8"
+ integrity sha512-8zll7REEv4GDD3x4/0pW+ppIxSNs7H1J10IKFZsuOMscumCdM2a+toDGLPA3T+1+fLBql4zbt5z83GEQGGV5VA==
+ dependencies:
+ b4a "^1.6.4"
through2-filter@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.0.0.tgz#700e786df2367c2c88cd8aa5be4cf9c1e7831254"
- integrity sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.1.0.tgz#4a1b45d2b76b3ac93ec137951e372c268efc1a4e"
+ integrity sha512-VhZsTsfrIJjyUi6GeecnwcOJlmoqgIdGFDjqnV5ape+F1DN8GejfPO66XyIhoinxmxGImiUTrq9RwpTN5yszGA==
dependencies:
- through2 "~2.0.0"
- xtend "~4.0.0"
+ through2 "^4.0.2"
-through2@^2.0.0, through2@^2.0.3, through2@~2.0.0:
+through2@^2.0.0, through2@^2.0.3:
version "2.0.5"
resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
@@ -2642,14 +1991,7 @@ through2@^2.0.0, through2@^2.0.3, through2@~2.0.0:
readable-stream "~2.3.6"
xtend "~4.0.1"
-through2@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.1.tgz#39276e713c3302edf9e388dd9c812dd3b825bd5a"
- integrity sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==
- dependencies:
- readable-stream "2 || 3"
-
-through2@^3.0.1:
+through2@^3.0.0, through2@^3.0.1:
version "3.0.2"
resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.2.tgz#99f88931cfc761ec7678b41d5d7336b5b6a07bf4"
integrity sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==
@@ -2657,42 +1999,34 @@ through2@^3.0.1:
inherits "^2.0.4"
readable-stream "2 || 3"
+through2@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764"
+ integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==
+ dependencies:
+ readable-stream "3"
+
time-stamp@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3"
- integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=
+ integrity sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==
-timers-ext@^0.1.5:
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6"
- integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==
+timers-ext@^0.1.7:
+ version "0.1.8"
+ resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.8.tgz#b4e442f10b7624a29dd2aa42c295e257150cf16c"
+ integrity sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==
dependencies:
- es5-ext "~0.10.46"
- next-tick "1"
+ es5-ext "^0.10.64"
+ next-tick "^1.1.0"
to-absolute-glob@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1865f43d9e74b0822db9f145b78cff7d0f7c849b"
- integrity sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=
+ integrity sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==
dependencies:
is-absolute "^1.0.0"
is-negated-glob "^1.0.0"
-to-object-path@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
- integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=
- dependencies:
- kind-of "^3.0.2"
-
-to-regex-range@^2.1.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
- integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=
- dependencies:
- is-number "^3.0.0"
- repeat-string "^1.6.1"
-
to-regex-range@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
@@ -2700,87 +2034,59 @@ to-regex-range@^5.0.1:
dependencies:
is-number "^7.0.0"
-to-regex@^3.0.1, to-regex@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
- integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==
- dependencies:
- define-property "^2.0.2"
- extend-shallow "^3.0.2"
- regex-not "^1.0.2"
- safe-regex "^1.1.0"
-
to-through@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/to-through/-/to-through-2.0.0.tgz#fc92adaba072647bc0b67d6b03664aa195093af6"
- integrity sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=
+ integrity sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==
dependencies:
through2 "^2.0.3"
-tslib@^1.10.0:
- version "1.11.1"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35"
- integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==
-
-tslib@^2.0.3:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3"
- integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==
-
-type@^1.0.1:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0"
- integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==
-
-type@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3"
- integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==
+to-through@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/to-through/-/to-through-3.0.0.tgz#bf4956eaca5a0476474850a53672bed6906ace54"
+ integrity sha512-y8MN937s/HVhEoBU1SxfHC+wxCHkV1a9gW8eAdTadYh/bGyesZIVcbjI+mSpFbSVwQici/XjBjuUyri1dnXwBw==
+ dependencies:
+ streamx "^2.12.5"
-typedarray@^0.0.6:
- version "0.0.6"
- resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
- integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
+type@^2.7.2:
+ version "2.7.3"
+ resolved "https://registry.yarnpkg.com/type/-/type-2.7.3.tgz#436981652129285cc3ba94f392886c2637ea0486"
+ integrity sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==
typescript@^5.0.4:
- version "5.0.4"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.4.tgz#b217fd20119bd61a94d4011274e0ab369058da3b"
- integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==
+ version "5.5.4"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba"
+ integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==
unc-path-regex@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa"
- integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo=
+ integrity sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==
-undertaker-registry@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/undertaker-registry/-/undertaker-registry-1.0.1.tgz#5e4bda308e4a8a2ae584f9b9a4359a499825cc50"
- integrity sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=
+undertaker-registry@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/undertaker-registry/-/undertaker-registry-2.0.0.tgz#d434246e398444740dd7fe4c9543e402ad99e4ca"
+ integrity sha512-+hhVICbnp+rlzZMgxXenpvTxpuvA67Bfgtt+O9WOE5jo7w/dyiF1VmoZVIHvP2EkUjsyKyTwYKlLhA+j47m1Ew==
-undertaker@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/undertaker/-/undertaker-1.2.1.tgz#701662ff8ce358715324dfd492a4f036055dfe4b"
- integrity sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA==
- dependencies:
- arr-flatten "^1.0.1"
- arr-map "^2.0.0"
- bach "^1.0.0"
- collection-map "^1.0.0"
- es6-weak-map "^2.0.1"
- last-run "^1.1.0"
- object.defaults "^1.0.0"
- object.reduce "^1.0.0"
- undertaker-registry "^1.0.0"
-
-union-value@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
- integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==
+undertaker@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/undertaker/-/undertaker-2.0.0.tgz#fe4d40dc71823ce5a80f1ecc63ec8b88ad40b54a"
+ integrity sha512-tO/bf30wBbTsJ7go80j0RzA2rcwX6o7XPBpeFcb+jzoeb4pfMM2zUeSDIkY1AWqeZabWxaQZ/h8N9t35QKDLPQ==
dependencies:
- arr-union "^3.1.0"
- get-value "^2.0.6"
- is-extendable "^0.1.1"
- set-value "^2.0.1"
+ bach "^2.0.1"
+ fast-levenshtein "^3.0.0"
+ last-run "^2.0.0"
+ undertaker-registry "^2.0.0"
+
+undici-types@~5.26.4:
+ version "5.26.5"
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
+ integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
+
+unicorn-magic@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/unicorn-magic/-/unicorn-magic-0.1.0.tgz#1bb9a51c823aaf9d73a8bfcd3d1a23dde94b0ce4"
+ integrity sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==
unique-stream@^2.0.2:
version "2.3.1"
@@ -2790,33 +2096,10 @@ unique-stream@^2.0.2:
json-stable-stringify-without-jsonify "^1.0.1"
through2-filter "^3.0.0"
-unset-value@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
- integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=
- dependencies:
- has-value "^0.3.1"
- isobject "^3.0.0"
-
-upath@^1.1.1:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894"
- integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==
-
-urix@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
- integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
-
-use@^3.1.0:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
- integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
-
util-deprecate@^1.0.1, util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
- integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
+ integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
util@^0.10.3:
version "0.10.4"
@@ -2825,34 +2108,30 @@ util@^0.10.3:
dependencies:
inherits "2.0.3"
-v8flags@^3.0.1:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.1.3.tgz#fc9dc23521ca20c5433f81cc4eb9b3033bb105d8"
- integrity sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w==
- dependencies:
- homedir-polyfill "^1.0.1"
-
-v8flags@^3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.2.0.tgz#b243e3b4dfd731fa774e7492128109a0fe66d656"
- integrity sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==
- dependencies:
- homedir-polyfill "^1.0.1"
-
-validate-npm-package-license@^3.0.1:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
- integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
- dependencies:
- spdx-correct "^3.0.0"
- spdx-expression-parse "^3.0.0"
+v8flags@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-4.0.1.tgz#98fe6c4308317c5f394d85a435eb192490f7e132"
+ integrity sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==
value-or-function@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813"
- integrity sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=
+ integrity sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==
+
+value-or-function@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-4.0.0.tgz#70836b6a876a010dc3a2b884e7902e9db064378d"
+ integrity sha512-aeVK81SIuT6aMJfNo9Vte8Dw0/FZINGBV8BfCraGtqVxIeLAEhJyoWs8SmvRVmXfGss2PmmOwZCuBPbZR+IYWg==
-vinyl-fs@^3.0.0, vinyl-fs@^3.0.3:
+vinyl-contents@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/vinyl-contents/-/vinyl-contents-2.0.0.tgz#cc2ba4db3a36658d069249e9e36d9e2b41935d89"
+ integrity sha512-cHq6NnGyi2pZ7xwdHSW1v4Jfnho4TEGtxZHw01cmnc8+i7jgR6bRnED/LbrKan/Q7CvVLbnvA5OepnhbpjBZ5Q==
+ dependencies:
+ bl "^5.0.0"
+ vinyl "^3.0.0"
+
+vinyl-fs@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-3.0.3.tgz#c85849405f67428feabbbd5c5dbdd64f47d31bc7"
integrity sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==
@@ -2875,10 +2154,30 @@ vinyl-fs@^3.0.0, vinyl-fs@^3.0.3:
vinyl "^2.0.0"
vinyl-sourcemap "^1.1.0"
+vinyl-fs@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-4.0.0.tgz#06cb36efc911c6e128452f230b96584a9133c3a1"
+ integrity sha512-7GbgBnYfaquMk3Qu9g22x000vbYkOex32930rBnc3qByw6HfMEAoELjCjoJv4HuEQxHAurT+nvMHm6MnJllFLw==
+ dependencies:
+ fs-mkdirp-stream "^2.0.1"
+ glob-stream "^8.0.0"
+ graceful-fs "^4.2.11"
+ iconv-lite "^0.6.3"
+ is-valid-glob "^1.0.0"
+ lead "^4.0.0"
+ normalize-path "3.0.0"
+ resolve-options "^2.0.0"
+ stream-composer "^1.0.2"
+ streamx "^2.14.0"
+ to-through "^3.0.0"
+ value-or-function "^4.0.0"
+ vinyl "^3.0.0"
+ vinyl-sourcemap "^2.0.0"
+
vinyl-sourcemap@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz#92a800593a38703a8cdb11d8b300ad4be63b3e16"
- integrity sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=
+ integrity sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==
dependencies:
append-buffer "^1.0.2"
convert-source-map "^1.5.0"
@@ -2888,19 +2187,31 @@ vinyl-sourcemap@^1.1.0:
remove-bom-buffer "^3.0.0"
vinyl "^2.0.0"
+vinyl-sourcemap@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/vinyl-sourcemap/-/vinyl-sourcemap-2.0.0.tgz#422f410a0ea97cb54cebd698d56a06d7a22e0277"
+ integrity sha512-BAEvWxbBUXvlNoFQVFVHpybBbjW1r03WhohJzJDSfgrrK5xVYIDTan6xN14DlyImShgDRv2gl9qhM6irVMsV0Q==
+ dependencies:
+ convert-source-map "^2.0.0"
+ graceful-fs "^4.2.10"
+ now-and-later "^3.0.0"
+ streamx "^2.12.5"
+ vinyl "^3.0.0"
+ vinyl-contents "^2.0.0"
+
vinyl@^0.5.0:
version "0.5.3"
resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde"
- integrity sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=
+ integrity sha512-P5zdf3WB9uzr7IFoVQ2wZTmUwHL8cMZWJGzLBNCHNZ3NB6HTMsYABtt7z8tAGIINLXyAob9B9a1yzVGMFOYKEA==
dependencies:
clone "^1.0.0"
clone-stats "^0.0.1"
replace-ext "0.0.1"
vinyl@^2.0.0, vinyl@^2.1.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.0.tgz#d85b07da96e458d25b2ffe19fece9f2caa13ed86"
- integrity sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.1.tgz#23cfb8bbab5ece3803aa2c0a1eb28af7cbba1974"
+ integrity sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==
dependencies:
clone "^2.1.1"
clone-buffer "^1.0.0"
@@ -2909,10 +2220,16 @@ vinyl@^2.0.0, vinyl@^2.1.0:
remove-trailing-separator "^1.0.1"
replace-ext "^1.0.0"
-which-module@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
- integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=
+vinyl@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-3.0.0.tgz#11e14732bf56e2faa98ffde5157fe6c13259ff30"
+ integrity sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==
+ dependencies:
+ clone "^2.1.2"
+ clone-stats "^1.0.0"
+ remove-trailing-separator "^1.1.0"
+ replace-ext "^2.0.0"
+ teex "^1.0.1"
which@^1.2.14:
version "1.3.1"
@@ -2921,51 +2238,44 @@ which@^1.2.14:
dependencies:
isexe "^2.0.0"
-wrap-ansi@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
- integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=
+wrap-ansi@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
+ integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
dependencies:
- string-width "^1.0.1"
- strip-ansi "^3.0.1"
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
- integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
+ integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
-xtend@~4.0.0, xtend@~4.0.1:
+xtend@~4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
-y18n@^3.2.1:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696"
- integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==
+y18n@^5.0.5:
+ version "5.0.8"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
+ integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
-yargs-parser@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a"
- integrity sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=
- dependencies:
- camelcase "^3.0.0"
-
-yargs@^7.1.0:
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8"
- integrity sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=
- dependencies:
- camelcase "^3.0.0"
- cliui "^3.2.0"
- decamelize "^1.1.1"
- get-caller-file "^1.0.1"
- os-locale "^1.4.0"
- read-pkg-up "^1.0.1"
+yargs-parser@^20.2.2:
+ version "20.2.9"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"
+ integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
+
+yargs@^16.2.0:
+ version "16.2.0"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
+ integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
+ dependencies:
+ cliui "^7.0.2"
+ escalade "^3.1.1"
+ get-caller-file "^2.0.5"
require-directory "^2.1.1"
- require-main-filename "^1.0.1"
- set-blocking "^2.0.0"
- string-width "^1.0.2"
- which-module "^1.0.0"
- y18n "^3.2.1"
- yargs-parser "^5.0.0"
+ string-width "^4.2.0"
+ y18n "^5.0.5"
+ yargs-parser "^20.2.2"
diff --git a/test/Cake.GitVersioning.Tests/Cake.GitVersioning.Tests.csproj b/test/Cake.GitVersioning.Tests/Cake.GitVersioning.Tests.csproj
index e79d49313..c27fb8907 100644
--- a/test/Cake.GitVersioning.Tests/Cake.GitVersioning.Tests.csproj
+++ b/test/Cake.GitVersioning.Tests/Cake.GitVersioning.Tests.csproj
@@ -1,7 +1,7 @@
- net6.0
+ net8.0
false
true
false
diff --git a/test/Directory.Build.props b/test/Directory.Build.props
index ad4a4b6c5..6c7aa71dc 100644
--- a/test/Directory.Build.props
+++ b/test/Directory.Build.props
@@ -1,3 +1,4 @@
+
diff --git a/test/Directory.Build.targets b/test/Directory.Build.targets
index 052fe3ef0..a6e0f4ace 100644
--- a/test/Directory.Build.targets
+++ b/test/Directory.Build.targets
@@ -1,3 +1,4 @@
+
diff --git a/test/Nerdbank.GitVersioning.Benchmarks/GetVersionBenchmarks.cs b/test/Nerdbank.GitVersioning.Benchmarks/GetVersionBenchmarks.cs
index b1bbda93e..47c6a2fd0 100644
--- a/test/Nerdbank.GitVersioning.Benchmarks/GetVersionBenchmarks.cs
+++ b/test/Nerdbank.GitVersioning.Benchmarks/GetVersionBenchmarks.cs
@@ -9,8 +9,8 @@
namespace Nerdbank.GitVersioning.Benchmarks
{
- [SimpleJob(RuntimeMoniker.Net70)]
- [SimpleJob(RuntimeMoniker.Net462, baseline: true)]
+ [SimpleJob(RuntimeMoniker.Net90)]
+ [SimpleJob(RuntimeMoniker.Net472, baseline: true)]
public class GetVersionBenchmarks
{
// You must manually clone these repositories:
diff --git a/test/Nerdbank.GitVersioning.Benchmarks/Nerdbank.GitVersioning.Benchmarks.csproj b/test/Nerdbank.GitVersioning.Benchmarks/Nerdbank.GitVersioning.Benchmarks.csproj
index 6e0ed52af..0dc719f4a 100644
--- a/test/Nerdbank.GitVersioning.Benchmarks/Nerdbank.GitVersioning.Benchmarks.csproj
+++ b/test/Nerdbank.GitVersioning.Benchmarks/Nerdbank.GitVersioning.Benchmarks.csproj
@@ -1,8 +1,8 @@
๏ปฟ
- net7.0
- $(TargetFrameworks);net462
+ net9.0
+ $(TargetFrameworks);net472
Exe
true
AnyCPU
diff --git a/test/Nerdbank.GitVersioning.Tests/AssemblyInfoTest.cs b/test/Nerdbank.GitVersioning.Tests/AssemblyInfoTest.cs
index b42d39500..9c3ab23f2 100644
--- a/test/Nerdbank.GitVersioning.Tests/AssemblyInfoTest.cs
+++ b/test/Nerdbank.GitVersioning.Tests/AssemblyInfoTest.cs
@@ -63,15 +63,15 @@ public void FSharpGenerator(bool? thisAssemblyClass)
#nowarn ""CA2243""
namespace AssemblyInfo
-[]
-[]
-[]
+[]
+[]
+[]
do()
{(thisAssemblyClass.GetValueOrDefault(true) ? $@"#if NETSTANDARD || NETFRAMEWORK || NETCOREAPP
-[]
+[]
#endif
#if NET40_OR_GREATER || NETCOREAPP2_0_OR_GREATER || NETSTANDARD2_0_OR_GREATER
-[]
+[]
#endif
type internal ThisAssembly() =
static member internal AssemblyCompany = ""company""
@@ -80,7 +80,7 @@ type internal ThisAssembly() =
static member internal CustomBool = true
static member internal CustomString1 = ""abc""
static member internal CustomString3 = """"
- static member internal CustomTicks = new System.DateTime(637509805729817056L, System.DateTimeKind.Utc)
+ static member internal CustomTicks = new global.System.DateTime(637509805729817056L, global.System.DateTimeKind.Utc)
static member internal IsPrerelease = false
static member internal IsPublicRelease = false
static member internal RootNamespace = """"
@@ -128,15 +128,15 @@ namespace {(
: !string.IsNullOrWhiteSpace(rootNamespace)
? rootNamespace
: "AssemblyInfo")}
-[]
-[]
-[]
+[]
+[]
+[]
do()
#if NETSTANDARD || NETFRAMEWORK || NETCOREAPP
-[]
+[]
#endif
#if NET40_OR_GREATER || NETCOREAPP2_0_OR_GREATER || NETSTANDARD2_0_OR_GREATER
-[]
+[]
#endif
type internal ThisAssembly() =
static member internal AssemblyCompany = ""company""
@@ -201,14 +201,14 @@ public void CSharpGenerator(bool? thisAssemblyClass)
#pragma warning disable CA2243
-[assembly: System.Reflection.AssemblyVersionAttribute(""1.3.0.0"")]
-[assembly: System.Reflection.AssemblyFileVersionAttribute(""1.3.1.0"")]
-[assembly: System.Reflection.AssemblyInformationalVersionAttribute("""")]
+[assembly: global::System.Reflection.AssemblyVersionAttribute(""1.3.0.0"")]
+[assembly: global::System.Reflection.AssemblyFileVersionAttribute(""1.3.1.0"")]
+[assembly: global::System.Reflection.AssemblyInformationalVersionAttribute("""")]
{(thisAssemblyClass.GetValueOrDefault(true) ? $@"#if NETSTANDARD || NETFRAMEWORK || NETCOREAPP
-[System.CodeDom.Compiler.GeneratedCode(""{AssemblyVersionInfo.GeneratorName}"",""{AssemblyVersionInfo.GeneratorVersion}"")]
+[global::System.CodeDom.Compiler.GeneratedCode(""{AssemblyVersionInfo.GeneratorName}"",""{AssemblyVersionInfo.GeneratorVersion}"")]
#endif
#if NET40_OR_GREATER || NETCOREAPP2_0_OR_GREATER || NETSTANDARD2_0_OR_GREATER
-[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
+[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
#endif
internal static partial class ThisAssembly {{
internal const string AssemblyCompany = ""company"";
@@ -217,7 +217,7 @@ internal static partial class ThisAssembly {{
internal const bool CustomBool = true;
internal const string CustomString1 = ""abc"";
internal const string CustomString3 = """";
- internal static readonly System.DateTime CustomTicks = new System.DateTime(637509805729817056L, System.DateTimeKind.Utc);
+ internal static readonly global::System.DateTime CustomTicks = new global::System.DateTime(637509805729817056L, global::System.DateTimeKind.Utc);
internal const bool IsPrerelease = false;
internal const bool IsPublicRelease = false;
internal const string RootNamespace = """";
@@ -263,14 +263,14 @@ public void CSharpGeneratorWithNamespace(string thisAssemblyNamespace, string ro
#pragma warning disable CA2243
-[assembly: System.Reflection.AssemblyVersionAttribute(""1.3.0.0"")]
-[assembly: System.Reflection.AssemblyFileVersionAttribute(""1.3.1.0"")]
-[assembly: System.Reflection.AssemblyInformationalVersionAttribute("""")]{nsStart}
+[assembly: global::System.Reflection.AssemblyVersionAttribute(""1.3.0.0"")]
+[assembly: global::System.Reflection.AssemblyFileVersionAttribute(""1.3.1.0"")]
+[assembly: global::System.Reflection.AssemblyInformationalVersionAttribute("""")]{nsStart}
#if NETSTANDARD || NETFRAMEWORK || NETCOREAPP
-[System.CodeDom.Compiler.GeneratedCode(""{AssemblyVersionInfo.GeneratorName}"",""{AssemblyVersionInfo.GeneratorVersion}"")]
+[global::System.CodeDom.Compiler.GeneratedCode(""{AssemblyVersionInfo.GeneratorName}"",""{AssemblyVersionInfo.GeneratorVersion}"")]
#endif
#if NET40_OR_GREATER || NETCOREAPP2_0_OR_GREATER || NETSTANDARD2_0_OR_GREATER
-[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
+[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
#endif
internal static partial class ThisAssembly {{
internal const string AssemblyCompany = ""company"";
@@ -316,15 +316,15 @@ public void VisualBasicGenerator(bool? thisAssemblyClass)
#Disable Warning CA2243
-
-
-
+
+
+
{(thisAssemblyClass.GetValueOrDefault(true) ? $@"#If NET40_OR_GREATER Or NETCOREAPP2_0_OR_GREATER Or NETSTANDARD2_0_OR_GREATER Then
-
-
+
+
Partial Friend NotInheritable Class ThisAssembly
#ElseIf NETSTANDARD Or NETFRAMEWORK Or NETCOREAPP Then
-
+
Partial Friend NotInheritable Class ThisAssembly
#Else
Partial Friend NotInheritable Class ThisAssembly
@@ -377,15 +377,15 @@ public void VisualBasicGeneratorWithNamespace(string thisAssemblyNamespace, stri
#Disable Warning CA2243
-
-
-{nsStart}
+
+
+{nsStart}
#If NET40_OR_GREATER Or NETCOREAPP2_0_OR_GREATER Or NETSTANDARD2_0_OR_GREATER Then
-
-
+
+
Partial Friend NotInheritable Class ThisAssembly
#ElseIf NETSTANDARD Or NETFRAMEWORK Or NETCOREAPP Then
-
+
Partial Friend NotInheritable Class ThisAssembly
#Else
Partial Friend NotInheritable Class ThisAssembly
diff --git a/test/Nerdbank.GitVersioning.Tests/BuildIntegrationTests.cs b/test/Nerdbank.GitVersioning.Tests/BuildIntegrationTests.cs
index c694b9916..29d4bf026 100644
--- a/test/Nerdbank.GitVersioning.Tests/BuildIntegrationTests.cs
+++ b/test/Nerdbank.GitVersioning.Tests/BuildIntegrationTests.cs
@@ -131,6 +131,14 @@ public async Task GetBuildVersion_Without_Git()
Assert.Equal("3.4.0", buildResult.AssemblyInformationalVersion);
}
+ [Fact]
+ public async Task GetBuildVersion_Hooks_Clean()
+ {
+ this.WriteVersionFile("1.2");
+ BuildResults buildResult = await this.BuildAsync("Clean");
+ Assert.Equal("1.2", buildResult.BuildVersion);
+ }
+
[Fact]
public async Task GetBuildVersion_Without_Git_HighPrecisionAssemblyVersion()
{
@@ -192,25 +200,6 @@ public async Task AssemblyInfo_HasKeyData(string keyFile, bool delaySigned)
}
}
- ///
- /// Emulate a project with an unsupported language, and verify that
- /// one warning is emitted because the assembly info file couldn't be generated.
- ///
- [Fact]
- public async Task AssemblyInfo_NotProducedWithoutCodeDomProvider()
- {
- ProjectPropertyGroupElement propertyGroup = this.testProject.CreatePropertyGroupElement();
- this.testProject.AppendChild(propertyGroup);
- propertyGroup.AddProperty("Language", "NoCodeDOMProviderForThisLanguage");
-
- this.WriteVersionFile();
- BuildResults result = await this.BuildAsync(Targets.GenerateAssemblyNBGVVersionInfo, logVerbosity: LoggerVerbosity.Minimal, assertSuccessfulBuild: false);
- Assert.Equal(BuildResultCode.Failure, result.BuildResult.OverallResult);
- string versionCsFilePath = Path.Combine(this.projectDirectory, result.BuildResult.ProjectStateAfterBuild.GetPropertyValue("VersionSourceFile"));
- Assert.False(File.Exists(versionCsFilePath));
- Assert.Single(result.LoggedEvents.OfType());
- }
-
///
/// Emulate a project with an unsupported language, and verify that
/// no errors are emitted because the target is skipped.
@@ -300,7 +289,7 @@ protected void AssertStandardProperties(VersionOptions versionOptions, BuildResu
Version version = this.GetVersion(relativeProjectDirectory);
Version assemblyVersion = GetExpectedAssemblyVersion(versionOptions, version);
IEnumerable additionalBuildMetadata = from item in buildResult.BuildResult.ProjectStateAfterBuild.GetItems("BuildMetadata")
- select item.EvaluatedInclude;
+ select item.EvaluatedInclude;
string expectedBuildMetadata = $"+{commitIdShort}";
if (additionalBuildMetadata.Any())
{
@@ -323,7 +312,8 @@ protected void AssertStandardProperties(VersionOptions versionOptions, BuildResu
Assert.Equal(idAsVersion.Build.ToString(), buildResult.BuildVersionNumberComponent);
Assert.Equal($"{idAsVersion.Major}.{idAsVersion.Minor}.{idAsVersion.Build}", buildResult.BuildVersionSimple);
Assert.Equal(this.LibGit2Repository.Head.Tip.Id.Sha, buildResult.GitCommitId);
- Assert.Equal(this.LibGit2Repository.Head.Tip.Author.When.UtcTicks.ToString(CultureInfo.InvariantCulture), buildResult.GitCommitDateTicks);
+ Assert.Equal(this.LibGit2Repository.Head.Tip.Committer.When.UtcTicks.ToString(CultureInfo.InvariantCulture), buildResult.GitCommitDateTicks);
+ Assert.Equal(this.LibGit2Repository.Head.Tip.Author.When.UtcTicks.ToString(CultureInfo.InvariantCulture), buildResult.GitCommitAuthorDateTicks);
Assert.Equal(commitIdShort, buildResult.GitCommitIdShort);
Assert.Equal(versionHeight.ToString(), buildResult.GitVersionHeight);
Assert.Equal($"{version.Major}.{version.Minor}", buildResult.MajorMinorVersion);
@@ -449,8 +439,8 @@ private void LoadTargetsIntoProjectCollection()
string prefix = $"{ThisAssembly.RootNamespace}.Targets.";
IEnumerable streamNames = from name in Assembly.GetExecutingAssembly().GetManifestResourceNames()
- where name.StartsWith(prefix, StringComparison.Ordinal)
- select name;
+ where name.StartsWith(prefix, StringComparison.Ordinal)
+ select name;
foreach (string name in streamNames)
{
using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(name))
@@ -507,18 +497,18 @@ protected static class CloudBuild
public static readonly ImmutableDictionary SuppressEnvironment = ImmutableDictionary.Empty
// AppVeyor
- .Add("APPVEYOR", string.Empty)
- .Add("APPVEYOR_REPO_TAG", string.Empty)
- .Add("APPVEYOR_REPO_TAG_NAME", string.Empty)
- .Add("APPVEYOR_PULL_REQUEST_NUMBER", string.Empty)
+ .Add("APPVEYOR", null)
+ .Add("APPVEYOR_REPO_TAG", null)
+ .Add("APPVEYOR_REPO_TAG_NAME", null)
+ .Add("APPVEYOR_PULL_REQUEST_NUMBER", null)
// VSTS
- .Add("SYSTEM_TEAMPROJECTID", string.Empty)
- .Add("BUILD_SOURCEBRANCH", string.Empty)
+ .Add("SYSTEM_TEAMPROJECTID", null)
+ .Add("BUILD_SOURCEBRANCH", null)
// Teamcity
- .Add("BUILD_VCS_NUMBER", string.Empty)
- .Add("BUILD_GIT_BRANCH", string.Empty);
+ .Add("BUILD_VCS_NUMBER", null)
+ .Add("BUILD_GIT_BRANCH", null);
public static readonly ImmutableDictionary VSTS = SuppressEnvironment
.SetItem("SYSTEM_TEAMPROJECTID", "1");
@@ -577,6 +567,8 @@ internal BuildResults(BuildResult buildResult, IReadOnlyList log
public string GitCommitDateTicks => this.BuildResult.ProjectStateAfterBuild.GetPropertyValue("GitCommitDateTicks");
+ public string GitCommitAuthorDateTicks => this.BuildResult.ProjectStateAfterBuild.GetPropertyValue("GitCommitAuthorDateTicks");
+
public string GitVersionHeight => this.BuildResult.ProjectStateAfterBuild.GetPropertyValue("GitVersionHeight");
public string SemVerBuildSuffix => this.BuildResult.ProjectStateAfterBuild.GetPropertyValue("SemVerBuildSuffix");
diff --git a/test/Nerdbank.GitVersioning.Tests/MSBuildExtensions.cs b/test/Nerdbank.GitVersioning.Tests/MSBuildExtensions.cs
index d77f7ba57..e778f6c10 100644
--- a/test/Nerdbank.GitVersioning.Tests/MSBuildExtensions.cs
+++ b/test/Nerdbank.GitVersioning.Tests/MSBuildExtensions.cs
@@ -25,7 +25,7 @@ internal static void LoadMSBuild()
if (IntPtr.Size == 4)
{
// 32-bit .NET runtime requires special code to find the x86 SDK (where MSBuild is).
- MSBuildLocator.RegisterMSBuildPath(@"C:\Program Files (x86)\dotnet\sdk\7.0.203");
+ MSBuildLocator.RegisterMSBuildPath(@"C:\Program Files (x86)\dotnet\sdk\9.0.100");
}
else
{
diff --git a/test/Nerdbank.GitVersioning.Tests/ManagedGit/GitCommitReaderTests.cs b/test/Nerdbank.GitVersioning.Tests/ManagedGit/GitCommitReaderTests.cs
index c4c96d60c..cf3624be8 100644
--- a/test/Nerdbank.GitVersioning.Tests/ManagedGit/GitCommitReaderTests.cs
+++ b/test/Nerdbank.GitVersioning.Tests/ManagedGit/GitCommitReaderTests.cs
@@ -32,7 +32,11 @@ public void ReadTest()
Assert.Equal(new DateTimeOffset(2020, 10, 6, 13, 40, 09, TimeSpan.FromHours(-6)), author.Date);
Assert.Equal("andrewarnott@gmail.com", author.Email);
- // Committer and commit message are not read
+ GitSignature committer = commit.Committer.Value;
+
+ Assert.Equal("Andrew Arnott", committer.Name);
+ Assert.Equal(new DateTimeOffset(2020, 10, 6, 14, 40, 09, TimeSpan.FromHours(-6)), committer.Date);
+ Assert.Equal("andrewarnott@gmail.com", committer.Email);
}
}
diff --git a/test/Nerdbank.GitVersioning.Tests/ManagedGit/GitPackDeltafiedStreamTests.cs b/test/Nerdbank.GitVersioning.Tests/ManagedGit/GitPackDeltafiedStreamTests.cs
index 6f2af74ad..e8dcf6b76 100644
--- a/test/Nerdbank.GitVersioning.Tests/ManagedGit/GitPackDeltafiedStreamTests.cs
+++ b/test/Nerdbank.GitVersioning.Tests/ManagedGit/GitPackDeltafiedStreamTests.cs
@@ -23,7 +23,7 @@ public void TestDeltaStream(string basePath, string deltaPath, string expectedPa
using (Stream expectedStream = TestUtilities.GetEmbeddedResource(expectedPath))
{
expected = new byte[expectedStream.Length];
- expectedStream.Read(expected);
+ expectedStream.ReadAll(expected);
}
byte[] actual = new byte[expected.Length];
@@ -34,7 +34,7 @@ public void TestDeltaStream(string basePath, string deltaPath, string expectedPa
{
////Assert.Equal(expected.Length, deltafiedStream.Length);
- deltafiedStream.Read(actual);
+ deltafiedStream.ReadAll(actual);
Assert.Equal(expected, actual);
}
diff --git a/test/Nerdbank.GitVersioning.Tests/ManagedGit/GitPackMemoryCacheTests.cs b/test/Nerdbank.GitVersioning.Tests/ManagedGit/GitPackMemoryCacheTests.cs
index c03ae8582..32aaa85b6 100644
--- a/test/Nerdbank.GitVersioning.Tests/ManagedGit/GitPackMemoryCacheTests.cs
+++ b/test/Nerdbank.GitVersioning.Tests/ManagedGit/GitPackMemoryCacheTests.cs
@@ -20,11 +20,13 @@ public void StreamsAreIndependent()
{
var cache = new GitPackMemoryCache();
- Stream stream1 = cache.Add(0, stream);
- Assert.True(cache.TryOpen(0, out Stream stream2));
+ Stream stream1 = cache.Add(0, stream, "anObjectType");
+ Assert.True(cache.TryOpen(0, out (Stream ContentStream, string ObjectType)? hit));
+ Assert.True(hit.HasValue);
+ Assert.Equal("anObjectType", hit.Value.ObjectType);
using (stream1)
- using (stream2)
+ using (Stream stream2 = hit.Value.ContentStream)
{
stream1.Seek(5, SeekOrigin.Begin);
Assert.Equal(5, stream1.Position);
diff --git a/test/Nerdbank.GitVersioning.Tests/ManagedGit/GitRepositoryTests.cs b/test/Nerdbank.GitVersioning.Tests/ManagedGit/GitRepositoryTests.cs
index 582dfbdca..ad898ce97 100644
--- a/test/Nerdbank.GitVersioning.Tests/ManagedGit/GitRepositoryTests.cs
+++ b/test/Nerdbank.GitVersioning.Tests/ManagedGit/GitRepositoryTests.cs
@@ -271,6 +271,21 @@ public void GetObjectByShaAndWrongTypeTest()
}
}
+ [Fact]
+ public void TryGetObjectByShaAndWrongTypeTest()
+ {
+ this.InitializeSourceControl();
+ this.AddCommits(2);
+
+ var headObjectId = GitObjectId.Parse(this.LibGit2Repository.Head.Tip.Sha);
+
+ using (var repository = GitRepository.Create(this.RepoPath))
+ {
+ Assert.False(repository.TryGetObjectBySha(headObjectId, "tree", out Stream value));
+ Assert.Null(value);
+ }
+ }
+
[Fact]
public void GetMissingObjectByShaTest()
{
diff --git a/test/Nerdbank.GitVersioning.Tests/ManagedGit/ZLibStreamTest.cs b/test/Nerdbank.GitVersioning.Tests/ManagedGit/ZLibStreamTest.cs
index 70d087e9b..23a7dcb2a 100644
--- a/test/Nerdbank.GitVersioning.Tests/ManagedGit/ZLibStreamTest.cs
+++ b/test/Nerdbank.GitVersioning.Tests/ManagedGit/ZLibStreamTest.cs
@@ -41,7 +41,7 @@ public void SeekTest()
// Seek past the commit 137 header, and make sure we can read the 'tree' word
Assert.Equal(11, stream.Seek(11, SeekOrigin.Begin));
byte[] tree = new byte[4];
- stream.Read(tree);
+ stream.ReadAll(tree);
Assert.Equal("tree", Encoding.UTF8.GetString(tree));
// Valid no-ops
diff --git a/test/Nerdbank.GitVersioning.Tests/ManagedGit/commit-4497b0eaaa89abf0e6d70961ad5f04fd3a49cbc6 b/test/Nerdbank.GitVersioning.Tests/ManagedGit/commit-4497b0eaaa89abf0e6d70961ad5f04fd3a49cbc6
index 903016e3b..547d4aadd 100644
--- a/test/Nerdbank.GitVersioning.Tests/ManagedGit/commit-4497b0eaaa89abf0e6d70961ad5f04fd3a49cbc6
+++ b/test/Nerdbank.GitVersioning.Tests/ManagedGit/commit-4497b0eaaa89abf0e6d70961ad5f04fd3a49cbc6
@@ -1,6 +1,6 @@
tree f914b48023c7c804a4f3be780d451f31aef74ac1
parent 06cc627f28736c0d13506b0414126580fe37c6f3
author Andrew Arnott 1602013209 -0600
-committer Andrew Arnott 1602013209 -0600
+committer Andrew Arnott 1602016809 -0600
Set version to '3.4-alpha'
diff --git a/test/Nerdbank.GitVersioning.Tests/ManagedGit/commit-d56dc3ed179053abef2097d1120b4507769bcf1a b/test/Nerdbank.GitVersioning.Tests/ManagedGit/commit-d56dc3ed179053abef2097d1120b4507769bcf1a
index 7163d4980..e6bcbd19d 100644
--- a/test/Nerdbank.GitVersioning.Tests/ManagedGit/commit-d56dc3ed179053abef2097d1120b4507769bcf1a
+++ b/test/Nerdbank.GitVersioning.Tests/ManagedGit/commit-d56dc3ed179053abef2097d1120b4507769bcf1a
@@ -2,6 +2,6 @@ tree f914b48023c7c804a4f3be780d451f31aef74ac1
parent 4497b0eaaa89abf0e6d70961ad5f04fd3a49cbc6
parent 0989e8fe0cd0e0900173b26decdfb24bc0cc8232
author Andrew Arnott 1602013209 -0600
-committer Andrew Arnott 1602013209 -0600
+committer Andrew Arnott 1602016809 -0600
Merge branch 'v3.3'
diff --git a/test/Nerdbank.GitVersioning.Tests/Nerdbank.GitVersioning.Tests.csproj b/test/Nerdbank.GitVersioning.Tests/Nerdbank.GitVersioning.Tests.csproj
index 8c6333fda..f7e8f501e 100644
--- a/test/Nerdbank.GitVersioning.Tests/Nerdbank.GitVersioning.Tests.csproj
+++ b/test/Nerdbank.GitVersioning.Tests/Nerdbank.GitVersioning.Tests.csproj
@@ -1,6 +1,6 @@
- net7.0
+ net9.0
$(TargetFrameworks);net472
true
true
@@ -39,7 +39,6 @@
-
diff --git a/test/Nerdbank.GitVersioning.Tests/ReleaseManagerTests.cs b/test/Nerdbank.GitVersioning.Tests/ReleaseManagerTests.cs
index 9ced1c7a2..b00a1533d 100644
--- a/test/Nerdbank.GitVersioning.Tests/ReleaseManagerTests.cs
+++ b/test/Nerdbank.GitVersioning.Tests/ReleaseManagerTests.cs
@@ -638,6 +638,72 @@ public void PrepareRelease_ResetsVersionHeightOffset()
Assert.Equal(expectedReleaseVersionOptions, releaseVersion);
}
+ [Fact]
+ public void PrepareRelease_DoesNotResetNegativeVersionHeightOffset()
+ {
+ // create and configure repository
+ this.InitializeSourceControl();
+
+ var initialVersionOptions = new VersionOptions
+ {
+ Version = SemanticVersion.Parse("1.0-beta"),
+ VersionHeightOffset = -1,
+ };
+
+ var expectedReleaseVersionOptions = new VersionOptions
+ {
+ Version = SemanticVersion.Parse("1.0"),
+ VersionHeightOffset = -1,
+ };
+
+ var expectedMainVersionOptions = new VersionOptions
+ {
+ Version = SemanticVersion.Parse("1.1-alpha"),
+ VersionHeightOffset = -1,
+ };
+
+ // create version.json
+ this.WriteVersionFile(initialVersionOptions);
+
+ var releaseManager = new ReleaseManager();
+ releaseManager.PrepareRelease(this.RepoPath);
+
+ this.SetContextToHead();
+ VersionOptions newVersion = this.Context.VersionFile.GetVersion();
+ Assert.Equal(expectedMainVersionOptions, newVersion);
+
+ VersionOptions releaseVersion = this.GetVersionOptions(committish: this.LibGit2Repository.Branches["v1.0"].Tip.Sha);
+ Assert.Equal(expectedReleaseVersionOptions, releaseVersion);
+ }
+
+ [Theory]
+ [InlineData("1.0-beta", "{0} Custom commit message pattern", "1.0 Custom commit message pattern")]
+ [InlineData("1.0-beta", "Custom commit message pattern - {0} custom message", "Custom commit message pattern - 1.0 custom message")]
+ [InlineData("1.0-beta", "Custom commit message pattern - {0}", "Custom commit message pattern - 1.0")]
+ [InlineData("1.0-beta", "{0}", "1.0")]
+ public void PrepareRelease_WithCustomCommitMessagePattern(string initialVersion, string commitMessagePattern, string expectedCommitMessage)
+ {
+ // Create and configure the repository
+ this.InitializeSourceControl();
+
+ var versionOptions = new VersionOptions()
+ {
+ Version = SemanticVersion.Parse(initialVersion),
+ };
+
+ this.WriteVersionFile(versionOptions);
+
+ // Run PrepareRelease with the custom commit message pattern
+ var releaseManager = new ReleaseManager();
+ releaseManager.PrepareRelease(this.RepoPath, unformattedCommitMessage: commitMessagePattern);
+
+ // Verify that the commit message on the release branch matches the expected pattern
+ string releaseBranchName = "v1.0";
+ Branch releaseBranch = this.LibGit2Repository.Branches[releaseBranchName];
+ Commit releaseBranchCommit = releaseBranch.Tip;
+ Assert.Equal(expectedCommitMessage, releaseBranchCommit.MessageShort);
+ }
+
///
protected override void InitializeSourceControl(bool withInitialCommit = true)
{
diff --git a/test/Nerdbank.GitVersioning.Tests/VersionOracleTests.cs b/test/Nerdbank.GitVersioning.Tests/VersionOracleTests.cs
index 8098be4c3..7cb7cad6a 100644
--- a/test/Nerdbank.GitVersioning.Tests/VersionOracleTests.cs
+++ b/test/Nerdbank.GitVersioning.Tests/VersionOracleTests.cs
@@ -604,16 +604,20 @@ public void Worktree_Support(bool detachedHead)
string workTreePath = this.CreateDirectoryForNewRepo();
Directory.Delete(workTreePath);
+ Worktree worktree;
if (detachedHead)
{
- this.LibGit2Repository.Worktrees.Add("HEAD~1", "myworktree", workTreePath, isLocked: false);
+ worktree = this.LibGit2Repository.Worktrees.Add("HEAD~1", "myworktree", workTreePath, isLocked: false);
}
else
{
this.LibGit2Repository.Branches.Add("wtbranch", "HEAD~1");
- this.LibGit2Repository.Worktrees.Add("wtbranch", "myworktree", workTreePath, isLocked: false);
+ worktree = this.LibGit2Repository.Worktrees.Add("wtbranch", "myworktree", workTreePath, isLocked: false);
}
+ // Workaround for https://github.com/libgit2/libgit2sharp/issues/2037
+ Commands.Checkout(worktree.WorktreeRepository, "HEAD", new CheckoutOptions { CheckoutModifiers = CheckoutModifiers.Force });
+
GitContext context = this.CreateGitContext(workTreePath);
var oracleWorkTree = new VersionOracle(context);
Assert.Equal(oracleOriginal.Version, oracleWorkTree.Version);
@@ -1033,6 +1037,70 @@ public void GetVersionHeight_ProjectDirectoryIsMoved()
Assert.Equal(1, this.GetVersionHeight("new-project-dir"));
}
+ [Fact]
+ public void Tags()
+ {
+ this.WriteVersionFile(new VersionOptions { Version = SemanticVersion.Parse("1.2"), GitCommitIdShortAutoMinimum = 4 });
+ this.InitializeSourceControl();
+ this.AddCommits(1);
+ VersionOracle oracle = new(this.Context);
+
+ // Assert that we don't see any tags.
+ Assert.Empty(oracle.Tags);
+
+ // Create a lightweight tag.
+ this.LibGit2Repository.ApplyTag("mytag");
+
+ // Refresh our context before asking again.
+ this.Context = this.CreateGitContext(this.RepoPath);
+ VersionOracle oracle2 = new(this.Context);
+
+ // Assert that we see the tag.
+ Assert.Equal("refs/tags/mytag", Assert.Single(oracle2.Tags));
+
+ // Add another commit
+ this.AddCommits(1);
+
+ // Refresh our context before asking again.
+ this.Context = this.CreateGitContext(this.RepoPath);
+ VersionOracle oracle3 = new(this.Context);
+
+ // Assert that HEAD is not pointing to the tag.
+ Assert.Empty(oracle3.Tags);
+ }
+
+ [Fact]
+ public void Tags_Annotated()
+ {
+ this.WriteVersionFile(new VersionOptions { Version = SemanticVersion.Parse("1.2"), GitCommitIdShortAutoMinimum = 4 });
+ this.InitializeSourceControl();
+ this.AddCommits(1);
+ VersionOracle oracle = new(this.Context);
+
+ // Assert that we don't see any tags.
+ Assert.Empty(oracle.Tags);
+
+ // Create an annotated tag.
+ this.LibGit2Repository.ApplyTag("mytag", this.Signer, "my tag");
+
+ // Refresh our context before asking again.
+ this.Context = this.CreateGitContext(this.RepoPath);
+ VersionOracle oracle2 = new(this.Context);
+
+ // Assert that we see the tag.
+ Assert.Equal("refs/tags/mytag", Assert.Single(oracle2.Tags));
+
+ // Add another commit
+ this.AddCommits(1);
+
+ // Refresh our context before asking again.
+ this.Context = this.CreateGitContext(this.RepoPath);
+ VersionOracle oracle3 = new(this.Context);
+
+ // Assert that HEAD is not pointing to the tag.
+ Assert.Empty(oracle3.Tags);
+ }
+
[Fact]
public void GitCommitIdShort()
{
diff --git a/tools/Install-DotNetSdk.ps1 b/tools/Install-DotNetSdk.ps1
index e190fcfbf..ffb522030 100755
--- a/tools/Install-DotNetSdk.ps1
+++ b/tools/Install-DotNetSdk.ps1
@@ -55,8 +55,8 @@ $runtimeVersions = @()
$windowsDesktopRuntimeVersions = @()
$aspnetRuntimeVersions = @()
if (!$SdkOnly) {
- Get-ChildItem "$PSScriptRoot\..\src\*.*proj","$PSScriptRoot\..\test\*.*proj","$PSScriptRoot\..\Directory.Build.props" -Recurse |% {
- $projXml = [xml](Get-Content -Path $_)
+ Get-ChildItem "$PSScriptRoot\..\src\*.*proj", "$PSScriptRoot\..\test\*.*proj", "$PSScriptRoot\..\Directory.Build.props" -Recurse | % {
+ $projXml = [xml](Get-Content -LiteralPath $_)
$pg = $projXml.Project.PropertyGroup
if ($pg) {
$targetFrameworks = @()
diff --git a/tools/Install-NuGetCredProvider.ps1 b/tools/Install-NuGetCredProvider.ps1
index 496049a29..2b904e33e 100644
--- a/tools/Install-NuGetCredProvider.ps1
+++ b/tools/Install-NuGetCredProvider.ps1
@@ -43,14 +43,14 @@ if ($IsMacOS -or $IsLinux) {
chmod u+x $installerScript
}
-& $installerScript -Force:$Force -AddNetfx -InstallNet6
+& $installerScript -Force:$Force -AddNetfx -InstallNet8
if ($AccessToken) {
$endpoints = @()
$endpointURIs = @()
Get-ChildItem "$PSScriptRoot\..\nuget.config" -Recurse |% {
- $nugetConfig = [xml](Get-Content -Path $_)
+ $nugetConfig = [xml](Get-Content -LiteralPath $_)
$nugetConfig.configuration.packageSources.add |? { ($_.value -match '^https://pkgs\.dev\.azure\.com/') -or ($_.value -match '^https://[\w\-]+\.pkgs\.visualstudio\.com/') } |% {
if ($endpointURIs -notcontains $_.Value) {
diff --git a/tools/MergeFrom-Template.ps1 b/tools/MergeFrom-Template.ps1
new file mode 100644
index 000000000..3f721c6ac
--- /dev/null
+++ b/tools/MergeFrom-Template.ps1
@@ -0,0 +1,79 @@
+
+<#
+.SYNOPSIS
+ Merges the latest changes from Library.Template into HEAD of this repo.
+.PARAMETER LocalBranch
+ The name of the local branch to create at HEAD and use to merge into from Library.Template.
+#>
+[CmdletBinding(SupportsShouldProcess = $true)]
+Param(
+ [string]$LocalBranch = "dev/$($env:USERNAME)/libtemplateUpdate"
+)
+
+Function Spawn-Tool($command, $commandArgs, $workingDirectory, $allowFailures) {
+ if ($workingDirectory) {
+ Push-Location $workingDirectory
+ }
+ try {
+ if ($env:TF_BUILD) {
+ Write-Host "$pwd >"
+ Write-Host "##[command]$command $commandArgs"
+ }
+ else {
+ Write-Host "$command $commandArgs" -ForegroundColor Yellow
+ }
+ if ($commandArgs) {
+ & $command @commandArgs
+ } else {
+ Invoke-Expression $command
+ }
+ if ((!$allowFailures) -and ($LASTEXITCODE -ne 0)) { exit $LASTEXITCODE }
+ }
+ finally {
+ if ($workingDirectory) {
+ Pop-Location
+ }
+ }
+}
+
+$remoteBranch = & $PSScriptRoot\..\azure-pipelines\Get-LibTemplateBasis.ps1 -ErrorIfNotRelated
+if ($LASTEXITCODE -ne 0) {
+ exit $LASTEXITCODE
+}
+
+$LibTemplateUrl = 'https://github.com/aarnott/Library.Template'
+Spawn-Tool 'git' ('fetch', $LibTemplateUrl, $remoteBranch)
+$SourceCommit = Spawn-Tool 'git' ('rev-parse', 'FETCH_HEAD')
+$BaseBranch = Spawn-Tool 'git' ('branch', '--show-current')
+$SourceCommitUrl = "$LibTemplateUrl/commit/$SourceCommit"
+
+# To reduce the odds of merge conflicts at this stage, we always move HEAD to the last successful merge.
+$basis = Spawn-Tool 'git' ('rev-parse', 'HEAD') # TODO: consider improving this later
+
+Write-Host "Merging the $remoteBranch branch of Library.Template ($SourceCommit) into local repo $basis" -ForegroundColor Green
+
+Spawn-Tool 'git' ('checkout', '-b', $LocalBranch, $basis) $null $true
+if ($LASTEXITCODE -eq 128) {
+ Spawn-Tool 'git' ('checkout', $LocalBranch)
+ Spawn-Tool 'git' ('merge', $basis)
+}
+
+Spawn-Tool 'git' ('merge', 'FETCH_HEAD', '--no-ff', '-m', "Merge the $remoteBranch branch from $LibTemplateUrl`n`nSpecifically, this merges [$SourceCommit from that repo]($SourceCommitUrl).")
+if ($LASTEXITCODE -eq 1) {
+ Write-Error "Merge conflict detected. Manual resolution required."
+ exit 1
+}
+elseif ($LASTEXITCODE -ne 0) {
+ Write-Error "Merge failed with exit code $LASTEXITCODE."
+ exit $LASTEXITCODE
+}
+
+$result = New-Object PSObject -Property @{
+ BaseBranch = $BaseBranch # The original branch that was checked out when the script ran.
+ LocalBranch = $LocalBranch # The name of the local branch that was created before the merge.
+ SourceCommit = $SourceCommit # The commit from Library.Template that was merged in.
+ SourceBranch = $remoteBranch # The branch from Library.Template that was merged in.
+}
+
+Write-Host $result
+Write-Output $result
diff --git a/tools/Set-EnvVars.ps1 b/tools/Set-EnvVars.ps1
index 3f6f86ba5..2bd3ca4db 100644
--- a/tools/Set-EnvVars.ps1
+++ b/tools/Set-EnvVars.ps1
@@ -45,14 +45,14 @@ if ($env:GITHUB_ACTIONS) {
$CmdEnvScript = ''
$Variables.GetEnumerator() |% {
- Set-Item -Path env:$($_.Key) -Value $_.Value
+ Set-Item -LiteralPath env:$($_.Key) -Value $_.Value
# If we're running in a cloud CI, set these environment variables so they propagate.
if ($env:TF_BUILD) {
Write-Host "##vso[task.setvariable variable=$($_.Key);]$($_.Value)"
}
if ($env:GITHUB_ACTIONS) {
- Add-Content -Path $env:GITHUB_ENV -Value "$($_.Key)=$($_.Value)"
+ Add-Content -LiteralPath $env:GITHUB_ENV -Value "$($_.Key)=$($_.Value)"
}
if ($cmdInstructions) {
@@ -70,7 +70,7 @@ if ($IsMacOS -or $IsLinux) {
if ($PrependPath) {
$PrependPath |% {
$newPathValue = "$_$pathDelimiter$env:PATH"
- Set-Item -Path env:PATH -Value $newPathValue
+ Set-Item -LiteralPath env:PATH -Value $newPathValue
if ($cmdInstructions) {
Write-Host "SET PATH=$newPathValue"
}
@@ -79,7 +79,7 @@ if ($PrependPath) {
Write-Host "##vso[task.prependpath]$_"
}
if ($env:GITHUB_ACTIONS) {
- Add-Content -Path $env:GITHUB_PATH -Value $_
+ Add-Content -LiteralPath $env:GITHUB_PATH -Value $_
}
$CmdEnvScript += "SET PATH=$_$pathDelimiter%PATH%"
@@ -88,10 +88,10 @@ if ($PrependPath) {
if ($env:CmdEnvScriptPath) {
if (Test-Path $env:CmdEnvScriptPath) {
- $CmdEnvScript = (Get-Content -Path $env:CmdEnvScriptPath) + $CmdEnvScript
+ $CmdEnvScript = (Get-Content -LiteralPath $env:CmdEnvScriptPath) + $CmdEnvScript
}
- Set-Content -Path $env:CmdEnvScriptPath -Value $CmdEnvScript
+ Set-Content -LiteralPath $env:CmdEnvScriptPath -Value $CmdEnvScript
}
return !$cmdInstructions
diff --git a/version.json b/version.json
index c6a9cad5f..329e97b0f 100644
--- a/version.json
+++ b/version.json
@@ -1,6 +1,6 @@
{
- "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json",
- "version": "3.6",
+ "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/main/src/NerdBank.GitVersioning/version.schema.json",
+ "version": "3.7",
"assemblyVersion": {
"precision": "revision"
},