From bfb07f26b08159fa7e8937519da66f318f1a356c Mon Sep 17 00:00:00 2001 From: Andrii Voznesenskyi Date: Sun, 22 Sep 2024 05:05:10 +0200 Subject: [PATCH] (#32) webApi: update resolvers --- .../Formatters/JsonInputFormatter.cs | 23 +- .../src/Paralax.WebApi/Paralax.WebApi.csproj | 7 + .../ParalaxFormatterResolver.cs | 2 +- .../net9.0/Paralax.WebApi.deps.json | 651 ------------------ .../Paralax.WebApi/net9.0/Paralax.WebApi.dll | Bin 44032 -> 0 bytes 5 files changed, 25 insertions(+), 658 deletions(-) delete mode 100644 src/Paralax.WebApi/src/Paralax.WebApi/net9.0/Paralax.WebApi.deps.json delete mode 100644 src/Paralax.WebApi/src/Paralax.WebApi/net9.0/Paralax.WebApi.dll diff --git a/src/Paralax.WebApi/src/Paralax.WebApi/Formatters/JsonInputFormatter.cs b/src/Paralax.WebApi/src/Paralax.WebApi/Formatters/JsonInputFormatter.cs index 9f10099..c3d4530 100644 --- a/src/Paralax.WebApi/src/Paralax.WebApi/Formatters/JsonInputFormatter.cs +++ b/src/Paralax.WebApi/src/Paralax.WebApi/Formatters/JsonInputFormatter.cs @@ -11,14 +11,17 @@ namespace Paralax.WebApi.Formatters { internal class JsonInputFormatter : IInputFormatter { - private const string EmptyJson = "{}"; - private readonly ConcurrentDictionary _methods = new(); + private const string EmptyJson = "{}"; + private readonly ConcurrentDictionary _methods = new(); private readonly MethodInfo _deserializeMethod; public JsonInputFormatter() { + // Ensure that the correct Deserialize method is selected _deserializeMethod = typeof(NetJSON.NetJSON).GetMethods() - .Single(m => m.IsGenericMethod && m.Name == nameof(NetJSON.NetJSON.Deserialize)); + .Single(m => m.IsGenericMethod && m.Name == nameof(NetJSON.NetJSON.Deserialize) + && m.GetParameters().Length == 1 + && m.GetParameters()[0].ParameterType == typeof(string)); // Ensure it's the correct overload } public bool CanRead(InputFormatterContext context) @@ -47,10 +50,18 @@ public async Task ReadAsync(InputFormatterContext context) json = EmptyJson; } - // Use NetJSON to deserialize the JSON string - var result = method.Invoke(null, new object[] { json }); + try + { + // Use NetJSON to deserialize the JSON string + var result = method.Invoke(null, new object[] { json }); - return await InputFormatterResult.SuccessAsync(result); + return await InputFormatterResult.SuccessAsync(result); + } + catch (Exception ex) + { + // Handle deserialization errors + throw new InvalidOperationException("Invalid JSON format", ex); + } } } } diff --git a/src/Paralax.WebApi/src/Paralax.WebApi/Paralax.WebApi.csproj b/src/Paralax.WebApi/src/Paralax.WebApi/Paralax.WebApi.csproj index f258b80..9a34fda 100644 --- a/src/Paralax.WebApi/src/Paralax.WebApi/Paralax.WebApi.csproj +++ b/src/Paralax.WebApi/src/Paralax.WebApi/Paralax.WebApi.csproj @@ -14,6 +14,13 @@ + + + + <_Parameter1>Paralax.WebApi.Tests + + + diff --git a/src/Paralax.WebApi/src/Paralax.WebApi/ParalaxFormatterResolver.cs b/src/Paralax.WebApi/src/Paralax.WebApi/ParalaxFormatterResolver.cs index 836a106..c5dbb7b 100644 --- a/src/Paralax.WebApi/src/Paralax.WebApi/ParalaxFormatterResolver.cs +++ b/src/Paralax.WebApi/src/Paralax.WebApi/ParalaxFormatterResolver.cs @@ -13,7 +13,7 @@ internal sealed class ParalaxFormatterResolver : IJsonFormatterResolver // Resolvers that will be used if no custom formatter is available. private static readonly IJsonFormatterResolver[] Resolvers = { - StandardResolver.AllowPrivateCamelCase, + StandardResolver.CamelCase, // Use CamelCase as a standard fallback resolver }; public static List CustomFormatters { get; } = new List(); diff --git a/src/Paralax.WebApi/src/Paralax.WebApi/net9.0/Paralax.WebApi.deps.json b/src/Paralax.WebApi/src/Paralax.WebApi/net9.0/Paralax.WebApi.deps.json deleted file mode 100644 index 135da2a..0000000 --- a/src/Paralax.WebApi/src/Paralax.WebApi/net9.0/Paralax.WebApi.deps.json +++ /dev/null @@ -1,651 +0,0 @@ -{ - "runtimeTarget": { - "name": ".NETCoreApp,Version=v9.0", - "signature": "" - }, - "compilationOptions": {}, - "targets": { - ".NETCoreApp,Version=v9.0": { - "Paralax.WebApi/1.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Authorization": "8.0.8", - "Microsoft.AspNetCore.Http": "2.2.2", - "Microsoft.AspNetCore.Routing": "2.2.2", - "NetJSON": "1.4.4", - "Paralax": "1.0.104", - "Utf8Json": "1.3.7" - }, - "runtime": { - "Paralax.WebApi.dll": {} - } - }, - "Figletize/0.7.0.3": { - "runtime": { - "lib/netstandard2.0/Figletize.dll": { - "assemblyVersion": "0.7.0.3", - "fileVersion": "0.7.0.3" - } - } - }, - "Microsoft.AspNetCore.Authorization/8.0.8": { - "dependencies": { - "Microsoft.AspNetCore.Metadata": "8.0.8", - "Microsoft.Extensions.Logging.Abstractions": "8.0.1", - "Microsoft.Extensions.Options": "8.0.2" - } - }, - "Microsoft.AspNetCore.Http/2.2.2": { - "dependencies": { - "Microsoft.AspNetCore.Http.Abstractions": "2.2.0", - "Microsoft.AspNetCore.WebUtilities": "2.2.0", - "Microsoft.Extensions.ObjectPool": "2.2.0", - "Microsoft.Extensions.Options": "8.0.2", - "Microsoft.Net.Http.Headers": "2.2.0" - } - }, - "Microsoft.AspNetCore.Http.Abstractions/2.2.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Features": "2.2.0", - "System.Text.Encodings.Web": "6.0.0" - } - }, - "Microsoft.AspNetCore.Http.Extensions/2.2.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Abstractions": "2.2.0", - "Microsoft.Extensions.FileProviders.Abstractions": "2.2.0", - "Microsoft.Net.Http.Headers": "2.2.0", - "System.Buffers": "4.5.1" - } - }, - "Microsoft.AspNetCore.Http.Features/2.2.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "8.0.0" - } - }, - "Microsoft.AspNetCore.Metadata/8.0.8": {}, - "Microsoft.AspNetCore.Routing/2.2.2": { - "dependencies": { - "Microsoft.AspNetCore.Http.Extensions": "2.2.0", - "Microsoft.AspNetCore.Routing.Abstractions": "2.2.0", - "Microsoft.Extensions.Logging.Abstractions": "8.0.1", - "Microsoft.Extensions.ObjectPool": "2.2.0", - "Microsoft.Extensions.Options": "8.0.2" - } - }, - "Microsoft.AspNetCore.Routing.Abstractions/2.2.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Abstractions": "2.2.0" - } - }, - "Microsoft.AspNetCore.WebUtilities/2.2.0": { - "dependencies": { - "Microsoft.Net.Http.Headers": "2.2.0", - "System.Text.Encodings.Web": "6.0.0" - } - }, - "Microsoft.Extensions.Caching.Abstractions/8.0.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "8.0.0" - } - }, - "Microsoft.Extensions.Caching.Memory/8.0.0": { - "dependencies": { - "Microsoft.Extensions.Caching.Abstractions": "8.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.1", - "Microsoft.Extensions.Logging.Abstractions": "8.0.1", - "Microsoft.Extensions.Options": "8.0.2", - "Microsoft.Extensions.Primitives": "8.0.0" - } - }, - "Microsoft.Extensions.Configuration/7.0.0": { - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", - "Microsoft.Extensions.Primitives": "8.0.0" - } - }, - "Microsoft.Extensions.Configuration.Abstractions/7.0.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "8.0.0" - } - }, - "Microsoft.Extensions.DependencyInjection/7.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.1" - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.1": {}, - "Microsoft.Extensions.DependencyModel/6.0.0": { - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Text.Encodings.Web": "6.0.0", - "System.Text.Json": "6.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.DependencyModel.dll": { - "assemblyVersion": "6.0.0.0", - "fileVersion": "6.0.21.52210" - } - } - }, - "Microsoft.Extensions.FileProviders.Abstractions/2.2.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "8.0.0" - } - }, - "Microsoft.Extensions.Logging.Abstractions/8.0.1": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.1" - } - }, - "Microsoft.Extensions.ObjectPool/2.2.0": {}, - "Microsoft.Extensions.Options/8.0.2": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.1", - "Microsoft.Extensions.Primitives": "8.0.0" - } - }, - "Microsoft.Extensions.Primitives/8.0.0": {}, - "Microsoft.Net.Http.Headers/2.2.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "8.0.0", - "System.Buffers": "4.5.1" - } - }, - "Microsoft.NETCore.Platforms/1.1.0": {}, - "Microsoft.NETCore.Targets/1.1.0": {}, - "NetJSON/1.4.4": { - "dependencies": { - "NETStandard.Library": "2.0.3", - "System.Reflection": "4.3.0", - "System.Reflection.Emit": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Emit.Lightweight": "4.3.0", - "System.Reflection.Extensions": "4.3.0" - }, - "runtime": { - "lib/net7.0/NetJSON.dll": { - "assemblyVersion": "1.0.0.0", - "fileVersion": "1.0.0.0" - } - } - }, - "NETStandard.Library/2.0.3": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0" - } - }, - "Paralax/1.0.104": { - "dependencies": { - "Figletize": "0.7.0.3", - "Microsoft.Extensions.Caching.Memory": "8.0.0", - "Microsoft.Extensions.Configuration": "7.0.0", - "Microsoft.Extensions.DependencyInjection": "7.0.0", - "Scrutor": "4.2.2" - }, - "runtime": { - "lib/net9.0/Paralax.dll": { - "assemblyVersion": "1.0.0.0", - "fileVersion": "1.0.0.0" - } - } - }, - "Scrutor/4.2.2": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.1", - "Microsoft.Extensions.DependencyModel": "6.0.0" - }, - "runtime": { - "lib/net6.0/Scrutor.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "4.0.0.0" - } - } - }, - "System.Buffers/4.5.1": {}, - "System.IO/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Memory/4.5.4": {}, - "System.Reflection/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.Emit/4.3.0": { - "dependencies": { - "System.IO": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.Emit.ILGeneration/4.3.0": { - "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.Emit.Lightweight/4.3.0": { - "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.Extensions/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.Primitives/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "System.Runtime.CompilerServices.Unsafe/6.0.0": {}, - "System.Text.Encoding/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Text.Encodings.Web/6.0.0": { - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "System.Text.Json/6.0.0": { - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Text.Encodings.Web": "6.0.0" - } - }, - "System.Threading.Tasks/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Threading.Tasks.Extensions/4.4.0": {}, - "System.ValueTuple/4.4.0": {}, - "Utf8Json/1.3.7": { - "dependencies": { - "System.Reflection.Emit": "4.3.0", - "System.Reflection.Emit.Lightweight": "4.3.0", - "System.Threading.Tasks.Extensions": "4.4.0", - "System.ValueTuple": "4.4.0" - }, - "runtime": { - "lib/netstandard2.0/Utf8Json.dll": { - "assemblyVersion": "1.3.7.0", - "fileVersion": "1.3.7.0" - } - } - } - } - }, - "libraries": { - "Paralax.WebApi/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "Figletize/0.7.0.3": { - "type": "package", - "serviceable": true, - "sha512": "sha512-NStWDeIlwK0klogWIYUfMSxN/agIboQ7p2xl9FrxOfgDNIJ+QLbmjdHjeM3p3euZStRusSbHvv07AKy2yejDUg==", - "path": "figletize/0.7.0.3", - "hashPath": "figletize.0.7.0.3.nupkg.sha512" - }, - "Microsoft.AspNetCore.Authorization/8.0.8": { - "type": "package", - "serviceable": true, - "sha512": "sha512-e+ehkJTx0bqUb9zzM9ohV830LhoK3fy5lfVGPWAozbq6I2rJpyq7L0OUgEGNEQLMTzawkDjpNlJ4WU1ck/TDjw==", - "path": "microsoft.aspnetcore.authorization/8.0.8", - "hashPath": "microsoft.aspnetcore.authorization.8.0.8.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http/2.2.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-BAibpoItxI5puk7YJbIGj95arZueM8B8M5xT1fXBn3hb3L2G3ucrZcYXv1gXdaroLbntUs8qeV8iuBrpjQsrKw==", - "path": "microsoft.aspnetcore.http/2.2.2", - "hashPath": "microsoft.aspnetcore.http.2.2.2.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http.Abstractions/2.2.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Nxs7Z1q3f1STfLYKJSVXCs1iBl+Ya6E8o4Oy1bCxJ/rNI44E/0f6tbsrVqAWfB7jlnJfyaAtIalBVxPKUPQb4Q==", - "path": "microsoft.aspnetcore.http.abstractions/2.2.0", - "hashPath": "microsoft.aspnetcore.http.abstractions.2.2.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http.Extensions/2.2.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-2DgZ9rWrJtuR7RYiew01nGRzuQBDaGHGmK56Rk54vsLLsCdzuFUPqbDTJCS1qJQWTbmbIQ9wGIOjpxA1t0l7/w==", - "path": "microsoft.aspnetcore.http.extensions/2.2.0", - "hashPath": "microsoft.aspnetcore.http.extensions.2.2.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http.Features/2.2.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ziFz5zH8f33En4dX81LW84I6XrYXKf9jg6aM39cM+LffN9KJahViKZ61dGMSO2gd3e+qe5yBRwsesvyqlZaSMg==", - "path": "microsoft.aspnetcore.http.features/2.2.0", - "hashPath": "microsoft.aspnetcore.http.features.2.2.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Metadata/8.0.8": { - "type": "package", - "serviceable": true, - "sha512": "sha512-4WSCv7ddawjabLZ7hj0Ai7hTzFYLw5PsvHVKrJkuBgrv+blELbIDMVj7b5q7PZs7Xvz0W0ViKY/rcVkqD0D5yQ==", - "path": "microsoft.aspnetcore.metadata/8.0.8", - "hashPath": "microsoft.aspnetcore.metadata.8.0.8.nupkg.sha512" - }, - "Microsoft.AspNetCore.Routing/2.2.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-HcmJmmGYewdNZ6Vcrr5RkQbc/YWU4F79P3uPPBi6fCFOgUewXNM1P4kbPuoem7tN4f7x8mq7gTsm5QGohQ5g/w==", - "path": "microsoft.aspnetcore.routing/2.2.2", - "hashPath": "microsoft.aspnetcore.routing.2.2.2.nupkg.sha512" - }, - "Microsoft.AspNetCore.Routing.Abstractions/2.2.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lRRaPN7jDlUCVCp9i0W+PB0trFaKB0bgMJD7hEJS9Uo4R9MXaMC8X2tJhPLmeVE3SGDdYI4QNKdVmhNvMJGgPQ==", - "path": "microsoft.aspnetcore.routing.abstractions/2.2.0", - "hashPath": "microsoft.aspnetcore.routing.abstractions.2.2.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.WebUtilities/2.2.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-9ErxAAKaDzxXASB/b5uLEkLgUWv1QbeVxyJYEHQwMaxXOeFFVkQxiq8RyfVcifLU7NR0QY0p3acqx4ZpYfhHDg==", - "path": "microsoft.aspnetcore.webutilities/2.2.0", - "hashPath": "microsoft.aspnetcore.webutilities.2.2.0.nupkg.sha512" - }, - "Microsoft.Extensions.Caching.Abstractions/8.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-3KuSxeHoNYdxVYfg2IRZCThcrlJ1XJqIXkAWikCsbm5C/bCjv7G0WoKDyuR98Q+T607QT2Zl5GsbGRkENcV2yQ==", - "path": "microsoft.extensions.caching.abstractions/8.0.0", - "hashPath": "microsoft.extensions.caching.abstractions.8.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Caching.Memory/8.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-7pqivmrZDzo1ADPkRwjy+8jtRKWRCPag9qPI+p7sgu7Q4QreWhcvbiWXsbhP+yY8XSiDvZpu2/LWdBv7PnmOpQ==", - "path": "microsoft.extensions.caching.memory/8.0.0", - "hashPath": "microsoft.extensions.caching.memory.8.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Configuration/7.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-tldQUBWt/xeH2K7/hMPPo5g8zuLc3Ro9I5d4o/XrxvxOCA2EZBtW7bCHHTc49fcBtvB8tLAb/Qsmfrq+2SJ4vA==", - "path": "microsoft.extensions.configuration/7.0.0", - "hashPath": "microsoft.extensions.configuration.7.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Configuration.Abstractions/7.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-f34u2eaqIjNO9YLHBz8rozVZ+TcFiFs0F3r7nUJd7FRkVSxk8u4OpoK226mi49MwexHOR2ibP9MFvRUaLilcQQ==", - "path": "microsoft.extensions.configuration.abstractions/7.0.0", - "hashPath": "microsoft.extensions.configuration.abstractions.7.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.DependencyInjection/7.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-elNeOmkeX3eDVG6pYVeV82p29hr+UKDaBhrZyWvWLw/EVZSYEkZlQdkp0V39k/Xehs2Qa0mvoCvkVj3eQxNQ1Q==", - "path": "microsoft.extensions.dependencyinjection/7.0.0", - "hashPath": "microsoft.extensions.dependencyinjection.7.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-fGLiCRLMYd00JYpClraLjJTNKLmMJPnqxMaiRzEBIIvevlzxz33mXy39Lkd48hu1G+N21S7QpaO5ZzKsI6FRuA==", - "path": "microsoft.extensions.dependencyinjection.abstractions/8.0.1", - "hashPath": "microsoft.extensions.dependencyinjection.abstractions.8.0.1.nupkg.sha512" - }, - "Microsoft.Extensions.DependencyModel/6.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-TD5QHg98m3+QhgEV1YVoNMl5KtBw/4rjfxLHO0e/YV9bPUBDKntApP4xdrVtGgCeQZHVfC2EXIGsdpRNrr87Pg==", - "path": "microsoft.extensions.dependencymodel/6.0.0", - "hashPath": "microsoft.extensions.dependencymodel.6.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.FileProviders.Abstractions/2.2.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-EcnaSsPTqx2MGnHrmWOD0ugbuuqVT8iICqSqPzi45V5/MA1LjUNb0kwgcxBGqizV1R+WeBK7/Gw25Jzkyk9bIw==", - "path": "microsoft.extensions.fileproviders.abstractions/2.2.0", - "hashPath": "microsoft.extensions.fileproviders.abstractions.2.2.0.nupkg.sha512" - }, - "Microsoft.Extensions.Logging.Abstractions/8.0.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-RIFgaqoaINxkM2KTOw72dmilDmTrYA0ns2KW4lDz4gZ2+o6IQ894CzmdL3StM2oh7QQq44nCWiqKqc4qUI9Jmg==", - "path": "microsoft.extensions.logging.abstractions/8.0.1", - "hashPath": "microsoft.extensions.logging.abstractions.8.0.1.nupkg.sha512" - }, - "Microsoft.Extensions.ObjectPool/2.2.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-gA8H7uQOnM5gb+L0uTNjViHYr+hRDqCdfugheGo/MxQnuHzmhhzCBTIPm19qL1z1Xe0NEMabfcOBGv9QghlZ8g==", - "path": "microsoft.extensions.objectpool/2.2.0", - "hashPath": "microsoft.extensions.objectpool.2.2.0.nupkg.sha512" - }, - "Microsoft.Extensions.Options/8.0.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-dWGKvhFybsaZpGmzkGCbNNwBD1rVlWzrZKANLW/CcbFJpCEceMCGzT7zZwHOGBCbwM0SzBuceMj5HN1LKV1QqA==", - "path": "microsoft.extensions.options/8.0.2", - "hashPath": "microsoft.extensions.options.8.0.2.nupkg.sha512" - }, - "Microsoft.Extensions.Primitives/8.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==", - "path": "microsoft.extensions.primitives/8.0.0", - "hashPath": "microsoft.extensions.primitives.8.0.0.nupkg.sha512" - }, - "Microsoft.Net.Http.Headers/2.2.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-iZNkjYqlo8sIOI0bQfpsSoMTmB/kyvmV2h225ihyZT33aTp48ZpF6qYnXxzSXmHt8DpBAwBTX+1s1UFLbYfZKg==", - "path": "microsoft.net.http.headers/2.2.0", - "hashPath": "microsoft.net.http.headers.2.2.0.nupkg.sha512" - }, - "Microsoft.NETCore.Platforms/1.1.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==", - "path": "microsoft.netcore.platforms/1.1.0", - "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512" - }, - "Microsoft.NETCore.Targets/1.1.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==", - "path": "microsoft.netcore.targets/1.1.0", - "hashPath": "microsoft.netcore.targets.1.1.0.nupkg.sha512" - }, - "NetJSON/1.4.4": { - "type": "package", - "serviceable": true, - "sha512": "sha512-+/JdZXrPVRj+WMa4CBQ6c2aww2iMUhITh8GQLMbVI52+7rYDyLr3BSgR+tcyh9VEj4tXxvBm9lAVXGVFk+W63A==", - "path": "netjson/1.4.4", - "hashPath": "netjson.1.4.4.nupkg.sha512" - }, - "NETStandard.Library/2.0.3": { - "type": "package", - "serviceable": true, - "sha512": "sha512-st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", - "path": "netstandard.library/2.0.3", - "hashPath": "netstandard.library.2.0.3.nupkg.sha512" - }, - "Paralax/1.0.104": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Sunml494Y7fTDndR+EWPwyL1/fUYVFQD2iQnsCqHml+C8m8VLqpwUnHIRbXUflcDEsVwAIwOma+ErWAukKOdVw==", - "path": "paralax/1.0.104", - "hashPath": "paralax.1.0.104.nupkg.sha512" - }, - "Scrutor/4.2.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-t5VIYA7WJXoJJo7s4DoHakMGwTu+MeEnZumMOhTCH7kz9xWha24G7dJNxWrHPlu0ZdZAS4jDZCxxAnyaBh7uYw==", - "path": "scrutor/4.2.2", - "hashPath": "scrutor.4.2.2.nupkg.sha512" - }, - "System.Buffers/4.5.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==", - "path": "system.buffers/4.5.1", - "hashPath": "system.buffers.4.5.1.nupkg.sha512" - }, - "System.IO/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", - "path": "system.io/4.3.0", - "hashPath": "system.io.4.3.0.nupkg.sha512" - }, - "System.Memory/4.5.4": { - "type": "package", - "serviceable": true, - "sha512": "sha512-1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw==", - "path": "system.memory/4.5.4", - "hashPath": "system.memory.4.5.4.nupkg.sha512" - }, - "System.Reflection/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", - "path": "system.reflection/4.3.0", - "hashPath": "system.reflection.4.3.0.nupkg.sha512" - }, - "System.Reflection.Emit/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==", - "path": "system.reflection.emit/4.3.0", - "hashPath": "system.reflection.emit.4.3.0.nupkg.sha512" - }, - "System.Reflection.Emit.ILGeneration/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", - "path": "system.reflection.emit.ilgeneration/4.3.0", - "hashPath": "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512" - }, - "System.Reflection.Emit.Lightweight/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", - "path": "system.reflection.emit.lightweight/4.3.0", - "hashPath": "system.reflection.emit.lightweight.4.3.0.nupkg.sha512" - }, - "System.Reflection.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", - "path": "system.reflection.extensions/4.3.0", - "hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512" - }, - "System.Reflection.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", - "path": "system.reflection.primitives/4.3.0", - "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512" - }, - "System.Runtime/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", - "path": "system.runtime/4.3.0", - "hashPath": "system.runtime.4.3.0.nupkg.sha512" - }, - "System.Runtime.CompilerServices.Unsafe/6.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==", - "path": "system.runtime.compilerservices.unsafe/6.0.0", - "hashPath": "system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512" - }, - "System.Text.Encoding/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", - "path": "system.text.encoding/4.3.0", - "hashPath": "system.text.encoding.4.3.0.nupkg.sha512" - }, - "System.Text.Encodings.Web/6.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", - "path": "system.text.encodings.web/6.0.0", - "hashPath": "system.text.encodings.web.6.0.0.nupkg.sha512" - }, - "System.Text.Json/6.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-zaJsHfESQvJ11vbXnNlkrR46IaMULk/gHxYsJphzSF+07kTjPHv+Oc14w6QEOfo3Q4hqLJgStUaYB9DBl0TmWg==", - "path": "system.text.json/6.0.0", - "hashPath": "system.text.json.6.0.0.nupkg.sha512" - }, - "System.Threading.Tasks/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", - "path": "system.threading.tasks/4.3.0", - "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512" - }, - "System.Threading.Tasks.Extensions/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-SPKfFGbpQsK5Srz2Kq3URgvC90yoOyBE8H1quDA2+MAJ2HAzFmV3biOgPv2Ck3mPAvdKngo3QHi2BNwUQDRVvA==", - "path": "system.threading.tasks.extensions/4.4.0", - "hashPath": "system.threading.tasks.extensions.4.4.0.nupkg.sha512" - }, - "System.ValueTuple/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-BahUww/+mdP4ARCAh2RQhQTg13wYLVrBb9SYVgW8ZlrwjraGCXHGjo0oIiUfZ34LUZkMMR+RAzR7dEY4S1HeQQ==", - "path": "system.valuetuple/4.4.0", - "hashPath": "system.valuetuple.4.4.0.nupkg.sha512" - }, - "Utf8Json/1.3.7": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lMTNZWp6a6KGkgMc3rW41D3b0REb03fQycfb/2bNBpiUtsbGYYI/LrAhnX52vrHRe4ze7JxbtpWF1Y5ohdpipQ==", - "path": "utf8json/1.3.7", - "hashPath": "utf8json.1.3.7.nupkg.sha512" - } - } -} \ No newline at end of file diff --git a/src/Paralax.WebApi/src/Paralax.WebApi/net9.0/Paralax.WebApi.dll b/src/Paralax.WebApi/src/Paralax.WebApi/net9.0/Paralax.WebApi.dll deleted file mode 100644 index 06f90a5d2846fbc9c37d4900ce90363494303734..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44032 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

>l14v*{W_gr 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