From fc551ac71b1491625c14646d74402fb8498538ee Mon Sep 17 00:00:00 2001 From: Aliaksandr Kukrash Date: Sun, 12 Jan 2025 13:02:40 +0100 Subject: [PATCH] Feature/net8 support (#1) * 1. Added .NET 8 support 1.1 Aligned package versions with respective targets (.NET 6, netstandard2.0, .NET 8.0) 1.2 Removed .NET 7.0 target 1.3 Removed direct targets on the library for .NET Framework and only left netstandard2.0 because of dependencies, netstandard2.0 reference required anyways and there is no point to split targets on the library itself. 2. StyleCop is deprecated 2.1 Removed StyleCop 2.2 Added Microsoft.CodeAnalysis.NetAnalyzers 2.3 Fixed nullable references issues and other minor issues 3. Moved packages for unit tests out of .props file 4. Upgraded xUnit 4.1 Fixed xUnit warnings 5. Upgraded the rest of packages in unit tests Signed-off-by: Aliaksandr Kukrash * Explicitly enable NET Analyzers for all projects and move common project settings to .props file Signed-off-by: Aliaksandr Kukrash * Test pipeline update Signed-off-by: Aliaksandr Kukrash * Remove extra "UseDotNet" task since latest SDK should be sufficient Signed-off-by: Aliaksandr Kukrash * Put latest SDK version as AppVeyor build failed as it cannot discover latest .NET version in dotnet-install.sh Signed-off-by: Aliaksandr Kukrash --------- Signed-off-by: Aliaksandr Kukrash --- .github/workflows/build.yml | 12 +- .gitignore | 1 + Benchmarks/.editorconfig | 3 + .../Core/BookBenchmark.cs | 30 +- .../Core/WebsiteBenchmark.cs | 4 +- Benchmarks/Schema.NET.Benchmarks/Program.cs | 2 +- .../Schema.NET.Benchmarks.csproj | 5 +- .../SchemaBenchmarkBase.cs | 4 +- .../Schema.NET.Benchmarks/packages.lock.json | 1796 +++++++++++++++++ Directory.Build.props | 6 +- Source/.editorconfig | 3 + Source/Common/DateTimeHelper.cs | 2 +- Source/Common/JsonLdContext.cs | 8 +- Source/Common/OneOrMany{T}.cs | 26 +- Source/Common/ValuesJsonConverter.cs | 2 +- Source/Common/Values{T1,T2,T3,T4,T5,T6,T7}.cs | 78 +- Source/Common/Values{T1,T2,T3,T4,T5,T6}.cs | 68 +- Source/Common/Values{T1,T2,T3,T4,T5}.cs | 58 +- Source/Common/Values{T1,T2,T3,T4}.cs | 48 +- Source/Common/Values{T1,T2,T3}.cs | 36 +- Source/Common/Values{T1,T2}.cs | 24 +- .../Schema.NET.Pending.csproj | 24 +- Source/Schema.NET.Pending/packages.lock.json | 471 +++++ Source/Schema.NET/Schema.NET.csproj | 23 +- Source/Schema.NET/packages.lock.json | 471 +++++ Tests/.editorconfig | 3 + Tests/Directory.Build.props | 14 - Tests/Schema.NET.Test/Examples/BookTest.cs | 34 +- .../Examples/BreadcrumbListTest.cs | 12 +- Tests/Schema.NET.Test/Examples/EventTest.cs | 2 +- .../Schema.NET.Test/Examples/ItemListTest.cs | 20 +- .../Examples/JobPostingTest.cs | 4 +- .../Examples/MixedTypesTest.cs | 6 +- .../Examples/MusicAlbumTest.cs | 4 +- .../Examples/MusicEventTest.cs | 2 +- .../Examples/MusicVenueTest.cs | 2 +- Tests/Schema.NET.Test/Examples/PersonTest.cs | 2 +- Tests/Schema.NET.Test/Examples/ProductTest.cs | 2 +- Tests/Schema.NET.Test/Examples/RecipeTest.cs | 14 +- .../Examples/RestaurantTest.cs | 14 +- .../Examples/VideoObjectTest.cs | 4 +- Tests/Schema.NET.Test/Examples/WebsiteTest.cs | 6 +- Tests/Schema.NET.Test/JsonLdContextTest.cs | 59 +- Tests/Schema.NET.Test/OneOrManyTest.cs | 62 +- Tests/Schema.NET.Test/Schema.NET.Test.csproj | 16 +- Tests/Schema.NET.Test/StringExtensions.cs | 2 +- Tests/Schema.NET.Test/ThingTest.cs | 6 +- Tests/Schema.NET.Test/Values2Test.cs | 50 +- Tests/Schema.NET.Test/Values3Test.cs | 52 +- Tests/Schema.NET.Test/Values4Test.cs | 58 +- Tests/Schema.NET.Test/Values5Test.cs | 64 +- Tests/Schema.NET.Test/Values6Test.cs | 70 +- Tests/Schema.NET.Test/Values7Test.cs | 76 +- .../ValuesJsonConverterTest.cs | 30 +- Tests/Schema.NET.Test/packages.lock.json | 1194 +++++++++++ Tools/.editorconfig | 3 + ...ddNumberTypeToMediaObjectHeightAndWidth.cs | 2 +- .../AddQueryInputPropertyToSearchAction.cs | 2 +- Tools/Schema.NET.Tool/Models/SchemaObject.cs | 8 +- .../SchemaPropertyJsonConverter.cs | 2 +- .../Repositories/SchemaRepository.cs | 29 +- Tools/Schema.NET.Tool/Schema.NET.Tool.csproj | 74 +- .../Schema.NET.Tool/SchemaSourceGenerator.cs | 7 +- .../Schema.NET.Tool/Services/SchemaService.cs | 65 +- Tools/Schema.NET.Tool/SourceUtility.cs | 33 +- Tools/Schema.NET.Tool/packages.lock.json | 297 +++ .../Schema.NET.Updater.csproj | 2 +- Tools/Schema.NET.Updater/packages.lock.json | 25 + azure-pipelines.yml | 9 +- dotnet-tools.json | 2 +- global.json | 8 +- 71 files changed, 4980 insertions(+), 677 deletions(-) create mode 100644 Benchmarks/Schema.NET.Benchmarks/packages.lock.json create mode 100644 Source/Schema.NET.Pending/packages.lock.json create mode 100644 Source/Schema.NET/packages.lock.json create mode 100644 Tests/Schema.NET.Test/packages.lock.json create mode 100644 Tools/Schema.NET.Tool/packages.lock.json create mode 100644 Tools/Schema.NET.Updater/packages.lock.json diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index df34038d..c8c1bd3d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,12 +33,14 @@ jobs: with: lfs: true fetch-depth: 0 - - name: "Install .NET SDK" - uses: actions/setup-dotnet@v3.2.0 + - name: "Install .NET 6.0 SDK" + uses: actions/setup-dotnet@v4.2.0 with: - dotnet-version: | - 6.0.x - global-json-file: "./global.json" + dotnet-version: 6.0.x + - name: "Install .NET 8.0 SDK" + uses: actions/setup-dotnet@v4.2.0 + with: + dotnet-version: 8.0.x - name: "Dotnet Tool Restore" run: dotnet tool restore shell: pwsh diff --git a/.gitignore b/.gitignore index 45fb4ea3..1e842793 100644 --- a/.gitignore +++ b/.gitignore @@ -352,3 +352,4 @@ MigrationBackup/ .ionide/ Artefacts/ +/.idea diff --git a/Benchmarks/.editorconfig b/Benchmarks/.editorconfig index 75556998..8574f7c1 100644 --- a/Benchmarks/.editorconfig +++ b/Benchmarks/.editorconfig @@ -38,3 +38,6 @@ dotnet_diagnostic.SA1602.severity = none # Justification: Comments turned off # https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1633.md dotnet_diagnostic.SA1633.severity = none + +# CA1515: Consider making public types internal +dotnet_diagnostic.CA1515.severity = none \ No newline at end of file diff --git a/Benchmarks/Schema.NET.Benchmarks/Core/BookBenchmark.cs b/Benchmarks/Schema.NET.Benchmarks/Core/BookBenchmark.cs index a411ac89..03c3d563 100644 --- a/Benchmarks/Schema.NET.Benchmarks/Core/BookBenchmark.cs +++ b/Benchmarks/Schema.NET.Benchmarks/Core/BookBenchmark.cs @@ -6,39 +6,39 @@ namespace Schema.NET.Benchmarks.Core; public class BookBenchmark : SchemaBenchmarkBase { public override Thing InitialiseThing() => - new Book() + new Book { Id = new Uri("https://example.com/book/1"), Name = "The Catcher in the Rye", - Author = new Person() + Author = new Person { Name = "J.D. Salinger", }, Url = new Uri("https://www.barnesandnoble.com/store/info/offer/JDSalinger"), - WorkExample = new List() + WorkExample = new List { - new Book() + new Book { Isbn = "031676948", BookEdition = "2nd Edition", BookFormat = BookFormatType.Hardcover, - PotentialAction = new ReadAction() + PotentialAction = new ReadAction { - Target = new EntryPoint() + Target = new EntryPoint { UrlTemplate = "https://www.barnesandnoble.com/store/info/offer/0316769487?purchase=true", - ActionPlatform = new List() + ActionPlatform = new List { new Uri("https://schema.org/DesktopWebPlatform"), new Uri("https://schema.org/IOSPlatform"), new Uri("https://schema.org/AndroidPlatform"), }, }, - ExpectsAcceptanceOf = new Offer() + ExpectsAcceptanceOf = new Offer { Price = 6.99M, PriceCurrency = "USD", - EligibleRegion = new Country() + EligibleRegion = new Country { Name = "US", }, @@ -46,28 +46,28 @@ public override Thing InitialiseThing() => }, }, }, - new Book() + new Book { Isbn = "031676947", BookEdition = "1st Edition", BookFormat = BookFormatType.EBook, - PotentialAction = new ReadAction() + PotentialAction = new ReadAction { - Target = new EntryPoint() + Target = new EntryPoint { UrlTemplate = "https://www.barnesandnoble.com/store/info/offer/031676947?purchase=true", - ActionPlatform = new List() + ActionPlatform = new List { new Uri("https://schema.org/DesktopWebPlatform"), new Uri("https://schema.org/IOSPlatform"), new Uri("https://schema.org/AndroidPlatform"), }, }, - ExpectsAcceptanceOf = new Offer() + ExpectsAcceptanceOf = new Offer { Price = 1.99M, PriceCurrency = "USD", - EligibleRegion = new Country() + EligibleRegion = new Country { Name = "UK", }, diff --git a/Benchmarks/Schema.NET.Benchmarks/Core/WebsiteBenchmark.cs b/Benchmarks/Schema.NET.Benchmarks/Core/WebsiteBenchmark.cs index 589af1a7..91aad226 100644 --- a/Benchmarks/Schema.NET.Benchmarks/Core/WebsiteBenchmark.cs +++ b/Benchmarks/Schema.NET.Benchmarks/Core/WebsiteBenchmark.cs @@ -5,9 +5,9 @@ namespace Schema.NET.Benchmarks.Core; public class WebsiteBenchmark : SchemaBenchmarkBase { public override Thing InitialiseThing() => - new WebSite() + new WebSite { - PotentialAction = new SearchAction() + PotentialAction = new SearchAction { Target = new Uri("https://example.com/search?&q={query}"), QueryInput = "required", diff --git a/Benchmarks/Schema.NET.Benchmarks/Program.cs b/Benchmarks/Schema.NET.Benchmarks/Program.cs index 35ab8664..dae725e9 100644 --- a/Benchmarks/Schema.NET.Benchmarks/Program.cs +++ b/Benchmarks/Schema.NET.Benchmarks/Program.cs @@ -2,7 +2,7 @@ namespace Schema.NET.Benchmarks; using BenchmarkDotNet.Running; -public class Program +internal static class Program { private static void Main(string[] args) => BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args); diff --git a/Benchmarks/Schema.NET.Benchmarks/Schema.NET.Benchmarks.csproj b/Benchmarks/Schema.NET.Benchmarks/Schema.NET.Benchmarks.csproj index eb4d7bb3..178ef38e 100644 --- a/Benchmarks/Schema.NET.Benchmarks/Schema.NET.Benchmarks.csproj +++ b/Benchmarks/Schema.NET.Benchmarks/Schema.NET.Benchmarks.csproj @@ -2,8 +2,9 @@ Exe - net7.0;net6.0;net472 + net8.0;net6.0;net462;net472;net48 false + true @@ -11,7 +12,7 @@ - + diff --git a/Benchmarks/Schema.NET.Benchmarks/SchemaBenchmarkBase.cs b/Benchmarks/Schema.NET.Benchmarks/SchemaBenchmarkBase.cs index 08073759..be9a5618 100644 --- a/Benchmarks/Schema.NET.Benchmarks/SchemaBenchmarkBase.cs +++ b/Benchmarks/Schema.NET.Benchmarks/SchemaBenchmarkBase.cs @@ -12,9 +12,11 @@ namespace Schema.NET.Benchmarks; [HtmlExporter] [CsvMeasurementsExporter] [RPlotExporter] -[SimpleJob(RuntimeMoniker.Net70)] +[SimpleJob(RuntimeMoniker.Net80)] [SimpleJob(RuntimeMoniker.Net60)] +[SimpleJob(RuntimeMoniker.Net462)] [SimpleJob(RuntimeMoniker.Net472)] +[SimpleJob(RuntimeMoniker.Net48)] public abstract class SchemaBenchmarkBase { public Thing Thing { get; set; } = default!; diff --git a/Benchmarks/Schema.NET.Benchmarks/packages.lock.json b/Benchmarks/Schema.NET.Benchmarks/packages.lock.json new file mode 100644 index 00000000..1dd20ebf --- /dev/null +++ b/Benchmarks/Schema.NET.Benchmarks/packages.lock.json @@ -0,0 +1,1796 @@ +{ + "version": 1, + "dependencies": { + ".NETFramework,Version=v4.6.2": { + "BenchmarkDotNet": { + "type": "Direct", + "requested": "[0.13.12, )", + "resolved": "0.13.12", + "contentHash": "aKnzpUZJJfLBHG7zcfQZhCexZQKcJgElC8qcFUTXPMYFlVauJBobuOmtRnmrapqC2j7EjjZCsPxa3yLvFLx5/Q==", + "dependencies": { + "BenchmarkDotNet.Annotations": "0.13.12", + "CommandLineParser": "2.9.1", + "Gee.External.Capstone": "2.3.0", + "Iced": "1.17.0", + "Microsoft.CodeAnalysis.CSharp": "4.1.0", + "Microsoft.Diagnostics.Runtime": "2.2.332302", + "Microsoft.Diagnostics.Tracing.TraceEvent": "3.0.2", + "Microsoft.DotNet.PlatformAbstractions": "3.1.6", + "Microsoft.Win32.Registry": "5.0.0", + "Perfolizer": "[0.2.1]", + "System.Management": "5.0.0", + "System.Numerics.Vectors": "4.5.0", + "System.Reflection.Emit": "4.7.0", + "System.Reflection.Emit.Lightweight": "4.7.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.CodeAnalysis.NetAnalyzers": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "DxiTgkCl3CGq1rYmBX2wjY7XGbxiBdL4J+/AJIAFLKy5z70NxhnVRnPghnicXZ8oF6JKVXlW3xwznRbI3ioEKg==" + }, + "Microsoft.VisualStudio.Threading.Analyzers": { + "type": "Direct", + "requested": "[17.12.19, )", + "resolved": "17.12.19", + "contentHash": "v3IYeedjoktvZ+GqYmLudxZJngmf/YWIxNT2Uy6QMMN19cvw+nkWoip1Gr1RtnFkUo1MPUVMis4C8Kj8d8DpSQ==" + }, + "MinVer": { + "type": "Direct", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "YNVAW3loCFW4kTwensApaZUl+7xREK75QQNOFSbsbXx2sCSm9/IHBjUHsJGn3u0UA5r/sAqrdYBNUlOFfLhUrA==" + }, + "BenchmarkDotNet.Annotations": { + "type": "Transitive", + "resolved": "0.13.12", + "contentHash": "4zmFOOJqW1GrEP/t5XKgh97LH9r6zixGy2IA0JAaoTNNnZ8kPBt9u/XagsGNyV0e7rglOpFcWc6wI5EjefKpKA==" + }, + "CommandLineParser": { + "type": "Transitive", + "resolved": "2.9.1", + "contentHash": "OE0sl1/sQ37bjVsPKKtwQlWDgqaxWgtme3xZz7JssWUzg5JpMIyHgCTY9MVMxOg48fJ1AgGT3tgdH5m/kQ5xhA==" + }, + "Gee.External.Capstone": { + "type": "Transitive", + "resolved": "2.3.0", + "contentHash": "2ap/rYmjtzCOT8hxrnEW/QeiOt+paD8iRrIcdKX0cxVwWLFa1e+JDBNeECakmccXrSFeBQuu5AV8SNkipFMMMw==" + }, + "Iced": { + "type": "Transitive", + "resolved": "1.17.0", + "contentHash": "8x+HCVTl/HHTGpscH3vMBhV8sknN/muZFw9s3TsI8SA6+c43cOTCi2+jE4KsU8pNLbJ++iF2ZFcpcXHXtDglnw==" + }, + "Microsoft.Bcl.AsyncInterfaces": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "UcSjPsst+DfAdJGVDsu346FX0ci0ah+lw3WRtn18NUwEqRt70HaOQ7lI72vy3+1LxtqI3T5GWwV39rQSrCzAeg==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.CodeAnalysis.Analyzers": { + "type": "Transitive", + "resolved": "3.3.3", + "contentHash": "j/rOZtLMVJjrfLRlAMckJLPW/1rze9MT1yfWqSIbUPGRu1m1P0fuo9PmqapwsmePfGB5PJrudQLvmUOAMF0DqQ==" + }, + "Microsoft.CodeAnalysis.Common": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "lwAbIZNdnY0SUNoDmZHkVUwLO8UyNnyyh1t/4XsbFxi4Ounb3xszIYZaWhyj5ZjyfcwqwmtMbE7fUTVCqQEIdQ==", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.3", + "System.Collections.Immutable": "6.0.0", + "System.Memory": "4.5.5", + "System.Reflection.Metadata": "6.0.1", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encoding.CodePages": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.CodeAnalysis.CSharp": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "cM59oMKAOxvdv76bdmaKPy5hfj+oR+zxikWoueEB7CwTko7mt9sVKZI8Qxlov0C/LuKEG+WQwifepqL3vuTiBQ==", + "dependencies": { + "Microsoft.CodeAnalysis.Common": "[4.5.0]" + } + }, + "Microsoft.Diagnostics.NETCore.Client": { + "type": "Transitive", + "resolved": "0.2.251802", + "contentHash": "bqnYl6AdSeboeN4v25hSukK6Odm6/54E3Y2B8rBvgqvAW0mF8fo7XNRVE2DMOG7Rk0fiuA079QIH28+V+W1Zdg==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "1.1.0", + "Microsoft.Extensions.Logging": "2.1.1" + } + }, + "Microsoft.Diagnostics.Runtime": { + "type": "Transitive", + "resolved": "2.2.332302", + "contentHash": "Hp84ivxSKIMTBzYSATxmUsm3YSXHWivcwiRRbsydGmqujMUK8BAueLN0ssAVEOkOBmh0vjUBhrq7YcroT7VCug==", + "dependencies": { + "Microsoft.Diagnostics.NETCore.Client": "0.2.251802", + "System.Collections.Immutable": "5.0.0", + "System.Runtime.CompilerServices.Unsafe": "5.0.0" + } + }, + "Microsoft.Diagnostics.Tracing.TraceEvent": { + "type": "Transitive", + "resolved": "3.0.2", + "contentHash": "Pr7t+Z/qBe6DxCow4BmYmDycHe2MrGESaflWXRcSUI4XNGyznx1ttS+9JNOxLuBZSoBSPTKw9Dyheo01Yi6anQ==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + }, + "Microsoft.DotNet.PlatformAbstractions": { + "type": "Transitive", + "resolved": "3.1.6", + "contentHash": "jek4XYaQ/PGUwDKKhwR8K47Uh1189PFzMeLqO83mXrXQVIpARZCcfuDedH50YDTepBkfijCZN5U/vZi++erxtg==", + "dependencies": { + "System.Runtime.InteropServices.RuntimeInformation": "4.0.0" + } + }, + "Microsoft.Extensions.Configuration": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "2.1.1" + } + }, + "Microsoft.Extensions.Configuration.Abstractions": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==", + "dependencies": { + "Microsoft.Extensions.Primitives": "2.1.1" + } + }, + "Microsoft.Extensions.Configuration.Binder": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==", + "dependencies": { + "Microsoft.Extensions.Configuration": "2.1.1" + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "MgYpU5cwZohUMKKg3sbPhvGG+eAZ/59E9UwPwlrUkyXU+PGzqwZg9yyQNjhxuAWmoNoFReoemeCku50prYSGzA==" + }, + "Microsoft.Extensions.Logging": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==", + "dependencies": { + "Microsoft.Extensions.Configuration.Binder": "2.1.1", + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1", + "Microsoft.Extensions.Logging.Abstractions": "2.1.1", + "Microsoft.Extensions.Options": "2.1.1" + } + }, + "Microsoft.Extensions.Logging.Abstractions": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "XRzK7ZF+O6FzdfWrlFTi1Rgj2080ZDsd46vzOjadHUB0Cz5kOvDG8vI7caa5YFrsHQpcfn0DxtjS4E46N4FZsA==" + }, + "Microsoft.Extensions.Options": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1", + "Microsoft.Extensions.Primitives": "2.1.1" + } + }, + "Microsoft.Extensions.Primitives": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg==", + "dependencies": { + "System.Memory": "4.5.1", + "System.Runtime.CompilerServices.Unsafe": "4.5.1" + } + }, + "Microsoft.Win32.Registry": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "Perfolizer": { + "type": "Transitive", + "resolved": "0.2.1", + "contentHash": "Dt4aCxCT8NPtWBKA8k+FsN/RezOQ2C6omNGm5o/qmYRiIwlQYF93UgFmeF1ezVNsztTnkg7P5P63AE+uNkLfrw==", + "dependencies": { + "System.Memory": "4.5.3" + } + }, + "System.Buffers": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", + "dependencies": { + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Management": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "MF1CHaRcC+MLFdnDthv4/bKWBZnlnSpkGqa87pKukQefgEdwtb9zFW6zs0GjPp73qtpYYg4q6PEKbzJbxCpKfw==" + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.5", + "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + }, + "System.Numerics.Vectors": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" + }, + "System.Reflection.Emit": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==" + }, + "System.Reflection.Emit.Lightweight": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "a4OLB4IITxAXJeV74MDx49Oq2+PsF6Sml54XAFv+2RyWwtDBcabzoxiiJRhdhx+gaohLh4hEGCLQyBozXoQPqA==" + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "III/lNMSn0ZRBuM9m5Cgbiho5j81u0FAEagFX5ta2DKbljZ3T0IpD8j+BIiHQPeKqJppWS9bGEp6JnKnWKze0g==", + "dependencies": { + "System.Collections.Immutable": "6.0.0" + } + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + }, + "System.Runtime.InteropServices.RuntimeInformation": { + "type": "Transitive", + "resolved": "4.0.0", + "contentHash": "hWPhJxc453RCa8Z29O91EmfGeZIHX1ZH2A8L6lYQVSaKzku2DfArSfMEb1/MYYzPQRJZeu0c9dmYeJKxW5Fgng==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + }, + "System.Text.Encoding.CodePages": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==", + "dependencies": { + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Text.Encodings.Web": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "E5M5AE2OUTlCrf4omZvzzziUJO9CofBl+lXHaN5IKePPJvHqYFYYpaDPgCpR4VwaFbEebfnjOxxEBtPtsqAxpQ==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Text.Json": { + "type": "Transitive", + "resolved": "6.0.11", + "contentHash": "xqC1HIbJMBFhrpYs76oYP+NAskNVjc6v73HqLal7ECRDPIp4oRU5pPavkD//vNactCn9DA2aaald/I5N+uZ5/g==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encodings.Web": "6.0.1", + "System.Threading.Tasks.Extensions": "4.5.4", + "System.ValueTuple": "4.5.0" + } + }, + "System.Threading.Tasks.Extensions": { + "type": "Transitive", + "resolved": "4.5.4", + "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + }, + "System.ValueTuple": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==" + }, + "schema.net": { + "type": "Project", + "dependencies": { + "Microsoft.CodeAnalysis.CSharp": "[4.5.0, )", + "System.Text.Json": "[6.0.11, )" + } + } + }, + ".NETFramework,Version=v4.6.2/win7-x86": { + "Gee.External.Capstone": { + "type": "Transitive", + "resolved": "2.3.0", + "contentHash": "2ap/rYmjtzCOT8hxrnEW/QeiOt+paD8iRrIcdKX0cxVwWLFa1e+JDBNeECakmccXrSFeBQuu5AV8SNkipFMMMw==" + }, + "Microsoft.Win32.Registry": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Management": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "MF1CHaRcC+MLFdnDthv4/bKWBZnlnSpkGqa87pKukQefgEdwtb9zFW6zs0GjPp73qtpYYg4q6PEKbzJbxCpKfw==" + }, + "System.Runtime.InteropServices.RuntimeInformation": { + "type": "Transitive", + "resolved": "4.0.0", + "contentHash": "hWPhJxc453RCa8Z29O91EmfGeZIHX1ZH2A8L6lYQVSaKzku2DfArSfMEb1/MYYzPQRJZeu0c9dmYeJKxW5Fgng==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + }, + "System.Text.Encoding.CodePages": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==", + "dependencies": { + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + } + }, + ".NETFramework,Version=v4.7.2": { + "BenchmarkDotNet": { + "type": "Direct", + "requested": "[0.13.12, )", + "resolved": "0.13.12", + "contentHash": "aKnzpUZJJfLBHG7zcfQZhCexZQKcJgElC8qcFUTXPMYFlVauJBobuOmtRnmrapqC2j7EjjZCsPxa3yLvFLx5/Q==", + "dependencies": { + "BenchmarkDotNet.Annotations": "0.13.12", + "CommandLineParser": "2.9.1", + "Gee.External.Capstone": "2.3.0", + "Iced": "1.17.0", + "Microsoft.CodeAnalysis.CSharp": "4.1.0", + "Microsoft.Diagnostics.Runtime": "2.2.332302", + "Microsoft.Diagnostics.Tracing.TraceEvent": "3.0.2", + "Microsoft.DotNet.PlatformAbstractions": "3.1.6", + "Microsoft.Win32.Registry": "5.0.0", + "Perfolizer": "[0.2.1]", + "System.Management": "5.0.0", + "System.Numerics.Vectors": "4.5.0", + "System.Reflection.Emit": "4.7.0", + "System.Reflection.Emit.Lightweight": "4.7.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.CodeAnalysis.NetAnalyzers": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "DxiTgkCl3CGq1rYmBX2wjY7XGbxiBdL4J+/AJIAFLKy5z70NxhnVRnPghnicXZ8oF6JKVXlW3xwznRbI3ioEKg==" + }, + "Microsoft.VisualStudio.Threading.Analyzers": { + "type": "Direct", + "requested": "[17.12.19, )", + "resolved": "17.12.19", + "contentHash": "v3IYeedjoktvZ+GqYmLudxZJngmf/YWIxNT2Uy6QMMN19cvw+nkWoip1Gr1RtnFkUo1MPUVMis4C8Kj8d8DpSQ==" + }, + "MinVer": { + "type": "Direct", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "YNVAW3loCFW4kTwensApaZUl+7xREK75QQNOFSbsbXx2sCSm9/IHBjUHsJGn3u0UA5r/sAqrdYBNUlOFfLhUrA==" + }, + "BenchmarkDotNet.Annotations": { + "type": "Transitive", + "resolved": "0.13.12", + "contentHash": "4zmFOOJqW1GrEP/t5XKgh97LH9r6zixGy2IA0JAaoTNNnZ8kPBt9u/XagsGNyV0e7rglOpFcWc6wI5EjefKpKA==" + }, + "CommandLineParser": { + "type": "Transitive", + "resolved": "2.9.1", + "contentHash": "OE0sl1/sQ37bjVsPKKtwQlWDgqaxWgtme3xZz7JssWUzg5JpMIyHgCTY9MVMxOg48fJ1AgGT3tgdH5m/kQ5xhA==" + }, + "Gee.External.Capstone": { + "type": "Transitive", + "resolved": "2.3.0", + "contentHash": "2ap/rYmjtzCOT8hxrnEW/QeiOt+paD8iRrIcdKX0cxVwWLFa1e+JDBNeECakmccXrSFeBQuu5AV8SNkipFMMMw==" + }, + "Iced": { + "type": "Transitive", + "resolved": "1.17.0", + "contentHash": "8x+HCVTl/HHTGpscH3vMBhV8sknN/muZFw9s3TsI8SA6+c43cOTCi2+jE4KsU8pNLbJ++iF2ZFcpcXHXtDglnw==" + }, + "Microsoft.Bcl.AsyncInterfaces": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "UcSjPsst+DfAdJGVDsu346FX0ci0ah+lw3WRtn18NUwEqRt70HaOQ7lI72vy3+1LxtqI3T5GWwV39rQSrCzAeg==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.CodeAnalysis.Analyzers": { + "type": "Transitive", + "resolved": "3.3.3", + "contentHash": "j/rOZtLMVJjrfLRlAMckJLPW/1rze9MT1yfWqSIbUPGRu1m1P0fuo9PmqapwsmePfGB5PJrudQLvmUOAMF0DqQ==" + }, + "Microsoft.CodeAnalysis.Common": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "lwAbIZNdnY0SUNoDmZHkVUwLO8UyNnyyh1t/4XsbFxi4Ounb3xszIYZaWhyj5ZjyfcwqwmtMbE7fUTVCqQEIdQ==", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.3", + "System.Collections.Immutable": "6.0.0", + "System.Memory": "4.5.5", + "System.Reflection.Metadata": "6.0.1", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encoding.CodePages": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.CodeAnalysis.CSharp": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "cM59oMKAOxvdv76bdmaKPy5hfj+oR+zxikWoueEB7CwTko7mt9sVKZI8Qxlov0C/LuKEG+WQwifepqL3vuTiBQ==", + "dependencies": { + "Microsoft.CodeAnalysis.Common": "[4.5.0]" + } + }, + "Microsoft.Diagnostics.NETCore.Client": { + "type": "Transitive", + "resolved": "0.2.251802", + "contentHash": "bqnYl6AdSeboeN4v25hSukK6Odm6/54E3Y2B8rBvgqvAW0mF8fo7XNRVE2DMOG7Rk0fiuA079QIH28+V+W1Zdg==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "1.1.0", + "Microsoft.Extensions.Logging": "2.1.1" + } + }, + "Microsoft.Diagnostics.Runtime": { + "type": "Transitive", + "resolved": "2.2.332302", + "contentHash": "Hp84ivxSKIMTBzYSATxmUsm3YSXHWivcwiRRbsydGmqujMUK8BAueLN0ssAVEOkOBmh0vjUBhrq7YcroT7VCug==", + "dependencies": { + "Microsoft.Diagnostics.NETCore.Client": "0.2.251802", + "System.Collections.Immutable": "5.0.0", + "System.Runtime.CompilerServices.Unsafe": "5.0.0" + } + }, + "Microsoft.Diagnostics.Tracing.TraceEvent": { + "type": "Transitive", + "resolved": "3.0.2", + "contentHash": "Pr7t+Z/qBe6DxCow4BmYmDycHe2MrGESaflWXRcSUI4XNGyznx1ttS+9JNOxLuBZSoBSPTKw9Dyheo01Yi6anQ==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + }, + "Microsoft.DotNet.PlatformAbstractions": { + "type": "Transitive", + "resolved": "3.1.6", + "contentHash": "jek4XYaQ/PGUwDKKhwR8K47Uh1189PFzMeLqO83mXrXQVIpARZCcfuDedH50YDTepBkfijCZN5U/vZi++erxtg==", + "dependencies": { + "System.Runtime.InteropServices.RuntimeInformation": "4.0.0" + } + }, + "Microsoft.Extensions.Configuration": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "2.1.1" + } + }, + "Microsoft.Extensions.Configuration.Abstractions": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==", + "dependencies": { + "Microsoft.Extensions.Primitives": "2.1.1" + } + }, + "Microsoft.Extensions.Configuration.Binder": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==", + "dependencies": { + "Microsoft.Extensions.Configuration": "2.1.1" + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "MgYpU5cwZohUMKKg3sbPhvGG+eAZ/59E9UwPwlrUkyXU+PGzqwZg9yyQNjhxuAWmoNoFReoemeCku50prYSGzA==" + }, + "Microsoft.Extensions.Logging": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==", + "dependencies": { + "Microsoft.Extensions.Configuration.Binder": "2.1.1", + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1", + "Microsoft.Extensions.Logging.Abstractions": "2.1.1", + "Microsoft.Extensions.Options": "2.1.1" + } + }, + "Microsoft.Extensions.Logging.Abstractions": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "XRzK7ZF+O6FzdfWrlFTi1Rgj2080ZDsd46vzOjadHUB0Cz5kOvDG8vI7caa5YFrsHQpcfn0DxtjS4E46N4FZsA==" + }, + "Microsoft.Extensions.Options": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1", + "Microsoft.Extensions.Primitives": "2.1.1" + } + }, + "Microsoft.Extensions.Primitives": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg==", + "dependencies": { + "System.Memory": "4.5.1", + "System.Runtime.CompilerServices.Unsafe": "4.5.1" + } + }, + "Microsoft.Win32.Registry": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "Perfolizer": { + "type": "Transitive", + "resolved": "0.2.1", + "contentHash": "Dt4aCxCT8NPtWBKA8k+FsN/RezOQ2C6omNGm5o/qmYRiIwlQYF93UgFmeF1ezVNsztTnkg7P5P63AE+uNkLfrw==", + "dependencies": { + "System.Memory": "4.5.3" + } + }, + "System.Buffers": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", + "dependencies": { + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Management": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "MF1CHaRcC+MLFdnDthv4/bKWBZnlnSpkGqa87pKukQefgEdwtb9zFW6zs0GjPp73qtpYYg4q6PEKbzJbxCpKfw==" + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.5", + "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + }, + "System.Numerics.Vectors": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" + }, + "System.Reflection.Emit": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==" + }, + "System.Reflection.Emit.Lightweight": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "a4OLB4IITxAXJeV74MDx49Oq2+PsF6Sml54XAFv+2RyWwtDBcabzoxiiJRhdhx+gaohLh4hEGCLQyBozXoQPqA==" + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "III/lNMSn0ZRBuM9m5Cgbiho5j81u0FAEagFX5ta2DKbljZ3T0IpD8j+BIiHQPeKqJppWS9bGEp6JnKnWKze0g==", + "dependencies": { + "System.Collections.Immutable": "6.0.0" + } + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + }, + "System.Runtime.InteropServices.RuntimeInformation": { + "type": "Transitive", + "resolved": "4.0.0", + "contentHash": "hWPhJxc453RCa8Z29O91EmfGeZIHX1ZH2A8L6lYQVSaKzku2DfArSfMEb1/MYYzPQRJZeu0c9dmYeJKxW5Fgng==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + }, + "System.Text.Encoding.CodePages": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==", + "dependencies": { + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Text.Encodings.Web": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "E5M5AE2OUTlCrf4omZvzzziUJO9CofBl+lXHaN5IKePPJvHqYFYYpaDPgCpR4VwaFbEebfnjOxxEBtPtsqAxpQ==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Text.Json": { + "type": "Transitive", + "resolved": "6.0.11", + "contentHash": "xqC1HIbJMBFhrpYs76oYP+NAskNVjc6v73HqLal7ECRDPIp4oRU5pPavkD//vNactCn9DA2aaald/I5N+uZ5/g==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encodings.Web": "6.0.1", + "System.Threading.Tasks.Extensions": "4.5.4", + "System.ValueTuple": "4.5.0" + } + }, + "System.Threading.Tasks.Extensions": { + "type": "Transitive", + "resolved": "4.5.4", + "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + }, + "System.ValueTuple": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==" + }, + "schema.net": { + "type": "Project", + "dependencies": { + "Microsoft.CodeAnalysis.CSharp": "[4.5.0, )", + "System.Text.Json": "[6.0.11, )" + } + } + }, + ".NETFramework,Version=v4.7.2/win7-x86": { + "Gee.External.Capstone": { + "type": "Transitive", + "resolved": "2.3.0", + "contentHash": "2ap/rYmjtzCOT8hxrnEW/QeiOt+paD8iRrIcdKX0cxVwWLFa1e+JDBNeECakmccXrSFeBQuu5AV8SNkipFMMMw==" + }, + "Microsoft.Win32.Registry": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Management": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "MF1CHaRcC+MLFdnDthv4/bKWBZnlnSpkGqa87pKukQefgEdwtb9zFW6zs0GjPp73qtpYYg4q6PEKbzJbxCpKfw==" + }, + "System.Runtime.InteropServices.RuntimeInformation": { + "type": "Transitive", + "resolved": "4.0.0", + "contentHash": "hWPhJxc453RCa8Z29O91EmfGeZIHX1ZH2A8L6lYQVSaKzku2DfArSfMEb1/MYYzPQRJZeu0c9dmYeJKxW5Fgng==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + }, + "System.Text.Encoding.CodePages": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==", + "dependencies": { + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + } + }, + ".NETFramework,Version=v4.8": { + "BenchmarkDotNet": { + "type": "Direct", + "requested": "[0.13.12, )", + "resolved": "0.13.12", + "contentHash": "aKnzpUZJJfLBHG7zcfQZhCexZQKcJgElC8qcFUTXPMYFlVauJBobuOmtRnmrapqC2j7EjjZCsPxa3yLvFLx5/Q==", + "dependencies": { + "BenchmarkDotNet.Annotations": "0.13.12", + "CommandLineParser": "2.9.1", + "Gee.External.Capstone": "2.3.0", + "Iced": "1.17.0", + "Microsoft.CodeAnalysis.CSharp": "4.1.0", + "Microsoft.Diagnostics.Runtime": "2.2.332302", + "Microsoft.Diagnostics.Tracing.TraceEvent": "3.0.2", + "Microsoft.DotNet.PlatformAbstractions": "3.1.6", + "Microsoft.Win32.Registry": "5.0.0", + "Perfolizer": "[0.2.1]", + "System.Management": "5.0.0", + "System.Numerics.Vectors": "4.5.0", + "System.Reflection.Emit": "4.7.0", + "System.Reflection.Emit.Lightweight": "4.7.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.CodeAnalysis.NetAnalyzers": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "DxiTgkCl3CGq1rYmBX2wjY7XGbxiBdL4J+/AJIAFLKy5z70NxhnVRnPghnicXZ8oF6JKVXlW3xwznRbI3ioEKg==" + }, + "Microsoft.VisualStudio.Threading.Analyzers": { + "type": "Direct", + "requested": "[17.12.19, )", + "resolved": "17.12.19", + "contentHash": "v3IYeedjoktvZ+GqYmLudxZJngmf/YWIxNT2Uy6QMMN19cvw+nkWoip1Gr1RtnFkUo1MPUVMis4C8Kj8d8DpSQ==" + }, + "MinVer": { + "type": "Direct", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "YNVAW3loCFW4kTwensApaZUl+7xREK75QQNOFSbsbXx2sCSm9/IHBjUHsJGn3u0UA5r/sAqrdYBNUlOFfLhUrA==" + }, + "BenchmarkDotNet.Annotations": { + "type": "Transitive", + "resolved": "0.13.12", + "contentHash": "4zmFOOJqW1GrEP/t5XKgh97LH9r6zixGy2IA0JAaoTNNnZ8kPBt9u/XagsGNyV0e7rglOpFcWc6wI5EjefKpKA==" + }, + "CommandLineParser": { + "type": "Transitive", + "resolved": "2.9.1", + "contentHash": "OE0sl1/sQ37bjVsPKKtwQlWDgqaxWgtme3xZz7JssWUzg5JpMIyHgCTY9MVMxOg48fJ1AgGT3tgdH5m/kQ5xhA==" + }, + "Gee.External.Capstone": { + "type": "Transitive", + "resolved": "2.3.0", + "contentHash": "2ap/rYmjtzCOT8hxrnEW/QeiOt+paD8iRrIcdKX0cxVwWLFa1e+JDBNeECakmccXrSFeBQuu5AV8SNkipFMMMw==" + }, + "Iced": { + "type": "Transitive", + "resolved": "1.17.0", + "contentHash": "8x+HCVTl/HHTGpscH3vMBhV8sknN/muZFw9s3TsI8SA6+c43cOTCi2+jE4KsU8pNLbJ++iF2ZFcpcXHXtDglnw==" + }, + "Microsoft.Bcl.AsyncInterfaces": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "UcSjPsst+DfAdJGVDsu346FX0ci0ah+lw3WRtn18NUwEqRt70HaOQ7lI72vy3+1LxtqI3T5GWwV39rQSrCzAeg==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.CodeAnalysis.Analyzers": { + "type": "Transitive", + "resolved": "3.3.3", + "contentHash": "j/rOZtLMVJjrfLRlAMckJLPW/1rze9MT1yfWqSIbUPGRu1m1P0fuo9PmqapwsmePfGB5PJrudQLvmUOAMF0DqQ==" + }, + "Microsoft.CodeAnalysis.Common": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "lwAbIZNdnY0SUNoDmZHkVUwLO8UyNnyyh1t/4XsbFxi4Ounb3xszIYZaWhyj5ZjyfcwqwmtMbE7fUTVCqQEIdQ==", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.3", + "System.Collections.Immutable": "6.0.0", + "System.Memory": "4.5.5", + "System.Reflection.Metadata": "6.0.1", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encoding.CodePages": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.CodeAnalysis.CSharp": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "cM59oMKAOxvdv76bdmaKPy5hfj+oR+zxikWoueEB7CwTko7mt9sVKZI8Qxlov0C/LuKEG+WQwifepqL3vuTiBQ==", + "dependencies": { + "Microsoft.CodeAnalysis.Common": "[4.5.0]" + } + }, + "Microsoft.Diagnostics.NETCore.Client": { + "type": "Transitive", + "resolved": "0.2.251802", + "contentHash": "bqnYl6AdSeboeN4v25hSukK6Odm6/54E3Y2B8rBvgqvAW0mF8fo7XNRVE2DMOG7Rk0fiuA079QIH28+V+W1Zdg==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "1.1.0", + "Microsoft.Extensions.Logging": "2.1.1" + } + }, + "Microsoft.Diagnostics.Runtime": { + "type": "Transitive", + "resolved": "2.2.332302", + "contentHash": "Hp84ivxSKIMTBzYSATxmUsm3YSXHWivcwiRRbsydGmqujMUK8BAueLN0ssAVEOkOBmh0vjUBhrq7YcroT7VCug==", + "dependencies": { + "Microsoft.Diagnostics.NETCore.Client": "0.2.251802", + "System.Collections.Immutable": "5.0.0", + "System.Runtime.CompilerServices.Unsafe": "5.0.0" + } + }, + "Microsoft.Diagnostics.Tracing.TraceEvent": { + "type": "Transitive", + "resolved": "3.0.2", + "contentHash": "Pr7t+Z/qBe6DxCow4BmYmDycHe2MrGESaflWXRcSUI4XNGyznx1ttS+9JNOxLuBZSoBSPTKw9Dyheo01Yi6anQ==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + }, + "Microsoft.DotNet.PlatformAbstractions": { + "type": "Transitive", + "resolved": "3.1.6", + "contentHash": "jek4XYaQ/PGUwDKKhwR8K47Uh1189PFzMeLqO83mXrXQVIpARZCcfuDedH50YDTepBkfijCZN5U/vZi++erxtg==", + "dependencies": { + "System.Runtime.InteropServices.RuntimeInformation": "4.0.0" + } + }, + "Microsoft.Extensions.Configuration": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "2.1.1" + } + }, + "Microsoft.Extensions.Configuration.Abstractions": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==", + "dependencies": { + "Microsoft.Extensions.Primitives": "2.1.1" + } + }, + "Microsoft.Extensions.Configuration.Binder": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==", + "dependencies": { + "Microsoft.Extensions.Configuration": "2.1.1" + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "MgYpU5cwZohUMKKg3sbPhvGG+eAZ/59E9UwPwlrUkyXU+PGzqwZg9yyQNjhxuAWmoNoFReoemeCku50prYSGzA==" + }, + "Microsoft.Extensions.Logging": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==", + "dependencies": { + "Microsoft.Extensions.Configuration.Binder": "2.1.1", + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1", + "Microsoft.Extensions.Logging.Abstractions": "2.1.1", + "Microsoft.Extensions.Options": "2.1.1" + } + }, + "Microsoft.Extensions.Logging.Abstractions": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "XRzK7ZF+O6FzdfWrlFTi1Rgj2080ZDsd46vzOjadHUB0Cz5kOvDG8vI7caa5YFrsHQpcfn0DxtjS4E46N4FZsA==" + }, + "Microsoft.Extensions.Options": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1", + "Microsoft.Extensions.Primitives": "2.1.1" + } + }, + "Microsoft.Extensions.Primitives": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg==", + "dependencies": { + "System.Memory": "4.5.1", + "System.Runtime.CompilerServices.Unsafe": "4.5.1" + } + }, + "Microsoft.Win32.Registry": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "Perfolizer": { + "type": "Transitive", + "resolved": "0.2.1", + "contentHash": "Dt4aCxCT8NPtWBKA8k+FsN/RezOQ2C6omNGm5o/qmYRiIwlQYF93UgFmeF1ezVNsztTnkg7P5P63AE+uNkLfrw==", + "dependencies": { + "System.Memory": "4.5.3" + } + }, + "System.Buffers": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", + "dependencies": { + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Management": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "MF1CHaRcC+MLFdnDthv4/bKWBZnlnSpkGqa87pKukQefgEdwtb9zFW6zs0GjPp73qtpYYg4q6PEKbzJbxCpKfw==" + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.5", + "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + }, + "System.Numerics.Vectors": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" + }, + "System.Reflection.Emit": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==" + }, + "System.Reflection.Emit.Lightweight": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "a4OLB4IITxAXJeV74MDx49Oq2+PsF6Sml54XAFv+2RyWwtDBcabzoxiiJRhdhx+gaohLh4hEGCLQyBozXoQPqA==" + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "III/lNMSn0ZRBuM9m5Cgbiho5j81u0FAEagFX5ta2DKbljZ3T0IpD8j+BIiHQPeKqJppWS9bGEp6JnKnWKze0g==", + "dependencies": { + "System.Collections.Immutable": "6.0.0" + } + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + }, + "System.Runtime.InteropServices.RuntimeInformation": { + "type": "Transitive", + "resolved": "4.0.0", + "contentHash": "hWPhJxc453RCa8Z29O91EmfGeZIHX1ZH2A8L6lYQVSaKzku2DfArSfMEb1/MYYzPQRJZeu0c9dmYeJKxW5Fgng==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + }, + "System.Text.Encoding.CodePages": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==", + "dependencies": { + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Text.Encodings.Web": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "E5M5AE2OUTlCrf4omZvzzziUJO9CofBl+lXHaN5IKePPJvHqYFYYpaDPgCpR4VwaFbEebfnjOxxEBtPtsqAxpQ==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Text.Json": { + "type": "Transitive", + "resolved": "6.0.11", + "contentHash": "xqC1HIbJMBFhrpYs76oYP+NAskNVjc6v73HqLal7ECRDPIp4oRU5pPavkD//vNactCn9DA2aaald/I5N+uZ5/g==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encodings.Web": "6.0.1", + "System.Threading.Tasks.Extensions": "4.5.4", + "System.ValueTuple": "4.5.0" + } + }, + "System.Threading.Tasks.Extensions": { + "type": "Transitive", + "resolved": "4.5.4", + "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + }, + "System.ValueTuple": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==" + }, + "schema.net": { + "type": "Project", + "dependencies": { + "Microsoft.CodeAnalysis.CSharp": "[4.5.0, )", + "System.Text.Json": "[6.0.11, )" + } + } + }, + ".NETFramework,Version=v4.8/win7-x86": { + "Gee.External.Capstone": { + "type": "Transitive", + "resolved": "2.3.0", + "contentHash": "2ap/rYmjtzCOT8hxrnEW/QeiOt+paD8iRrIcdKX0cxVwWLFa1e+JDBNeECakmccXrSFeBQuu5AV8SNkipFMMMw==" + }, + "Microsoft.Win32.Registry": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Management": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "MF1CHaRcC+MLFdnDthv4/bKWBZnlnSpkGqa87pKukQefgEdwtb9zFW6zs0GjPp73qtpYYg4q6PEKbzJbxCpKfw==" + }, + "System.Runtime.InteropServices.RuntimeInformation": { + "type": "Transitive", + "resolved": "4.0.0", + "contentHash": "hWPhJxc453RCa8Z29O91EmfGeZIHX1ZH2A8L6lYQVSaKzku2DfArSfMEb1/MYYzPQRJZeu0c9dmYeJKxW5Fgng==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + }, + "System.Text.Encoding.CodePages": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==", + "dependencies": { + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + } + }, + "net6.0": { + "BenchmarkDotNet": { + "type": "Direct", + "requested": "[0.13.12, )", + "resolved": "0.13.12", + "contentHash": "aKnzpUZJJfLBHG7zcfQZhCexZQKcJgElC8qcFUTXPMYFlVauJBobuOmtRnmrapqC2j7EjjZCsPxa3yLvFLx5/Q==", + "dependencies": { + "BenchmarkDotNet.Annotations": "0.13.12", + "CommandLineParser": "2.9.1", + "Gee.External.Capstone": "2.3.0", + "Iced": "1.17.0", + "Microsoft.CodeAnalysis.CSharp": "4.1.0", + "Microsoft.Diagnostics.Runtime": "2.2.332302", + "Microsoft.Diagnostics.Tracing.TraceEvent": "3.0.2", + "Microsoft.DotNet.PlatformAbstractions": "3.1.6", + "Perfolizer": "[0.2.1]", + "System.Management": "5.0.0" + } + }, + "Microsoft.CodeAnalysis.NetAnalyzers": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "DxiTgkCl3CGq1rYmBX2wjY7XGbxiBdL4J+/AJIAFLKy5z70NxhnVRnPghnicXZ8oF6JKVXlW3xwznRbI3ioEKg==" + }, + "Microsoft.VisualStudio.Threading.Analyzers": { + "type": "Direct", + "requested": "[17.12.19, )", + "resolved": "17.12.19", + "contentHash": "v3IYeedjoktvZ+GqYmLudxZJngmf/YWIxNT2Uy6QMMN19cvw+nkWoip1Gr1RtnFkUo1MPUVMis4C8Kj8d8DpSQ==" + }, + "MinVer": { + "type": "Direct", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "YNVAW3loCFW4kTwensApaZUl+7xREK75QQNOFSbsbXx2sCSm9/IHBjUHsJGn3u0UA5r/sAqrdYBNUlOFfLhUrA==" + }, + "BenchmarkDotNet.Annotations": { + "type": "Transitive", + "resolved": "0.13.12", + "contentHash": "4zmFOOJqW1GrEP/t5XKgh97LH9r6zixGy2IA0JAaoTNNnZ8kPBt9u/XagsGNyV0e7rglOpFcWc6wI5EjefKpKA==" + }, + "CommandLineParser": { + "type": "Transitive", + "resolved": "2.9.1", + "contentHash": "OE0sl1/sQ37bjVsPKKtwQlWDgqaxWgtme3xZz7JssWUzg5JpMIyHgCTY9MVMxOg48fJ1AgGT3tgdH5m/kQ5xhA==" + }, + "Gee.External.Capstone": { + "type": "Transitive", + "resolved": "2.3.0", + "contentHash": "2ap/rYmjtzCOT8hxrnEW/QeiOt+paD8iRrIcdKX0cxVwWLFa1e+JDBNeECakmccXrSFeBQuu5AV8SNkipFMMMw==" + }, + "Iced": { + "type": "Transitive", + "resolved": "1.17.0", + "contentHash": "8x+HCVTl/HHTGpscH3vMBhV8sknN/muZFw9s3TsI8SA6+c43cOTCi2+jE4KsU8pNLbJ++iF2ZFcpcXHXtDglnw==" + }, + "Microsoft.Bcl.AsyncInterfaces": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg==" + }, + "Microsoft.CodeAnalysis.Analyzers": { + "type": "Transitive", + "resolved": "3.3.4", + "contentHash": "AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==" + }, + "Microsoft.CodeAnalysis.Common": { + "type": "Transitive", + "resolved": "4.9.2", + "contentHash": "M5PThug7b2AdxL7xKmQs50KzAQTl9jENw5jMT3iUt16k+DAFlw1S87juU3UuPs3gvBm8trMBSOEvSFDr31c9Vw==", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.4", + "System.Collections.Immutable": "8.0.0", + "System.Reflection.Metadata": "8.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Microsoft.CodeAnalysis.CSharp": { + "type": "Transitive", + "resolved": "4.9.2", + "contentHash": "HGIo7E9Mf3exAJbUdYpDFfLoYkSVaHDJXPyusWTYUTBaOPCowGw+Gap5McE1w+K+ryIXre72oiqL88sQHmHBmg==", + "dependencies": { + "Microsoft.CodeAnalysis.Common": "[4.9.2]" + } + }, + "Microsoft.Diagnostics.NETCore.Client": { + "type": "Transitive", + "resolved": "0.2.251802", + "contentHash": "bqnYl6AdSeboeN4v25hSukK6Odm6/54E3Y2B8rBvgqvAW0mF8fo7XNRVE2DMOG7Rk0fiuA079QIH28+V+W1Zdg==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "1.1.0", + "Microsoft.Extensions.Logging": "2.1.1" + } + }, + "Microsoft.Diagnostics.Runtime": { + "type": "Transitive", + "resolved": "2.2.332302", + "contentHash": "Hp84ivxSKIMTBzYSATxmUsm3YSXHWivcwiRRbsydGmqujMUK8BAueLN0ssAVEOkOBmh0vjUBhrq7YcroT7VCug==", + "dependencies": { + "Microsoft.Diagnostics.NETCore.Client": "0.2.251802", + "System.Collections.Immutable": "5.0.0", + "System.Runtime.CompilerServices.Unsafe": "5.0.0" + } + }, + "Microsoft.Diagnostics.Tracing.TraceEvent": { + "type": "Transitive", + "resolved": "3.0.2", + "contentHash": "Pr7t+Z/qBe6DxCow4BmYmDycHe2MrGESaflWXRcSUI4XNGyznx1ttS+9JNOxLuBZSoBSPTKw9Dyheo01Yi6anQ==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + }, + "Microsoft.DotNet.PlatformAbstractions": { + "type": "Transitive", + "resolved": "3.1.6", + "contentHash": "jek4XYaQ/PGUwDKKhwR8K47Uh1189PFzMeLqO83mXrXQVIpARZCcfuDedH50YDTepBkfijCZN5U/vZi++erxtg==" + }, + "Microsoft.Extensions.Configuration": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "2.1.1" + } + }, + "Microsoft.Extensions.Configuration.Abstractions": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==", + "dependencies": { + "Microsoft.Extensions.Primitives": "2.1.1" + } + }, + "Microsoft.Extensions.Configuration.Binder": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==", + "dependencies": { + "Microsoft.Extensions.Configuration": "2.1.1" + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "MgYpU5cwZohUMKKg3sbPhvGG+eAZ/59E9UwPwlrUkyXU+PGzqwZg9yyQNjhxuAWmoNoFReoemeCku50prYSGzA==" + }, + "Microsoft.Extensions.Logging": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==", + "dependencies": { + "Microsoft.Extensions.Configuration.Binder": "2.1.1", + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1", + "Microsoft.Extensions.Logging.Abstractions": "2.1.1", + "Microsoft.Extensions.Options": "2.1.1" + } + }, + "Microsoft.Extensions.Logging.Abstractions": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "XRzK7ZF+O6FzdfWrlFTi1Rgj2080ZDsd46vzOjadHUB0Cz5kOvDG8vI7caa5YFrsHQpcfn0DxtjS4E46N4FZsA==" + }, + "Microsoft.Extensions.Options": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1", + "Microsoft.Extensions.Primitives": "2.1.1" + } + }, + "Microsoft.Extensions.Primitives": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg==", + "dependencies": { + "System.Memory": "4.5.1", + "System.Runtime.CompilerServices.Unsafe": "4.5.1" + } + }, + "Microsoft.NETCore.Platforms": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==" + }, + "Microsoft.Win32.Registry": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "Perfolizer": { + "type": "Transitive", + "resolved": "0.2.1", + "contentHash": "Dt4aCxCT8NPtWBKA8k+FsN/RezOQ2C6omNGm5o/qmYRiIwlQYF93UgFmeF1ezVNsztTnkg7P5P63AE+uNkLfrw==", + "dependencies": { + "System.Memory": "4.5.3" + } + }, + "System.CodeDom": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "JPJArwA1kdj8qDAkY2XGjSWoYnqiM7q/3yRNkt6n28Mnn95MuEGkZXUbPBf7qc3IjwrGY5ttQon7yqHZyQJmOQ==" + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Management": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "MF1CHaRcC+MLFdnDthv4/bKWBZnlnSpkGqa87pKukQefgEdwtb9zFW6zs0GjPp73qtpYYg4q6PEKbzJbxCpKfw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.Win32.Registry": "5.0.0", + "System.CodeDom": "5.0.0" + } + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.3", + "contentHash": "3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA==" + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==", + "dependencies": { + "System.Collections.Immutable": "8.0.0" + } + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + }, + "System.Text.Json": { + "type": "Transitive", + "resolved": "6.0.11", + "contentHash": "xqC1HIbJMBFhrpYs76oYP+NAskNVjc6v73HqLal7ECRDPIp4oRU5pPavkD//vNactCn9DA2aaald/I5N+uZ5/g==" + }, + "schema.net": { + "type": "Project", + "dependencies": { + "Microsoft.CodeAnalysis.CSharp": "[4.9.2, )", + "System.Text.Json": "[6.0.11, )" + } + } + }, + "net6.0/win7-x86": { + "Gee.External.Capstone": { + "type": "Transitive", + "resolved": "2.3.0", + "contentHash": "2ap/rYmjtzCOT8hxrnEW/QeiOt+paD8iRrIcdKX0cxVwWLFa1e+JDBNeECakmccXrSFeBQuu5AV8SNkipFMMMw==" + }, + "Microsoft.Win32.Registry": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Management": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "MF1CHaRcC+MLFdnDthv4/bKWBZnlnSpkGqa87pKukQefgEdwtb9zFW6zs0GjPp73qtpYYg4q6PEKbzJbxCpKfw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.Win32.Registry": "5.0.0", + "System.CodeDom": "5.0.0" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + }, + "net8.0": { + "BenchmarkDotNet": { + "type": "Direct", + "requested": "[0.13.12, )", + "resolved": "0.13.12", + "contentHash": "aKnzpUZJJfLBHG7zcfQZhCexZQKcJgElC8qcFUTXPMYFlVauJBobuOmtRnmrapqC2j7EjjZCsPxa3yLvFLx5/Q==", + "dependencies": { + "BenchmarkDotNet.Annotations": "0.13.12", + "CommandLineParser": "2.9.1", + "Gee.External.Capstone": "2.3.0", + "Iced": "1.17.0", + "Microsoft.CodeAnalysis.CSharp": "4.1.0", + "Microsoft.Diagnostics.Runtime": "2.2.332302", + "Microsoft.Diagnostics.Tracing.TraceEvent": "3.0.2", + "Microsoft.DotNet.PlatformAbstractions": "3.1.6", + "Perfolizer": "[0.2.1]", + "System.Management": "5.0.0" + } + }, + "Microsoft.CodeAnalysis.NetAnalyzers": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "DxiTgkCl3CGq1rYmBX2wjY7XGbxiBdL4J+/AJIAFLKy5z70NxhnVRnPghnicXZ8oF6JKVXlW3xwznRbI3ioEKg==" + }, + "Microsoft.VisualStudio.Threading.Analyzers": { + "type": "Direct", + "requested": "[17.12.19, )", + "resolved": "17.12.19", + "contentHash": "v3IYeedjoktvZ+GqYmLudxZJngmf/YWIxNT2Uy6QMMN19cvw+nkWoip1Gr1RtnFkUo1MPUVMis4C8Kj8d8DpSQ==" + }, + "MinVer": { + "type": "Direct", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "YNVAW3loCFW4kTwensApaZUl+7xREK75QQNOFSbsbXx2sCSm9/IHBjUHsJGn3u0UA5r/sAqrdYBNUlOFfLhUrA==" + }, + "BenchmarkDotNet.Annotations": { + "type": "Transitive", + "resolved": "0.13.12", + "contentHash": "4zmFOOJqW1GrEP/t5XKgh97LH9r6zixGy2IA0JAaoTNNnZ8kPBt9u/XagsGNyV0e7rglOpFcWc6wI5EjefKpKA==" + }, + "CommandLineParser": { + "type": "Transitive", + "resolved": "2.9.1", + "contentHash": "OE0sl1/sQ37bjVsPKKtwQlWDgqaxWgtme3xZz7JssWUzg5JpMIyHgCTY9MVMxOg48fJ1AgGT3tgdH5m/kQ5xhA==" + }, + "Gee.External.Capstone": { + "type": "Transitive", + "resolved": "2.3.0", + "contentHash": "2ap/rYmjtzCOT8hxrnEW/QeiOt+paD8iRrIcdKX0cxVwWLFa1e+JDBNeECakmccXrSFeBQuu5AV8SNkipFMMMw==" + }, + "Iced": { + "type": "Transitive", + "resolved": "1.17.0", + "contentHash": "8x+HCVTl/HHTGpscH3vMBhV8sknN/muZFw9s3TsI8SA6+c43cOTCi2+jE4KsU8pNLbJ++iF2ZFcpcXHXtDglnw==" + }, + "Microsoft.Bcl.AsyncInterfaces": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg==" + }, + "Microsoft.CodeAnalysis.Analyzers": { + "type": "Transitive", + "resolved": "3.3.4", + "contentHash": "AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==" + }, + "Microsoft.CodeAnalysis.Common": { + "type": "Transitive", + "resolved": "4.12.0", + "contentHash": "c1kNYihL2gdcuU1dqm8R8YeA4YkB43TpU3pa2r66Uooh6AAhRtENzj9A4Kj0a+H8JDDyuTjNZql9XlVUzV+UjA==", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.4", + "System.Collections.Immutable": "8.0.0", + "System.Reflection.Metadata": "8.0.0" + } + }, + "Microsoft.CodeAnalysis.CSharp": { + "type": "Transitive", + "resolved": "4.12.0", + "contentHash": "30vVQ1MizeC22iEdEvI2w0eTIYG43/L20yBzuQH01xKzJgHAoWehzI2F8u07o4mXh4DGMOjQF7aEm0zzvsG3Mg==", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.4", + "Microsoft.CodeAnalysis.Common": "[4.12.0]", + "System.Collections.Immutable": "8.0.0", + "System.Reflection.Metadata": "8.0.0" + } + }, + "Microsoft.Diagnostics.NETCore.Client": { + "type": "Transitive", + "resolved": "0.2.251802", + "contentHash": "bqnYl6AdSeboeN4v25hSukK6Odm6/54E3Y2B8rBvgqvAW0mF8fo7XNRVE2DMOG7Rk0fiuA079QIH28+V+W1Zdg==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "1.1.0", + "Microsoft.Extensions.Logging": "2.1.1" + } + }, + "Microsoft.Diagnostics.Runtime": { + "type": "Transitive", + "resolved": "2.2.332302", + "contentHash": "Hp84ivxSKIMTBzYSATxmUsm3YSXHWivcwiRRbsydGmqujMUK8BAueLN0ssAVEOkOBmh0vjUBhrq7YcroT7VCug==", + "dependencies": { + "Microsoft.Diagnostics.NETCore.Client": "0.2.251802", + "System.Collections.Immutable": "5.0.0", + "System.Runtime.CompilerServices.Unsafe": "5.0.0" + } + }, + "Microsoft.Diagnostics.Tracing.TraceEvent": { + "type": "Transitive", + "resolved": "3.0.2", + "contentHash": "Pr7t+Z/qBe6DxCow4BmYmDycHe2MrGESaflWXRcSUI4XNGyznx1ttS+9JNOxLuBZSoBSPTKw9Dyheo01Yi6anQ==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + }, + "Microsoft.DotNet.PlatformAbstractions": { + "type": "Transitive", + "resolved": "3.1.6", + "contentHash": "jek4XYaQ/PGUwDKKhwR8K47Uh1189PFzMeLqO83mXrXQVIpARZCcfuDedH50YDTepBkfijCZN5U/vZi++erxtg==" + }, + "Microsoft.Extensions.Configuration": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "2.1.1" + } + }, + "Microsoft.Extensions.Configuration.Abstractions": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==", + "dependencies": { + "Microsoft.Extensions.Primitives": "2.1.1" + } + }, + "Microsoft.Extensions.Configuration.Binder": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==", + "dependencies": { + "Microsoft.Extensions.Configuration": "2.1.1" + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "MgYpU5cwZohUMKKg3sbPhvGG+eAZ/59E9UwPwlrUkyXU+PGzqwZg9yyQNjhxuAWmoNoFReoemeCku50prYSGzA==" + }, + "Microsoft.Extensions.Logging": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==", + "dependencies": { + "Microsoft.Extensions.Configuration.Binder": "2.1.1", + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1", + "Microsoft.Extensions.Logging.Abstractions": "2.1.1", + "Microsoft.Extensions.Options": "2.1.1" + } + }, + "Microsoft.Extensions.Logging.Abstractions": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "XRzK7ZF+O6FzdfWrlFTi1Rgj2080ZDsd46vzOjadHUB0Cz5kOvDG8vI7caa5YFrsHQpcfn0DxtjS4E46N4FZsA==" + }, + "Microsoft.Extensions.Options": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1", + "Microsoft.Extensions.Primitives": "2.1.1" + } + }, + "Microsoft.Extensions.Primitives": { + "type": "Transitive", + "resolved": "2.1.1", + "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg==", + "dependencies": { + "System.Memory": "4.5.1", + "System.Runtime.CompilerServices.Unsafe": "4.5.1" + } + }, + "Microsoft.NETCore.Platforms": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==" + }, + "Microsoft.Win32.Registry": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "Perfolizer": { + "type": "Transitive", + "resolved": "0.2.1", + "contentHash": "Dt4aCxCT8NPtWBKA8k+FsN/RezOQ2C6omNGm5o/qmYRiIwlQYF93UgFmeF1ezVNsztTnkg7P5P63AE+uNkLfrw==", + "dependencies": { + "System.Memory": "4.5.3" + } + }, + "System.CodeDom": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "JPJArwA1kdj8qDAkY2XGjSWoYnqiM7q/3yRNkt6n28Mnn95MuEGkZXUbPBf7qc3IjwrGY5ttQon7yqHZyQJmOQ==" + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==" + }, + "System.Management": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "MF1CHaRcC+MLFdnDthv4/bKWBZnlnSpkGqa87pKukQefgEdwtb9zFW6zs0GjPp73qtpYYg4q6PEKbzJbxCpKfw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.Win32.Registry": "5.0.0", + "System.CodeDom": "5.0.0" + } + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.3", + "contentHash": "3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA==" + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==", + "dependencies": { + "System.Collections.Immutable": "8.0.0" + } + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "ZD9TMpsmYJLrxbbmdvhwt9YEgG5WntEnZ/d1eH8JBX9LBp+Ju8BSBhUGbZMNVHHomWo2KVImJhTDl2hIgw/6MA==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + }, + "System.Text.Json": { + "type": "Transitive", + "resolved": "8.0.5", + "contentHash": "0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg==" + }, + "schema.net": { + "type": "Project", + "dependencies": { + "Microsoft.CodeAnalysis.CSharp": "[4.12.0, )", + "System.Text.Json": "[8.0.5, )" + } + } + }, + "net8.0/win7-x86": { + "Gee.External.Capstone": { + "type": "Transitive", + "resolved": "2.3.0", + "contentHash": "2ap/rYmjtzCOT8hxrnEW/QeiOt+paD8iRrIcdKX0cxVwWLFa1e+JDBNeECakmccXrSFeBQuu5AV8SNkipFMMMw==" + }, + "Microsoft.Win32.Registry": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Management": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "MF1CHaRcC+MLFdnDthv4/bKWBZnlnSpkGqa87pKukQefgEdwtb9zFW6zs0GjPp73qtpYYg4q6PEKbzJbxCpKfw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.Win32.Registry": "5.0.0", + "System.CodeDom": "5.0.0" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + } + } +} \ No newline at end of file diff --git a/Directory.Build.props b/Directory.Build.props index 17a77642..12d9cded 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -8,6 +8,8 @@ en-GB enable true + true + true @@ -26,8 +28,8 @@ - - + + diff --git a/Source/.editorconfig b/Source/.editorconfig index a9e3b5af..3631a74d 100644 --- a/Source/.editorconfig +++ b/Source/.editorconfig @@ -37,3 +37,6 @@ dotnet_diagnostic.SA1629.severity = none # Justification: Header file comments turned off # https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1633.md dotnet_diagnostic.SA1633.severity = none + +# CA1515: Consider making public types internal +dotnet_diagnostic.CA1515.severity = none \ No newline at end of file diff --git a/Source/Common/DateTimeHelper.cs b/Source/Common/DateTimeHelper.cs index e7dd884f..254914d4 100644 --- a/Source/Common/DateTimeHelper.cs +++ b/Source/Common/DateTimeHelper.cs @@ -12,7 +12,7 @@ internal static class DateTimeHelper private const string MSDateStringEnd = ")/"; private const string NegativeOffset = "-"; private static readonly DateTime EpochDate = new(1970, 1, 1); - private static readonly char[] OffsetChars = new[] { '+', '-' }; + private static readonly char[] OffsetChars = ['+', '-']; /// /// Whether a given ISO 8601 date string has an offset defined (eg. "+", "-", "Z") diff --git a/Source/Common/JsonLdContext.cs b/Source/Common/JsonLdContext.cs index 6ea26df7..4fb6a9f5 100644 --- a/Source/Common/JsonLdContext.cs +++ b/Source/Common/JsonLdContext.cs @@ -7,7 +7,7 @@ namespace Schema.NET; /// The @context for a JSON-LD document. /// See https://w3c.github.io/json-ld-syntax /// -public class JsonLdContext : IEquatable +public sealed class JsonLdContext : IEquatable { /// /// Gets or sets the name. @@ -28,7 +28,7 @@ public class JsonLdContext : IEquatable /// /// The context. /// The result of the conversion. - public static implicit operator string?(JsonLdContext context) => context?.Name; + public static implicit operator string?(JsonLdContext? context) => context?.Name; /// /// Implements the operator ==. @@ -38,7 +38,7 @@ public class JsonLdContext : IEquatable /// /// The result of the operator. /// - public static bool operator ==(JsonLdContext left, JsonLdContext right) + public static bool operator ==(JsonLdContext? left, JsonLdContext? right) { if (left is null) { @@ -56,7 +56,7 @@ public class JsonLdContext : IEquatable /// /// The result of the operator. /// - public static bool operator !=(JsonLdContext left, JsonLdContext right) => !(left == right); + public static bool operator !=(JsonLdContext? left, JsonLdContext? right) => !(left == right); /// public bool Equals(JsonLdContext? other) diff --git a/Source/Common/OneOrMany{T}.cs b/Source/Common/OneOrMany{T}.cs index d35dda49..e12838b2 100644 --- a/Source/Common/OneOrMany{T}.cs +++ b/Source/Common/OneOrMany{T}.cs @@ -13,7 +13,7 @@ namespace Schema.NET; #pragma warning disable CA1710 // Identifiers should have correct suffix. public readonly struct OneOrMany #pragma warning restore CA1710 // Identifiers should have correct suffix. - : IReadOnlyCollection, IEnumerable, IValues, IEquatable> + : IReadOnlyCollection, IValues, IEquatable> { private readonly T[]? collection; @@ -21,7 +21,7 @@ public readonly struct OneOrMany /// Initializes a new instance of the struct. /// /// The single item value. - public OneOrMany(T item) + public OneOrMany(T? item) { if (item is null || (item is string itemAsString && string.IsNullOrWhiteSpace(itemAsString))) { @@ -39,7 +39,7 @@ public OneOrMany(T item) /// Initializes a new instance of the struct. /// /// The span of values. - public OneOrMany(ReadOnlySpan span) + public OneOrMany(ReadOnlySpan span) { if (!span.IsEmpty) { @@ -53,7 +53,7 @@ public OneOrMany(ReadOnlySpan span) var item = span[i]; if (!string.IsNullOrWhiteSpace(item as string)) { - items[index] = item; + items[index] = item!; index++; } } @@ -96,7 +96,7 @@ public OneOrMany(ReadOnlySpan span) /// Initializes a new instance of the struct. /// /// The array of values. - public OneOrMany(params T[] array) + public OneOrMany(params T?[] array) : this(array.AsSpan()) { } @@ -105,7 +105,7 @@ public OneOrMany(params T[] array) /// Initializes a new instance of the struct. /// /// The collection of values. - public OneOrMany(IEnumerable collection) + public OneOrMany(IEnumerable collection) : this(collection.ToArray().AsSpan()) { } @@ -114,8 +114,8 @@ public OneOrMany(IEnumerable collection) /// Initializes a new instance of the struct. /// /// The list of values. - public OneOrMany(IEnumerable collection) - : this(collection.Cast().ToArray().AsSpan()) + public OneOrMany(IEnumerable collection) + : this(collection.Cast().ToArray().AsSpan()) { } @@ -142,14 +142,14 @@ public OneOrMany(IEnumerable collection) /// The single item value. /// The result of the conversion. #pragma warning disable CA2225 // Operator overloads have named alternates - public static implicit operator OneOrMany(T item) => new(item); + public static implicit operator OneOrMany(T? item) => new(item); /// /// Performs an implicit conversion from to . /// /// The array of values. /// The result of the conversion. - public static implicit operator OneOrMany(T[] array) => new(array); + public static implicit operator OneOrMany(T?[] array) => new(array); /// /// Performs an implicit conversion from to . @@ -157,7 +157,7 @@ public OneOrMany(IEnumerable collection) /// The list of values. /// The result of the conversion. #pragma warning disable CA1002 // Do not expose generic lists - public static implicit operator OneOrMany(List list) => new(list); + public static implicit operator OneOrMany(List list) => new(list); #pragma warning restore CA1002 // Do not expose generic lists /// @@ -239,7 +239,7 @@ public T[] ToArray() { if (this.HasOne) { - return new[] { this.collection![0] }; + return [this.collection![0]]; } else if (this.HasMany) { @@ -249,7 +249,7 @@ public T[] ToArray() } else { - return Array.Empty(); + return []; } } diff --git a/Source/Common/ValuesJsonConverter.cs b/Source/Common/ValuesJsonConverter.cs index 20c43dad..d41b1f54 100644 --- a/Source/Common/ValuesJsonConverter.cs +++ b/Source/Common/ValuesJsonConverter.cs @@ -85,7 +85,7 @@ static ValuesJsonConverter() else if (reader.TokenType != JsonTokenType.Null) { var item = ProcessToken(ref reader, typeToConvert.GenericTypeArguments, options); - return (IValues)dynamicConstructor(new[] { item }); + return (IValues)dynamicConstructor([item]); } } diff --git a/Source/Common/Values{T1,T2,T3,T4,T5,T6,T7}.cs b/Source/Common/Values{T1,T2,T3,T4,T5,T6,T7}.cs index 8c8a9cf3..39186703 100644 --- a/Source/Common/Values{T1,T2,T3,T4,T5,T6,T7}.cs +++ b/Source/Common/Values{T1,T2,T3,T4,T5,T6,T7}.cs @@ -18,7 +18,7 @@ namespace Schema.NET; #pragma warning disable CA1710 // Identifiers should have correct suffix. public readonly struct Values #pragma warning restore CA1710 // Identifiers should have correct suffix. - : IReadOnlyCollection, IEnumerable, IValues, IEquatable> + : IReadOnlyCollection, IValues, IEquatable> { /// /// Initializes a new instance of the struct. @@ -178,7 +178,7 @@ public Values(OneOrMany value) /// Initializes a new instance of the struct. /// /// The items. - public Values(params object[] items) + public Values(params object?[] items) : this(items.AsEnumerable()) { } @@ -210,48 +210,48 @@ public Values(IEnumerable items) { if (item is T7 itemT7) { - items7 ??= new List(); + items7 ??= []; items7.Add(itemT7); } else if (item is T6 itemT6) { - items6 ??= new List(); + items6 ??= []; items6.Add(itemT6); } else if (item is T5 itemT5) { - items5 ??= new List(); + items5 ??= []; items5.Add(itemT5); } else if (item is T4 itemT4) { - items4 ??= new List(); + items4 ??= []; items4.Add(itemT4); } else if (item is T3 itemT3) { - items3 ??= new List(); + items3 ??= []; items3.Add(itemT3); } else if (item is T2 itemT2) { - items2 ??= new List(); + items2 ??= []; items2.Add(itemT2); } else if (item is T1 itemT1) { - items1 ??= new List(); + items1 ??= []; items1.Add(itemT1); } } - this.Value1 = items1 == null ? default : (OneOrMany)items1; - this.Value2 = items2 == null ? default : (OneOrMany)items2; - this.Value3 = items3 == null ? default : (OneOrMany)items3; - this.Value4 = items4 == null ? default : (OneOrMany)items4; - this.Value5 = items5 == null ? default : (OneOrMany)items5; - this.Value6 = items6 == null ? default : (OneOrMany)items6; - this.Value7 = items7 == null ? default : (OneOrMany)items7; + this.Value1 = items1 == null ? default : (OneOrMany)items1!; + this.Value2 = items2 == null ? default : (OneOrMany)items2!; + this.Value3 = items3 == null ? default : (OneOrMany)items3!; + this.Value4 = items4 == null ? default : (OneOrMany)items4!; + this.Value5 = items5 == null ? default : (OneOrMany)items5!; + this.Value6 = items6 == null ? default : (OneOrMany)items6!; + this.Value7 = items7 == null ? default : (OneOrMany)items7!; this.HasValue1 = this.Value1.Count > 0; this.HasValue2 = this.Value2.Count > 0; @@ -349,161 +349,161 @@ public Values(IEnumerable items) /// /// The single item value. /// The result of the conversion. - public static implicit operator Values(T1 item) => new(item); + public static implicit operator Values(T1? item) => new(item); /// /// Performs an implicit conversion from to . /// /// The single item value. /// The result of the conversion. - public static implicit operator Values(T2 item) => new(item); + public static implicit operator Values(T2? item) => new(item); /// /// Performs an implicit conversion from to . /// /// The single item value. /// The result of the conversion. - public static implicit operator Values(T3 item) => new(item); + public static implicit operator Values(T3? item) => new(item); /// /// Performs an implicit conversion from to . /// /// The single item value. /// The result of the conversion. - public static implicit operator Values(T4 item) => new(item); + public static implicit operator Values(T4? item) => new(item); /// /// Performs an implicit conversion from to . /// /// The single item value. /// The result of the conversion. - public static implicit operator Values(T5 item) => new(item); + public static implicit operator Values(T5? item) => new(item); /// /// Performs an implicit conversion from to . /// /// The single item value. /// The result of the conversion. - public static implicit operator Values(T6 item) => new(item); + public static implicit operator Values(T6? item) => new(item); /// /// Performs an implicit conversion from to . /// /// The single item value. /// The result of the conversion. - public static implicit operator Values(T7 item) => new(item); + public static implicit operator Values(T7? item) => new(item); /// /// Performs an implicit conversion from to . /// /// The array of values. /// The result of the conversion. - public static implicit operator Values(T1[] array) => new(array); + public static implicit operator Values(T1?[] array) => new(array); /// /// Performs an implicit conversion from to . /// /// The array of values. /// The result of the conversion. - public static implicit operator Values(T2[] array) => new(array); + public static implicit operator Values(T2?[] array) => new(array); /// /// Performs an implicit conversion from to . /// /// The array of values. /// The result of the conversion. - public static implicit operator Values(T3[] array) => new(array); + public static implicit operator Values(T3?[] array) => new(array); /// /// Performs an implicit conversion from to . /// /// The array of values. /// The result of the conversion. - public static implicit operator Values(T4[] array) => new(array); + public static implicit operator Values(T4?[] array) => new(array); /// /// Performs an implicit conversion from to . /// /// The array of values. /// The result of the conversion. - public static implicit operator Values(T5[] array) => new(array); + public static implicit operator Values(T5?[] array) => new(array); /// /// Performs an implicit conversion from to . /// /// The array of values. /// The result of the conversion. - public static implicit operator Values(T6[] array) => new(array); + public static implicit operator Values(T6?[] array) => new(array); /// /// Performs an implicit conversion from to . /// /// The array of values. /// The result of the conversion. - public static implicit operator Values(T7[] array) => new(array); + public static implicit operator Values(T7?[] array) => new(array); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from array to . /// /// The array of values. /// The result of the conversion. - public static implicit operator Values(object[] array) => new(array); + public static implicit operator Values(object?[] array) => new(array); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from to the first item of type . diff --git a/Source/Common/Values{T1,T2,T3,T4,T5,T6}.cs b/Source/Common/Values{T1,T2,T3,T4,T5,T6}.cs index 4675de95..180c18bf 100644 --- a/Source/Common/Values{T1,T2,T3,T4,T5,T6}.cs +++ b/Source/Common/Values{T1,T2,T3,T4,T5,T6}.cs @@ -17,7 +17,7 @@ namespace Schema.NET; #pragma warning disable CA1710 // Identifiers should have correct suffix. public readonly struct Values #pragma warning restore CA1710 // Identifiers should have correct suffix. - : IReadOnlyCollection, IEnumerable, IValues, IEquatable> + : IReadOnlyCollection, IValues, IEquatable> { /// /// Initializes a new instance of the struct. @@ -143,7 +143,7 @@ public Values(OneOrMany value) /// Initializes a new instance of the struct. /// /// The items. - public Values(params object[] items) + public Values(params object?[] items) : this(items.AsEnumerable()) { } @@ -174,42 +174,42 @@ public Values(IEnumerable items) { if (item is T6 itemT6) { - items6 ??= new List(); + items6 ??= []; items6.Add(itemT6); } else if (item is T5 itemT5) { - items5 ??= new List(); + items5 ??= []; items5.Add(itemT5); } else if (item is T4 itemT4) { - items4 ??= new List(); + items4 ??= []; items4.Add(itemT4); } else if (item is T3 itemT3) { - items3 ??= new List(); + items3 ??= []; items3.Add(itemT3); } else if (item is T2 itemT2) { - items2 ??= new List(); + items2 ??= []; items2.Add(itemT2); } else if (item is T1 itemT1) { - items1 ??= new List(); + items1 ??= []; items1.Add(itemT1); } } - this.Value1 = items1 == null ? default : (OneOrMany)items1; - this.Value2 = items2 == null ? default : (OneOrMany)items2; - this.Value3 = items3 == null ? default : (OneOrMany)items3; - this.Value4 = items4 == null ? default : (OneOrMany)items4; - this.Value5 = items5 == null ? default : (OneOrMany)items5; - this.Value6 = items6 == null ? default : (OneOrMany)items6; + this.Value1 = items1 == null ? default : (OneOrMany)items1!; + this.Value2 = items2 == null ? default : (OneOrMany)items2!; + this.Value3 = items3 == null ? default : (OneOrMany)items3!; + this.Value4 = items4 == null ? default : (OneOrMany)items4!; + this.Value5 = items5 == null ? default : (OneOrMany)items5!; + this.Value6 = items6 == null ? default : (OneOrMany)items6!; this.HasValue1 = this.Value1.Count > 0; this.HasValue2 = this.Value2.Count > 0; @@ -296,140 +296,140 @@ public Values(IEnumerable items) /// /// The single item value. /// The result of the conversion. - public static implicit operator Values(T1 item) => new(item); + public static implicit operator Values(T1? item) => new(item); /// /// Performs an implicit conversion from to . /// /// The single item value. /// The result of the conversion. - public static implicit operator Values(T2 item) => new(item); + public static implicit operator Values(T2? item) => new(item); /// /// Performs an implicit conversion from to . /// /// The single item value. /// The result of the conversion. - public static implicit operator Values(T3 item) => new(item); + public static implicit operator Values(T3? item) => new(item); /// /// Performs an implicit conversion from to . /// /// The single item value. /// The result of the conversion. - public static implicit operator Values(T4 item) => new(item); + public static implicit operator Values(T4? item) => new(item); /// /// Performs an implicit conversion from to . /// /// The single item value. /// The result of the conversion. - public static implicit operator Values(T5 item) => new(item); + public static implicit operator Values(T5? item) => new(item); /// /// Performs an implicit conversion from to . /// /// The single item value. /// The result of the conversion. - public static implicit operator Values(T6 item) => new(item); + public static implicit operator Values(T6? item) => new(item); /// /// Performs an implicit conversion from to . /// /// The array of values. /// The result of the conversion. - public static implicit operator Values(T1[] array) => new(array); + public static implicit operator Values(T1?[] array) => new(array); /// /// Performs an implicit conversion from to . /// /// The array of values. /// The result of the conversion. - public static implicit operator Values(T2[] array) => new(array); + public static implicit operator Values(T2?[] array) => new(array); /// /// Performs an implicit conversion from to . /// /// The array of values. /// The result of the conversion. - public static implicit operator Values(T3[] array) => new(array); + public static implicit operator Values(T3?[] array) => new(array); /// /// Performs an implicit conversion from to . /// /// The array of values. /// The result of the conversion. - public static implicit operator Values(T4[] array) => new(array); + public static implicit operator Values(T4?[] array) => new(array); /// /// Performs an implicit conversion from to . /// /// The array of values. /// The result of the conversion. - public static implicit operator Values(T5[] array) => new(array); + public static implicit operator Values(T5?[] array) => new(array); /// /// Performs an implicit conversion from to . /// /// The array of values. /// The result of the conversion. - public static implicit operator Values(T6[] array) => new(array); + public static implicit operator Values(T6?[] array) => new(array); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from array to . /// /// The array of values. /// The result of the conversion. - public static implicit operator Values(object[] array) => new(array); + public static implicit operator Values(object?[] array) => new(array); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from to the first item of type . diff --git a/Source/Common/Values{T1,T2,T3,T4,T5}.cs b/Source/Common/Values{T1,T2,T3,T4,T5}.cs index c5e6cc17..0f6b5f14 100644 --- a/Source/Common/Values{T1,T2,T3,T4,T5}.cs +++ b/Source/Common/Values{T1,T2,T3,T4,T5}.cs @@ -16,7 +16,7 @@ namespace Schema.NET; #pragma warning disable CA1710 // Identifiers should have correct suffix. public readonly struct Values #pragma warning restore CA1710 // Identifiers should have correct suffix. - : IReadOnlyCollection, IEnumerable, IValues, IEquatable> + : IReadOnlyCollection, IValues, IEquatable> { /// /// Initializes a new instance of the struct. @@ -112,7 +112,7 @@ public Values(OneOrMany value) /// Initializes a new instance of the struct. /// /// The items. - public Values(params object[] items) + public Values(params object?[] items) : this(items.AsEnumerable()) { } @@ -142,36 +142,36 @@ public Values(IEnumerable items) { if (item is T5 itemT5) { - items5 ??= new List(); + items5 ??= []; items5.Add(itemT5); } else if (item is T4 itemT4) { - items4 ??= new List(); + items4 ??= []; items4.Add(itemT4); } else if (item is T3 itemT3) { - items3 ??= new List(); + items3 ??= []; items3.Add(itemT3); } else if (item is T2 itemT2) { - items2 ??= new List(); + items2 ??= []; items2.Add(itemT2); } else if (item is T1 itemT1) { - items1 ??= new List(); + items1 ??= []; items1.Add(itemT1); } } - this.Value1 = items1 == null ? default : (OneOrMany)items1; - this.Value2 = items2 == null ? default : (OneOrMany)items2; - this.Value3 = items3 == null ? default : (OneOrMany)items3; - this.Value4 = items4 == null ? default : (OneOrMany)items4; - this.Value5 = items5 == null ? default : (OneOrMany)items5; + this.Value1 = items1 == null ? default : (OneOrMany)items1!; + this.Value2 = items2 == null ? default : (OneOrMany)items2!; + this.Value3 = items3 == null ? default : (OneOrMany)items3!; + this.Value4 = items4 == null ? default : (OneOrMany)items4!; + this.Value5 = items5 == null ? default : (OneOrMany)items5!; this.HasValue1 = this.Value1.Count > 0; this.HasValue2 = this.Value2.Count > 0; @@ -247,119 +247,119 @@ public Values(IEnumerable items) /// /// The single item value. /// The result of the conversion. - public static implicit operator Values(T1 item) => new(item); + public static implicit operator Values(T1? item) => new(item); /// /// Performs an implicit conversion from to . /// /// The single item value. /// The result of the conversion. - public static implicit operator Values(T2 item) => new(item); + public static implicit operator Values(T2? item) => new(item); /// /// Performs an implicit conversion from to . /// /// The single item value. /// The result of the conversion. - public static implicit operator Values(T3 item) => new(item); + public static implicit operator Values(T3? item) => new(item); /// /// Performs an implicit conversion from to . /// /// The single item value. /// The result of the conversion. - public static implicit operator Values(T4 item) => new(item); + public static implicit operator Values(T4? item) => new(item); /// /// Performs an implicit conversion from to . /// /// The single item value. /// The result of the conversion. - public static implicit operator Values(T5 item) => new(item); + public static implicit operator Values(T5? item) => new(item); /// /// Performs an implicit conversion from to . /// /// The array of values. /// The result of the conversion. - public static implicit operator Values(T1[] array) => new(array); + public static implicit operator Values(T1?[] array) => new(array); /// /// Performs an implicit conversion from to . /// /// The array of values. /// The result of the conversion. - public static implicit operator Values(T2[] array) => new(array); + public static implicit operator Values(T2?[] array) => new(array); /// /// Performs an implicit conversion from to . /// /// The array of values. /// The result of the conversion. - public static implicit operator Values(T3[] array) => new(array); + public static implicit operator Values(T3?[] array) => new(array); /// /// Performs an implicit conversion from to . /// /// The array of values. /// The result of the conversion. - public static implicit operator Values(T4[] array) => new(array); + public static implicit operator Values(T4?[] array) => new(array); /// /// Performs an implicit conversion from to . /// /// The array of values. /// The result of the conversion. - public static implicit operator Values(T5[] array) => new(array); + public static implicit operator Values(T5?[] array) => new(array); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from array to . /// /// The array of values. /// The result of the conversion. - public static implicit operator Values(object[] array) => new(array); + public static implicit operator Values(object?[] array) => new(array); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from to the first item of type . diff --git a/Source/Common/Values{T1,T2,T3,T4}.cs b/Source/Common/Values{T1,T2,T3,T4}.cs index bfb78a07..43ae45eb 100644 --- a/Source/Common/Values{T1,T2,T3,T4}.cs +++ b/Source/Common/Values{T1,T2,T3,T4}.cs @@ -15,7 +15,7 @@ namespace Schema.NET; #pragma warning disable CA1710 // Identifiers should have correct suffix. public readonly struct Values #pragma warning restore CA1710 // Identifiers should have correct suffix. - : IReadOnlyCollection, IEnumerable, IValues, IEquatable> + : IReadOnlyCollection, IValues, IEquatable> { /// /// Initializes a new instance of the struct. @@ -85,7 +85,7 @@ public Values(OneOrMany value) /// Initializes a new instance of the struct. /// /// The items. - public Values(params object[] items) + public Values(params object?[] items) : this(items.AsEnumerable()) { } @@ -114,30 +114,30 @@ public Values(IEnumerable items) { if (item is T4 itemT4) { - items4 ??= new List(); + items4 ??= []; items4.Add(itemT4); } else if (item is T3 itemT3) { - items3 ??= new List(); + items3 ??= []; items3.Add(itemT3); } else if (item is T2 itemT2) { - items2 ??= new List(); + items2 ??= []; items2.Add(itemT2); } else if (item is T1 itemT1) { - items1 ??= new List(); + items1 ??= []; items1.Add(itemT1); } } - this.Value1 = items1 == null ? default : (OneOrMany)items1; - this.Value2 = items2 == null ? default : (OneOrMany)items2; - this.Value3 = items3 == null ? default : (OneOrMany)items3; - this.Value4 = items4 == null ? default : (OneOrMany)items4; + this.Value1 = items1 == null ? default : (OneOrMany)items1!; + this.Value2 = items2 == null ? default : (OneOrMany)items2!; + this.Value3 = items3 == null ? default : (OneOrMany)items3!; + this.Value4 = items4 == null ? default : (OneOrMany)items4!; this.HasValue1 = this.Value1.Count > 0; this.HasValue2 = this.Value2.Count > 0; @@ -202,98 +202,98 @@ public Values(IEnumerable items) /// /// The single item value. /// The result of the conversion. - public static implicit operator Values(T1 item) => new(item); + public static implicit operator Values(T1? item) => new(item); /// /// Performs an implicit conversion from to . /// /// The single item value. /// The result of the conversion. - public static implicit operator Values(T2 item) => new(item); + public static implicit operator Values(T2? item) => new(item); /// /// Performs an implicit conversion from to . /// /// The single item value. /// The result of the conversion. - public static implicit operator Values(T3 item) => new(item); + public static implicit operator Values(T3? item) => new(item); /// /// Performs an implicit conversion from to . /// /// The single item value. /// The result of the conversion. - public static implicit operator Values(T4 item) => new(item); + public static implicit operator Values(T4? item) => new(item); /// /// Performs an implicit conversion from to . /// /// The array of values. /// The result of the conversion. - public static implicit operator Values(T1[] array) => new(array); + public static implicit operator Values(T1?[] array) => new(array); /// /// Performs an implicit conversion from to . /// /// The array of values. /// The result of the conversion. - public static implicit operator Values(T2[] array) => new(array); + public static implicit operator Values(T2?[] array) => new(array); /// /// Performs an implicit conversion from to . /// /// The array of values. /// The result of the conversion. - public static implicit operator Values(T3[] array) => new(array); + public static implicit operator Values(T3?[] array) => new(array); /// /// Performs an implicit conversion from to . /// /// The array of values. /// The result of the conversion. - public static implicit operator Values(T4[] array) => new(array); + public static implicit operator Values(T4?[] array) => new(array); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from array to . /// /// The array of values. /// The result of the conversion. - public static implicit operator Values(object[] array) => new(array); + public static implicit operator Values(object?[] array) => new(array); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from to the first item of type . diff --git a/Source/Common/Values{T1,T2,T3}.cs b/Source/Common/Values{T1,T2,T3}.cs index a90d3b9c..a19f3c7f 100644 --- a/Source/Common/Values{T1,T2,T3}.cs +++ b/Source/Common/Values{T1,T2,T3}.cs @@ -14,7 +14,7 @@ namespace Schema.NET; #pragma warning disable CA1710 // Identifiers should have correct suffix. public readonly struct Values #pragma warning restore CA1710 // Identifiers should have correct suffix. - : IReadOnlyCollection, IEnumerable, IValues, IEquatable> + : IReadOnlyCollection, IValues, IEquatable> { /// /// Initializes a new instance of the struct. @@ -62,7 +62,7 @@ public Values(OneOrMany value) /// Initializes a new instance of the struct. /// /// The items. - public Values(params object[] items) + public Values(params object?[] items) : this(items.AsEnumerable()) { } @@ -71,7 +71,7 @@ public Values(params object[] items) /// Initializes a new instance of the struct. /// /// The items. - public Values(IEnumerable items) + public Values(IEnumerable items) { #if NET6_0_OR_GREATER ArgumentNullException.ThrowIfNull(items); @@ -90,24 +90,24 @@ public Values(IEnumerable items) { if (item is T3 itemT3) { - items3 ??= new List(); + items3 ??= []; items3.Add(itemT3); } else if (item is T2 itemT2) { - items2 ??= new List(); + items2 ??= []; items2.Add(itemT2); } else if (item is T1 itemT1) { - items1 ??= new List(); + items1 ??= []; items1.Add(itemT1); } } - this.Value1 = items1 == null ? default : (OneOrMany)items1; - this.Value2 = items2 == null ? default : (OneOrMany)items2; - this.Value3 = items3 == null ? default : (OneOrMany)items3; + this.Value1 = items1 == null ? default : (OneOrMany)items1!; + this.Value2 = items2 == null ? default : (OneOrMany)items2!; + this.Value3 = items3 == null ? default : (OneOrMany)items3!; this.HasValue1 = this.Value1.Count > 0; this.HasValue2 = this.Value2.Count > 0; @@ -161,63 +161,63 @@ public Values(IEnumerable items) /// /// The single item value. /// The result of the conversion. - public static implicit operator Values(T1 item) => new(item); + public static implicit operator Values(T1? item) => new(item); /// /// Performs an implicit conversion from to . /// /// The single item value. /// The result of the conversion. - public static implicit operator Values(T2 item) => new(item); + public static implicit operator Values(T2? item) => new(item); /// /// Performs an implicit conversion from to . /// /// The single item value. /// The result of the conversion. - public static implicit operator Values(T3 item) => new(item); + public static implicit operator Values(T3? item) => new(item); /// /// Performs an implicit conversion from to . /// /// The array of values. /// The result of the conversion. - public static implicit operator Values(T1[] array) => new(array); + public static implicit operator Values(T1?[] array) => new(array); /// /// Performs an implicit conversion from to . /// /// The array of values. /// The result of the conversion. - public static implicit operator Values(T2[] array) => new(array); + public static implicit operator Values(T2?[] array) => new(array); /// /// Performs an implicit conversion from to . /// /// The array of values. /// The result of the conversion. - public static implicit operator Values(T3[] array) => new(array); + public static implicit operator Values(T3?[] array) => new(array); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from array to . diff --git a/Source/Common/Values{T1,T2}.cs b/Source/Common/Values{T1,T2}.cs index 9724fe49..31fe5a61 100644 --- a/Source/Common/Values{T1,T2}.cs +++ b/Source/Common/Values{T1,T2}.cs @@ -13,7 +13,7 @@ namespace Schema.NET; #pragma warning disable CA1710 // Identifiers should have correct suffix. public readonly struct Values #pragma warning restore CA1710 // Identifiers should have correct suffix. - : IReadOnlyCollection, IEnumerable, IValues, IEquatable> + : IReadOnlyCollection, IValues, IEquatable> { /// /// Initializes a new instance of the struct. @@ -43,7 +43,7 @@ public Values(OneOrMany value) /// Initializes a new instance of the struct. /// /// The items. - public Values(params object[] items) + public Values(params object?[] items) : this(items.AsEnumerable()) { } @@ -70,18 +70,18 @@ public Values(IEnumerable items) { if (item is T2 itemT2) { - items2 ??= new List(); + items2 ??= []; items2.Add(itemT2); } else if (item is T1 itemT1) { - items1 ??= new List(); + items1 ??= []; items1.Add(itemT1); } } - this.Value1 = items1 == null ? default : (OneOrMany)items1; - this.Value2 = items2 == null ? default : (OneOrMany)items2; + this.Value1 = items1 == null ? default : (OneOrMany)items1!; + this.Value2 = items2 == null ? default : (OneOrMany)items2!; this.HasValue1 = this.Value1.Count > 0; this.HasValue2 = this.Value2.Count > 0; @@ -124,14 +124,14 @@ public Values(IEnumerable items) /// /// The single item value. /// The result of the conversion. - public static implicit operator Values(T1 item) => new(item); + public static implicit operator Values(T1? item) => new(item); /// /// Performs an implicit conversion from to . /// /// The single item value. /// The result of the conversion. - public static implicit operator Values(T2 item) => new(item); + public static implicit operator Values(T2? item) => new(item); /// /// Performs an implicit conversion from to . @@ -152,28 +152,28 @@ public Values(IEnumerable items) /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from array to . /// /// The array of values. /// The result of the conversion. - public static implicit operator Values(object[] array) => new(array); + public static implicit operator Values(object?[] array) => new(array); /// /// Performs an implicit conversion from to . /// /// The list of values. /// The result of the conversion. - public static implicit operator Values(List list) => new(list); + public static implicit operator Values(List list) => new(list); /// /// Performs an implicit conversion from to the first item of type . diff --git a/Source/Schema.NET.Pending/Schema.NET.Pending.csproj b/Source/Schema.NET.Pending/Schema.NET.Pending.csproj index 50fb96a3..b51d592d 100644 --- a/Source/Schema.NET.Pending/Schema.NET.Pending.csproj +++ b/Source/Schema.NET.Pending/Schema.NET.Pending.csproj @@ -1,7 +1,7 @@ - net7.0;net6.0;netstandard2.0;net472;net462 + net8.0;net6.0;netstandard2.0 True $(BaseIntermediateOutputPath)\GeneratedFiles True @@ -11,16 +11,26 @@ Schema.NET.Pending Schema.org objects (including pending types) turned into strongly typed C# POCO classes for use in .NET. All classes can be serialized into JSON/JSON-LD and XML, typically used to represent structured data in the head section of html page. Schema;.NET;Schema.org;Schema.NET;Structured Data;Google Structured Data + true - - - - + + + + + + + + - - + + + + + + + diff --git a/Source/Schema.NET.Pending/packages.lock.json b/Source/Schema.NET.Pending/packages.lock.json new file mode 100644 index 00000000..16c541cf --- /dev/null +++ b/Source/Schema.NET.Pending/packages.lock.json @@ -0,0 +1,471 @@ +{ + "version": 1, + "dependencies": { + ".NETStandard,Version=v2.0": { + "DotNet.ReproducibleBuilds": { + "type": "Direct", + "requested": "[1.1.1, )", + "resolved": "1.1.1", + "contentHash": "+H2t/t34h6mhEoUvHi8yGXyuZ2GjSovcGYehJrS2MDm2XgmPfZL2Sdxg+uL2lKgZ4M6tTwKHIlxOob2bgh0NRQ==", + "dependencies": { + "Microsoft.SourceLink.AzureRepos.Git": "1.1.1", + "Microsoft.SourceLink.Bitbucket.Git": "1.1.1", + "Microsoft.SourceLink.GitHub": "1.1.1", + "Microsoft.SourceLink.GitLab": "1.1.1" + } + }, + "Microsoft.CodeAnalysis.CSharp": { + "type": "Direct", + "requested": "[4.5.0, )", + "resolved": "4.5.0", + "contentHash": "cM59oMKAOxvdv76bdmaKPy5hfj+oR+zxikWoueEB7CwTko7mt9sVKZI8Qxlov0C/LuKEG+WQwifepqL3vuTiBQ==", + "dependencies": { + "Microsoft.CodeAnalysis.Common": "[4.5.0]" + } + }, + "Microsoft.CodeAnalysis.NetAnalyzers": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "DxiTgkCl3CGq1rYmBX2wjY7XGbxiBdL4J+/AJIAFLKy5z70NxhnVRnPghnicXZ8oF6JKVXlW3xwznRbI3ioEKg==" + }, + "Microsoft.VisualStudio.Threading.Analyzers": { + "type": "Direct", + "requested": "[17.12.19, )", + "resolved": "17.12.19", + "contentHash": "v3IYeedjoktvZ+GqYmLudxZJngmf/YWIxNT2Uy6QMMN19cvw+nkWoip1Gr1RtnFkUo1MPUVMis4C8Kj8d8DpSQ==" + }, + "MinVer": { + "type": "Direct", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "YNVAW3loCFW4kTwensApaZUl+7xREK75QQNOFSbsbXx2sCSm9/IHBjUHsJGn3u0UA5r/sAqrdYBNUlOFfLhUrA==" + }, + "NETStandard.Library": { + "type": "Direct", + "requested": "[2.0.3, )", + "resolved": "2.0.3", + "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0" + } + }, + "System.Text.Json": { + "type": "Direct", + "requested": "[6.0.11, )", + "resolved": "6.0.11", + "contentHash": "xqC1HIbJMBFhrpYs76oYP+NAskNVjc6v73HqLal7ECRDPIp4oRU5pPavkD//vNactCn9DA2aaald/I5N+uZ5/g==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encodings.Web": "6.0.1", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.Bcl.AsyncInterfaces": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "UcSjPsst+DfAdJGVDsu346FX0ci0ah+lw3WRtn18NUwEqRt70HaOQ7lI72vy3+1LxtqI3T5GWwV39rQSrCzAeg==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.Build.Tasks.Git": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "AT3HlgTjsqHnWpBHSNeR0KxbLZD7bztlZVj7I8vgeYG9SYqbeFGh0TM/KVtC6fg53nrWHl3VfZFvb5BiQFcY6Q==" + }, + "Microsoft.CodeAnalysis.Analyzers": { + "type": "Transitive", + "resolved": "3.3.3", + "contentHash": "j/rOZtLMVJjrfLRlAMckJLPW/1rze9MT1yfWqSIbUPGRu1m1P0fuo9PmqapwsmePfGB5PJrudQLvmUOAMF0DqQ==" + }, + "Microsoft.CodeAnalysis.Common": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "lwAbIZNdnY0SUNoDmZHkVUwLO8UyNnyyh1t/4XsbFxi4Ounb3xszIYZaWhyj5ZjyfcwqwmtMbE7fUTVCqQEIdQ==", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.3", + "System.Collections.Immutable": "6.0.0", + "System.Memory": "4.5.5", + "System.Reflection.Metadata": "6.0.1", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encoding.CodePages": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.NETCore.Platforms": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" + }, + "Microsoft.SourceLink.AzureRepos.Git": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "qB5urvw9LO2bG3eVAkuL+2ughxz2rR7aYgm2iyrB8Rlk9cp2ndvGRCvehk3rNIhRuNtQaeKwctOl1KvWiklv5w==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.1", + "Microsoft.SourceLink.Common": "1.1.1" + } + }, + "Microsoft.SourceLink.Bitbucket.Git": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "cDzxXwlyWpLWaH0em4Idj0H3AmVo3L/6xRXKssYemx+7W52iNskj/SQ4FOmfCb8YQt39otTDNMveCZzYtMoucQ==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.1", + "Microsoft.SourceLink.Common": "1.1.1" + } + }, + "Microsoft.SourceLink.Common": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "WMcGpWKrmJmzrNeuaEb23bEMnbtR/vLmvZtkAP5qWu7vQsY59GqfRJd65sFpBszbd2k/bQ8cs8eWawQKAabkVg==" + }, + "Microsoft.SourceLink.GitHub": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "IaJGnOv/M7UQjRJks7B6p7pbPnOwisYGOIzqCz5ilGFTApZ3ktOR+6zJ12ZRPInulBmdAf1SrGdDG2MU8g6XTw==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.1", + "Microsoft.SourceLink.Common": "1.1.1" + } + }, + "Microsoft.SourceLink.GitLab": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "tvsg47DDLqqedlPeYVE2lmiTpND8F0hkrealQ5hYltSmvruy/Gr5nHAKSsjyw5L3NeM/HLMI5ORv7on/M4qyZw==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.1", + "Microsoft.SourceLink.Common": "1.1.1" + } + }, + "System.Buffers": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", + "dependencies": { + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.5", + "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Numerics.Vectors": "4.4.0", + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + }, + "System.Numerics.Vectors": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "III/lNMSn0ZRBuM9m5Cgbiho5j81u0FAEagFX5ta2DKbljZ3T0IpD8j+BIiHQPeKqJppWS9bGEp6JnKnWKze0g==", + "dependencies": { + "System.Collections.Immutable": "6.0.0" + } + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + }, + "System.Text.Encoding.CodePages": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==", + "dependencies": { + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Text.Encodings.Web": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "E5M5AE2OUTlCrf4omZvzzziUJO9CofBl+lXHaN5IKePPJvHqYFYYpaDPgCpR4VwaFbEebfnjOxxEBtPtsqAxpQ==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Threading.Tasks.Extensions": { + "type": "Transitive", + "resolved": "4.5.4", + "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + } + }, + "net6.0": { + "DotNet.ReproducibleBuilds": { + "type": "Direct", + "requested": "[1.1.1, )", + "resolved": "1.1.1", + "contentHash": "+H2t/t34h6mhEoUvHi8yGXyuZ2GjSovcGYehJrS2MDm2XgmPfZL2Sdxg+uL2lKgZ4M6tTwKHIlxOob2bgh0NRQ==", + "dependencies": { + "Microsoft.SourceLink.AzureRepos.Git": "1.1.1", + "Microsoft.SourceLink.Bitbucket.Git": "1.1.1", + "Microsoft.SourceLink.GitHub": "1.1.1", + "Microsoft.SourceLink.GitLab": "1.1.1" + } + }, + "Microsoft.CodeAnalysis.CSharp": { + "type": "Direct", + "requested": "[4.9.2, )", + "resolved": "4.9.2", + "contentHash": "HGIo7E9Mf3exAJbUdYpDFfLoYkSVaHDJXPyusWTYUTBaOPCowGw+Gap5McE1w+K+ryIXre72oiqL88sQHmHBmg==", + "dependencies": { + "Microsoft.CodeAnalysis.Common": "[4.9.2]" + } + }, + "Microsoft.CodeAnalysis.NetAnalyzers": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "DxiTgkCl3CGq1rYmBX2wjY7XGbxiBdL4J+/AJIAFLKy5z70NxhnVRnPghnicXZ8oF6JKVXlW3xwznRbI3ioEKg==" + }, + "Microsoft.VisualStudio.Threading.Analyzers": { + "type": "Direct", + "requested": "[17.12.19, )", + "resolved": "17.12.19", + "contentHash": "v3IYeedjoktvZ+GqYmLudxZJngmf/YWIxNT2Uy6QMMN19cvw+nkWoip1Gr1RtnFkUo1MPUVMis4C8Kj8d8DpSQ==" + }, + "MinVer": { + "type": "Direct", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "YNVAW3loCFW4kTwensApaZUl+7xREK75QQNOFSbsbXx2sCSm9/IHBjUHsJGn3u0UA5r/sAqrdYBNUlOFfLhUrA==" + }, + "System.Text.Json": { + "type": "Direct", + "requested": "[6.0.11, )", + "resolved": "6.0.11", + "contentHash": "xqC1HIbJMBFhrpYs76oYP+NAskNVjc6v73HqLal7ECRDPIp4oRU5pPavkD//vNactCn9DA2aaald/I5N+uZ5/g==" + }, + "Microsoft.Build.Tasks.Git": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "AT3HlgTjsqHnWpBHSNeR0KxbLZD7bztlZVj7I8vgeYG9SYqbeFGh0TM/KVtC6fg53nrWHl3VfZFvb5BiQFcY6Q==" + }, + "Microsoft.CodeAnalysis.Analyzers": { + "type": "Transitive", + "resolved": "3.3.4", + "contentHash": "AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==" + }, + "Microsoft.CodeAnalysis.Common": { + "type": "Transitive", + "resolved": "4.9.2", + "contentHash": "M5PThug7b2AdxL7xKmQs50KzAQTl9jENw5jMT3iUt16k+DAFlw1S87juU3UuPs3gvBm8trMBSOEvSFDr31c9Vw==", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.4", + "System.Collections.Immutable": "8.0.0", + "System.Reflection.Metadata": "8.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Microsoft.SourceLink.AzureRepos.Git": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "qB5urvw9LO2bG3eVAkuL+2ughxz2rR7aYgm2iyrB8Rlk9cp2ndvGRCvehk3rNIhRuNtQaeKwctOl1KvWiklv5w==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.1", + "Microsoft.SourceLink.Common": "1.1.1" + } + }, + "Microsoft.SourceLink.Bitbucket.Git": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "cDzxXwlyWpLWaH0em4Idj0H3AmVo3L/6xRXKssYemx+7W52iNskj/SQ4FOmfCb8YQt39otTDNMveCZzYtMoucQ==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.1", + "Microsoft.SourceLink.Common": "1.1.1" + } + }, + "Microsoft.SourceLink.Common": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "WMcGpWKrmJmzrNeuaEb23bEMnbtR/vLmvZtkAP5qWu7vQsY59GqfRJd65sFpBszbd2k/bQ8cs8eWawQKAabkVg==" + }, + "Microsoft.SourceLink.GitHub": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "IaJGnOv/M7UQjRJks7B6p7pbPnOwisYGOIzqCz5ilGFTApZ3ktOR+6zJ12ZRPInulBmdAf1SrGdDG2MU8g6XTw==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.1", + "Microsoft.SourceLink.Common": "1.1.1" + } + }, + "Microsoft.SourceLink.GitLab": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "tvsg47DDLqqedlPeYVE2lmiTpND8F0hkrealQ5hYltSmvruy/Gr5nHAKSsjyw5L3NeM/HLMI5ORv7on/M4qyZw==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.1", + "Microsoft.SourceLink.Common": "1.1.1" + } + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==", + "dependencies": { + "System.Collections.Immutable": "8.0.0" + } + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + } + }, + "net8.0": { + "DotNet.ReproducibleBuilds": { + "type": "Direct", + "requested": "[1.1.1, )", + "resolved": "1.1.1", + "contentHash": "+H2t/t34h6mhEoUvHi8yGXyuZ2GjSovcGYehJrS2MDm2XgmPfZL2Sdxg+uL2lKgZ4M6tTwKHIlxOob2bgh0NRQ==", + "dependencies": { + "Microsoft.SourceLink.AzureRepos.Git": "1.1.1", + "Microsoft.SourceLink.Bitbucket.Git": "1.1.1", + "Microsoft.SourceLink.GitHub": "1.1.1", + "Microsoft.SourceLink.GitLab": "1.1.1" + } + }, + "Microsoft.CodeAnalysis.CSharp": { + "type": "Direct", + "requested": "[4.11.0, )", + "resolved": "4.11.0", + "contentHash": "6XYi2EusI8JT4y2l/F3VVVS+ISoIX9nqHsZRaG6W5aFeJ5BEuBosHfT/ABb73FN0RZ1Z3cj2j7cL28SToJPXOw==", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.4", + "Microsoft.CodeAnalysis.Common": "[4.11.0]", + "System.Collections.Immutable": "8.0.0", + "System.Reflection.Metadata": "8.0.0" + } + }, + "Microsoft.CodeAnalysis.NetAnalyzers": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "DxiTgkCl3CGq1rYmBX2wjY7XGbxiBdL4J+/AJIAFLKy5z70NxhnVRnPghnicXZ8oF6JKVXlW3xwznRbI3ioEKg==" + }, + "Microsoft.VisualStudio.Threading.Analyzers": { + "type": "Direct", + "requested": "[17.12.19, )", + "resolved": "17.12.19", + "contentHash": "v3IYeedjoktvZ+GqYmLudxZJngmf/YWIxNT2Uy6QMMN19cvw+nkWoip1Gr1RtnFkUo1MPUVMis4C8Kj8d8DpSQ==" + }, + "MinVer": { + "type": "Direct", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "YNVAW3loCFW4kTwensApaZUl+7xREK75QQNOFSbsbXx2sCSm9/IHBjUHsJGn3u0UA5r/sAqrdYBNUlOFfLhUrA==" + }, + "System.Text.Json": { + "type": "Direct", + "requested": "[8.0.5, )", + "resolved": "8.0.5", + "contentHash": "0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg==" + }, + "Microsoft.Build.Tasks.Git": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "AT3HlgTjsqHnWpBHSNeR0KxbLZD7bztlZVj7I8vgeYG9SYqbeFGh0TM/KVtC6fg53nrWHl3VfZFvb5BiQFcY6Q==" + }, + "Microsoft.CodeAnalysis.Analyzers": { + "type": "Transitive", + "resolved": "3.3.4", + "contentHash": "AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==" + }, + "Microsoft.CodeAnalysis.Common": { + "type": "Transitive", + "resolved": "4.11.0", + "contentHash": "djf8ujmqYImFgB04UGtcsEhHrzVqzHowS+EEl/Yunc5LdrYrZhGBWUTXoCF0NzYXJxtfuD+UVQarWpvrNc94Qg==", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.4", + "System.Collections.Immutable": "8.0.0", + "System.Reflection.Metadata": "8.0.0" + } + }, + "Microsoft.SourceLink.AzureRepos.Git": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "qB5urvw9LO2bG3eVAkuL+2ughxz2rR7aYgm2iyrB8Rlk9cp2ndvGRCvehk3rNIhRuNtQaeKwctOl1KvWiklv5w==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.1", + "Microsoft.SourceLink.Common": "1.1.1" + } + }, + "Microsoft.SourceLink.Bitbucket.Git": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "cDzxXwlyWpLWaH0em4Idj0H3AmVo3L/6xRXKssYemx+7W52iNskj/SQ4FOmfCb8YQt39otTDNMveCZzYtMoucQ==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.1", + "Microsoft.SourceLink.Common": "1.1.1" + } + }, + "Microsoft.SourceLink.Common": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "WMcGpWKrmJmzrNeuaEb23bEMnbtR/vLmvZtkAP5qWu7vQsY59GqfRJd65sFpBszbd2k/bQ8cs8eWawQKAabkVg==" + }, + "Microsoft.SourceLink.GitHub": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "IaJGnOv/M7UQjRJks7B6p7pbPnOwisYGOIzqCz5ilGFTApZ3ktOR+6zJ12ZRPInulBmdAf1SrGdDG2MU8g6XTw==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.1", + "Microsoft.SourceLink.Common": "1.1.1" + } + }, + "Microsoft.SourceLink.GitLab": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "tvsg47DDLqqedlPeYVE2lmiTpND8F0hkrealQ5hYltSmvruy/Gr5nHAKSsjyw5L3NeM/HLMI5ORv7on/M4qyZw==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.1", + "Microsoft.SourceLink.Common": "1.1.1" + } + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==" + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==", + "dependencies": { + "System.Collections.Immutable": "8.0.0" + } + } + } + } +} \ No newline at end of file diff --git a/Source/Schema.NET/Schema.NET.csproj b/Source/Schema.NET/Schema.NET.csproj index 967987bc..f041f2d0 100644 --- a/Source/Schema.NET/Schema.NET.csproj +++ b/Source/Schema.NET/Schema.NET.csproj @@ -1,7 +1,7 @@ - net7.0;net6.0;netstandard2.0;net472;net462 + net8.0;net6.0;netstandard2.0 True $(BaseIntermediateOutputPath)\GeneratedFiles False @@ -13,14 +13,23 @@ Schema;.NET;Schema.org;Schema.NET;Structured Data;Google Structured Data - - - - + + + + + + + + - - + + + + + + + diff --git a/Source/Schema.NET/packages.lock.json b/Source/Schema.NET/packages.lock.json new file mode 100644 index 00000000..2a1f0b38 --- /dev/null +++ b/Source/Schema.NET/packages.lock.json @@ -0,0 +1,471 @@ +{ + "version": 1, + "dependencies": { + ".NETStandard,Version=v2.0": { + "DotNet.ReproducibleBuilds": { + "type": "Direct", + "requested": "[1.1.1, )", + "resolved": "1.1.1", + "contentHash": "+H2t/t34h6mhEoUvHi8yGXyuZ2GjSovcGYehJrS2MDm2XgmPfZL2Sdxg+uL2lKgZ4M6tTwKHIlxOob2bgh0NRQ==", + "dependencies": { + "Microsoft.SourceLink.AzureRepos.Git": "1.1.1", + "Microsoft.SourceLink.Bitbucket.Git": "1.1.1", + "Microsoft.SourceLink.GitHub": "1.1.1", + "Microsoft.SourceLink.GitLab": "1.1.1" + } + }, + "Microsoft.CodeAnalysis.CSharp": { + "type": "Direct", + "requested": "[4.5.0, )", + "resolved": "4.5.0", + "contentHash": "cM59oMKAOxvdv76bdmaKPy5hfj+oR+zxikWoueEB7CwTko7mt9sVKZI8Qxlov0C/LuKEG+WQwifepqL3vuTiBQ==", + "dependencies": { + "Microsoft.CodeAnalysis.Common": "[4.5.0]" + } + }, + "Microsoft.CodeAnalysis.NetAnalyzers": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "DxiTgkCl3CGq1rYmBX2wjY7XGbxiBdL4J+/AJIAFLKy5z70NxhnVRnPghnicXZ8oF6JKVXlW3xwznRbI3ioEKg==" + }, + "Microsoft.VisualStudio.Threading.Analyzers": { + "type": "Direct", + "requested": "[17.12.19, )", + "resolved": "17.12.19", + "contentHash": "v3IYeedjoktvZ+GqYmLudxZJngmf/YWIxNT2Uy6QMMN19cvw+nkWoip1Gr1RtnFkUo1MPUVMis4C8Kj8d8DpSQ==" + }, + "MinVer": { + "type": "Direct", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "YNVAW3loCFW4kTwensApaZUl+7xREK75QQNOFSbsbXx2sCSm9/IHBjUHsJGn3u0UA5r/sAqrdYBNUlOFfLhUrA==" + }, + "NETStandard.Library": { + "type": "Direct", + "requested": "[2.0.3, )", + "resolved": "2.0.3", + "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0" + } + }, + "System.Text.Json": { + "type": "Direct", + "requested": "[6.0.11, )", + "resolved": "6.0.11", + "contentHash": "xqC1HIbJMBFhrpYs76oYP+NAskNVjc6v73HqLal7ECRDPIp4oRU5pPavkD//vNactCn9DA2aaald/I5N+uZ5/g==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encodings.Web": "6.0.1", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.Bcl.AsyncInterfaces": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "UcSjPsst+DfAdJGVDsu346FX0ci0ah+lw3WRtn18NUwEqRt70HaOQ7lI72vy3+1LxtqI3T5GWwV39rQSrCzAeg==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.Build.Tasks.Git": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "AT3HlgTjsqHnWpBHSNeR0KxbLZD7bztlZVj7I8vgeYG9SYqbeFGh0TM/KVtC6fg53nrWHl3VfZFvb5BiQFcY6Q==" + }, + "Microsoft.CodeAnalysis.Analyzers": { + "type": "Transitive", + "resolved": "3.3.3", + "contentHash": "j/rOZtLMVJjrfLRlAMckJLPW/1rze9MT1yfWqSIbUPGRu1m1P0fuo9PmqapwsmePfGB5PJrudQLvmUOAMF0DqQ==" + }, + "Microsoft.CodeAnalysis.Common": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "lwAbIZNdnY0SUNoDmZHkVUwLO8UyNnyyh1t/4XsbFxi4Ounb3xszIYZaWhyj5ZjyfcwqwmtMbE7fUTVCqQEIdQ==", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.3", + "System.Collections.Immutable": "6.0.0", + "System.Memory": "4.5.5", + "System.Reflection.Metadata": "6.0.1", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encoding.CodePages": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.NETCore.Platforms": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" + }, + "Microsoft.SourceLink.AzureRepos.Git": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "qB5urvw9LO2bG3eVAkuL+2ughxz2rR7aYgm2iyrB8Rlk9cp2ndvGRCvehk3rNIhRuNtQaeKwctOl1KvWiklv5w==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.1", + "Microsoft.SourceLink.Common": "1.1.1" + } + }, + "Microsoft.SourceLink.Bitbucket.Git": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "cDzxXwlyWpLWaH0em4Idj0H3AmVo3L/6xRXKssYemx+7W52iNskj/SQ4FOmfCb8YQt39otTDNMveCZzYtMoucQ==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.1", + "Microsoft.SourceLink.Common": "1.1.1" + } + }, + "Microsoft.SourceLink.Common": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "WMcGpWKrmJmzrNeuaEb23bEMnbtR/vLmvZtkAP5qWu7vQsY59GqfRJd65sFpBszbd2k/bQ8cs8eWawQKAabkVg==" + }, + "Microsoft.SourceLink.GitHub": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "IaJGnOv/M7UQjRJks7B6p7pbPnOwisYGOIzqCz5ilGFTApZ3ktOR+6zJ12ZRPInulBmdAf1SrGdDG2MU8g6XTw==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.1", + "Microsoft.SourceLink.Common": "1.1.1" + } + }, + "Microsoft.SourceLink.GitLab": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "tvsg47DDLqqedlPeYVE2lmiTpND8F0hkrealQ5hYltSmvruy/Gr5nHAKSsjyw5L3NeM/HLMI5ORv7on/M4qyZw==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.1", + "Microsoft.SourceLink.Common": "1.1.1" + } + }, + "System.Buffers": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", + "dependencies": { + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.5", + "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Numerics.Vectors": "4.4.0", + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + }, + "System.Numerics.Vectors": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "III/lNMSn0ZRBuM9m5Cgbiho5j81u0FAEagFX5ta2DKbljZ3T0IpD8j+BIiHQPeKqJppWS9bGEp6JnKnWKze0g==", + "dependencies": { + "System.Collections.Immutable": "6.0.0" + } + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + }, + "System.Text.Encoding.CodePages": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==", + "dependencies": { + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Text.Encodings.Web": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "E5M5AE2OUTlCrf4omZvzzziUJO9CofBl+lXHaN5IKePPJvHqYFYYpaDPgCpR4VwaFbEebfnjOxxEBtPtsqAxpQ==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Threading.Tasks.Extensions": { + "type": "Transitive", + "resolved": "4.5.4", + "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + } + }, + "net6.0": { + "DotNet.ReproducibleBuilds": { + "type": "Direct", + "requested": "[1.1.1, )", + "resolved": "1.1.1", + "contentHash": "+H2t/t34h6mhEoUvHi8yGXyuZ2GjSovcGYehJrS2MDm2XgmPfZL2Sdxg+uL2lKgZ4M6tTwKHIlxOob2bgh0NRQ==", + "dependencies": { + "Microsoft.SourceLink.AzureRepos.Git": "1.1.1", + "Microsoft.SourceLink.Bitbucket.Git": "1.1.1", + "Microsoft.SourceLink.GitHub": "1.1.1", + "Microsoft.SourceLink.GitLab": "1.1.1" + } + }, + "Microsoft.CodeAnalysis.CSharp": { + "type": "Direct", + "requested": "[4.9.2, )", + "resolved": "4.9.2", + "contentHash": "HGIo7E9Mf3exAJbUdYpDFfLoYkSVaHDJXPyusWTYUTBaOPCowGw+Gap5McE1w+K+ryIXre72oiqL88sQHmHBmg==", + "dependencies": { + "Microsoft.CodeAnalysis.Common": "[4.9.2]" + } + }, + "Microsoft.CodeAnalysis.NetAnalyzers": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "DxiTgkCl3CGq1rYmBX2wjY7XGbxiBdL4J+/AJIAFLKy5z70NxhnVRnPghnicXZ8oF6JKVXlW3xwznRbI3ioEKg==" + }, + "Microsoft.VisualStudio.Threading.Analyzers": { + "type": "Direct", + "requested": "[17.12.19, )", + "resolved": "17.12.19", + "contentHash": "v3IYeedjoktvZ+GqYmLudxZJngmf/YWIxNT2Uy6QMMN19cvw+nkWoip1Gr1RtnFkUo1MPUVMis4C8Kj8d8DpSQ==" + }, + "MinVer": { + "type": "Direct", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "YNVAW3loCFW4kTwensApaZUl+7xREK75QQNOFSbsbXx2sCSm9/IHBjUHsJGn3u0UA5r/sAqrdYBNUlOFfLhUrA==" + }, + "System.Text.Json": { + "type": "Direct", + "requested": "[6.0.11, )", + "resolved": "6.0.11", + "contentHash": "xqC1HIbJMBFhrpYs76oYP+NAskNVjc6v73HqLal7ECRDPIp4oRU5pPavkD//vNactCn9DA2aaald/I5N+uZ5/g==" + }, + "Microsoft.Build.Tasks.Git": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "AT3HlgTjsqHnWpBHSNeR0KxbLZD7bztlZVj7I8vgeYG9SYqbeFGh0TM/KVtC6fg53nrWHl3VfZFvb5BiQFcY6Q==" + }, + "Microsoft.CodeAnalysis.Analyzers": { + "type": "Transitive", + "resolved": "3.3.4", + "contentHash": "AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==" + }, + "Microsoft.CodeAnalysis.Common": { + "type": "Transitive", + "resolved": "4.9.2", + "contentHash": "M5PThug7b2AdxL7xKmQs50KzAQTl9jENw5jMT3iUt16k+DAFlw1S87juU3UuPs3gvBm8trMBSOEvSFDr31c9Vw==", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.4", + "System.Collections.Immutable": "8.0.0", + "System.Reflection.Metadata": "8.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Microsoft.SourceLink.AzureRepos.Git": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "qB5urvw9LO2bG3eVAkuL+2ughxz2rR7aYgm2iyrB8Rlk9cp2ndvGRCvehk3rNIhRuNtQaeKwctOl1KvWiklv5w==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.1", + "Microsoft.SourceLink.Common": "1.1.1" + } + }, + "Microsoft.SourceLink.Bitbucket.Git": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "cDzxXwlyWpLWaH0em4Idj0H3AmVo3L/6xRXKssYemx+7W52iNskj/SQ4FOmfCb8YQt39otTDNMveCZzYtMoucQ==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.1", + "Microsoft.SourceLink.Common": "1.1.1" + } + }, + "Microsoft.SourceLink.Common": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "WMcGpWKrmJmzrNeuaEb23bEMnbtR/vLmvZtkAP5qWu7vQsY59GqfRJd65sFpBszbd2k/bQ8cs8eWawQKAabkVg==" + }, + "Microsoft.SourceLink.GitHub": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "IaJGnOv/M7UQjRJks7B6p7pbPnOwisYGOIzqCz5ilGFTApZ3ktOR+6zJ12ZRPInulBmdAf1SrGdDG2MU8g6XTw==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.1", + "Microsoft.SourceLink.Common": "1.1.1" + } + }, + "Microsoft.SourceLink.GitLab": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "tvsg47DDLqqedlPeYVE2lmiTpND8F0hkrealQ5hYltSmvruy/Gr5nHAKSsjyw5L3NeM/HLMI5ORv7on/M4qyZw==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.1", + "Microsoft.SourceLink.Common": "1.1.1" + } + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==", + "dependencies": { + "System.Collections.Immutable": "8.0.0" + } + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + } + }, + "net8.0": { + "DotNet.ReproducibleBuilds": { + "type": "Direct", + "requested": "[1.1.1, )", + "resolved": "1.1.1", + "contentHash": "+H2t/t34h6mhEoUvHi8yGXyuZ2GjSovcGYehJrS2MDm2XgmPfZL2Sdxg+uL2lKgZ4M6tTwKHIlxOob2bgh0NRQ==", + "dependencies": { + "Microsoft.SourceLink.AzureRepos.Git": "1.1.1", + "Microsoft.SourceLink.Bitbucket.Git": "1.1.1", + "Microsoft.SourceLink.GitHub": "1.1.1", + "Microsoft.SourceLink.GitLab": "1.1.1" + } + }, + "Microsoft.CodeAnalysis.CSharp": { + "type": "Direct", + "requested": "[4.12.0, )", + "resolved": "4.12.0", + "contentHash": "30vVQ1MizeC22iEdEvI2w0eTIYG43/L20yBzuQH01xKzJgHAoWehzI2F8u07o4mXh4DGMOjQF7aEm0zzvsG3Mg==", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.4", + "Microsoft.CodeAnalysis.Common": "[4.12.0]", + "System.Collections.Immutable": "8.0.0", + "System.Reflection.Metadata": "8.0.0" + } + }, + "Microsoft.CodeAnalysis.NetAnalyzers": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "DxiTgkCl3CGq1rYmBX2wjY7XGbxiBdL4J+/AJIAFLKy5z70NxhnVRnPghnicXZ8oF6JKVXlW3xwznRbI3ioEKg==" + }, + "Microsoft.VisualStudio.Threading.Analyzers": { + "type": "Direct", + "requested": "[17.12.19, )", + "resolved": "17.12.19", + "contentHash": "v3IYeedjoktvZ+GqYmLudxZJngmf/YWIxNT2Uy6QMMN19cvw+nkWoip1Gr1RtnFkUo1MPUVMis4C8Kj8d8DpSQ==" + }, + "MinVer": { + "type": "Direct", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "YNVAW3loCFW4kTwensApaZUl+7xREK75QQNOFSbsbXx2sCSm9/IHBjUHsJGn3u0UA5r/sAqrdYBNUlOFfLhUrA==" + }, + "System.Text.Json": { + "type": "Direct", + "requested": "[8.0.5, )", + "resolved": "8.0.5", + "contentHash": "0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg==" + }, + "Microsoft.Build.Tasks.Git": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "AT3HlgTjsqHnWpBHSNeR0KxbLZD7bztlZVj7I8vgeYG9SYqbeFGh0TM/KVtC6fg53nrWHl3VfZFvb5BiQFcY6Q==" + }, + "Microsoft.CodeAnalysis.Analyzers": { + "type": "Transitive", + "resolved": "3.3.4", + "contentHash": "AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==" + }, + "Microsoft.CodeAnalysis.Common": { + "type": "Transitive", + "resolved": "4.12.0", + "contentHash": "c1kNYihL2gdcuU1dqm8R8YeA4YkB43TpU3pa2r66Uooh6AAhRtENzj9A4Kj0a+H8JDDyuTjNZql9XlVUzV+UjA==", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.4", + "System.Collections.Immutable": "8.0.0", + "System.Reflection.Metadata": "8.0.0" + } + }, + "Microsoft.SourceLink.AzureRepos.Git": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "qB5urvw9LO2bG3eVAkuL+2ughxz2rR7aYgm2iyrB8Rlk9cp2ndvGRCvehk3rNIhRuNtQaeKwctOl1KvWiklv5w==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.1", + "Microsoft.SourceLink.Common": "1.1.1" + } + }, + "Microsoft.SourceLink.Bitbucket.Git": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "cDzxXwlyWpLWaH0em4Idj0H3AmVo3L/6xRXKssYemx+7W52iNskj/SQ4FOmfCb8YQt39otTDNMveCZzYtMoucQ==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.1", + "Microsoft.SourceLink.Common": "1.1.1" + } + }, + "Microsoft.SourceLink.Common": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "WMcGpWKrmJmzrNeuaEb23bEMnbtR/vLmvZtkAP5qWu7vQsY59GqfRJd65sFpBszbd2k/bQ8cs8eWawQKAabkVg==" + }, + "Microsoft.SourceLink.GitHub": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "IaJGnOv/M7UQjRJks7B6p7pbPnOwisYGOIzqCz5ilGFTApZ3ktOR+6zJ12ZRPInulBmdAf1SrGdDG2MU8g6XTw==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.1", + "Microsoft.SourceLink.Common": "1.1.1" + } + }, + "Microsoft.SourceLink.GitLab": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "tvsg47DDLqqedlPeYVE2lmiTpND8F0hkrealQ5hYltSmvruy/Gr5nHAKSsjyw5L3NeM/HLMI5ORv7on/M4qyZw==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.1", + "Microsoft.SourceLink.Common": "1.1.1" + } + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==" + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==", + "dependencies": { + "System.Collections.Immutable": "8.0.0" + } + } + } + } +} \ No newline at end of file diff --git a/Tests/.editorconfig b/Tests/.editorconfig index b686f9a7..5bed7dcb 100644 --- a/Tests/.editorconfig +++ b/Tests/.editorconfig @@ -53,3 +53,6 @@ dotnet_diagnostic.SA1602.severity = none # Justification: Comments turned off # https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1633.md dotnet_diagnostic.SA1633.severity = none + +# CA1515: Consider making public types internal +dotnet_diagnostic.CA1515.severity = none \ No newline at end of file diff --git a/Tests/Directory.Build.props b/Tests/Directory.Build.props index 8af516ea..0da6c24d 100644 --- a/Tests/Directory.Build.props +++ b/Tests/Directory.Build.props @@ -2,18 +2,4 @@ - - - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - - - runtime; build; native; contentfiles; analyzers - - - diff --git a/Tests/Schema.NET.Test/Examples/BookTest.cs b/Tests/Schema.NET.Test/Examples/BookTest.cs index 8703fe21..34907d97 100644 --- a/Tests/Schema.NET.Test/Examples/BookTest.cs +++ b/Tests/Schema.NET.Test/Examples/BookTest.cs @@ -12,35 +12,35 @@ public class BookTest { Id = new Uri("https://example.com/book/1"), Name = "The Catcher in the Rye", - Author = new Person() + Author = new Person { Name = "J.D. Salinger", }, Url = new Uri("https://www.barnesandnoble.com/store/info/offer/JDSalinger"), - WorkExample = new List() - { - new Book() + WorkExample = new List + { + new Book { Isbn = "031676948", BookEdition = "2nd Edition", BookFormat = BookFormatType.Hardcover, - PotentialAction = new ReadAction() + PotentialAction = new ReadAction { - Target = new EntryPoint() + Target = new EntryPoint { UrlTemplate = "https://www.barnesandnoble.com/store/info/offer/0316769487?purchase=true", - ActionPlatform = new List() + ActionPlatform = new List { new Uri("https://schema.org/DesktopWebPlatform"), new Uri("https://schema.org/IOSPlatform"), new Uri("https://schema.org/AndroidPlatform"), }, }, - ExpectsAcceptanceOf = new Offer() + ExpectsAcceptanceOf = new Offer { Price = 6.99M, PriceCurrency = "USD", - EligibleRegion = new Country() + EligibleRegion = new Country { Name = "US", }, @@ -48,28 +48,28 @@ public class BookTest }, }, }, - new Book() + new Book { Isbn = "031676947", BookEdition = "1st Edition", BookFormat = BookFormatType.EBook, - PotentialAction = new ReadAction() + PotentialAction = new ReadAction { - Target = new EntryPoint() + Target = new EntryPoint { UrlTemplate = "https://www.barnesandnoble.com/store/info/offer/031676947?purchase=true", - ActionPlatform = new List() + ActionPlatform = new List { new Uri("https://schema.org/DesktopWebPlatform"), new Uri("https://schema.org/IOSPlatform"), new Uri("https://schema.org/AndroidPlatform"), }, }, - ExpectsAcceptanceOf = new Offer() + ExpectsAcceptanceOf = new Offer { Price = 1.99M, PriceCurrency = "USD", - EligibleRegion = new Country() + EligibleRegion = new Country { Name = "UK", }, @@ -204,8 +204,8 @@ public void Deserializing_HasPersonAsAuthor_OrganizationIsNullAndHasPerson() "author": [ { "@type": "Person", - "name": "NameOfPerson1", - }, + "name": "NameOfPerson1" + } ], "typicalAgeRange": "14", "isbn": "3333" diff --git a/Tests/Schema.NET.Test/Examples/BreadcrumbListTest.cs b/Tests/Schema.NET.Test/Examples/BreadcrumbListTest.cs index db916b7f..71586cae 100644 --- a/Tests/Schema.NET.Test/Examples/BreadcrumbListTest.cs +++ b/Tests/Schema.NET.Test/Examples/BreadcrumbListTest.cs @@ -9,22 +9,22 @@ public class BreadcrumbListTest { private readonly BreadcrumbList breadcrumbList = new() { - ItemListElement = new List() - { - new ListItem() + ItemListElement = new List + { + new ListItem { Position = 1, - Item = new Book() + Item = new Book { Id = new Uri("https://example.com/books"), Name = "Books", Image = new Uri("https://example.com/images/icon-book.png"), }, }, - new ListItem() + new ListItem { Position = 2, - Item = new Person() + Item = new Person { Id = new Uri("https://example.com/books/authors"), Name = "Authors", diff --git a/Tests/Schema.NET.Test/Examples/EventTest.cs b/Tests/Schema.NET.Test/Examples/EventTest.cs index 97181470..5e16f1be 100644 --- a/Tests/Schema.NET.Test/Examples/EventTest.cs +++ b/Tests/Schema.NET.Test/Examples/EventTest.cs @@ -32,7 +32,7 @@ public class EventTest }, Image = new Uri("https://www.example.com/event_image/12345"), // Recommended EndDate = new DateTimeOffset(2017, 4, 24, 23, 0, 0, TimeSpan.FromHours(-8)), // Recommended - Offers = new List() // Recommended + Offers = new List() // Recommended { new Offer { diff --git a/Tests/Schema.NET.Test/Examples/ItemListTest.cs b/Tests/Schema.NET.Test/Examples/ItemListTest.cs index b5dd5150..45395422 100644 --- a/Tests/Schema.NET.Test/Examples/ItemListTest.cs +++ b/Tests/Schema.NET.Test/Examples/ItemListTest.cs @@ -9,7 +9,7 @@ public class ItemListTest { private readonly ItemList itemlist = new() { - ItemListElement = new List() // Required + ItemListElement = new List() // Required { new ListItem() // Required { @@ -19,10 +19,10 @@ public class ItemListTest Name = "Recipe 1", }, }, - new ListItem() + new ListItem { Position = 2, - Item = new Recipe() + Item = new Recipe { Name = "Recipe 2", }, @@ -68,16 +68,16 @@ public void Deserializing_ItemListJsonLd_ReturnsMatchingItemList() public void ToString_CarouselSummaryPageSearchBoxGoogleStructuredData_ReturnsExpectedJsonLd() { // All items in the list must be of the same type. Recipe, Film, Course, Article, Recipe are supported. - var itemList = new ItemList() + var itemList = new ItemList { - ItemListElement = new List() // Required + ItemListElement = new List() // Required { new ListItem() // Required { Position = 1, // Required Url = new Uri("https://example.com/articles/1"), // Required }, - new ListItem() + new ListItem { Position = 2, Url = new Uri("https://example.com/articles/2"), @@ -114,9 +114,9 @@ public void ToString_CarouselSummaryPageSearchBoxGoogleStructuredData_ReturnsExp public void ToString_CarouselAllInOnePageSearchBoxGoogleStructuredData_ReturnsExpectedJsonLd() { // All items in the list must be of the same type. Recipe, Film, Course, Article, Recipe are supported. - var itemList = new ItemList() + var itemList = new ItemList { - ItemListElement = new List() // Required + ItemListElement = new List() // Required { new ListItem() // Required { @@ -126,10 +126,10 @@ public void ToString_CarouselAllInOnePageSearchBoxGoogleStructuredData_ReturnsEx Name = "Recipe 1", }, }, - new ListItem() + new ListItem { Position = 2, - Item = new Recipe() + Item = new Recipe { Name = "Recipe 2", }, diff --git a/Tests/Schema.NET.Test/Examples/JobPostingTest.cs b/Tests/Schema.NET.Test/Examples/JobPostingTest.cs index 633718aa..fda3698a 100644 --- a/Tests/Schema.NET.Test/Examples/JobPostingTest.cs +++ b/Tests/Schema.NET.Test/Examples/JobPostingTest.cs @@ -25,7 +25,7 @@ public class JobPostingTest }, JobLocation = new Place() // Required { - Address = new PostalAddress() + Address = new PostalAddress { AddressCountry = "US", AddressLocality = "Detroit", @@ -37,7 +37,7 @@ public class JobPostingTest BaseSalary = new MonetaryAmount() // Recommended { Currency = "USD", - Value = new QuantitativeValue() + Value = new QuantitativeValue { Value = 40D, UnitText = "HOUR", // HOUR, WEEK, MONTH, YEAR diff --git a/Tests/Schema.NET.Test/Examples/MixedTypesTest.cs b/Tests/Schema.NET.Test/Examples/MixedTypesTest.cs index aa76153d..7a21e185 100644 --- a/Tests/Schema.NET.Test/Examples/MixedTypesTest.cs +++ b/Tests/Schema.NET.Test/Examples/MixedTypesTest.cs @@ -10,13 +10,13 @@ public class MixedTypesTest new() { Id = new Uri("https://example.com/book/1"), - Author = new List() + Author = new List { - new Organization() + new Organization { Name = "Penguin", }, - new Person() + new Person { Name = "J.D. Salinger", }, diff --git a/Tests/Schema.NET.Test/Examples/MusicAlbumTest.cs b/Tests/Schema.NET.Test/Examples/MusicAlbumTest.cs index fc01f509..5b8d79ea 100644 --- a/Tests/Schema.NET.Test/Examples/MusicAlbumTest.cs +++ b/Tests/Schema.NET.Test/Examples/MusicAlbumTest.cs @@ -10,7 +10,7 @@ public class MusicAlbumTest { Name = "Hail to the Thief", // Required Identifier = "1oW3v5Har9mvXnGk0x4fHm", // Recommended - Image = new List // Recommended + Image = new List // Recommended { new ImageObject() // Recommended { @@ -37,7 +37,7 @@ public class MusicAlbumTest NumTracks = 14, // Recommended AlbumRelease = new MusicRelease() // Recommended { - RecordLabel = new Organization() + RecordLabel = new Organization { Name = "XL Recordings", // Required }, diff --git a/Tests/Schema.NET.Test/Examples/MusicEventTest.cs b/Tests/Schema.NET.Test/Examples/MusicEventTest.cs index bc2794dd..033dcae1 100644 --- a/Tests/Schema.NET.Test/Examples/MusicEventTest.cs +++ b/Tests/Schema.NET.Test/Examples/MusicEventTest.cs @@ -29,7 +29,7 @@ public class MusicEventTest PriceCurrency = "USD", // Recommended }, }, - Performer = new List() // Recommended + Performer = new List() // Recommended { new MusicGroup() // Recommended { diff --git a/Tests/Schema.NET.Test/Examples/MusicVenueTest.cs b/Tests/Schema.NET.Test/Examples/MusicVenueTest.cs index 294426fd..d8d7185f 100644 --- a/Tests/Schema.NET.Test/Examples/MusicVenueTest.cs +++ b/Tests/Schema.NET.Test/Examples/MusicVenueTest.cs @@ -15,7 +15,7 @@ public class MusicVenueTest { ContentUrl = new Uri("https://s1.ticketm.net/dam/v/e6b/380fa861-3f46-44a9-a514-21553f7fbe6b_379601_SOURCE.jpg"), // Required }, - SameAs = new List + SameAs = new List { new Uri("https://www.twitter.com/dolbytheatre"), // Recommended new Uri("https://www.dolbytheatre.com"), // Recommended diff --git a/Tests/Schema.NET.Test/Examples/PersonTest.cs b/Tests/Schema.NET.Test/Examples/PersonTest.cs index 1fd89b0b..2d516aab 100644 --- a/Tests/Schema.NET.Test/Examples/PersonTest.cs +++ b/Tests/Schema.NET.Test/Examples/PersonTest.cs @@ -10,7 +10,7 @@ public class PersonTest private readonly Person person = new() { Name = "Name", // Required - SameAs = new List() // Required + SameAs = new List() // Required { new Uri("https://www.facebook.com/your-profile"), new Uri("https://instagram.com/yourProfile"), diff --git a/Tests/Schema.NET.Test/Examples/ProductTest.cs b/Tests/Schema.NET.Test/Examples/ProductTest.cs index 3ce9de63..99b0bb17 100644 --- a/Tests/Schema.NET.Test/Examples/ProductTest.cs +++ b/Tests/Schema.NET.Test/Examples/ProductTest.cs @@ -33,7 +33,7 @@ public class ProductTest PriceValidUntil = new DateTime(2020, 11, 5), // Recommended ItemCondition = OfferItemCondition.UsedCondition, Availability = ItemAvailability.InStock, // Recommended - Seller = new Organization() + Seller = new Organization { Name = "Executive Objects", }, diff --git a/Tests/Schema.NET.Test/Examples/RecipeTest.cs b/Tests/Schema.NET.Test/Examples/RecipeTest.cs index a7e174d4..cfc01a95 100644 --- a/Tests/Schema.NET.Test/Examples/RecipeTest.cs +++ b/Tests/Schema.NET.Test/Examples/RecipeTest.cs @@ -11,13 +11,13 @@ public class RecipeTest { Name = "Grandma's Holiday Apple Pie", Image = new Uri("https://example.com/image.jpg"), - Author = new Person() + Author = new Person { Name = "Carol Smith", }, DatePublished = new DateTime(2009, 11, 5), Description = "This is my grandmother's apple pie recipe. I like to add a dash of nutmeg.", - AggregateRating = new AggregateRating() + AggregateRating = new AggregateRating { RatingValue = 4D, ReviewCount = 35, @@ -26,19 +26,19 @@ public class RecipeTest CookTime = new TimeSpan(1, 0, 0), TotalTime = new TimeSpan(1, 30, 0), RecipeYield = "1 9 inch pie (8 servings)", - Nutrition = new NutritionInformation() + Nutrition = new NutritionInformation { ServingSize = "1 medium slice", Calories = "250 cal", FatContent = "12 g", }, - RecipeIngredient = new List() - { + RecipeIngredient = new List + { "Thinly-sliced apples:6 cups", "White sugar:3/4 cup", }, - RecipeInstructions = new List() - { + RecipeInstructions = new List + { new HowToStep { Text = "1. Cut and peel apples..." }, new HowToStep { Text = "2. Put in pie shell..." }, }, diff --git a/Tests/Schema.NET.Test/Examples/RestaurantTest.cs b/Tests/Schema.NET.Test/Examples/RestaurantTest.cs index 6a9b3f31..89c91703 100644 --- a/Tests/Schema.NET.Test/Examples/RestaurantTest.cs +++ b/Tests/Schema.NET.Test/Examples/RestaurantTest.cs @@ -14,7 +14,7 @@ public class RestaurantTest SameAs = new Uri("https://davessteakhouse.example.com"), ServesCuisine = "Steak House", PriceRange = "$$$", - Address = new PostalAddress() + Address = new PostalAddress { AddressCountry = "US", AddressLocality = "New York", @@ -23,35 +23,35 @@ public class RestaurantTest StreetAddress = "148 W 51st St", }, Telephone = "+12122459600", - Geo = new GeoCoordinates() + Geo = new GeoCoordinates { Latitude = 40.761293D, Longitude = -73.982294, }, - AggregateRating = new AggregateRating() + AggregateRating = new AggregateRating { RatingValue = 88D, BestRating = 100D, WorstRating = 1D, RatingCount = 20, }, - Review = new Review() + Review = new Review { Description = "Great old fashioned steaks but the salads are sub par.", Url = new Uri("https://www.localreviews.com/restaurants/1/2/3/daves-steak-house.html"), - Author = new Person() + Author = new Person { Name = "Lisa Kennedy", SameAs = new Uri("https://plus.google.com/114108465800532712602"), }, - Publisher = new Organization() + Publisher = new Organization { Name = "Denver Post", SameAs = new Uri("https://www.denverpost.com"), }, DatePublished = new DateTime(2014, 3, 13), InLanguage = "en", - ReviewRating = new Rating() + ReviewRating = new Rating { WorstRating = 1D, BestRating = 4D, diff --git a/Tests/Schema.NET.Test/Examples/VideoObjectTest.cs b/Tests/Schema.NET.Test/Examples/VideoObjectTest.cs index dd496ae1..69d72d89 100644 --- a/Tests/Schema.NET.Test/Examples/VideoObjectTest.cs +++ b/Tests/Schema.NET.Test/Examples/VideoObjectTest.cs @@ -14,7 +14,7 @@ public class VideoObjectTest Expires = new DateTime(2016, 2, 5), // Recommended UploadDate = new DateTime(2015, 2, 5), // Required Duration = new TimeSpan(0, 1, 33), // Recommended - Publisher = new Organization() + Publisher = new Organization { Name = "Example Publisher", // Required Logo = new ImageObject() // Required @@ -26,7 +26,7 @@ public class VideoObjectTest }, ContentUrl = new Uri("https://www.example.com/video123.flv"), // Recommended EmbedUrl = new Uri("https://www.example.com/videoplayer.swf?video=123"), // Recommended - InteractionStatistic = new InteractionCounter() + InteractionStatistic = new InteractionCounter { UserInteractionCount = 2347, // Recommended }, diff --git a/Tests/Schema.NET.Test/Examples/WebsiteTest.cs b/Tests/Schema.NET.Test/Examples/WebsiteTest.cs index b722f61a..24103532 100644 --- a/Tests/Schema.NET.Test/Examples/WebsiteTest.cs +++ b/Tests/Schema.NET.Test/Examples/WebsiteTest.cs @@ -9,7 +9,7 @@ public class WebsiteTest [Fact] public void ToString_SiteLinksSearchBoxGoogleStructuredData_ReturnsExpectedJsonLd() { - var website = new WebSite() + var website = new WebSite { PotentialAction = new SearchAction() // Required { @@ -41,7 +41,7 @@ public void ToString_SiteLinksSearchBoxGoogleStructuredData_ReturnsExpectedJsonL [Fact] public void ToString_SiteNameGoogleStructuredData_ReturnsExpectedJsonLd() { - var website = new WebSite() + var website = new WebSite { AlternateName = "An Alternative Name", // Optional Name = "Your Site Name", // Required @@ -66,7 +66,7 @@ public void ToString_SiteNameGoogleStructuredData_ReturnsExpectedJsonLd() [Fact] public void Deserializing_WebSiteJsonLd_ReturnsWebSite() { - var website = new WebSite() + var website = new WebSite { PotentialAction = new SearchAction() // Required { diff --git a/Tests/Schema.NET.Test/JsonLdContextTest.cs b/Tests/Schema.NET.Test/JsonLdContextTest.cs index 552f8b2c..12b42bb8 100644 --- a/Tests/Schema.NET.Test/JsonLdContextTest.cs +++ b/Tests/Schema.NET.Test/JsonLdContextTest.cs @@ -1,39 +1,32 @@ namespace Schema.NET.Test; -using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using Xunit; +[SuppressMessage("Usage", "xUnit1044:Avoid using TheoryData type arguments that are not serializable")] public class JsonLdContextTest { - public static IEnumerable EqualContexts => new List - { - new object[] { new JsonLdContext(), new JsonLdContext() }, - new object[] { new JsonLdContext() { Name = "a" }, new JsonLdContext() { Name = "a" } }, - new object[] - { - new JsonLdContext() { Name = "a", Language = "b" }, - new JsonLdContext() { Name = "a", Language = "b" }, - }, - }; - - public static IEnumerable NotEqualContexts => new List - { - new object[] { new JsonLdContext(), null! }, - new object[] { new JsonLdContext(), new JsonLdContext() { Name = "a" } }, - new object[] { new JsonLdContext() { Name = "a" }, new JsonLdContext() }, - new object[] { new JsonLdContext() { Name = "a" }, new JsonLdContext() { Name = "b" } }, - new object[] - { - new JsonLdContext() { Name = "a", Language = "b" }, - new JsonLdContext() { Name = "a", Language = "c" }, - }, - }; - - public static IEnumerable ToStringContexts => new List - { - new object[] { new JsonLdContext(), "https://schema.org" }, - new object[] { new JsonLdContext() { Name = "a" }, "a" }, - }; + public static TheoryData EqualContexts => new() + { + {new JsonLdContext(), new JsonLdContext()}, + {new JsonLdContext {Name = "a"}, new JsonLdContext {Name = "a"}}, + {new JsonLdContext {Name = "a", Language = "b"}, new JsonLdContext {Name = "a", Language = "b"}} + }; + + public static TheoryData NotEqualContexts => new() + { + {new JsonLdContext(), null}, + {new JsonLdContext(), new JsonLdContext {Name = "a"}}, + {new JsonLdContext {Name = "a"}, new JsonLdContext()}, + {new JsonLdContext {Name = "a"}, new JsonLdContext {Name = "b"}}, + {new JsonLdContext {Name = "a", Language = "b"}, new JsonLdContext {Name = "a", Language = "c"}} + }; + + public static TheoryData ToStringContexts => new() + { + {new JsonLdContext(), "https://schema.org"}, + {new JsonLdContext {Name = "a"}, "a"} + }; [Theory] [MemberData(nameof(EqualContexts))] @@ -41,7 +34,7 @@ public class JsonLdContextTest [Theory] [MemberData(nameof(NotEqualContexts))] - public void Equals_IsNotEqual_ReturnsFalse(JsonLdContext a, JsonLdContext b) => Assert.False(a.Equals(b)); + public void Equals_IsNotEqual_ReturnsFalse(JsonLdContext a, JsonLdContext? b) => Assert.False(a.Equals(b)); [Theory] [MemberData(nameof(EqualContexts))] @@ -49,7 +42,7 @@ public class JsonLdContextTest [Theory] [MemberData(nameof(NotEqualContexts))] - public void EqualsOperator_IsNotEqual_ReturnsFalse(JsonLdContext a, JsonLdContext b) => Assert.False(a == b); + public void EqualsOperator_IsNotEqual_ReturnsFalse(JsonLdContext a, JsonLdContext? b) => Assert.False(a == b); [Theory] [MemberData(nameof(EqualContexts))] @@ -57,7 +50,7 @@ public class JsonLdContextTest [Theory] [MemberData(nameof(NotEqualContexts))] - public void NotEqualsOperator_IsNotEqual_ReturnsTrue(JsonLdContext a, JsonLdContext b) => Assert.True(a != b); + public void NotEqualsOperator_IsNotEqual_ReturnsTrue(JsonLdContext a, JsonLdContext? b) => Assert.True(a != b); [Theory] [MemberData(nameof(ToStringContexts))] diff --git a/Tests/Schema.NET.Test/OneOrManyTest.cs b/Tests/Schema.NET.Test/OneOrManyTest.cs index 220a7b4a..f69ffe13 100644 --- a/Tests/Schema.NET.Test/OneOrManyTest.cs +++ b/Tests/Schema.NET.Test/OneOrManyTest.cs @@ -35,7 +35,7 @@ public void Constructor_ParamsArray_HasManyItems() [Fact] public void Constructor_Enumerable_HasManyItems() { - var oneOrMany = new OneOrMany(new List() { 1, 2, }.AsEnumerable()); + var oneOrMany = new OneOrMany(new List { 1, 2, }.AsEnumerable()); Assert.False(oneOrMany.HasOne); Assert.True(oneOrMany.HasMany); } @@ -43,7 +43,7 @@ public void Constructor_Enumerable_HasManyItems() [Fact] public void Constructor_List_HasManyItems() { - var oneOrMany = new OneOrMany(new List() { 1, 2, }); + var oneOrMany = new OneOrMany(new List { 1, 2, }); Assert.False(oneOrMany.HasOne); Assert.True(oneOrMany.HasMany); } @@ -73,7 +73,7 @@ public void Constructor_NullList_ThrowsArgumentNullException() => [Fact] public void Count_Enumerable_ReturnsTwo() => - Assert.Equal(2, new OneOrMany(new List() { 1, 2 }).Count); + Assert.Equal(2, new OneOrMany(new List { 1, 2 }).Count); [Fact] public void HasOne_DefaultStructConstructor_ReturnsFalse() => Assert.False(default(OneOrMany).HasOne); @@ -92,7 +92,7 @@ public void Count_Enumerable_ReturnsTwo() => [Fact] public void HasOne_Enumerable_ReturnsFalse() => - Assert.False(new OneOrMany(new List() { 1, 2 }).HasOne); + Assert.False(new OneOrMany(new List { 1, 2 }).HasOne); [Fact] public void HasMany_DefaultStructConstructor_ReturnsFalse() => Assert.False(default(OneOrMany).HasMany); @@ -108,27 +108,27 @@ public void HasOne_Enumerable_ReturnsFalse() => [Fact] public void HasMany_Enumerable_ReturnsTrue() => - Assert.True(new OneOrMany(new List() { 1, 2 }).HasMany); + Assert.True(new OneOrMany(new List { 1, 2 }).HasMany); [Fact] public void ImplicitConversionOperator_ToItem_HasOneItem() { OneOrMany oneOrMany = 1; - Assert.Equal(new List() { 1 }, oneOrMany.Cast()); + Assert.Equal(new List { 1 }, oneOrMany.Cast()); } [Fact] public void ImplicitConversionOperator_ToArray_HasTwoItems() { OneOrMany oneOrMany = new int[] { 1, 2 }; - Assert.Equal(new List() { 1, 2 }, oneOrMany.Cast()); + Assert.Equal(new List { 1, 2 }, oneOrMany.Cast()); } [Fact] public void ImplicitConversionOperator_ToList_HasTwoItems() { - OneOrMany oneOrMany = new List() { 1, 2 }; - Assert.Equal(new List() { 1, 2 }, oneOrMany.Cast()); + OneOrMany oneOrMany = new List { 1, 2 }; + Assert.Equal(new List { 1, 2 }, oneOrMany.Cast()); } [Fact] @@ -142,14 +142,14 @@ public void ImplicitConversionOperator_FromItem_HasOneItem() public void ImplicitConversionOperator_FromArray_HasTwoItems() { int[] items = new OneOrMany(1, 2); - Assert.Equal(new int[] { 1, 2 }, items); + Assert.Equal([1, 2], items); } [Fact] public void ImplicitConversionOperator_FromList_HasTwoItems() { List items = new OneOrMany(1, 2); - Assert.Equal(new List { 1, 2 }, items); + Assert.Equal([1, 2], items); } [Fact] @@ -185,23 +185,23 @@ public void GetEnumerator_OneItem_ReturnsOne() [Fact] public void GetEnumerator_Array_ReturnsTwo() => - Assert.Equal(new List() { 1, 2 }, new OneOrMany(1, 2).Cast()); + Assert.Equal(new List { 1, 2 }, new OneOrMany(1, 2).Cast()); [Fact] public void GetEnumerator_Enumerable_ReturnsTwo() => - Assert.Equal(new List() { 1, 2 }, new OneOrMany(new List() { 1, 2 }).Cast()); + Assert.Equal(new List { 1, 2 }, new OneOrMany(new List { 1, 2 }).Cast()); [Fact] public void GetEnumeratorT_NoItems_ReturnsEmptyCllection() => - Assert.Equal(new List(), default(OneOrMany).ToList()); + Assert.Equal([], default(OneOrMany).ToList()); [Fact] public void GetEnumeratorT_OneItem_ReturnsOneItem() => - Assert.Equal(new List() { 1 }, new OneOrMany(1).ToList()); + Assert.Equal([1], new OneOrMany(1).ToList()); [Fact] public void GetEnumeratorT_TwoItems_ReturnsTwoItems() => - Assert.Equal(new List() { 1, 2 }, new OneOrMany(1, 2).ToList()); + Assert.Equal([1, 2], new OneOrMany(1, 2).ToList()); [Fact] public void Equals_Null_ReturnsFalse() => @@ -233,16 +233,16 @@ public void GetHashCode_OneItem_HashCodeEqualToSingleItem() => [Fact] public void GetHashCode_TwoItems_HashCodeEqualToTwoItems() => - Assert.Equal(HashCode.OfEach(new List() { 1, 2 }), new OneOrMany(1, 2).GetHashCode()); + Assert.Equal(HashCode.OfEach(new List { 1, 2 }), new OneOrMany(1, 2).GetHashCode()); [Theory] [InlineData(null)] [InlineData("")] [InlineData(" ")] [InlineData(" ")] - public void ToString_NullEmptyOrWhiteSpace_BookOmitsNameProperty(string name) + public void ToString_NullEmptyOrWhiteSpace_BookOmitsNameProperty(string? name) { - var book = new Book() { Name = name }; + var book = new Book { Name = name }; var expectedJson = /*lang=json,strict*/ """ @@ -256,9 +256,9 @@ public void ToString_NullEmptyOrWhiteSpace_BookOmitsNameProperty(string name) [InlineData("")] [InlineData(" ")] [InlineData(" ")] - public void ToString_NullEmptyOrWhiteSpace_OrganizationOmitsAddressProperty(string address) + public void ToString_NullEmptyOrWhiteSpace_OrganizationOmitsAddressProperty(string? address) { - var organization = new Organization() { Address = address }; + var organization = new Organization { Address = address }; var expectedJson = /*lang=json,strict*/ """ @@ -272,9 +272,9 @@ public void ToString_NullEmptyOrWhiteSpace_OrganizationOmitsAddressProperty(stri [InlineData("")] [InlineData(" ")] [InlineData(" ")] - public void ToString_NullEmptyOrWhiteSpace_BookOmitsNamePropertyFromList(string name) + public void ToString_NullEmptyOrWhiteSpace_BookOmitsNamePropertyFromList(string? name) { - var book = new Book() { Name = new List { "Hamlet", name } }; + var book = new Book { Name = new List { "Hamlet", name } }; var expectedJson = /*lang=json,strict*/ """ @@ -288,9 +288,9 @@ public void ToString_NullEmptyOrWhiteSpace_BookOmitsNamePropertyFromList(string [InlineData("")] [InlineData(" ")] [InlineData(" ")] - public void ToString_NullEmptyOrWhiteSpace_BookOmitsNamePropertyFromArray(string name) + public void ToString_NullEmptyOrWhiteSpace_BookOmitsNamePropertyFromArray(string? name) { - var book = new Book() { Name = new string[] { "Hamlet", name } }; + var book = new Book { Name = new string?[] { "Hamlet", name } }; var expectedJson = /*lang=json,strict*/ """ @@ -304,9 +304,9 @@ public void ToString_NullEmptyOrWhiteSpace_BookOmitsNamePropertyFromArray(string [InlineData("")] [InlineData(" ")] [InlineData(" ")] - public void ToString_EmptyOrWhiteSpace_OrganizationOmitsAddressProperty(string address) + public void ToString_EmptyOrWhiteSpace_OrganizationOmitsAddressProperty(string? address) { - var organization = new Organization() { Address = address }; + var organization = new Organization { Address = address }; var expectedJson = /*lang=json,strict*/ """ @@ -320,9 +320,9 @@ public void ToString_EmptyOrWhiteSpace_OrganizationOmitsAddressProperty(string a [InlineData("")] [InlineData(" ")] [InlineData(" ")] - public void ToString_NullEmptyOrWhiteSpace_OrganizationOmitsNamePropertyFromList(string address) + public void ToString_NullEmptyOrWhiteSpace_OrganizationOmitsNamePropertyFromList(string? address) { - var organization = new Organization() { Name = new List { "Cardiff, UK", address } }; + var organization = new Organization { Name = new List { "Cardiff, UK", address } }; var expectedJson = /*lang=json,strict*/ """ @@ -336,9 +336,9 @@ public void ToString_NullEmptyOrWhiteSpace_OrganizationOmitsNamePropertyFromList [InlineData("")] [InlineData(" ")] [InlineData(" ")] - public void ToString_NullEmptyOrWhiteSpace_OrganizationOmitsNamePropertyFromArray(string address) + public void ToString_NullEmptyOrWhiteSpace_OrganizationOmitsNamePropertyFromArray(string? address) { - var organization = new Organization() { Name = new string[] { "Cardiff, UK", address } }; + var organization = new Organization { Name = new string?[] { "Cardiff, UK", address } }; var expectedJson = /*lang=json,strict*/ """ diff --git a/Tests/Schema.NET.Test/Schema.NET.Test.csproj b/Tests/Schema.NET.Test/Schema.NET.Test.csproj index 142b1c0c..0e7a4a22 100644 --- a/Tests/Schema.NET.Test/Schema.NET.Test.csproj +++ b/Tests/Schema.NET.Test/Schema.NET.Test.csproj @@ -1,13 +1,27 @@ - net7.0;net6.0;net472 + net8.0;net6.0;net462;net472;net48 + + + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + runtime; build; native; contentfiles; analyzers + + + diff --git a/Tests/Schema.NET.Test/StringExtensions.cs b/Tests/Schema.NET.Test/StringExtensions.cs index 7a075073..96265692 100644 --- a/Tests/Schema.NET.Test/StringExtensions.cs +++ b/Tests/Schema.NET.Test/StringExtensions.cs @@ -18,7 +18,7 @@ public static class StringExtensions #endif public static string MinifyJson(this string json) { - var options = new JsonWriterOptions() + var options = new JsonWriterOptions { Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping, Indented = false, diff --git a/Tests/Schema.NET.Test/ThingTest.cs b/Tests/Schema.NET.Test/ThingTest.cs index 8506ce21..c21a2db7 100644 --- a/Tests/Schema.NET.Test/ThingTest.cs +++ b/Tests/Schema.NET.Test/ThingTest.cs @@ -204,7 +204,7 @@ public void TrySetValue_ValidProperty() { var thing = new Thing(); - Assert.True(thing.TrySetValue("Name", new[] { "TestName" })); + Assert.True(thing.TrySetValue("Name", ["TestName"])); Assert.Equal("TestName", thing.Name); } @@ -213,7 +213,7 @@ public void TrySetValue_InvalidProperty() { var thing = new Thing(); - Assert.False(thing.TrySetValue("InvalidName", new[] { "TestName" })); + Assert.False(thing.TrySetValue("InvalidName", ["TestName"])); } [Fact] @@ -221,7 +221,7 @@ public void TrySetValue_CaseInsensitive() { var thing = new Thing(); - Assert.True(thing.TrySetValue("name", new[] { "TestName" })); + Assert.True(thing.TrySetValue("name", ["TestName"])); Assert.Equal("TestName", thing.Name); } diff --git a/Tests/Schema.NET.Test/Values2Test.cs b/Tests/Schema.NET.Test/Values2Test.cs index 7a71cb49..bd12b844 100644 --- a/Tests/Schema.NET.Test/Values2Test.cs +++ b/Tests/Schema.NET.Test/Values2Test.cs @@ -16,7 +16,7 @@ public void Constructor_Value1Passed_OnlyValue1HasValue() Assert.Single(values.Value1); Assert.False(values.HasValue2); AssertEx.Empty(values.Value2); - Assert.Equal(new List() { 1 }, values.Cast().ToList()); + Assert.Equal([1], values.Cast().ToList()); } [Fact] @@ -28,7 +28,7 @@ public void Constructor_Value2Passed_OnlyValue2HasValue() Assert.Empty(values.Value1); Assert.True(values.HasValue2); Assert.Single(values.Value2); - Assert.Equal(new List() { "Foo" }, values.Cast().ToList()); + Assert.Equal(["Foo"], values.Cast().ToList()); } [Fact] @@ -40,18 +40,18 @@ public void Constructor_Items_HasAllItems() Assert.Single(values.Value1); Assert.True(values.HasValue2); Assert.Single(values.Value2); - Assert.Equal(new List() { 1, "Foo" }, values.Cast().ToList()); + Assert.Equal([1, "Foo"], values.Cast().ToList()); } [Fact] public void Constructor_StringItems_NullOrWhitespaceDoesntHaveValue() { - object[] nullOrWhitespaceValues = new[] - { + object[] nullOrWhitespaceValues = + [ string.Empty, null!, - "\u2028 \u2029 \u0009 \u000A \u000B \u000C \u000D \u0085", - }; + "\u2028 \u2029 \u0009 \u000A \u000B \u000C \u000D \u0085" + ]; var values = new Values(nullOrWhitespaceValues); Assert.False(values.HasValue1); @@ -106,7 +106,7 @@ public void ImplicitConversionOperator_Value1Passed_OnlyValue1HasValue() Assert.Single(values.Value1); Assert.False(values.HasValue2); AssertEx.Empty(values.Value2); - Assert.Equal(new List() { 1 }, values.Cast().ToList()); + Assert.Equal([1], values.Cast().ToList()); } [Fact] @@ -118,31 +118,31 @@ public void ImplicitConversionOperator_Value2Passed_OnlyValue2HasValue() Assert.Empty(values.Value1); Assert.True(values.HasValue2); Assert.Single(values.Value2); - Assert.Equal(new List() { "Foo" }, values.Cast().ToList()); + Assert.Equal(["Foo"], values.Cast().ToList()); } [Fact] public void ImplicitConversionOperator_Value1ListPassed_OnlyValue1HasValue() { - Values values = new List() { 1, 2 }; + Values values = new List { 1, 2 }; Assert.True(values.HasValue1); Assert.Equal(2, values.Value1.Count); Assert.False(values.HasValue2); AssertEx.Empty(values.Value2); - Assert.Equal(new List() { 1, 2 }, values.Cast().ToList()); + Assert.Equal([1, 2], values.Cast().ToList()); } [Fact] public void ImplicitConversionOperator_Value2ListPassed_OnlyValue2HasValue() { - Values values = new List() { "Foo", "Bar" }; + Values values = new List { "Foo", "Bar" }; Assert.False(values.HasValue1); Assert.Empty(values.Value1); Assert.True(values.HasValue2); Assert.Equal(2, values.Value2.Count); - Assert.Equal(new List() { "Foo", "Bar" }, values.Cast().ToList()); + Assert.Equal(["Foo", "Bar"], values.Cast().ToList()); } [Fact] @@ -150,7 +150,7 @@ public void ImplicitConversionToList_Value1Passed_ReturnsMatchingList() { List values = new Values(1); - Assert.Equal(new List() { 1 }, values); + Assert.Equal([1], values); } [Fact] @@ -158,15 +158,15 @@ public void ImplicitConversionToList_Value2Passed_ReturnsMatchingList() { List values = new Values("Foo"); - Assert.Equal(new List() { "Foo" }, values); + Assert.Equal(["Foo"], values); } [Fact] public void Deconstruct_Values_ReturnsAllEnumerables() { var (integers, strings) = new Values(1, "Foo"); - Assert.Equal(new List() { 1 }, integers); - Assert.Equal(new List() { "Foo" }, strings); + Assert.Equal(new List { 1 }, integers); + Assert.Equal(new List { "Foo" }, strings); } [Fact] @@ -231,19 +231,19 @@ public void Equals_MixedTypes_Value1NotEqualValue2Equal_ReturnsFalse() => [Fact] public void Equals_MixedTypes_ThisMissingValue2_ReturnsFalse() => - Assert.False(new Values(new object[] { 0 }).Equals(new Values(new object[] { 0, "Foo" }))); + Assert.False(new Values([0]).Equals(new Values(new object[] { 0, "Foo" }))); [Fact] public void Equals_MixedTypes_ThisMissingValue1_ReturnsFalse() => - Assert.False(new Values(new object[] { "Foo" }).Equals(new Values(new object[] { 0, "Foo" }))); + Assert.False(new Values(["Foo"]).Equals(new Values(new object[] { 0, "Foo" }))); [Fact] public void Equals_MixedTypes_OtherMissingValue2_ReturnsFalse() => - Assert.False(new Values(new object[] { 0, "Foo" }).Equals(new Values(new object[] { 0 }))); + Assert.False(new Values(new object[] { 0, "Foo" }).Equals(new Values([0]))); [Fact] public void Equals_MixedTypes_OtherMissingValue1_ReturnsFalse() => - Assert.False(new Values(new object[] { 0, "Foo" }).Equals(new Values(new object[] { "Foo" }))); + Assert.False(new Values(new object[] { 0, "Foo" }).Equals(new Values(["Foo"]))); [Fact] public void GetHashCode_Value1Passed_ReturnsMatchingHashCode() => @@ -251,13 +251,17 @@ public void GetHashCode_Value1Passed_ReturnsMatchingHashCode() => [Fact] public void GetHashCode_Value2Passed_ReturnsMatchingHashCode() => - Assert.Equal("Foo".GetHashCode(StringComparison.Ordinal), new Values("Foo").GetHashCode()); + Assert.Equal("Foo".GetHashCode( +#if !NET48 + StringComparison.Ordinal +#endif + ), new Values("Foo").GetHashCode()); [Fact] public void GetHashCode_Value1And2Passed_ReturnsMatchingHashCode() => Assert.Equal( NET.HashCode.Of(1).And("Foo"), - new Values(new List() { 1, "Foo" }).GetHashCode()); + new Values(new List { 1, "Foo" }).GetHashCode()); private static int CombineHashCodes(int h1, int h2) => ((h1 << 5) + h1) ^ h2; } diff --git a/Tests/Schema.NET.Test/Values3Test.cs b/Tests/Schema.NET.Test/Values3Test.cs index f8001720..5d9d46e8 100644 --- a/Tests/Schema.NET.Test/Values3Test.cs +++ b/Tests/Schema.NET.Test/Values3Test.cs @@ -16,7 +16,7 @@ public void Constructor_Value1Passed_OnlyValue1HasValue() Assert.Single(values.Value1); Assert.False(values.HasValue2); AssertEx.Empty(values.Value2); - Assert.Equal(new List() { 1 }, values.Cast().ToList()); + Assert.Equal([1], values.Cast().ToList()); } [Fact] @@ -28,7 +28,7 @@ public void Constructor_Value2Passed_OnlyValue2HasValue() Assert.Empty(values.Value1); Assert.True(values.HasValue2); Assert.Single(values.Value2); - Assert.Equal(new List() { "Foo" }, values.Cast().ToList()); + Assert.Equal(["Foo"], values.Cast().ToList()); } [Fact] @@ -42,7 +42,7 @@ public void Constructor_Value3Passed_OnlyValue3HasValue() AssertEx.Empty(values.Value2); Assert.True(values.HasValue3); Assert.Single(values.Value3); - Assert.Equal(new List() { DayOfWeek.Friday }, values.Cast().ToList()); + Assert.Equal([DayOfWeek.Friday], values.Cast().ToList()); } [Fact] @@ -56,18 +56,18 @@ public void Constructor_Items_HasAllItems() Assert.Single(values.Value2); Assert.True(values.HasValue3); Assert.Single(values.Value3); - Assert.Equal(new List() { 1, "Foo", DayOfWeek.Friday }, values.Cast().ToList()); + Assert.Equal([1, "Foo", DayOfWeek.Friday], values.Cast().ToList()); } [Fact] public void Constructor_StringItems_NullOrWhitespaceDoesntHaveValue() { - object[] nullOrWhitespaceValues = new[] - { + object[] nullOrWhitespaceValues = + [ string.Empty, null!, - "\u2028 \u2029 \u0009 \u000A \u000B \u000C \u000D \u0085", - }; + "\u2028 \u2029 \u0009 \u000A \u000B \u000C \u000D \u0085" + ]; var values = new Values(nullOrWhitespaceValues); Assert.False(values.HasValue1); @@ -139,7 +139,7 @@ public void ImplicitConversionOperator_Value1Passed_OnlyValue1HasValue() Assert.Single(values.Value1); Assert.False(values.HasValue2); AssertEx.Empty(values.Value2); - Assert.Equal(new List() { 1 }, values.Cast().ToList()); + Assert.Equal([1], values.Cast().ToList()); } [Fact] @@ -151,7 +151,7 @@ public void ImplicitConversionOperator_Value2Passed_OnlyValue2HasValue() Assert.Empty(values.Value1); Assert.True(values.HasValue2); Assert.Single(values.Value2); - Assert.Equal(new List() { "Foo" }, values.Cast().ToList()); + Assert.Equal(["Foo"], values.Cast().ToList()); } [Fact] @@ -165,37 +165,37 @@ public void ImplicitConversionOperator_Value3Passed_OnlyValue3HasValue() AssertEx.Empty(values.Value2); Assert.True(values.HasValue3); Assert.Single(values.Value3); - Assert.Equal(new List() { DayOfWeek.Friday }, values.Cast().ToList()); + Assert.Equal([DayOfWeek.Friday], values.Cast().ToList()); } [Fact] public void ImplicitConversionOperator_Value1CollectionPassed_OnlyValue1HasValue() { - Values values = new List() { 1, 2 }; + Values values = new List { 1, 2 }; Assert.True(values.HasValue1); Assert.Equal(2, values.Value1.Count); Assert.False(values.HasValue2); AssertEx.Empty(values.Value2); - Assert.Equal(new List() { 1, 2 }, values.Cast().ToList()); + Assert.Equal([1, 2], values.Cast().ToList()); } [Fact] public void ImplicitConversionOperator_Value2CollectionPassed_OnlyValue2HasValue() { - Values values = new List() { "Foo", "Bar" }; + Values values = new List { "Foo", "Bar" }; Assert.False(values.HasValue1); Assert.Empty(values.Value1); Assert.True(values.HasValue2); Assert.Equal(2, values.Value2.Count); - Assert.Equal(new List() { "Foo", "Bar" }, values.Cast().ToList()); + Assert.Equal(new List { "Foo", "Bar" }, values.Cast().ToList()); } [Fact] public void ImplicitConversionOperator_Value3CollectionPassed_OnlyValue3HasValue() { - Values values = new List() { DayOfWeek.Friday, DayOfWeek.Monday }; + Values values = new List { DayOfWeek.Friday, DayOfWeek.Monday }; Assert.False(values.HasValue1); Assert.Empty(values.Value1); @@ -203,7 +203,7 @@ public void ImplicitConversionOperator_Value3CollectionPassed_OnlyValue3HasValue AssertEx.Empty(values.Value2); Assert.True(values.HasValue3); Assert.Equal(2, values.Value3.Count); - Assert.Equal(new List() { DayOfWeek.Friday, DayOfWeek.Monday }, values.Cast().ToList()); + Assert.Equal([DayOfWeek.Friday, DayOfWeek.Monday], values.Cast().ToList()); } [Fact] @@ -211,7 +211,7 @@ public void ImplicitConversionToList_Value1Passed_ReturnsMatchingList() { List values = new Values(1); - Assert.Equal(new List() { 1 }, values); + Assert.Equal([1], values); } [Fact] @@ -219,7 +219,7 @@ public void ImplicitConversionToList_Value2Passed_ReturnsMatchingList() { List values = new Values("Foo"); - Assert.Equal(new List() { "Foo" }, values); + Assert.Equal(["Foo"], values); } [Fact] @@ -227,16 +227,16 @@ public void ImplicitConversionToList_Value3Passed_ReturnsMatchingList() { List values = new Values(DayOfWeek.Friday); - Assert.Equal(new List() { DayOfWeek.Friday }, values); + Assert.Equal([DayOfWeek.Friday], values); } [Fact] public void Deconstruct_Values_ReturnsAllEnumerables() { var (integers, strings, daysOfWeek) = new Values(1, "Foo", DayOfWeek.Friday); - Assert.Equal(new List() { 1 }, integers); - Assert.Equal(new List() { "Foo" }, strings); - Assert.Equal(new List() { DayOfWeek.Friday }, daysOfWeek); + Assert.Equal(new List { 1 }, integers); + Assert.Equal(new List { "Foo" }, strings); + Assert.Equal(new List { DayOfWeek.Friday }, daysOfWeek); } [Fact] @@ -356,7 +356,11 @@ public void GetHashCode_Value1Passed_ReturnsMatchingHashCode() => [Fact] public void GetHashCode_Value2Passed_ReturnsMatchingHashCode() => Assert.Equal( - CombineHashCodes("Foo".GetHashCode(StringComparison.Ordinal), 0), + CombineHashCodes("Foo".GetHashCode( +#if !NET48 + StringComparison.Ordinal +#endif + ), 0), new Values("Foo").GetHashCode()); [Fact] diff --git a/Tests/Schema.NET.Test/Values4Test.cs b/Tests/Schema.NET.Test/Values4Test.cs index 0e52092f..dfa2fef8 100644 --- a/Tests/Schema.NET.Test/Values4Test.cs +++ b/Tests/Schema.NET.Test/Values4Test.cs @@ -16,7 +16,7 @@ public void Constructor_Value1Passed_OnlyValue1HasValue() Assert.Single(values.Value1); Assert.False(values.HasValue2); AssertEx.Empty(values.Value2); - Assert.Equal(new List() { 1 }, values.Cast().ToList()); + Assert.Equal([1], values.Cast().ToList()); } [Fact] @@ -28,7 +28,7 @@ public void Constructor_Value2Passed_OnlyValue2HasValue() Assert.Empty(values.Value1); Assert.True(values.HasValue2); Assert.Single(values.Value2); - Assert.Equal(new List() { "Foo" }, values.Cast().ToList()); + Assert.Equal(["Foo"], values.Cast().ToList()); } [Fact] @@ -42,7 +42,7 @@ public void Constructor_Value3Passed_OnlyValue3HasValue() AssertEx.Empty(values.Value2); Assert.True(values.HasValue3); Assert.Single(values.Value3); - Assert.Equal(new List() { DayOfWeek.Friday }, values.Cast().ToList()); + Assert.Equal([DayOfWeek.Friday], values.Cast().ToList()); } [Fact] @@ -77,19 +77,19 @@ public void Constructor_Items_HasAllItems() Assert.True(values.HasValue4); Assert.Single(values.Value4); Assert.Equal( - new List() { 1, "Foo", DayOfWeek.Friday, person }, + [1, "Foo", DayOfWeek.Friday, person], values.Cast().ToList()); } [Fact] public void Constructor_StringItems_NullOrWhitespaceDoesntHaveValue() { - object[] nullOrWhitespaceValues = new[] - { + object[] nullOrWhitespaceValues = + [ string.Empty, null!, - "\u2028 \u2029 \u0009 \u000A \u000B \u000C \u000D \u0085", - }; + "\u2028 \u2029 \u0009 \u000A \u000B \u000C \u000D \u0085" + ]; var values = new Values(nullOrWhitespaceValues); Assert.False(values.HasValue1); @@ -171,7 +171,7 @@ public void ImplicitConversionOperator_Value1Passed_OnlyValue1HasValue() Assert.Single(values.Value1); Assert.False(values.HasValue2); AssertEx.Empty(values.Value2); - Assert.Equal(new List() { 1 }, values.Cast().ToList()); + Assert.Equal([1], values.Cast().ToList()); } [Fact] @@ -183,7 +183,7 @@ public void ImplicitConversionOperator_Value2Passed_OnlyValue2HasValue() Assert.Empty(values.Value1); Assert.True(values.HasValue2); Assert.Single(values.Value2); - Assert.Equal(new List() { "Foo" }, values.Cast().ToList()); + Assert.Equal(["Foo"], values.Cast().ToList()); } [Fact] @@ -197,7 +197,7 @@ public void ImplicitConversionOperator_Value3Passed_OnlyValue3HasValue() AssertEx.Empty(values.Value2); Assert.True(values.HasValue3); Assert.Single(values.Value3); - Assert.Equal(new List() { DayOfWeek.Friday }, values.Cast().ToList()); + Assert.Equal([DayOfWeek.Friday], values.Cast().ToList()); } [Fact] @@ -220,31 +220,31 @@ public void ImplicitConversionOperator_Value4Passed_OnlyValue4HasValue() [Fact] public void ImplicitConversionOperator_Value1CollectionPassed_OnlyValue1HasValue() { - Values values = new List() { 1, 2 }; + Values values = new List { 1, 2 }; Assert.True(values.HasValue1); Assert.Equal(2, values.Value1.Count); Assert.False(values.HasValue2); AssertEx.Empty(values.Value2); - Assert.Equal(new List() { 1, 2 }, values.Cast().ToList()); + Assert.Equal([1, 2], values.Cast().ToList()); } [Fact] public void ImplicitConversionOperator_Value2CollectionPassed_OnlyValue2HasValue() { - Values values = new List() { "Foo", "Bar" }; + Values values = new List { "Foo", "Bar" }; Assert.False(values.HasValue1); Assert.Empty(values.Value1); Assert.True(values.HasValue2); Assert.Equal(2, values.Value2.Count); - Assert.Equal(new List() { "Foo", "Bar" }, values.Cast().ToList()); + Assert.Equal(["Foo", "Bar"], values.Cast().ToList()); } [Fact] public void ImplicitConversionOperator_Value3CollectionPassed_OnlyValue3HasValue() { - Values values = new List() { DayOfWeek.Friday, DayOfWeek.Monday }; + Values values = new List { DayOfWeek.Friday, DayOfWeek.Monday }; Assert.False(values.HasValue1); Assert.Empty(values.Value1); @@ -253,14 +253,14 @@ public void ImplicitConversionOperator_Value3CollectionPassed_OnlyValue3HasValue Assert.True(values.HasValue3); Assert.Equal(2, values.Value3.Count); Assert.Equal( - new List() { DayOfWeek.Friday, DayOfWeek.Monday }, + [DayOfWeek.Friday, DayOfWeek.Monday], values.Cast().ToList()); } [Fact] public void ImplicitConversionOperator_Value4CollectionPassed_OnlyValue4HasValue() { - Values values = new List() { new Person(), new Person() }; + Values values = new List { new Person(), new Person() }; Assert.False(values.HasValue1); Assert.Empty(values.Value1); @@ -278,7 +278,7 @@ public void ImplicitConversionToList_Value1Passed_ReturnsMatchingList() { List values = new Values(1); - Assert.Equal(new List() { 1 }, values); + Assert.Equal([1], values); } [Fact] @@ -286,7 +286,7 @@ public void ImplicitConversionToList_Value2Passed_ReturnsMatchingList() { List values = new Values("Foo"); - Assert.Equal(new List() { "Foo" }, values); + Assert.Equal(["Foo"], values); } [Fact] @@ -294,7 +294,7 @@ public void ImplicitConversionToList_Value3Passed_ReturnsMatchingList() { List values = new Values(DayOfWeek.Friday); - Assert.Equal(new List() { DayOfWeek.Friday }, values); + Assert.Equal([DayOfWeek.Friday], values); } [Fact] @@ -303,7 +303,7 @@ public void ImplicitConversionToList_Value4Passed_ReturnsMatchingList() var person = new Person(); List values = new Values(person); - Assert.Equal(new List() { person }, values); + Assert.Equal([person], values); } [Fact] @@ -311,10 +311,10 @@ public void Deconstruct_Values_ReturnsAllEnumerables() { var person = new Person(); var (integers, strings, daysOfWeek, people) = new Values(1, "Foo", DayOfWeek.Friday, person); - Assert.Equal(new List() { 1 }, integers); - Assert.Equal(new List() { "Foo" }, strings); - Assert.Equal(new List() { DayOfWeek.Friday }, daysOfWeek); - Assert.Equal(new List() { person }, people); + Assert.Equal(new List { 1 }, integers); + Assert.Equal(new List { "Foo" }, strings); + Assert.Equal(new List { DayOfWeek.Friday }, daysOfWeek); + Assert.Equal(new List { person }, people); } [Fact] @@ -479,7 +479,11 @@ public void GetHashCode_Value1Passed_ReturnsMatchingHashCode() => [Fact] public void GetHashCode_Value2Passed_ReturnsMatchingHashCode() => Assert.Equal( - CombineHashCodes(CombineHashCodes("Foo".GetHashCode(StringComparison.Ordinal), 0), 0), + CombineHashCodes(CombineHashCodes("Foo".GetHashCode( +#if !NET48 + StringComparison.Ordinal +#endif + ), 0), 0), new Values("Foo").GetHashCode()); [Fact] diff --git a/Tests/Schema.NET.Test/Values5Test.cs b/Tests/Schema.NET.Test/Values5Test.cs index f0cd95cc..96d8cda1 100644 --- a/Tests/Schema.NET.Test/Values5Test.cs +++ b/Tests/Schema.NET.Test/Values5Test.cs @@ -22,7 +22,7 @@ public void Constructor_Value1Passed_OnlyValue1HasValue() Assert.Empty(values.Value4); Assert.False(values.HasValue5); Assert.Empty(values.Value5); - Assert.Equal(new List() { 1 }, values.Cast().ToList()); + Assert.Equal([1], values.Cast().ToList()); } [Fact] @@ -40,7 +40,7 @@ public void Constructor_Value2Passed_OnlyValue2HasValue() Assert.Empty(values.Value4); Assert.False(values.HasValue5); Assert.Empty(values.Value5); - Assert.Equal(new List() { "Foo" }, values.Cast().ToList()); + Assert.Equal(["Foo"], values.Cast().ToList()); } [Fact] @@ -58,7 +58,7 @@ public void Constructor_Value3Passed_OnlyValue3HasValue() Assert.Empty(values.Value4); Assert.False(values.HasValue5); Assert.Empty(values.Value5); - Assert.Equal(new List() { DayOfWeek.Friday }, values.Cast().ToList()); + Assert.Equal([DayOfWeek.Friday], values.Cast().ToList()); } [Fact] @@ -116,19 +116,19 @@ public void Constructor_Items_HasAllItems() Assert.True(values.HasValue5); Assert.Single(values.Value5); Assert.Equal( - new List() { 1, "Foo", DayOfWeek.Friday, person, DateTime.MinValue }, + [1, "Foo", DayOfWeek.Friday, person, DateTime.MinValue], values.Cast().ToList()); } [Fact] public void Constructor_StringItems_NullOrWhitespaceDoesntHaveValue() { - object[] nullOrWhitespaceValues = new[] - { + object[] nullOrWhitespaceValues = + [ string.Empty, null!, - "\u2028 \u2029 \u0009 \u000A \u000B \u000C \u000D \u0085", - }; + "\u2028 \u2029 \u0009 \u000A \u000B \u000C \u000D \u0085" + ]; var values = new Values(nullOrWhitespaceValues); Assert.False(values.HasValue1); @@ -226,7 +226,7 @@ public void ImplicitConversionOperator_Value1Passed_OnlyValue1HasValue() Assert.Empty(values.Value4); Assert.False(values.HasValue5); Assert.Empty(values.Value5); - Assert.Equal(new List() { 1 }, values.Cast().ToList()); + Assert.Equal([1], values.Cast().ToList()); } [Fact] @@ -244,7 +244,7 @@ public void ImplicitConversionOperator_Value2Passed_OnlyValue2HasValue() Assert.Empty(values.Value4); Assert.False(values.HasValue5); Assert.Empty(values.Value5); - Assert.Equal(new List() { "Foo" }, values.Cast().ToList()); + Assert.Equal(["Foo"], values.Cast().ToList()); } [Fact] @@ -262,7 +262,7 @@ public void ImplicitConversionOperator_Value3Passed_OnlyValue3HasValue() Assert.Empty(values.Value4); Assert.False(values.HasValue5); Assert.Empty(values.Value5); - Assert.Equal(new List() { DayOfWeek.Friday }, values.Cast().ToList()); + Assert.Equal([DayOfWeek.Friday], values.Cast().ToList()); } [Fact] @@ -306,7 +306,7 @@ public void ImplicitConversionOperator_Value5Passed_OnlyValue5HasValue() [Fact] public void ImplicitConversionOperator_Value1CollectionPassed_OnlyValue1HasValue() { - Values values = new List() { 1, 2 }; + Values values = new List { 1, 2 }; Assert.True(values.HasValue1); Assert.Equal(2, values.Value1.Count); @@ -318,13 +318,13 @@ public void ImplicitConversionOperator_Value1CollectionPassed_OnlyValue1HasValue Assert.Empty(values.Value4); Assert.False(values.HasValue5); Assert.Empty(values.Value5); - Assert.Equal(new List() { 1, 2 }, values.Cast().ToList()); + Assert.Equal([1, 2], values.Cast().ToList()); } [Fact] public void ImplicitConversionOperator_Value2CollectionPassed_OnlyValue2HasValue() { - Values values = new List() { "Foo", "Bar" }; + Values values = new List { "Foo", "Bar" }; Assert.False(values.HasValue1); Assert.Empty(values.Value1); @@ -336,13 +336,13 @@ public void ImplicitConversionOperator_Value2CollectionPassed_OnlyValue2HasValue Assert.Empty(values.Value4); Assert.False(values.HasValue5); Assert.Empty(values.Value5); - Assert.Equal(new List() { "Foo", "Bar" }, values.Cast().ToList()); + Assert.Equal(["Foo", "Bar"], values.Cast().ToList()); } [Fact] public void ImplicitConversionOperator_Value3CollectionPassed_OnlyValue3HasValue() { - Values values = new List() { DayOfWeek.Friday, DayOfWeek.Monday }; + Values values = new List { DayOfWeek.Friday, DayOfWeek.Monday }; Assert.False(values.HasValue1); Assert.Empty(values.Value1); @@ -355,14 +355,14 @@ public void ImplicitConversionOperator_Value3CollectionPassed_OnlyValue3HasValue Assert.False(values.HasValue5); Assert.Empty(values.Value5); Assert.Equal( - new List() { DayOfWeek.Friday, DayOfWeek.Monday }, + [DayOfWeek.Friday, DayOfWeek.Monday], values.Cast().ToList()); } [Fact] public void ImplicitConversionOperator_Value4CollectionPassed_OnlyValue4HasValue() { - Values values = new List() { new Person(), new Person() }; + Values values = new List { new Person(), new Person() }; Assert.False(values.HasValue1); Assert.Empty(values.Value1); @@ -380,7 +380,7 @@ public void ImplicitConversionOperator_Value4CollectionPassed_OnlyValue4HasValue [Fact] public void ImplicitConversionOperator_Value5CollectionPassed_OnlyValue5HasValue() { - Values values = new List() { DateTime.MinValue, DateTime.MinValue }; + Values values = new List { DateTime.MinValue, DateTime.MinValue }; Assert.False(values.HasValue1); Assert.Empty(values.Value1); @@ -400,7 +400,7 @@ public void ImplicitConversionToList_Value1Passed_ReturnsMatchingList() { List values = new Values(1); - Assert.Equal(new List() { 1 }, values); + Assert.Equal([1], values); } [Fact] @@ -408,7 +408,7 @@ public void ImplicitConversionToList_Value2Passed_ReturnsMatchingList() { List values = new Values("Foo"); - Assert.Equal(new List() { "Foo" }, values); + Assert.Equal(["Foo"], values); } [Fact] @@ -416,7 +416,7 @@ public void ImplicitConversionToList_Value3Passed_ReturnsMatchingList() { List values = new Values(DayOfWeek.Friday); - Assert.Equal(new List() { DayOfWeek.Friday }, values); + Assert.Equal([DayOfWeek.Friday], values); } [Fact] @@ -425,7 +425,7 @@ public void ImplicitConversionToList_Value4Passed_ReturnsMatchingList() var person = new Person(); List values = new Values(person); - Assert.Equal(new List() { person }, values); + Assert.Equal([person], values); } [Fact] @@ -433,7 +433,7 @@ public void ImplicitConversionToList_Value5Passed_ReturnsMatchingList() { List values = new Values(DateTime.MinValue); - Assert.Equal(new List() { DateTime.MinValue }, values); + Assert.Equal([DateTime.MinValue], values); } [Fact] @@ -441,11 +441,11 @@ public void Deconstruct_Values_ReturnsAllEnumerables() { var person = new Person(); var (integers, strings, daysOfWeek, people, dates) = new Values(1, "Foo", DayOfWeek.Friday, person, DateTime.MinValue); - Assert.Equal(new List() { 1 }, integers); - Assert.Equal(new List() { "Foo" }, strings); - Assert.Equal(new List() { DayOfWeek.Friday }, daysOfWeek); - Assert.Equal(new List() { person }, people); - Assert.Equal(new List() { DateTime.MinValue }, dates); + Assert.Equal(new List { 1 }, integers); + Assert.Equal(new List { "Foo" }, strings); + Assert.Equal(new List { DayOfWeek.Friday }, daysOfWeek); + Assert.Equal(new List { person }, people); + Assert.Equal(new List { DateTime.MinValue }, dates); } [Fact] @@ -646,7 +646,11 @@ public void GetHashCode_Value1Passed_ReturnsMatchingHashCode() => [Fact] public void GetHashCode_Value2Passed_ReturnsMatchingHashCode() => Assert.Equal( - CombineHashCodes(CombineHashCodes(CombineHashCodes("Foo".GetHashCode(StringComparison.Ordinal), 0), 0), 0), + CombineHashCodes(CombineHashCodes(CombineHashCodes("Foo".GetHashCode( +#if !NET48 + StringComparison.Ordinal +#endif + ), 0), 0), 0), new Values("Foo").GetHashCode()); [Fact] diff --git a/Tests/Schema.NET.Test/Values6Test.cs b/Tests/Schema.NET.Test/Values6Test.cs index fb5f3118..6db8c507 100644 --- a/Tests/Schema.NET.Test/Values6Test.cs +++ b/Tests/Schema.NET.Test/Values6Test.cs @@ -24,7 +24,7 @@ public void Constructor_Value1Passed_OnlyValue1HasValue() Assert.Empty(values.Value5); Assert.False(values.HasValue6); Assert.Empty(values.Value6); - Assert.Equal(new List() { 1 }, values.Cast().ToList()); + Assert.Equal([1], values.Cast().ToList()); } [Fact] @@ -44,7 +44,7 @@ public void Constructor_Value2Passed_OnlyValue2HasValue() Assert.Empty(values.Value5); Assert.False(values.HasValue6); Assert.Empty(values.Value6); - Assert.Equal(new List() { "Foo" }, values.Cast().ToList()); + Assert.Equal(["Foo"], values.Cast().ToList()); } [Fact] @@ -64,7 +64,7 @@ public void Constructor_Value3Passed_OnlyValue3HasValue() Assert.Empty(values.Value5); Assert.False(values.HasValue6); Assert.Empty(values.Value6); - Assert.Equal(new List() { DayOfWeek.Friday }, values.Cast().ToList()); + Assert.Equal([DayOfWeek.Friday], values.Cast().ToList()); } [Fact] @@ -149,19 +149,19 @@ public void Constructor_Items_HasAllItems() Assert.True(values.HasValue6); Assert.Single(values.Value6); Assert.Equal( - new List() { 1, "Foo", DayOfWeek.Friday, person, DateTime.MinValue, true }, + [1, "Foo", DayOfWeek.Friday, person, DateTime.MinValue, true], values.Cast().ToList()); } [Fact] public void Constructor_StringItems_NullOrWhitespaceDoesntHaveValue() { - object[] nullOrWhitespaceValues = new[] - { + object[] nullOrWhitespaceValues = + [ string.Empty, null!, - "\u2028 \u2029 \u0009 \u000A \u000B \u000C \u000D \u0085", - }; + "\u2028 \u2029 \u0009 \u000A \u000B \u000C \u000D \u0085" + ]; var values = new Values(nullOrWhitespaceValues); Assert.False(values.HasValue1); @@ -271,7 +271,7 @@ public void ImplicitConversionOperator_Value1Passed_OnlyValue1HasValue() Assert.Empty(values.Value5); Assert.False(values.HasValue6); Assert.Empty(values.Value6); - Assert.Equal(new List() { 1 }, values.Cast().ToList()); + Assert.Equal([1], values.Cast().ToList()); } [Fact] @@ -291,7 +291,7 @@ public void ImplicitConversionOperator_Value2Passed_OnlyValue2HasValue() Assert.Empty(values.Value5); Assert.False(values.HasValue6); Assert.Empty(values.Value6); - Assert.Equal(new List() { "Foo" }, values.Cast().ToList()); + Assert.Equal(["Foo"], values.Cast().ToList()); } [Fact] @@ -311,7 +311,7 @@ public void ImplicitConversionOperator_Value3Passed_OnlyValue3HasValue() Assert.Empty(values.Value5); Assert.False(values.HasValue6); Assert.Empty(values.Value6); - Assert.Equal(new List() { DayOfWeek.Friday }, values.Cast().ToList()); + Assert.Equal([DayOfWeek.Friday], values.Cast().ToList()); } [Fact] @@ -380,7 +380,7 @@ public void ImplicitConversionOperator_Value6Passed_OnlyValue6HasValue() [Fact] public void ImplicitConversionOperator_Value1CollectionPassed_OnlyValue1HasValue() { - Values values = new List() { 1, 2 }; + Values values = new List { 1, 2 }; Assert.True(values.HasValue1); Assert.Equal(2, values.Value1.Count); @@ -394,13 +394,13 @@ public void ImplicitConversionOperator_Value1CollectionPassed_OnlyValue1HasValue Assert.Empty(values.Value5); Assert.False(values.HasValue6); Assert.Empty(values.Value6); - Assert.Equal(new List() { 1, 2 }, values.Cast().ToList()); + Assert.Equal([1, 2], values.Cast().ToList()); } [Fact] public void ImplicitConversionOperator_Value2CollectionPassed_OnlyValue2HasValue() { - Values values = new List() { "Foo", "Bar" }; + Values values = new List { "Foo", "Bar" }; Assert.False(values.HasValue1); Assert.Empty(values.Value1); @@ -414,13 +414,13 @@ public void ImplicitConversionOperator_Value2CollectionPassed_OnlyValue2HasValue Assert.Empty(values.Value5); Assert.False(values.HasValue6); Assert.Empty(values.Value6); - Assert.Equal(new List() { "Foo", "Bar" }, values.Cast().ToList()); + Assert.Equal(["Foo", "Bar"], values.Cast().ToList()); } [Fact] public void ImplicitConversionOperator_Value3CollectionPassed_OnlyValue3HasValue() { - Values values = new List() { DayOfWeek.Friday, DayOfWeek.Monday }; + Values values = new List { DayOfWeek.Friday, DayOfWeek.Monday }; Assert.False(values.HasValue1); Assert.Empty(values.Value1); @@ -435,14 +435,14 @@ public void ImplicitConversionOperator_Value3CollectionPassed_OnlyValue3HasValue Assert.False(values.HasValue6); Assert.Empty(values.Value6); Assert.Equal( - new List() { DayOfWeek.Friday, DayOfWeek.Monday }, + [DayOfWeek.Friday, DayOfWeek.Monday], values.Cast().ToList()); } [Fact] public void ImplicitConversionOperator_Value4CollectionPassed_OnlyValue4HasValue() { - Values values = new List() { new Person(), new Person() }; + Values values = new List { new Person(), new Person() }; Assert.False(values.HasValue1); Assert.Empty(values.Value1); @@ -462,7 +462,7 @@ public void ImplicitConversionOperator_Value4CollectionPassed_OnlyValue4HasValue [Fact] public void ImplicitConversionOperator_Value5CollectionPassed_OnlyValue5HasValue() { - Values values = new List() { DateTime.MinValue, DateTime.MinValue }; + Values values = new List { DateTime.MinValue, DateTime.MinValue }; Assert.False(values.HasValue1); Assert.Empty(values.Value1); @@ -482,7 +482,7 @@ public void ImplicitConversionOperator_Value5CollectionPassed_OnlyValue5HasValue [Fact] public void ImplicitConversionOperator_Value6CollectionPassed_OnlyValue6HasValue() { - Values values = new List() { true, true }; + Values values = new List { true, true }; Assert.False(values.HasValue1); Assert.Empty(values.Value1); @@ -504,7 +504,7 @@ public void ImplicitConversionToList_Value1Passed_ReturnsMatchingList() { List values = new Values(1); - Assert.Equal(new List() { 1 }, values); + Assert.Equal([1], values); } [Fact] @@ -512,7 +512,7 @@ public void ImplicitConversionToList_Value2Passed_ReturnsMatchingList() { List values = new Values("Foo"); - Assert.Equal(new List() { "Foo" }, values); + Assert.Equal(["Foo"], values); } [Fact] @@ -520,7 +520,7 @@ public void ImplicitConversionToList_Value3Passed_ReturnsMatchingList() { List values = new Values(DayOfWeek.Friday); - Assert.Equal(new List() { DayOfWeek.Friday }, values); + Assert.Equal([DayOfWeek.Friday], values); } [Fact] @@ -529,7 +529,7 @@ public void ImplicitConversionToList_Value4Passed_ReturnsMatchingList() var person = new Person(); List values = new Values(person); - Assert.Equal(new List() { person }, values); + Assert.Equal([person], values); } [Fact] @@ -537,7 +537,7 @@ public void ImplicitConversionToList_Value5Passed_ReturnsMatchingList() { List values = new Values(DateTime.MinValue); - Assert.Equal(new List() { DateTime.MinValue }, values); + Assert.Equal([DateTime.MinValue], values); } [Fact] @@ -545,7 +545,7 @@ public void ImplicitConversionToList_Value6Passed_ReturnsMatchingList() { List values = new Values(true); - Assert.Equal(new List() { true }, values); + Assert.Equal([true], values); } [Fact] @@ -553,12 +553,12 @@ public void Deconstruct_Values_ReturnsAllEnumerables() { var person = new Person(); var (integers, strings, daysOfWeek, people, dates, bools) = new Values(1, "Foo", DayOfWeek.Friday, person, DateTime.MinValue, true); - Assert.Equal(new List() { 1 }, integers); - Assert.Equal(new List() { "Foo" }, strings); - Assert.Equal(new List() { DayOfWeek.Friday }, daysOfWeek); - Assert.Equal(new List() { person }, people); - Assert.Equal(new List() { DateTime.MinValue }, dates); - Assert.Equal(new List() { true }, bools); + Assert.Equal(new List { 1 }, integers); + Assert.Equal(new List { "Foo" }, strings); + Assert.Equal(new List { DayOfWeek.Friday }, daysOfWeek); + Assert.Equal(new List { person }, people); + Assert.Equal(new List { DateTime.MinValue }, dates); + Assert.Equal(new List { true }, bools); } [Fact] @@ -799,7 +799,11 @@ public void GetHashCode_Value1Passed_ReturnsMatchingHashCode() => [Fact] public void GetHashCode_Value2Passed_ReturnsMatchingHashCode() => Assert.Equal( - CombineHashCodes(CombineHashCodes(CombineHashCodes(CombineHashCodes("Foo".GetHashCode(StringComparison.Ordinal), 0), 0), 0), 0), + CombineHashCodes(CombineHashCodes(CombineHashCodes(CombineHashCodes("Foo".GetHashCode( +#if !NET48 + StringComparison.Ordinal +#endif + ), 0), 0), 0), 0), new Values("Foo").GetHashCode()); [Fact] diff --git a/Tests/Schema.NET.Test/Values7Test.cs b/Tests/Schema.NET.Test/Values7Test.cs index 22b6bd27..93ee80e7 100644 --- a/Tests/Schema.NET.Test/Values7Test.cs +++ b/Tests/Schema.NET.Test/Values7Test.cs @@ -26,7 +26,7 @@ public void Constructor_Value1Passed_OnlyValue1HasValue() Assert.Empty(values.Value6); Assert.False(values.HasValue7); Assert.Empty(values.Value7); - Assert.Equal(new List() { 1 }, values.Cast().ToList()); + Assert.Equal([1], values.Cast().ToList()); } [Fact] @@ -48,7 +48,7 @@ public void Constructor_Value2Passed_OnlyValue2HasValue() Assert.Empty(values.Value6); Assert.False(values.HasValue7); Assert.Empty(values.Value7); - Assert.Equal(new List() { "Foo" }, values.Cast().ToList()); + Assert.Equal(["Foo"], values.Cast().ToList()); } [Fact] @@ -70,7 +70,7 @@ public void Constructor_Value3Passed_OnlyValue3HasValue() Assert.Empty(values.Value6); Assert.False(values.HasValue7); Assert.Empty(values.Value7); - Assert.Equal(new List() { DayOfWeek.Friday }, values.Cast().ToList()); + Assert.Equal([DayOfWeek.Friday], values.Cast().ToList()); } [Fact] @@ -186,19 +186,19 @@ public void Constructor_Items_HasAllItems() Assert.True(values.HasValue7); Assert.Single(values.Value7); Assert.Equal( - new List() { 1, "Foo", DayOfWeek.Friday, person, DateTime.MinValue, true, TimeSpan.MinValue }, + [1, "Foo", DayOfWeek.Friday, person, DateTime.MinValue, true, TimeSpan.MinValue], values.Cast().ToList()); } [Fact] public void Constructor_StringItems_NullOrWhitespaceDoesntHaveValue() { - object[] nullOrWhitespaceValues = new[] - { + object[] nullOrWhitespaceValues = + [ string.Empty, null!, - "\u2028 \u2029 \u0009 \u000A \u000B \u000C \u000D \u0085", - }; + "\u2028 \u2029 \u0009 \u000A \u000B \u000C \u000D \u0085" + ]; var values = new Values(nullOrWhitespaceValues); Assert.False(values.HasValue1); @@ -320,7 +320,7 @@ public void ImplicitConversionOperator_Value1Passed_OnlyValue1HasValue() Assert.Empty(values.Value6); Assert.False(values.HasValue7); Assert.Empty(values.Value7); - Assert.Equal(new List() { 1 }, values.Cast().ToList()); + Assert.Equal([1], values.Cast().ToList()); } [Fact] @@ -342,7 +342,7 @@ public void ImplicitConversionOperator_Value2Passed_OnlyValue2HasValue() Assert.Empty(values.Value6); Assert.False(values.HasValue7); Assert.Empty(values.Value7); - Assert.Equal(new List() { "Foo" }, values.Cast().ToList()); + Assert.Equal(["Foo"], values.Cast().ToList()); } [Fact] @@ -364,7 +364,7 @@ public void ImplicitConversionOperator_Value3Passed_OnlyValue3HasValue() Assert.Empty(values.Value6); Assert.False(values.HasValue7); Assert.Empty(values.Value7); - Assert.Equal(new List() { DayOfWeek.Friday }, values.Cast().ToList()); + Assert.Equal([DayOfWeek.Friday], values.Cast().ToList()); } [Fact] @@ -462,7 +462,7 @@ public void ImplicitConversionOperator_Value7Passed_OnlyValue7HasValue() [Fact] public void ImplicitConversionOperator_Value1CollectionPassed_OnlyValue1HasValue() { - Values values = new List() { 1, 2 }; + Values values = new List { 1, 2 }; Assert.True(values.HasValue1); Assert.Equal(2, values.Value1.Count); @@ -478,13 +478,13 @@ public void ImplicitConversionOperator_Value1CollectionPassed_OnlyValue1HasValue Assert.Empty(values.Value6); Assert.False(values.HasValue7); Assert.Empty(values.Value7); - Assert.Equal(new List() { 1, 2 }, values.Cast().ToList()); + Assert.Equal([1, 2], values.Cast().ToList()); } [Fact] public void ImplicitConversionOperator_Value2CollectionPassed_OnlyValue2HasValue() { - Values values = new List() { "Foo", "Bar" }; + Values values = new List { "Foo", "Bar" }; Assert.False(values.HasValue1); Assert.Empty(values.Value1); @@ -500,13 +500,13 @@ public void ImplicitConversionOperator_Value2CollectionPassed_OnlyValue2HasValue Assert.Empty(values.Value6); Assert.False(values.HasValue7); Assert.Empty(values.Value7); - Assert.Equal(new List() { "Foo", "Bar" }, values.Cast().ToList()); + Assert.Equal(["Foo", "Bar"], values.Cast().ToList()); } [Fact] public void ImplicitConversionOperator_Value3CollectionPassed_OnlyValue3HasValue() { - Values values = new List() { DayOfWeek.Friday, DayOfWeek.Monday }; + Values values = new List { DayOfWeek.Friday, DayOfWeek.Monday }; Assert.False(values.HasValue1); Assert.Empty(values.Value1); @@ -522,13 +522,13 @@ public void ImplicitConversionOperator_Value3CollectionPassed_OnlyValue3HasValue Assert.Empty(values.Value6); Assert.False(values.HasValue7); Assert.Empty(values.Value7); - Assert.Equal(new List() { DayOfWeek.Friday, DayOfWeek.Monday }, values.Cast().ToList()); + Assert.Equal([DayOfWeek.Friday, DayOfWeek.Monday], values.Cast().ToList()); } [Fact] public void ImplicitConversionOperator_Value4CollectionPassed_OnlyValue4HasValue() { - Values values = new List() { new Person(), new Person() }; + Values values = new List { new Person(), new Person() }; Assert.False(values.HasValue1); Assert.Empty(values.Value1); @@ -550,7 +550,7 @@ public void ImplicitConversionOperator_Value4CollectionPassed_OnlyValue4HasValue [Fact] public void ImplicitConversionOperator_Value5CollectionPassed_OnlyValue5HasValue() { - Values values = new List() { DateTime.MinValue, DateTime.MinValue }; + Values values = new List { DateTime.MinValue, DateTime.MinValue }; Assert.False(values.HasValue1); Assert.Empty(values.Value1); @@ -572,7 +572,7 @@ public void ImplicitConversionOperator_Value5CollectionPassed_OnlyValue5HasValue [Fact] public void ImplicitConversionOperator_Value6CollectionPassed_OnlyValue6HasValue() { - Values values = new List() { true, true }; + Values values = new List { true, true }; Assert.False(values.HasValue1); Assert.Empty(values.Value1); @@ -594,7 +594,7 @@ public void ImplicitConversionOperator_Value6CollectionPassed_OnlyValue6HasValue [Fact] public void ImplicitConversionOperator_Value7CollectionPassed_OnlyValue7HasValue() { - Values values = new List() { TimeSpan.MinValue, TimeSpan.MinValue }; + Values values = new List { TimeSpan.MinValue, TimeSpan.MinValue }; Assert.False(values.HasValue1); Assert.Empty(values.Value1); @@ -618,7 +618,7 @@ public void ImplicitConversionToList_Value1Passed_ReturnsMatchingList() { List values = new Values(1); - Assert.Equal(new List() { 1 }, values); + Assert.Equal([1], values); } [Fact] @@ -626,7 +626,7 @@ public void ImplicitConversionToList_Value2Passed_ReturnsMatchingList() { List values = new Values("Foo"); - Assert.Equal(new List() { "Foo" }, values); + Assert.Equal(["Foo"], values); } [Fact] @@ -634,7 +634,7 @@ public void ImplicitConversionToList_Value3Passed_ReturnsMatchingList() { List values = new Values(DayOfWeek.Friday); - Assert.Equal(new List() { DayOfWeek.Friday }, values); + Assert.Equal([DayOfWeek.Friday], values); } [Fact] @@ -643,7 +643,7 @@ public void ImplicitConversionToList_Value4Passed_ReturnsMatchingList() var person = new Person(); List values = new Values(person); - Assert.Equal(new List() { person }, values); + Assert.Equal([person], values); } [Fact] @@ -651,7 +651,7 @@ public void ImplicitConversionToList_Value5Passed_ReturnsMatchingList() { List values = new Values(DateTime.MinValue); - Assert.Equal(new List() { DateTime.MinValue }, values); + Assert.Equal([DateTime.MinValue], values); } [Fact] @@ -659,7 +659,7 @@ public void ImplicitConversionToList_Value6Passed_ReturnsMatchingList() { List values = new Values(true); - Assert.Equal(new List() { true }, values); + Assert.Equal([true], values); } [Fact] @@ -667,7 +667,7 @@ public void ImplicitConversionToList_Value7Passed_ReturnsMatchingList() { List values = new Values(TimeSpan.MinValue); - Assert.Equal(new List() { TimeSpan.MinValue }, values); + Assert.Equal([TimeSpan.MinValue], values); } [Fact] @@ -675,13 +675,13 @@ public void Deconstruct_Values_ReturnsAllEnumerables() { var person = new Person(); var (integers, strings, daysOfWeek, people, dates, bools, times) = new Values(1, "Foo", DayOfWeek.Friday, person, DateTime.MinValue, true, TimeSpan.MinValue); - Assert.Equal(new List() { 1 }, integers); - Assert.Equal(new List() { "Foo" }, strings); - Assert.Equal(new List() { DayOfWeek.Friday }, daysOfWeek); - Assert.Equal(new List() { person }, people); - Assert.Equal(new List() { DateTime.MinValue }, dates); - Assert.Equal(new List() { true }, bools); - Assert.Equal(new List() { TimeSpan.MinValue }, times); + Assert.Equal(new List { 1 }, integers); + Assert.Equal(new List { "Foo" }, strings); + Assert.Equal(new List { DayOfWeek.Friday }, daysOfWeek); + Assert.Equal(new List { person }, people); + Assert.Equal(new List { DateTime.MinValue }, dates); + Assert.Equal(new List { true }, bools); + Assert.Equal(new List { TimeSpan.MinValue }, times); } [Fact] @@ -954,7 +954,11 @@ public void GetHashCode_Value1Passed_ReturnsMatchingHashCode() => [Fact] public void GetHashCode_Value2Passed_ReturnsMatchingHashCode() => Assert.Equal( - CombineHashCodes(CombineHashCodes(CombineHashCodes(CombineHashCodes(CombineHashCodes("Foo".GetHashCode(StringComparison.Ordinal), 0), 0), 0), 0), 0), + CombineHashCodes(CombineHashCodes(CombineHashCodes(CombineHashCodes(CombineHashCodes("Foo".GetHashCode( +#if !NET48 + StringComparison.Ordinal +#endif + ), 0), 0), 0), 0), 0), new Values("Foo").GetHashCode()); [Fact] diff --git a/Tests/Schema.NET.Test/ValuesJsonConverterTest.cs b/Tests/Schema.NET.Test/ValuesJsonConverterTest.cs index 8045bdb5..88a8b5d5 100644 --- a/Tests/Schema.NET.Test/ValuesJsonConverterTest.cs +++ b/Tests/Schema.NET.Test/ValuesJsonConverterTest.cs @@ -539,7 +539,7 @@ public void ReadJson_Values_MultiValue_SameType() {"Property": ["A", "B"]} """; var result = DeserializeObject>(json); - Assert.Equal(new[] { "A", "B" }, result.Value2); + Assert.Equal(["A", "B"], result.Value2); } [Fact] @@ -550,7 +550,7 @@ public void ReadJson_Values_MultiValue_SameType_ArgumentsSwapped() {"Property": ["A", "B"]} """; var result = DeserializeObject>(json); - Assert.Equal(new[] { "A", "B" }, result.Value1); + Assert.Equal(["A", "B"], result.Value1); } [Fact] @@ -561,8 +561,8 @@ public void ReadJson_Values_MultiValue_MixedType() {"Property": [1, "B"]} """; var result = DeserializeObject>(json); - Assert.Equal(new[] { 1 }, result.Value1); - Assert.Equal(new[] { "B" }, result.Value2); + Assert.Equal([1], result.Value1); + Assert.Equal(["B"], result.Value2); } [Fact] @@ -573,7 +573,7 @@ public void ReadJson_Values_MultiValue_NullablePrimitiveAsString() {"Property": ["123", "456"]} """; var result = DeserializeObject>(json); - Assert.Equal(new int?[] { 123, 456 }, result.Value2); + Assert.Equal([123, 456], result.Value2); } [Fact] @@ -643,7 +643,7 @@ public void ReadJson_OneOrMany_MultiValue_String() {"Property": ["A", "B"]} """; var result = DeserializeObject>(json); - Assert.Equal(new[] { "A", "B" }, result); + Assert.Equal(["A", "B"], result); } [Fact] @@ -665,7 +665,7 @@ public void ReadJson_OneOrMany_MultiValue_NullablePrimitiveAsString() {"Property": ["123", "456"]} """; var result = DeserializeObject>(json); - Assert.Equal(new int?[] { 123, 456 }, result); + Assert.Equal([123, 456], result); } [Fact] @@ -685,8 +685,8 @@ public void ReadJson_ExplicitExternalTypes_AllowCustomNamespace() """; var result = DeserializeObject>(json); var actual = Assert.Single(result.Value2); - Assert.Equal(new[] { "Property from Thing" }, actual.Name); - Assert.Equal(new[] { "My Test String" }, actual.MyCustomProperty); + Assert.Equal(["Property from Thing"], actual.Name); + Assert.Equal(["My Test String"], actual.MyCustomProperty); } [Fact] @@ -706,8 +706,8 @@ public void ReadJson_ExplicitExternalTypes_AllowSharedNamespace() """; var result = DeserializeObject>(json); var actual = Assert.Single(result.Value2); - Assert.Equal(new[] { "Property from Thing" }, actual.Name); - Assert.Equal(new[] { "My Test String" }, actual.MyCustomProperty); + Assert.Equal(["Property from Thing"], actual.Name); + Assert.Equal(["My Test String"], actual.MyCustomProperty); } [Fact] @@ -728,8 +728,8 @@ public void ReadJson_ImplicitExternalTypes_AllowCustomNamespace() var result = DeserializeObject>(json); var actual = Assert.Single(result.Value2); Assert.IsType(actual); - Assert.Equal(new[] { "Property from Thing" }, actual.Name); - Assert.Equal(new[] { "My Test String" }, ((SomeCustomNamespace.ExternalSchemaModelCustomNamespace)actual).MyCustomProperty); + Assert.Equal(["Property from Thing"], actual.Name); + Assert.Equal(["My Test String"], ((SomeCustomNamespace.ExternalSchemaModelCustomNamespace)actual).MyCustomProperty); } [Fact] @@ -750,8 +750,8 @@ public void ReadJson_ImplicitExternalTypes_AllowSharedNamespace() var result = DeserializeObject>(json); var actual = Assert.Single(result.Value2); Assert.IsType(actual); - Assert.Equal(new[] { "Property from Thing" }, actual.Name); - Assert.Equal(new[] { "My Test String" }, ((ExternalSchemaModelSharedNamespace)actual).MyCustomProperty); + Assert.Equal(["Property from Thing"], actual.Name); + Assert.Equal(["My Test String"], ((ExternalSchemaModelSharedNamespace)actual).MyCustomProperty); } [Fact] diff --git a/Tests/Schema.NET.Test/packages.lock.json b/Tests/Schema.NET.Test/packages.lock.json new file mode 100644 index 00000000..cd849986 --- /dev/null +++ b/Tests/Schema.NET.Test/packages.lock.json @@ -0,0 +1,1194 @@ +{ + "version": 1, + "dependencies": { + ".NETFramework,Version=v4.6.2": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, + "JunitXml.TestLogger": { + "type": "Direct", + "requested": "[3.0.134, )", + "resolved": "3.0.134", + "contentHash": "KoZInijT7rUEXGEOGUQfzLBZFaA65A7g6AhosHCI/aPuqxYMq40wUOO3kynor8QQhbgU+lpLFmhAxNb3+JoCfQ==" + }, + "Microsoft.CodeAnalysis.NetAnalyzers": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "DxiTgkCl3CGq1rYmBX2wjY7XGbxiBdL4J+/AJIAFLKy5z70NxhnVRnPghnicXZ8oF6JKVXlW3xwznRbI3ioEKg==" + }, + "Microsoft.NET.Test.Sdk": { + "type": "Direct", + "requested": "[17.12.0, )", + "resolved": "17.12.0", + "contentHash": "kt/PKBZ91rFCWxVIJZSgVLk+YR+4KxTuHf799ho8WNiK5ZQpJNAEZCAWX86vcKrs+DiYjiibpYKdGZP6+/N17w==", + "dependencies": { + "Microsoft.CodeCoverage": "17.12.0" + } + }, + "Microsoft.TestPlatform.ObjectModel": { + "type": "Direct", + "requested": "[17.12.0, )", + "resolved": "17.12.0", + "contentHash": "TDqkTKLfQuAaPcEb3pDDWnh7b3SyZF+/W9OZvWFp6eJCIiiYFdSB6taE2I6tWrFw5ywhzOb6sreoGJTI6m3rSQ==", + "dependencies": { + "System.Reflection.Metadata": "1.6.0" + } + }, + "Microsoft.VisualStudio.Threading.Analyzers": { + "type": "Direct", + "requested": "[17.12.19, )", + "resolved": "17.12.19", + "contentHash": "v3IYeedjoktvZ+GqYmLudxZJngmf/YWIxNT2Uy6QMMN19cvw+nkWoip1Gr1RtnFkUo1MPUVMis4C8Kj8d8DpSQ==" + }, + "MinVer": { + "type": "Direct", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "YNVAW3loCFW4kTwensApaZUl+7xREK75QQNOFSbsbXx2sCSm9/IHBjUHsJGn3u0UA5r/sAqrdYBNUlOFfLhUrA==" + }, + "Moq": { + "type": "Direct", + "requested": "[4.20.72, )", + "resolved": "4.20.72", + "contentHash": "EA55cjyNn8eTNWrgrdZJH5QLFp2L43oxl1tlkoYUKIE9pRwL784OWiTXeCV5ApS+AMYEAlt7Fo03A2XfouvHmQ==", + "dependencies": { + "Castle.Core": "5.1.1", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "xunit": { + "type": "Direct", + "requested": "[2.9.3, )", + "resolved": "2.9.3", + "contentHash": "TlXQBinK35LpOPKHAqbLY4xlEen9TBafjs0V5KnA4wZsoQLQJiirCR4CbIXvOH8NzkW4YeJKP5P/Bnrodm0h9Q==", + "dependencies": { + "xunit.analyzers": "1.18.0", + "xunit.assert": "2.9.3", + "xunit.core": "[2.9.3]" + } + }, + "xunit.runner.visualstudio": { + "type": "Direct", + "requested": "[2.8.2, )", + "resolved": "2.8.2", + "contentHash": "vm1tbfXhFmjFMUmS4M0J0ASXz3/U5XvXBa6DOQUL3fEz4Vt6YPhv+ESCarx6M6D+9kJkJYZKCNvJMas1+nVfmQ==", + "dependencies": { + "Microsoft.TestPlatform.ObjectModel": "17.10.0" + } + }, + "Castle.Core": { + "type": "Transitive", + "resolved": "5.1.1", + "contentHash": "rpYtIczkzGpf+EkZgDr9CClTdemhsrwA/W5hMoPjLkRFnXzH44zDLoovXeKtmxb1ykXK9aJVODSpiJml8CTw2g==" + }, + "Microsoft.Bcl.AsyncInterfaces": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "UcSjPsst+DfAdJGVDsu346FX0ci0ah+lw3WRtn18NUwEqRt70HaOQ7lI72vy3+1LxtqI3T5GWwV39rQSrCzAeg==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.CodeAnalysis.Analyzers": { + "type": "Transitive", + "resolved": "3.3.3", + "contentHash": "j/rOZtLMVJjrfLRlAMckJLPW/1rze9MT1yfWqSIbUPGRu1m1P0fuo9PmqapwsmePfGB5PJrudQLvmUOAMF0DqQ==" + }, + "Microsoft.CodeAnalysis.Common": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "lwAbIZNdnY0SUNoDmZHkVUwLO8UyNnyyh1t/4XsbFxi4Ounb3xszIYZaWhyj5ZjyfcwqwmtMbE7fUTVCqQEIdQ==", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.3", + "System.Collections.Immutable": "6.0.0", + "System.Memory": "4.5.5", + "System.Reflection.Metadata": "6.0.1", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encoding.CodePages": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.CodeAnalysis.CSharp": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "cM59oMKAOxvdv76bdmaKPy5hfj+oR+zxikWoueEB7CwTko7mt9sVKZI8Qxlov0C/LuKEG+WQwifepqL3vuTiBQ==", + "dependencies": { + "Microsoft.CodeAnalysis.Common": "[4.5.0]" + } + }, + "Microsoft.CodeCoverage": { + "type": "Transitive", + "resolved": "17.12.0", + "contentHash": "4svMznBd5JM21JIG2xZKGNanAHNXplxf/kQDFfLHXQ3OnpJkayRK/TjacFjA+EYmoyuNXHo/sOETEfcYtAzIrA==" + }, + "System.Buffers": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", + "dependencies": { + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.5", + "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + }, + "System.Numerics.Vectors": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "III/lNMSn0ZRBuM9m5Cgbiho5j81u0FAEagFX5ta2DKbljZ3T0IpD8j+BIiHQPeKqJppWS9bGEp6JnKnWKze0g==", + "dependencies": { + "System.Collections.Immutable": "6.0.0" + } + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + }, + "System.Text.Encoding.CodePages": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==", + "dependencies": { + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Text.Encodings.Web": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "E5M5AE2OUTlCrf4omZvzzziUJO9CofBl+lXHaN5IKePPJvHqYFYYpaDPgCpR4VwaFbEebfnjOxxEBtPtsqAxpQ==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Text.Json": { + "type": "Transitive", + "resolved": "6.0.11", + "contentHash": "xqC1HIbJMBFhrpYs76oYP+NAskNVjc6v73HqLal7ECRDPIp4oRU5pPavkD//vNactCn9DA2aaald/I5N+uZ5/g==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encodings.Web": "6.0.1", + "System.Threading.Tasks.Extensions": "4.5.4", + "System.ValueTuple": "4.5.0" + } + }, + "System.Threading.Tasks.Extensions": { + "type": "Transitive", + "resolved": "4.5.4", + "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + }, + "System.ValueTuple": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==" + }, + "xunit.abstractions": { + "type": "Transitive", + "resolved": "2.0.3", + "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg==" + }, + "xunit.analyzers": { + "type": "Transitive", + "resolved": "1.18.0", + "contentHash": "OtFMHN8yqIcYP9wcVIgJrq01AfTxijjAqVDy/WeQVSyrDC1RzBWeQPztL49DN2syXRah8TYnfvk035s7L95EZQ==" + }, + "xunit.assert": { + "type": "Transitive", + "resolved": "2.9.3", + "contentHash": "/Kq28fCE7MjOV42YLVRAJzRF0WmEqsmflm0cfpMjGtzQ2lR5mYVj1/i0Y8uDAOLczkL3/jArrwehfMD0YogMAA==" + }, + "xunit.core": { + "type": "Transitive", + "resolved": "2.9.3", + "contentHash": "BiAEvqGvyme19wE0wTKdADH+NloYqikiU0mcnmiNyXaF9HyHmE6sr/3DC5vnBkgsWaE6yPyWszKSPSApWdRVeQ==", + "dependencies": { + "xunit.extensibility.core": "[2.9.3]", + "xunit.extensibility.execution": "[2.9.3]" + } + }, + "xunit.extensibility.core": { + "type": "Transitive", + "resolved": "2.9.3", + "contentHash": "kf3si0YTn2a8J8eZNb+zFpwfoyvIrQ7ivNk5ZYA5yuYk1bEtMe4DxJ2CF/qsRgmEnDr7MnW1mxylBaHTZ4qErA==", + "dependencies": { + "xunit.abstractions": "2.0.3" + } + }, + "xunit.extensibility.execution": { + "type": "Transitive", + "resolved": "2.9.3", + "contentHash": "yMb6vMESlSrE3Wfj7V6cjQ3S4TXdXpRqYeNEI3zsX31uTsGMJjEw6oD5F5u1cHnMptjhEECnmZSsPxB6ChZHDQ==", + "dependencies": { + "xunit.extensibility.core": "[2.9.3]" + } + }, + "schema.net": { + "type": "Project", + "dependencies": { + "Microsoft.CodeAnalysis.CSharp": "[4.5.0, )", + "System.Text.Json": "[6.0.11, )" + } + } + }, + ".NETFramework,Version=v4.7.2": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, + "JunitXml.TestLogger": { + "type": "Direct", + "requested": "[3.0.134, )", + "resolved": "3.0.134", + "contentHash": "KoZInijT7rUEXGEOGUQfzLBZFaA65A7g6AhosHCI/aPuqxYMq40wUOO3kynor8QQhbgU+lpLFmhAxNb3+JoCfQ==" + }, + "Microsoft.CodeAnalysis.NetAnalyzers": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "DxiTgkCl3CGq1rYmBX2wjY7XGbxiBdL4J+/AJIAFLKy5z70NxhnVRnPghnicXZ8oF6JKVXlW3xwznRbI3ioEKg==" + }, + "Microsoft.NET.Test.Sdk": { + "type": "Direct", + "requested": "[17.12.0, )", + "resolved": "17.12.0", + "contentHash": "kt/PKBZ91rFCWxVIJZSgVLk+YR+4KxTuHf799ho8WNiK5ZQpJNAEZCAWX86vcKrs+DiYjiibpYKdGZP6+/N17w==", + "dependencies": { + "Microsoft.CodeCoverage": "17.12.0" + } + }, + "Microsoft.TestPlatform.ObjectModel": { + "type": "Direct", + "requested": "[17.12.0, )", + "resolved": "17.12.0", + "contentHash": "TDqkTKLfQuAaPcEb3pDDWnh7b3SyZF+/W9OZvWFp6eJCIiiYFdSB6taE2I6tWrFw5ywhzOb6sreoGJTI6m3rSQ==", + "dependencies": { + "System.Reflection.Metadata": "1.6.0" + } + }, + "Microsoft.VisualStudio.Threading.Analyzers": { + "type": "Direct", + "requested": "[17.12.19, )", + "resolved": "17.12.19", + "contentHash": "v3IYeedjoktvZ+GqYmLudxZJngmf/YWIxNT2Uy6QMMN19cvw+nkWoip1Gr1RtnFkUo1MPUVMis4C8Kj8d8DpSQ==" + }, + "MinVer": { + "type": "Direct", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "YNVAW3loCFW4kTwensApaZUl+7xREK75QQNOFSbsbXx2sCSm9/IHBjUHsJGn3u0UA5r/sAqrdYBNUlOFfLhUrA==" + }, + "Moq": { + "type": "Direct", + "requested": "[4.20.72, )", + "resolved": "4.20.72", + "contentHash": "EA55cjyNn8eTNWrgrdZJH5QLFp2L43oxl1tlkoYUKIE9pRwL784OWiTXeCV5ApS+AMYEAlt7Fo03A2XfouvHmQ==", + "dependencies": { + "Castle.Core": "5.1.1", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "xunit": { + "type": "Direct", + "requested": "[2.9.3, )", + "resolved": "2.9.3", + "contentHash": "TlXQBinK35LpOPKHAqbLY4xlEen9TBafjs0V5KnA4wZsoQLQJiirCR4CbIXvOH8NzkW4YeJKP5P/Bnrodm0h9Q==", + "dependencies": { + "xunit.analyzers": "1.18.0", + "xunit.assert": "2.9.3", + "xunit.core": "[2.9.3]" + } + }, + "xunit.runner.visualstudio": { + "type": "Direct", + "requested": "[2.8.2, )", + "resolved": "2.8.2", + "contentHash": "vm1tbfXhFmjFMUmS4M0J0ASXz3/U5XvXBa6DOQUL3fEz4Vt6YPhv+ESCarx6M6D+9kJkJYZKCNvJMas1+nVfmQ==", + "dependencies": { + "Microsoft.TestPlatform.ObjectModel": "17.10.0" + } + }, + "Castle.Core": { + "type": "Transitive", + "resolved": "5.1.1", + "contentHash": "rpYtIczkzGpf+EkZgDr9CClTdemhsrwA/W5hMoPjLkRFnXzH44zDLoovXeKtmxb1ykXK9aJVODSpiJml8CTw2g==" + }, + "Microsoft.Bcl.AsyncInterfaces": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "UcSjPsst+DfAdJGVDsu346FX0ci0ah+lw3WRtn18NUwEqRt70HaOQ7lI72vy3+1LxtqI3T5GWwV39rQSrCzAeg==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.CodeAnalysis.Analyzers": { + "type": "Transitive", + "resolved": "3.3.3", + "contentHash": "j/rOZtLMVJjrfLRlAMckJLPW/1rze9MT1yfWqSIbUPGRu1m1P0fuo9PmqapwsmePfGB5PJrudQLvmUOAMF0DqQ==" + }, + "Microsoft.CodeAnalysis.Common": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "lwAbIZNdnY0SUNoDmZHkVUwLO8UyNnyyh1t/4XsbFxi4Ounb3xszIYZaWhyj5ZjyfcwqwmtMbE7fUTVCqQEIdQ==", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.3", + "System.Collections.Immutable": "6.0.0", + "System.Memory": "4.5.5", + "System.Reflection.Metadata": "6.0.1", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encoding.CodePages": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.CodeAnalysis.CSharp": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "cM59oMKAOxvdv76bdmaKPy5hfj+oR+zxikWoueEB7CwTko7mt9sVKZI8Qxlov0C/LuKEG+WQwifepqL3vuTiBQ==", + "dependencies": { + "Microsoft.CodeAnalysis.Common": "[4.5.0]" + } + }, + "Microsoft.CodeCoverage": { + "type": "Transitive", + "resolved": "17.12.0", + "contentHash": "4svMznBd5JM21JIG2xZKGNanAHNXplxf/kQDFfLHXQ3OnpJkayRK/TjacFjA+EYmoyuNXHo/sOETEfcYtAzIrA==" + }, + "System.Buffers": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", + "dependencies": { + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.5", + "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + }, + "System.Numerics.Vectors": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "III/lNMSn0ZRBuM9m5Cgbiho5j81u0FAEagFX5ta2DKbljZ3T0IpD8j+BIiHQPeKqJppWS9bGEp6JnKnWKze0g==", + "dependencies": { + "System.Collections.Immutable": "6.0.0" + } + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + }, + "System.Text.Encoding.CodePages": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==", + "dependencies": { + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Text.Encodings.Web": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "E5M5AE2OUTlCrf4omZvzzziUJO9CofBl+lXHaN5IKePPJvHqYFYYpaDPgCpR4VwaFbEebfnjOxxEBtPtsqAxpQ==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Text.Json": { + "type": "Transitive", + "resolved": "6.0.11", + "contentHash": "xqC1HIbJMBFhrpYs76oYP+NAskNVjc6v73HqLal7ECRDPIp4oRU5pPavkD//vNactCn9DA2aaald/I5N+uZ5/g==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encodings.Web": "6.0.1", + "System.Threading.Tasks.Extensions": "4.5.4", + "System.ValueTuple": "4.5.0" + } + }, + "System.Threading.Tasks.Extensions": { + "type": "Transitive", + "resolved": "4.5.4", + "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + }, + "System.ValueTuple": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==" + }, + "xunit.abstractions": { + "type": "Transitive", + "resolved": "2.0.3", + "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg==" + }, + "xunit.analyzers": { + "type": "Transitive", + "resolved": "1.18.0", + "contentHash": "OtFMHN8yqIcYP9wcVIgJrq01AfTxijjAqVDy/WeQVSyrDC1RzBWeQPztL49DN2syXRah8TYnfvk035s7L95EZQ==" + }, + "xunit.assert": { + "type": "Transitive", + "resolved": "2.9.3", + "contentHash": "/Kq28fCE7MjOV42YLVRAJzRF0WmEqsmflm0cfpMjGtzQ2lR5mYVj1/i0Y8uDAOLczkL3/jArrwehfMD0YogMAA==" + }, + "xunit.core": { + "type": "Transitive", + "resolved": "2.9.3", + "contentHash": "BiAEvqGvyme19wE0wTKdADH+NloYqikiU0mcnmiNyXaF9HyHmE6sr/3DC5vnBkgsWaE6yPyWszKSPSApWdRVeQ==", + "dependencies": { + "xunit.extensibility.core": "[2.9.3]", + "xunit.extensibility.execution": "[2.9.3]" + } + }, + "xunit.extensibility.core": { + "type": "Transitive", + "resolved": "2.9.3", + "contentHash": "kf3si0YTn2a8J8eZNb+zFpwfoyvIrQ7ivNk5ZYA5yuYk1bEtMe4DxJ2CF/qsRgmEnDr7MnW1mxylBaHTZ4qErA==", + "dependencies": { + "xunit.abstractions": "2.0.3" + } + }, + "xunit.extensibility.execution": { + "type": "Transitive", + "resolved": "2.9.3", + "contentHash": "yMb6vMESlSrE3Wfj7V6cjQ3S4TXdXpRqYeNEI3zsX31uTsGMJjEw6oD5F5u1cHnMptjhEECnmZSsPxB6ChZHDQ==", + "dependencies": { + "xunit.extensibility.core": "[2.9.3]" + } + }, + "schema.net": { + "type": "Project", + "dependencies": { + "Microsoft.CodeAnalysis.CSharp": "[4.5.0, )", + "System.Text.Json": "[6.0.11, )" + } + } + }, + ".NETFramework,Version=v4.8": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, + "JunitXml.TestLogger": { + "type": "Direct", + "requested": "[3.0.134, )", + "resolved": "3.0.134", + "contentHash": "KoZInijT7rUEXGEOGUQfzLBZFaA65A7g6AhosHCI/aPuqxYMq40wUOO3kynor8QQhbgU+lpLFmhAxNb3+JoCfQ==" + }, + "Microsoft.CodeAnalysis.NetAnalyzers": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "DxiTgkCl3CGq1rYmBX2wjY7XGbxiBdL4J+/AJIAFLKy5z70NxhnVRnPghnicXZ8oF6JKVXlW3xwznRbI3ioEKg==" + }, + "Microsoft.NET.Test.Sdk": { + "type": "Direct", + "requested": "[17.12.0, )", + "resolved": "17.12.0", + "contentHash": "kt/PKBZ91rFCWxVIJZSgVLk+YR+4KxTuHf799ho8WNiK5ZQpJNAEZCAWX86vcKrs+DiYjiibpYKdGZP6+/N17w==", + "dependencies": { + "Microsoft.CodeCoverage": "17.12.0" + } + }, + "Microsoft.TestPlatform.ObjectModel": { + "type": "Direct", + "requested": "[17.12.0, )", + "resolved": "17.12.0", + "contentHash": "TDqkTKLfQuAaPcEb3pDDWnh7b3SyZF+/W9OZvWFp6eJCIiiYFdSB6taE2I6tWrFw5ywhzOb6sreoGJTI6m3rSQ==", + "dependencies": { + "System.Reflection.Metadata": "1.6.0" + } + }, + "Microsoft.VisualStudio.Threading.Analyzers": { + "type": "Direct", + "requested": "[17.12.19, )", + "resolved": "17.12.19", + "contentHash": "v3IYeedjoktvZ+GqYmLudxZJngmf/YWIxNT2Uy6QMMN19cvw+nkWoip1Gr1RtnFkUo1MPUVMis4C8Kj8d8DpSQ==" + }, + "MinVer": { + "type": "Direct", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "YNVAW3loCFW4kTwensApaZUl+7xREK75QQNOFSbsbXx2sCSm9/IHBjUHsJGn3u0UA5r/sAqrdYBNUlOFfLhUrA==" + }, + "Moq": { + "type": "Direct", + "requested": "[4.20.72, )", + "resolved": "4.20.72", + "contentHash": "EA55cjyNn8eTNWrgrdZJH5QLFp2L43oxl1tlkoYUKIE9pRwL784OWiTXeCV5ApS+AMYEAlt7Fo03A2XfouvHmQ==", + "dependencies": { + "Castle.Core": "5.1.1", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "xunit": { + "type": "Direct", + "requested": "[2.9.3, )", + "resolved": "2.9.3", + "contentHash": "TlXQBinK35LpOPKHAqbLY4xlEen9TBafjs0V5KnA4wZsoQLQJiirCR4CbIXvOH8NzkW4YeJKP5P/Bnrodm0h9Q==", + "dependencies": { + "xunit.analyzers": "1.18.0", + "xunit.assert": "2.9.3", + "xunit.core": "[2.9.3]" + } + }, + "xunit.runner.visualstudio": { + "type": "Direct", + "requested": "[2.8.2, )", + "resolved": "2.8.2", + "contentHash": "vm1tbfXhFmjFMUmS4M0J0ASXz3/U5XvXBa6DOQUL3fEz4Vt6YPhv+ESCarx6M6D+9kJkJYZKCNvJMas1+nVfmQ==", + "dependencies": { + "Microsoft.TestPlatform.ObjectModel": "17.10.0" + } + }, + "Castle.Core": { + "type": "Transitive", + "resolved": "5.1.1", + "contentHash": "rpYtIczkzGpf+EkZgDr9CClTdemhsrwA/W5hMoPjLkRFnXzH44zDLoovXeKtmxb1ykXK9aJVODSpiJml8CTw2g==" + }, + "Microsoft.Bcl.AsyncInterfaces": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "UcSjPsst+DfAdJGVDsu346FX0ci0ah+lw3WRtn18NUwEqRt70HaOQ7lI72vy3+1LxtqI3T5GWwV39rQSrCzAeg==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.CodeAnalysis.Analyzers": { + "type": "Transitive", + "resolved": "3.3.3", + "contentHash": "j/rOZtLMVJjrfLRlAMckJLPW/1rze9MT1yfWqSIbUPGRu1m1P0fuo9PmqapwsmePfGB5PJrudQLvmUOAMF0DqQ==" + }, + "Microsoft.CodeAnalysis.Common": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "lwAbIZNdnY0SUNoDmZHkVUwLO8UyNnyyh1t/4XsbFxi4Ounb3xszIYZaWhyj5ZjyfcwqwmtMbE7fUTVCqQEIdQ==", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.3", + "System.Collections.Immutable": "6.0.0", + "System.Memory": "4.5.5", + "System.Reflection.Metadata": "6.0.1", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encoding.CodePages": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.CodeAnalysis.CSharp": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "cM59oMKAOxvdv76bdmaKPy5hfj+oR+zxikWoueEB7CwTko7mt9sVKZI8Qxlov0C/LuKEG+WQwifepqL3vuTiBQ==", + "dependencies": { + "Microsoft.CodeAnalysis.Common": "[4.5.0]" + } + }, + "Microsoft.CodeCoverage": { + "type": "Transitive", + "resolved": "17.12.0", + "contentHash": "4svMznBd5JM21JIG2xZKGNanAHNXplxf/kQDFfLHXQ3OnpJkayRK/TjacFjA+EYmoyuNXHo/sOETEfcYtAzIrA==" + }, + "System.Buffers": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", + "dependencies": { + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.5", + "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + }, + "System.Numerics.Vectors": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "III/lNMSn0ZRBuM9m5Cgbiho5j81u0FAEagFX5ta2DKbljZ3T0IpD8j+BIiHQPeKqJppWS9bGEp6JnKnWKze0g==", + "dependencies": { + "System.Collections.Immutable": "6.0.0" + } + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + }, + "System.Text.Encoding.CodePages": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==", + "dependencies": { + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Text.Encodings.Web": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "E5M5AE2OUTlCrf4omZvzzziUJO9CofBl+lXHaN5IKePPJvHqYFYYpaDPgCpR4VwaFbEebfnjOxxEBtPtsqAxpQ==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Text.Json": { + "type": "Transitive", + "resolved": "6.0.11", + "contentHash": "xqC1HIbJMBFhrpYs76oYP+NAskNVjc6v73HqLal7ECRDPIp4oRU5pPavkD//vNactCn9DA2aaald/I5N+uZ5/g==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encodings.Web": "6.0.1", + "System.Threading.Tasks.Extensions": "4.5.4", + "System.ValueTuple": "4.5.0" + } + }, + "System.Threading.Tasks.Extensions": { + "type": "Transitive", + "resolved": "4.5.4", + "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + }, + "System.ValueTuple": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==" + }, + "xunit.abstractions": { + "type": "Transitive", + "resolved": "2.0.3", + "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg==" + }, + "xunit.analyzers": { + "type": "Transitive", + "resolved": "1.18.0", + "contentHash": "OtFMHN8yqIcYP9wcVIgJrq01AfTxijjAqVDy/WeQVSyrDC1RzBWeQPztL49DN2syXRah8TYnfvk035s7L95EZQ==" + }, + "xunit.assert": { + "type": "Transitive", + "resolved": "2.9.3", + "contentHash": "/Kq28fCE7MjOV42YLVRAJzRF0WmEqsmflm0cfpMjGtzQ2lR5mYVj1/i0Y8uDAOLczkL3/jArrwehfMD0YogMAA==" + }, + "xunit.core": { + "type": "Transitive", + "resolved": "2.9.3", + "contentHash": "BiAEvqGvyme19wE0wTKdADH+NloYqikiU0mcnmiNyXaF9HyHmE6sr/3DC5vnBkgsWaE6yPyWszKSPSApWdRVeQ==", + "dependencies": { + "xunit.extensibility.core": "[2.9.3]", + "xunit.extensibility.execution": "[2.9.3]" + } + }, + "xunit.extensibility.core": { + "type": "Transitive", + "resolved": "2.9.3", + "contentHash": "kf3si0YTn2a8J8eZNb+zFpwfoyvIrQ7ivNk5ZYA5yuYk1bEtMe4DxJ2CF/qsRgmEnDr7MnW1mxylBaHTZ4qErA==", + "dependencies": { + "xunit.abstractions": "2.0.3" + } + }, + "xunit.extensibility.execution": { + "type": "Transitive", + "resolved": "2.9.3", + "contentHash": "yMb6vMESlSrE3Wfj7V6cjQ3S4TXdXpRqYeNEI3zsX31uTsGMJjEw6oD5F5u1cHnMptjhEECnmZSsPxB6ChZHDQ==", + "dependencies": { + "xunit.extensibility.core": "[2.9.3]" + } + }, + "schema.net": { + "type": "Project", + "dependencies": { + "Microsoft.CodeAnalysis.CSharp": "[4.5.0, )", + "System.Text.Json": "[6.0.11, )" + } + } + }, + "net6.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, + "JunitXml.TestLogger": { + "type": "Direct", + "requested": "[3.0.134, )", + "resolved": "3.0.134", + "contentHash": "KoZInijT7rUEXGEOGUQfzLBZFaA65A7g6AhosHCI/aPuqxYMq40wUOO3kynor8QQhbgU+lpLFmhAxNb3+JoCfQ==" + }, + "Microsoft.CodeAnalysis.NetAnalyzers": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "DxiTgkCl3CGq1rYmBX2wjY7XGbxiBdL4J+/AJIAFLKy5z70NxhnVRnPghnicXZ8oF6JKVXlW3xwznRbI3ioEKg==" + }, + "Microsoft.NET.Test.Sdk": { + "type": "Direct", + "requested": "[17.12.0, )", + "resolved": "17.12.0", + "contentHash": "kt/PKBZ91rFCWxVIJZSgVLk+YR+4KxTuHf799ho8WNiK5ZQpJNAEZCAWX86vcKrs+DiYjiibpYKdGZP6+/N17w==", + "dependencies": { + "Microsoft.CodeCoverage": "17.12.0", + "Microsoft.TestPlatform.TestHost": "17.12.0" + } + }, + "Microsoft.TestPlatform.ObjectModel": { + "type": "Direct", + "requested": "[17.12.0, )", + "resolved": "17.12.0", + "contentHash": "TDqkTKLfQuAaPcEb3pDDWnh7b3SyZF+/W9OZvWFp6eJCIiiYFdSB6taE2I6tWrFw5ywhzOb6sreoGJTI6m3rSQ==", + "dependencies": { + "System.Reflection.Metadata": "1.6.0" + } + }, + "Microsoft.VisualStudio.Threading.Analyzers": { + "type": "Direct", + "requested": "[17.12.19, )", + "resolved": "17.12.19", + "contentHash": "v3IYeedjoktvZ+GqYmLudxZJngmf/YWIxNT2Uy6QMMN19cvw+nkWoip1Gr1RtnFkUo1MPUVMis4C8Kj8d8DpSQ==" + }, + "MinVer": { + "type": "Direct", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "YNVAW3loCFW4kTwensApaZUl+7xREK75QQNOFSbsbXx2sCSm9/IHBjUHsJGn3u0UA5r/sAqrdYBNUlOFfLhUrA==" + }, + "Moq": { + "type": "Direct", + "requested": "[4.20.72, )", + "resolved": "4.20.72", + "contentHash": "EA55cjyNn8eTNWrgrdZJH5QLFp2L43oxl1tlkoYUKIE9pRwL784OWiTXeCV5ApS+AMYEAlt7Fo03A2XfouvHmQ==", + "dependencies": { + "Castle.Core": "5.1.1" + } + }, + "xunit": { + "type": "Direct", + "requested": "[2.9.3, )", + "resolved": "2.9.3", + "contentHash": "TlXQBinK35LpOPKHAqbLY4xlEen9TBafjs0V5KnA4wZsoQLQJiirCR4CbIXvOH8NzkW4YeJKP5P/Bnrodm0h9Q==", + "dependencies": { + "xunit.analyzers": "1.18.0", + "xunit.assert": "2.9.3", + "xunit.core": "[2.9.3]" + } + }, + "xunit.runner.visualstudio": { + "type": "Direct", + "requested": "[2.8.2, )", + "resolved": "2.8.2", + "contentHash": "vm1tbfXhFmjFMUmS4M0J0ASXz3/U5XvXBa6DOQUL3fEz4Vt6YPhv+ESCarx6M6D+9kJkJYZKCNvJMas1+nVfmQ==" + }, + "Castle.Core": { + "type": "Transitive", + "resolved": "5.1.1", + "contentHash": "rpYtIczkzGpf+EkZgDr9CClTdemhsrwA/W5hMoPjLkRFnXzH44zDLoovXeKtmxb1ykXK9aJVODSpiJml8CTw2g==", + "dependencies": { + "System.Diagnostics.EventLog": "6.0.0" + } + }, + "Microsoft.CodeAnalysis.Analyzers": { + "type": "Transitive", + "resolved": "3.3.4", + "contentHash": "AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==" + }, + "Microsoft.CodeAnalysis.Common": { + "type": "Transitive", + "resolved": "4.9.2", + "contentHash": "M5PThug7b2AdxL7xKmQs50KzAQTl9jENw5jMT3iUt16k+DAFlw1S87juU3UuPs3gvBm8trMBSOEvSFDr31c9Vw==", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.4", + "System.Collections.Immutable": "8.0.0", + "System.Reflection.Metadata": "8.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Microsoft.CodeAnalysis.CSharp": { + "type": "Transitive", + "resolved": "4.9.2", + "contentHash": "HGIo7E9Mf3exAJbUdYpDFfLoYkSVaHDJXPyusWTYUTBaOPCowGw+Gap5McE1w+K+ryIXre72oiqL88sQHmHBmg==", + "dependencies": { + "Microsoft.CodeAnalysis.Common": "[4.9.2]" + } + }, + "Microsoft.CodeCoverage": { + "type": "Transitive", + "resolved": "17.12.0", + "contentHash": "4svMznBd5JM21JIG2xZKGNanAHNXplxf/kQDFfLHXQ3OnpJkayRK/TjacFjA+EYmoyuNXHo/sOETEfcYtAzIrA==" + }, + "Microsoft.TestPlatform.TestHost": { + "type": "Transitive", + "resolved": "17.12.0", + "contentHash": "MiPEJQNyADfwZ4pJNpQex+t9/jOClBGMiCiVVFuELCMSX2nmNfvUor3uFVxNNCg30uxDP8JDYfPnMXQzsfzYyg==", + "dependencies": { + "Microsoft.TestPlatform.ObjectModel": "17.12.0", + "Newtonsoft.Json": "13.0.1" + } + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.1", + "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Diagnostics.EventLog": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "lcyUiXTsETK2ALsZrX+nWuHSIQeazhqPphLfaRxzdGaG93+0kELqpgEHtwWOlQe7+jSFnKwaCAgL4kjeZCQJnw==" + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==", + "dependencies": { + "System.Collections.Immutable": "8.0.0" + } + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + }, + "System.Text.Json": { + "type": "Transitive", + "resolved": "6.0.11", + "contentHash": "xqC1HIbJMBFhrpYs76oYP+NAskNVjc6v73HqLal7ECRDPIp4oRU5pPavkD//vNactCn9DA2aaald/I5N+uZ5/g==" + }, + "xunit.abstractions": { + "type": "Transitive", + "resolved": "2.0.3", + "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg==" + }, + "xunit.analyzers": { + "type": "Transitive", + "resolved": "1.18.0", + "contentHash": "OtFMHN8yqIcYP9wcVIgJrq01AfTxijjAqVDy/WeQVSyrDC1RzBWeQPztL49DN2syXRah8TYnfvk035s7L95EZQ==" + }, + "xunit.assert": { + "type": "Transitive", + "resolved": "2.9.3", + "contentHash": "/Kq28fCE7MjOV42YLVRAJzRF0WmEqsmflm0cfpMjGtzQ2lR5mYVj1/i0Y8uDAOLczkL3/jArrwehfMD0YogMAA==" + }, + "xunit.core": { + "type": "Transitive", + "resolved": "2.9.3", + "contentHash": "BiAEvqGvyme19wE0wTKdADH+NloYqikiU0mcnmiNyXaF9HyHmE6sr/3DC5vnBkgsWaE6yPyWszKSPSApWdRVeQ==", + "dependencies": { + "xunit.extensibility.core": "[2.9.3]", + "xunit.extensibility.execution": "[2.9.3]" + } + }, + "xunit.extensibility.core": { + "type": "Transitive", + "resolved": "2.9.3", + "contentHash": "kf3si0YTn2a8J8eZNb+zFpwfoyvIrQ7ivNk5ZYA5yuYk1bEtMe4DxJ2CF/qsRgmEnDr7MnW1mxylBaHTZ4qErA==", + "dependencies": { + "xunit.abstractions": "2.0.3" + } + }, + "xunit.extensibility.execution": { + "type": "Transitive", + "resolved": "2.9.3", + "contentHash": "yMb6vMESlSrE3Wfj7V6cjQ3S4TXdXpRqYeNEI3zsX31uTsGMJjEw6oD5F5u1cHnMptjhEECnmZSsPxB6ChZHDQ==", + "dependencies": { + "xunit.extensibility.core": "[2.9.3]" + } + }, + "schema.net": { + "type": "Project", + "dependencies": { + "Microsoft.CodeAnalysis.CSharp": "[4.9.2, )", + "System.Text.Json": "[6.0.11, )" + } + } + }, + "net8.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, + "JunitXml.TestLogger": { + "type": "Direct", + "requested": "[3.0.134, )", + "resolved": "3.0.134", + "contentHash": "KoZInijT7rUEXGEOGUQfzLBZFaA65A7g6AhosHCI/aPuqxYMq40wUOO3kynor8QQhbgU+lpLFmhAxNb3+JoCfQ==" + }, + "Microsoft.CodeAnalysis.NetAnalyzers": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "DxiTgkCl3CGq1rYmBX2wjY7XGbxiBdL4J+/AJIAFLKy5z70NxhnVRnPghnicXZ8oF6JKVXlW3xwznRbI3ioEKg==" + }, + "Microsoft.NET.Test.Sdk": { + "type": "Direct", + "requested": "[17.12.0, )", + "resolved": "17.12.0", + "contentHash": "kt/PKBZ91rFCWxVIJZSgVLk+YR+4KxTuHf799ho8WNiK5ZQpJNAEZCAWX86vcKrs+DiYjiibpYKdGZP6+/N17w==", + "dependencies": { + "Microsoft.CodeCoverage": "17.12.0", + "Microsoft.TestPlatform.TestHost": "17.12.0" + } + }, + "Microsoft.TestPlatform.ObjectModel": { + "type": "Direct", + "requested": "[17.12.0, )", + "resolved": "17.12.0", + "contentHash": "TDqkTKLfQuAaPcEb3pDDWnh7b3SyZF+/W9OZvWFp6eJCIiiYFdSB6taE2I6tWrFw5ywhzOb6sreoGJTI6m3rSQ==", + "dependencies": { + "System.Reflection.Metadata": "1.6.0" + } + }, + "Microsoft.VisualStudio.Threading.Analyzers": { + "type": "Direct", + "requested": "[17.12.19, )", + "resolved": "17.12.19", + "contentHash": "v3IYeedjoktvZ+GqYmLudxZJngmf/YWIxNT2Uy6QMMN19cvw+nkWoip1Gr1RtnFkUo1MPUVMis4C8Kj8d8DpSQ==" + }, + "MinVer": { + "type": "Direct", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "YNVAW3loCFW4kTwensApaZUl+7xREK75QQNOFSbsbXx2sCSm9/IHBjUHsJGn3u0UA5r/sAqrdYBNUlOFfLhUrA==" + }, + "Moq": { + "type": "Direct", + "requested": "[4.20.72, )", + "resolved": "4.20.72", + "contentHash": "EA55cjyNn8eTNWrgrdZJH5QLFp2L43oxl1tlkoYUKIE9pRwL784OWiTXeCV5ApS+AMYEAlt7Fo03A2XfouvHmQ==", + "dependencies": { + "Castle.Core": "5.1.1" + } + }, + "xunit": { + "type": "Direct", + "requested": "[2.9.3, )", + "resolved": "2.9.3", + "contentHash": "TlXQBinK35LpOPKHAqbLY4xlEen9TBafjs0V5KnA4wZsoQLQJiirCR4CbIXvOH8NzkW4YeJKP5P/Bnrodm0h9Q==", + "dependencies": { + "xunit.analyzers": "1.18.0", + "xunit.assert": "2.9.3", + "xunit.core": "[2.9.3]" + } + }, + "xunit.runner.visualstudio": { + "type": "Direct", + "requested": "[2.8.2, )", + "resolved": "2.8.2", + "contentHash": "vm1tbfXhFmjFMUmS4M0J0ASXz3/U5XvXBa6DOQUL3fEz4Vt6YPhv+ESCarx6M6D+9kJkJYZKCNvJMas1+nVfmQ==" + }, + "Castle.Core": { + "type": "Transitive", + "resolved": "5.1.1", + "contentHash": "rpYtIczkzGpf+EkZgDr9CClTdemhsrwA/W5hMoPjLkRFnXzH44zDLoovXeKtmxb1ykXK9aJVODSpiJml8CTw2g==", + "dependencies": { + "System.Diagnostics.EventLog": "6.0.0" + } + }, + "Microsoft.CodeAnalysis.Analyzers": { + "type": "Transitive", + "resolved": "3.3.4", + "contentHash": "AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==" + }, + "Microsoft.CodeAnalysis.Common": { + "type": "Transitive", + "resolved": "4.12.0", + "contentHash": "c1kNYihL2gdcuU1dqm8R8YeA4YkB43TpU3pa2r66Uooh6AAhRtENzj9A4Kj0a+H8JDDyuTjNZql9XlVUzV+UjA==", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.4", + "System.Collections.Immutable": "8.0.0", + "System.Reflection.Metadata": "8.0.0" + } + }, + "Microsoft.CodeAnalysis.CSharp": { + "type": "Transitive", + "resolved": "4.12.0", + "contentHash": "30vVQ1MizeC22iEdEvI2w0eTIYG43/L20yBzuQH01xKzJgHAoWehzI2F8u07o4mXh4DGMOjQF7aEm0zzvsG3Mg==", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.4", + "Microsoft.CodeAnalysis.Common": "[4.12.0]", + "System.Collections.Immutable": "8.0.0", + "System.Reflection.Metadata": "8.0.0" + } + }, + "Microsoft.CodeCoverage": { + "type": "Transitive", + "resolved": "17.12.0", + "contentHash": "4svMznBd5JM21JIG2xZKGNanAHNXplxf/kQDFfLHXQ3OnpJkayRK/TjacFjA+EYmoyuNXHo/sOETEfcYtAzIrA==" + }, + "Microsoft.TestPlatform.TestHost": { + "type": "Transitive", + "resolved": "17.12.0", + "contentHash": "MiPEJQNyADfwZ4pJNpQex+t9/jOClBGMiCiVVFuELCMSX2nmNfvUor3uFVxNNCg30uxDP8JDYfPnMXQzsfzYyg==", + "dependencies": { + "Microsoft.TestPlatform.ObjectModel": "17.12.0", + "Newtonsoft.Json": "13.0.1" + } + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.1", + "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==" + }, + "System.Diagnostics.EventLog": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "lcyUiXTsETK2ALsZrX+nWuHSIQeazhqPphLfaRxzdGaG93+0kELqpgEHtwWOlQe7+jSFnKwaCAgL4kjeZCQJnw==" + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==", + "dependencies": { + "System.Collections.Immutable": "8.0.0" + } + }, + "System.Text.Json": { + "type": "Transitive", + "resolved": "8.0.5", + "contentHash": "0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg==" + }, + "xunit.abstractions": { + "type": "Transitive", + "resolved": "2.0.3", + "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg==" + }, + "xunit.analyzers": { + "type": "Transitive", + "resolved": "1.18.0", + "contentHash": "OtFMHN8yqIcYP9wcVIgJrq01AfTxijjAqVDy/WeQVSyrDC1RzBWeQPztL49DN2syXRah8TYnfvk035s7L95EZQ==" + }, + "xunit.assert": { + "type": "Transitive", + "resolved": "2.9.3", + "contentHash": "/Kq28fCE7MjOV42YLVRAJzRF0WmEqsmflm0cfpMjGtzQ2lR5mYVj1/i0Y8uDAOLczkL3/jArrwehfMD0YogMAA==" + }, + "xunit.core": { + "type": "Transitive", + "resolved": "2.9.3", + "contentHash": "BiAEvqGvyme19wE0wTKdADH+NloYqikiU0mcnmiNyXaF9HyHmE6sr/3DC5vnBkgsWaE6yPyWszKSPSApWdRVeQ==", + "dependencies": { + "xunit.extensibility.core": "[2.9.3]", + "xunit.extensibility.execution": "[2.9.3]" + } + }, + "xunit.extensibility.core": { + "type": "Transitive", + "resolved": "2.9.3", + "contentHash": "kf3si0YTn2a8J8eZNb+zFpwfoyvIrQ7ivNk5ZYA5yuYk1bEtMe4DxJ2CF/qsRgmEnDr7MnW1mxylBaHTZ4qErA==", + "dependencies": { + "xunit.abstractions": "2.0.3" + } + }, + "xunit.extensibility.execution": { + "type": "Transitive", + "resolved": "2.9.3", + "contentHash": "yMb6vMESlSrE3Wfj7V6cjQ3S4TXdXpRqYeNEI3zsX31uTsGMJjEw6oD5F5u1cHnMptjhEECnmZSsPxB6ChZHDQ==", + "dependencies": { + "xunit.extensibility.core": "[2.9.3]" + } + }, + "schema.net": { + "type": "Project", + "dependencies": { + "Microsoft.CodeAnalysis.CSharp": "[4.12.0, )", + "System.Text.Json": "[8.0.5, )" + } + } + } + } +} \ No newline at end of file diff --git a/Tools/.editorconfig b/Tools/.editorconfig index 5b7999d4..126042b6 100644 --- a/Tools/.editorconfig +++ b/Tools/.editorconfig @@ -43,3 +43,6 @@ dotnet_diagnostic.SA1602.severity = none # Justification: Comments turned off # https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1633.md dotnet_diagnostic.SA1633.severity = none + +# CA1515: Consider making public types internal +dotnet_diagnostic.CA1515.severity = none \ No newline at end of file diff --git a/Tools/Schema.NET.Tool/CustomOverrides/AddNumberTypeToMediaObjectHeightAndWidth.cs b/Tools/Schema.NET.Tool/CustomOverrides/AddNumberTypeToMediaObjectHeightAndWidth.cs index a5fca7e9..3d2bf0fc 100644 --- a/Tools/Schema.NET.Tool/CustomOverrides/AddNumberTypeToMediaObjectHeightAndWidth.cs +++ b/Tools/Schema.NET.Tool/CustomOverrides/AddNumberTypeToMediaObjectHeightAndWidth.cs @@ -10,7 +10,7 @@ public class AddNumberTypeToMediaObjectHeightAndWidth : IClassOverride public bool CanOverride(GeneratorSchemaClass c) { #if NET6_0_OR_GREATER - ArgumentNullException.ThrowIfNull(items); + ArgumentNullException.ThrowIfNull(c); #else if (c is null) { diff --git a/Tools/Schema.NET.Tool/CustomOverrides/AddQueryInputPropertyToSearchAction.cs b/Tools/Schema.NET.Tool/CustomOverrides/AddQueryInputPropertyToSearchAction.cs index 90c2a11e..a5f7a961 100644 --- a/Tools/Schema.NET.Tool/CustomOverrides/AddQueryInputPropertyToSearchAction.cs +++ b/Tools/Schema.NET.Tool/CustomOverrides/AddQueryInputPropertyToSearchAction.cs @@ -33,7 +33,7 @@ public void Override(GeneratorSchemaClass c) var property = new GeneratorSchemaProperty(c, "query-input", "QueryInput", "Gets or sets the query input search parameter."); property.Types.AddRange( - new List() + new List { new GeneratorSchemaPropertyType("Text", "string"), new GeneratorSchemaPropertyType("PropertyValueSpecification", "PropertyValueSpecification"), diff --git a/Tools/Schema.NET.Tool/Models/SchemaObject.cs b/Tools/Schema.NET.Tool/Models/SchemaObject.cs index 5a3e6f73..b01b7248 100644 --- a/Tools/Schema.NET.Tool/Models/SchemaObject.cs +++ b/Tools/Schema.NET.Tool/Models/SchemaObject.cs @@ -6,8 +6,8 @@ namespace Schema.NET.Tool.Models; public abstract class SchemaObject { - private static readonly HashSet PrimitiveTypes = new() - { + private static readonly HashSet PrimitiveTypes = + [ "QualitativeValue", "Enumeration", "Boolean", @@ -27,8 +27,8 @@ public abstract class SchemaObject "Time", "URL", "DataType", - "PronounceableText", - }; + "PronounceableText" + ]; protected SchemaObject(string layer, Uri id, string label, string comment) { diff --git a/Tools/Schema.NET.Tool/Repositories/SchemaPropertyJsonConverter.cs b/Tools/Schema.NET.Tool/Repositories/SchemaPropertyJsonConverter.cs index 6c956e7c..2e06620d 100644 --- a/Tools/Schema.NET.Tool/Repositories/SchemaPropertyJsonConverter.cs +++ b/Tools/Schema.NET.Tool/Repositories/SchemaPropertyJsonConverter.cs @@ -28,7 +28,7 @@ public override List Read(ref Utf8JsonReader reader, Type typeToCo return graphArray.Select(Read).Where(x => x is not null).ToList()!; } - return new List(); + return []; } public override void Write(Utf8JsonWriter writer, List value, JsonSerializerOptions options) => diff --git a/Tools/Schema.NET.Tool/Repositories/SchemaRepository.cs b/Tools/Schema.NET.Tool/Repositories/SchemaRepository.cs index 71bc67c8..5d8ff603 100644 --- a/Tools/Schema.NET.Tool/Repositories/SchemaRepository.cs +++ b/Tools/Schema.NET.Tool/Repositories/SchemaRepository.cs @@ -4,9 +4,8 @@ namespace Schema.NET.Tool.Repositories; using System.Collections.Generic; using System.Linq; using System.Text.Json; -using System.Text.Json.Serialization; using Microsoft.CodeAnalysis.Text; -using Schema.NET.Tool.Models; +using Models; public class SchemaRepository : ISchemaRepository { @@ -14,16 +13,24 @@ public class SchemaRepository : ISchemaRepository public SchemaRepository(SourceText jsonLd) => this.jsonLd = jsonLd; - public (IEnumerable Classes, IEnumerable Properties, IEnumerable EnumerationValues) GetObjects() + public static readonly JsonSerializerOptions DefaultOptions = new() { - var schemaObjects = Deserialize>(this.jsonLd.ToString(), new SchemaPropertyJsonConverter()) ?? - throw new InvalidOperationException("No schema objects found."); + PropertyNamingPolicy = JsonNamingPolicy.CamelCase, + Converters = { new SchemaPropertyJsonConverter() } + }; + + public (IEnumerable Classes, IEnumerable Properties, + IEnumerable EnumerationValues) GetObjects() + { + var schemaObjects = Deserialize>(this.jsonLd.ToString()) ?? + throw new InvalidOperationException("No schema objects found."); var schemaClasses = schemaObjects.OfType().ToArray(); foreach (var schemaClass in schemaClasses) { - schemaClass.SubClassOf.AddRange(schemaClasses.Where(x => x.Id is not null && schemaClass.SubClassOfIds.Contains(x.Id))); + schemaClass.SubClassOf.AddRange(schemaClasses.Where(x => + x.Id is not null && schemaClass.SubClassOfIds.Contains(x.Id))); } return (schemaClasses, @@ -31,13 +38,5 @@ public class SchemaRepository : ISchemaRepository schemaObjects.OfType().ToArray()); } - private static T? Deserialize(string json, JsonConverter converter) - { - var options = new JsonSerializerOptions - { - PropertyNamingPolicy = JsonNamingPolicy.CamelCase, - }; - options.Converters.Add(converter); - return JsonSerializer.Deserialize(json, options); - } + private static T? Deserialize(string json) => JsonSerializer.Deserialize(json, DefaultOptions); } diff --git a/Tools/Schema.NET.Tool/Schema.NET.Tool.csproj b/Tools/Schema.NET.Tool/Schema.NET.Tool.csproj index a885d530..7b15254a 100644 --- a/Tools/Schema.NET.Tool/Schema.NET.Tool.csproj +++ b/Tools/Schema.NET.Tool/Schema.NET.Tool.csproj @@ -1,62 +1,42 @@ - netstandard2.0 + net8.0;net6.0;netstandard2.0 false true + true - - - + + + - - - - - - - - - - + + + - - - - - - - - - + + + - - $(GetTargetPathDependsOn);GetDependencyTargetPaths - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/Tools/Schema.NET.Tool/SchemaSourceGenerator.cs b/Tools/Schema.NET.Tool/SchemaSourceGenerator.cs index d8e2d462..caab512b 100644 --- a/Tools/Schema.NET.Tool/SchemaSourceGenerator.cs +++ b/Tools/Schema.NET.Tool/SchemaSourceGenerator.cs @@ -37,12 +37,11 @@ private static void Generate(SourceProductionContext context, (AnalyzerConfigOpt var schemaRepository = new SchemaRepository(schemaJsonLdData); var schemaService = new SchemaService( - new IClassOverride[] - { + [ new AddQueryInputPropertyToSearchAction(), new AddNumberTypeToMediaObjectHeightAndWidth(), - new RenameEventProperty(), - }, + new RenameEventProperty() + ], Array.Empty(), schemaRepository, IncludePendingSchemaObjects(data.Options)); diff --git a/Tools/Schema.NET.Tool/Services/SchemaService.cs b/Tools/Schema.NET.Tool/Services/SchemaService.cs index c13fbf01..f4b1beba 100644 --- a/Tools/Schema.NET.Tool/Services/SchemaService.cs +++ b/Tools/Schema.NET.Tool/Services/SchemaService.cs @@ -10,10 +10,15 @@ namespace Schema.NET.Tool.Services; using Schema.NET.Tool.GeneratorModels; using Schema.NET.Tool.Repositories; -public class SchemaService +public partial class SchemaService { - private static readonly Regex StartsWithNumber = new("^[0-9]", RegexOptions.Compiled); - +#if NET8_0_OR_GREATER + [GeneratedRegex("^[0-9]", RegexOptions.Compiled)] + private static partial Regex StartsWithNumber(); +#else + private static readonly Regex StartsWithNumberRegex = new Regex("^[0-9]", RegexOptions.Compiled); + private static Regex StartsWithNumber() => StartsWithNumberRegex; +#endif private readonly IEnumerable classOverrides; private readonly IEnumerable enumerationOverrides; private readonly ISchemaRepository schemaRepository; @@ -63,7 +68,7 @@ public IEnumerable GetObjects() { if (!classPropertyMap.TryGetValue(schemaClass.Id, out var classProperties)) { - classProperties = Array.Empty(); + classProperties = []; } var @class = TranslateClass(schemaClass, schemaClasses, classProperties, isEnumMap, knownSchemaClasses, this.includePending); @@ -158,9 +163,9 @@ private static void SetPropertyOrder(List classes) property.Order = propertyOrder; var upperPropertyName = property.Name.ToUpperInvariant(); - if (PropertyNameComparer.KnownPropertyNameOrders.ContainsKey(upperPropertyName)) + if (PropertyNameComparer.KnownPropertyNameOrders.TryGetValue(upperPropertyName, out var order)) { - property.Order = PropertyNameComparer.KnownPropertyNameOrders[upperPropertyName]; + property.Order = order; } ++propertyOrder; @@ -218,7 +223,7 @@ private static GeneratorSchemaClass TranslateClass( HashSet knownSchemaClasses, bool includePending) { - var className = StartsWithNumber.IsMatch(schemaClass.Label) ? $"Type{schemaClass.Label}" : schemaClass.Label; + var className = StartsWithNumber().IsMatch(schemaClass.Label) ? $"Type{schemaClass.Label}" : schemaClass.Label; var @class = new GeneratorSchemaClass(schemaClass.Layer, schemaClass.Id, className, schemaClass.Comment); @class.Parents.AddRange(schemaClass.SubClassOfIds @@ -294,47 +299,47 @@ private static string GetPropertyName(string name) return stringBuilder.ToString(); } - private static IEnumerable GetCSharpTypeStrings(string propertyName, string typeName, bool isTypeEnum) + private static string[] GetCSharpTypeStrings(string propertyName, string typeName, bool isTypeEnum) { switch (typeName) { case "Boolean": - return new string[] { "bool?" }; + return ["bool?"]; case "DataType": - return new string[] { "bool?", "int?", "decimal?", "double?", "DateTime?", "TimeSpan?", "string" }; + return ["bool?", "int?", "decimal?", "double?", "DateTime?", "TimeSpan?", "string"]; case "Date": - return new string[] { "int?", "DateTime?" }; + return ["int?", "DateTime?"]; case "DateTime": - return new string[] { "DateTimeOffset?" }; + return ["DateTimeOffset?"]; case "Integer": case "Number" when #if NETSTANDARD2_0 - propertyName.Contains("NumberOf") || + propertyName.Contains("NumberOf") || propertyName.Contains("Year") || propertyName.Contains("Count") || propertyName.Contains("Age"): #else - propertyName.Contains("NumberOf", StringComparison.Ordinal) || - propertyName.Contains("Year", StringComparison.Ordinal) || - propertyName.Contains("Count", StringComparison.Ordinal) || - propertyName.Contains("Age", StringComparison.Ordinal): + propertyName.Contains("NumberOf", StringComparison.Ordinal) || + propertyName.Contains("Year", StringComparison.Ordinal) || + propertyName.Contains("Count", StringComparison.Ordinal) || + propertyName.Contains("Age", StringComparison.Ordinal): #endif - return new string[] { "int?" }; + return ["int?"]; case "Number" when #if NETSTANDARD2_0 - propertyName.Contains("Price") || + propertyName.Contains("Price") || propertyName.Contains("Amount") || propertyName.Contains("Salary") || propertyName.Contains("Discount"): #else - propertyName.Contains("Price", StringComparison.Ordinal) || - propertyName.Contains("Amount", StringComparison.Ordinal) || - propertyName.Contains("Salary", StringComparison.Ordinal) || - propertyName.Contains("Discount", StringComparison.Ordinal): + propertyName.Contains("Price", StringComparison.Ordinal) || + propertyName.Contains("Amount", StringComparison.Ordinal) || + propertyName.Contains("Salary", StringComparison.Ordinal) || + propertyName.Contains("Discount", StringComparison.Ordinal): #endif - return new string[] { "decimal?" }; + return ["decimal?"]; case "Number": - return new string[] { "double?" }; + return ["double?"]; case "Text": case "Distance": case "Energy": @@ -342,20 +347,20 @@ private static IEnumerable GetCSharpTypeStrings(string propertyName, str case "XPathType": case "CssSelectorType": case "PronounceableText": - return new string[] { "string" }; + return ["string"]; case "Time": case "Duration": - return new string[] { "TimeSpan?" }; + return ["TimeSpan?"]; case "URL": - return new string[] { "Uri" }; + return ["Uri"]; default: if (isTypeEnum) { - return new string[] { typeName + "?" }; + return [typeName + "?"]; } else { - return new string[] { "I" + typeName }; + return ["I" + typeName]; } } } diff --git a/Tools/Schema.NET.Tool/SourceUtility.cs b/Tools/Schema.NET.Tool/SourceUtility.cs index b000b39d..1893ff60 100644 --- a/Tools/Schema.NET.Tool/SourceUtility.cs +++ b/Tools/Schema.NET.Tool/SourceUtility.cs @@ -7,10 +7,9 @@ namespace Schema.NET.Tool; using System.Text.RegularExpressions; using System.Xml; -public static class SourceUtility +public static partial class SourceUtility { private const char Space = ' '; - private static readonly Regex NewLineReplace = new("[\n ]{0,}\n[\n ]{0,}", RegexOptions.Compiled); public static string Render(string value, int indent = 0) { @@ -24,10 +23,11 @@ public static string Render(string value, int indent = 0) #endif var indentString = new string(Space, indent); - return indentString + value.Replace(Environment.NewLine, Environment.NewLine + indentString); + return indentString + EnvironmentAgnosticNewLineReplace().Replace(value, "$1" + indentString); } - public static string RenderItems(bool canRender, IReadOnlyCollection items, Func action, int indent = 0, SourceDelimeter sourceDelimeter = SourceDelimeter.None) + public static string RenderItems(bool canRender, IReadOnlyCollection items, Func action, + int indent = 0, SourceDelimeter sourceDelimeter = SourceDelimeter.None) { if (canRender) { @@ -37,11 +37,12 @@ public static string RenderItems(bool canRender, IReadOnlyCollection items return string.Empty; } - public static string RenderItems(IReadOnlyCollection items, Func action, int indent = 0, SourceDelimeter sourceDelimeter = SourceDelimeter.None) + public static string RenderItems(IReadOnlyCollection items, Func action, int indent = 0, + SourceDelimeter sourceDelimeter = SourceDelimeter.None) { #if NET6_0_OR_GREATER - ArgumentNullException.ThrowIfNull(items); - ArgumentNullException.ThrowIfNull(action); + ArgumentNullException.ThrowIfNull(items); + ArgumentNullException.ThrowIfNull(action); #else if (items is null) { @@ -58,7 +59,7 @@ public static string RenderItems(IReadOnlyCollection items, Func NewLineRegex; + + private static readonly Regex EnvironmentAgnosticNewLineRegex = new Regex("(\r?\n)", RegexOptions.Compiled); + private static Regex EnvironmentAgnosticNewLineReplace() => EnvironmentAgnosticNewLineRegex; +#endif } diff --git a/Tools/Schema.NET.Tool/packages.lock.json b/Tools/Schema.NET.Tool/packages.lock.json new file mode 100644 index 00000000..e7f837e2 --- /dev/null +++ b/Tools/Schema.NET.Tool/packages.lock.json @@ -0,0 +1,297 @@ +{ + "version": 1, + "dependencies": { + ".NETStandard,Version=v2.0": { + "Microsoft.CodeAnalysis.CSharp": { + "type": "Direct", + "requested": "[4.5.0, )", + "resolved": "4.5.0", + "contentHash": "cM59oMKAOxvdv76bdmaKPy5hfj+oR+zxikWoueEB7CwTko7mt9sVKZI8Qxlov0C/LuKEG+WQwifepqL3vuTiBQ==", + "dependencies": { + "Microsoft.CodeAnalysis.Common": "[4.5.0]" + } + }, + "Microsoft.CodeAnalysis.NetAnalyzers": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "DxiTgkCl3CGq1rYmBX2wjY7XGbxiBdL4J+/AJIAFLKy5z70NxhnVRnPghnicXZ8oF6JKVXlW3xwznRbI3ioEKg==" + }, + "Microsoft.VisualStudio.Threading.Analyzers": { + "type": "Direct", + "requested": "[17.12.19, )", + "resolved": "17.12.19", + "contentHash": "v3IYeedjoktvZ+GqYmLudxZJngmf/YWIxNT2Uy6QMMN19cvw+nkWoip1Gr1RtnFkUo1MPUVMis4C8Kj8d8DpSQ==" + }, + "MinVer": { + "type": "Direct", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "YNVAW3loCFW4kTwensApaZUl+7xREK75QQNOFSbsbXx2sCSm9/IHBjUHsJGn3u0UA5r/sAqrdYBNUlOFfLhUrA==" + }, + "NETStandard.Library": { + "type": "Direct", + "requested": "[2.0.3, )", + "resolved": "2.0.3", + "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0" + } + }, + "System.Text.Json": { + "type": "Direct", + "requested": "[6.0.11, )", + "resolved": "6.0.11", + "contentHash": "xqC1HIbJMBFhrpYs76oYP+NAskNVjc6v73HqLal7ECRDPIp4oRU5pPavkD//vNactCn9DA2aaald/I5N+uZ5/g==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encodings.Web": "6.0.1", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.Bcl.AsyncInterfaces": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "UcSjPsst+DfAdJGVDsu346FX0ci0ah+lw3WRtn18NUwEqRt70HaOQ7lI72vy3+1LxtqI3T5GWwV39rQSrCzAeg==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.CodeAnalysis.Analyzers": { + "type": "Transitive", + "resolved": "3.3.3", + "contentHash": "j/rOZtLMVJjrfLRlAMckJLPW/1rze9MT1yfWqSIbUPGRu1m1P0fuo9PmqapwsmePfGB5PJrudQLvmUOAMF0DqQ==" + }, + "Microsoft.CodeAnalysis.Common": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "lwAbIZNdnY0SUNoDmZHkVUwLO8UyNnyyh1t/4XsbFxi4Ounb3xszIYZaWhyj5ZjyfcwqwmtMbE7fUTVCqQEIdQ==", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.3", + "System.Collections.Immutable": "6.0.0", + "System.Memory": "4.5.5", + "System.Reflection.Metadata": "6.0.1", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encoding.CodePages": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.NETCore.Platforms": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" + }, + "System.Buffers": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", + "dependencies": { + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.5", + "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Numerics.Vectors": "4.4.0", + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + }, + "System.Numerics.Vectors": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "III/lNMSn0ZRBuM9m5Cgbiho5j81u0FAEagFX5ta2DKbljZ3T0IpD8j+BIiHQPeKqJppWS9bGEp6JnKnWKze0g==", + "dependencies": { + "System.Collections.Immutable": "6.0.0" + } + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + }, + "System.Text.Encoding.CodePages": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==", + "dependencies": { + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Text.Encodings.Web": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "E5M5AE2OUTlCrf4omZvzzziUJO9CofBl+lXHaN5IKePPJvHqYFYYpaDPgCpR4VwaFbEebfnjOxxEBtPtsqAxpQ==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Threading.Tasks.Extensions": { + "type": "Transitive", + "resolved": "4.5.4", + "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + } + }, + "net6.0": { + "Microsoft.CodeAnalysis.CSharp": { + "type": "Direct", + "requested": "[4.9.2, )", + "resolved": "4.9.2", + "contentHash": "HGIo7E9Mf3exAJbUdYpDFfLoYkSVaHDJXPyusWTYUTBaOPCowGw+Gap5McE1w+K+ryIXre72oiqL88sQHmHBmg==", + "dependencies": { + "Microsoft.CodeAnalysis.Common": "[4.9.2]" + } + }, + "Microsoft.CodeAnalysis.NetAnalyzers": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "DxiTgkCl3CGq1rYmBX2wjY7XGbxiBdL4J+/AJIAFLKy5z70NxhnVRnPghnicXZ8oF6JKVXlW3xwznRbI3ioEKg==" + }, + "Microsoft.VisualStudio.Threading.Analyzers": { + "type": "Direct", + "requested": "[17.12.19, )", + "resolved": "17.12.19", + "contentHash": "v3IYeedjoktvZ+GqYmLudxZJngmf/YWIxNT2Uy6QMMN19cvw+nkWoip1Gr1RtnFkUo1MPUVMis4C8Kj8d8DpSQ==" + }, + "MinVer": { + "type": "Direct", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "YNVAW3loCFW4kTwensApaZUl+7xREK75QQNOFSbsbXx2sCSm9/IHBjUHsJGn3u0UA5r/sAqrdYBNUlOFfLhUrA==" + }, + "System.Text.Json": { + "type": "Direct", + "requested": "[6.0.11, )", + "resolved": "6.0.11", + "contentHash": "xqC1HIbJMBFhrpYs76oYP+NAskNVjc6v73HqLal7ECRDPIp4oRU5pPavkD//vNactCn9DA2aaald/I5N+uZ5/g==" + }, + "Microsoft.CodeAnalysis.Analyzers": { + "type": "Transitive", + "resolved": "3.3.4", + "contentHash": "AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==" + }, + "Microsoft.CodeAnalysis.Common": { + "type": "Transitive", + "resolved": "4.9.2", + "contentHash": "M5PThug7b2AdxL7xKmQs50KzAQTl9jENw5jMT3iUt16k+DAFlw1S87juU3UuPs3gvBm8trMBSOEvSFDr31c9Vw==", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.4", + "System.Collections.Immutable": "8.0.0", + "System.Reflection.Metadata": "8.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==", + "dependencies": { + "System.Collections.Immutable": "8.0.0" + } + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + } + }, + "net8.0": { + "Microsoft.CodeAnalysis.CSharp": { + "type": "Direct", + "requested": "[4.11.0, )", + "resolved": "4.11.0", + "contentHash": "6XYi2EusI8JT4y2l/F3VVVS+ISoIX9nqHsZRaG6W5aFeJ5BEuBosHfT/ABb73FN0RZ1Z3cj2j7cL28SToJPXOw==", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.4", + "Microsoft.CodeAnalysis.Common": "[4.11.0]", + "System.Collections.Immutable": "8.0.0", + "System.Reflection.Metadata": "8.0.0" + } + }, + "Microsoft.CodeAnalysis.NetAnalyzers": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "DxiTgkCl3CGq1rYmBX2wjY7XGbxiBdL4J+/AJIAFLKy5z70NxhnVRnPghnicXZ8oF6JKVXlW3xwznRbI3ioEKg==" + }, + "Microsoft.VisualStudio.Threading.Analyzers": { + "type": "Direct", + "requested": "[17.12.19, )", + "resolved": "17.12.19", + "contentHash": "v3IYeedjoktvZ+GqYmLudxZJngmf/YWIxNT2Uy6QMMN19cvw+nkWoip1Gr1RtnFkUo1MPUVMis4C8Kj8d8DpSQ==" + }, + "MinVer": { + "type": "Direct", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "YNVAW3loCFW4kTwensApaZUl+7xREK75QQNOFSbsbXx2sCSm9/IHBjUHsJGn3u0UA5r/sAqrdYBNUlOFfLhUrA==" + }, + "System.Text.Json": { + "type": "Direct", + "requested": "[8.0.5, )", + "resolved": "8.0.5", + "contentHash": "0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg==" + }, + "Microsoft.CodeAnalysis.Analyzers": { + "type": "Transitive", + "resolved": "3.3.4", + "contentHash": "AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==" + }, + "Microsoft.CodeAnalysis.Common": { + "type": "Transitive", + "resolved": "4.11.0", + "contentHash": "djf8ujmqYImFgB04UGtcsEhHrzVqzHowS+EEl/Yunc5LdrYrZhGBWUTXoCF0NzYXJxtfuD+UVQarWpvrNc94Qg==", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.4", + "System.Collections.Immutable": "8.0.0", + "System.Reflection.Metadata": "8.0.0" + } + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==" + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==", + "dependencies": { + "System.Collections.Immutable": "8.0.0" + } + } + } + } +} \ No newline at end of file diff --git a/Tools/Schema.NET.Updater/Schema.NET.Updater.csproj b/Tools/Schema.NET.Updater/Schema.NET.Updater.csproj index 756cd2ad..bf51017f 100644 --- a/Tools/Schema.NET.Updater/Schema.NET.Updater.csproj +++ b/Tools/Schema.NET.Updater/Schema.NET.Updater.csproj @@ -2,7 +2,7 @@ Exe - net7.0 + net8.0 false diff --git a/Tools/Schema.NET.Updater/packages.lock.json b/Tools/Schema.NET.Updater/packages.lock.json new file mode 100644 index 00000000..d2ce9826 --- /dev/null +++ b/Tools/Schema.NET.Updater/packages.lock.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "dependencies": { + "net8.0": { + "Microsoft.CodeAnalysis.NetAnalyzers": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "DxiTgkCl3CGq1rYmBX2wjY7XGbxiBdL4J+/AJIAFLKy5z70NxhnVRnPghnicXZ8oF6JKVXlW3xwznRbI3ioEKg==" + }, + "Microsoft.VisualStudio.Threading.Analyzers": { + "type": "Direct", + "requested": "[17.12.19, )", + "resolved": "17.12.19", + "contentHash": "v3IYeedjoktvZ+GqYmLudxZJngmf/YWIxNT2Uy6QMMN19cvw+nkWoip1Gr1RtnFkUo1MPUVMis4C8Kj8d8DpSQ==" + }, + "MinVer": { + "type": "Direct", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "YNVAW3loCFW4kTwensApaZUl+7xREK75QQNOFSbsbXx2sCSm9/IHBjUHsJGn3u0UA5r/sAqrdYBNUlOFfLhUrA==" + } + } + } +} \ No newline at end of file diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 2dec08ea..64dc04c1 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -43,21 +43,16 @@ stages: steps: - checkout: self lfs: true - - task: UseDotNet@2 - displayName: "Install .NET Core 3.1 SDK" - inputs: - packageType: "sdk" - version: 3.1.x - task: UseDotNet@2 displayName: "Install .NET Core 6.0 SDK" inputs: packageType: "sdk" version: 6.0.x - task: UseDotNet@2 - displayName: "Install .NET Core SDK" + displayName: "Install .NET Core 8.0 SDK" inputs: packageType: "sdk" - useGlobalJson: true + version: 8.0.x - pwsh: "dotnet tool restore" displayName: "Dotnet Tool Restore" failOnStderr: true diff --git a/dotnet-tools.json b/dotnet-tools.json index eb8f1d6d..6c3c9381 100644 --- a/dotnet-tools.json +++ b/dotnet-tools.json @@ -3,7 +3,7 @@ "isRoot": true, "tools": { "cake.tool": { - "version": "3.1.0", + "version": "4.2.0", "commands": [ "dotnet-cake" ] diff --git a/global.json b/global.json index 937e33c8..c98625b3 100644 --- a/global.json +++ b/global.json @@ -1,7 +1,7 @@ { "sdk": { - "allowPrerelease": false, - "rollForward": "latestMajor", - "version": "7.0.401" + "version": "8.0.404", + "rollForward": "latestMinor", + "allowPrerelease": false } -} +} \ No newline at end of file