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