mirror of
https://github.com/microsoft/onefuzz.git
synced 2025-06-14 11:08:06 +00:00
Starting work... - add http client - add package lock - set namespace to Microsoft.OneFuzz.Service - add static class to get environment variables (#1736)
Co-authored-by: stas <statis@microsoft.com>
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@ -7,3 +7,5 @@
|
||||
|
||||
# vim
|
||||
*.swp
|
||||
|
||||
/.ionide/symbolCache.db
|
||||
|
@ -1,22 +1,31 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 16
|
||||
VisualStudioVersion = 16.0.30114.105
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.1.32328.378
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ApiService", "ApiService/ApiService.csproj", "{D9112E8C-A539-4B06-B78D-B01A7D0B0555}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ApiService", "ApiService\ApiService.csproj", "{D9112E8C-A539-4B06-B78D-B01A7D0B0555}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tests", "Tests\Tests.csproj", "{06C9FE9B-6DDD-45EC-B716-CB074512DAA9}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{D9112E8C-A539-4B06-B78D-B01A7D0B0555}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{D9112E8C-A539-4B06-B78D-B01A7D0B0555}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{D9112E8C-A539-4B06-B78D-B01A7D0B0555}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{D9112E8C-A539-4B06-B78D-B01A7D0B0555}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{06C9FE9B-6DDD-45EC-B716-CB074512DAA9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{06C9FE9B-6DDD-45EC-B716-CB074512DAA9}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{06C9FE9B-6DDD-45EC-B716-CB074512DAA9}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{06C9FE9B-6DDD-45EC-B716-CB074512DAA9}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {390388A1-8F1C-4B89-93B4-68C69A329558}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
@ -1,16 +1,32 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<AzureFunctionsVersion>v3</AzureFunctionsVersion>
|
||||
<AzureFunctionsVersion>v4</AzureFunctionsVersion>
|
||||
<RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
|
||||
<OutputType>Exe</OutputType>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Storage" Version="4.0.4" />
|
||||
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.EventGrid" Version="2.1.0" />
|
||||
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Http" Version="3.0.13" />
|
||||
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Timer" Version="4.1.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Logging.ApplicationInsights" Version="2.20.0" />
|
||||
<PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" Version="1.3.0" OutputItemType="Analyzer" />
|
||||
<PackageReference Include="Microsoft.Azure.Functions.Worker" Version="1.5.2" />
|
||||
<PackageReference Include="Azure.Data.Tables" Version="12.5.0" />
|
||||
<PackageReference Include="Azure.ResourceManager.Compute" Version="1.0.0-beta.6" />
|
||||
<PackageReference Include="Azure.Core" Version="1.23.0" />
|
||||
<PackageReference Include="Azure.Identity" Version="1.5.0" />
|
||||
<PackageReference Include="Azure.Messaging.EventGrid" Version="4.9.0" />
|
||||
<PackageReference Include="Azure.ResourceManager" Version="1.0.0-beta.8" />
|
||||
<PackageReference Include="Azure.ResourceManager.Network" Version="1.0.0-beta.5" />
|
||||
<PackageReference Include="Azure.ResourceManager.Resources" Version="1.0.0-beta.6" />
|
||||
<PackageReference Include="Azure.ResourceManager.Storage" Version="1.0.0-beta.6" />
|
||||
<PackageReference Include="Microsoft.Graph" Version="4.20.0" />
|
||||
<PackageReference Include="Microsoft.Identity.Client" Version="4.42.0" />
|
||||
<PackageReference Include="Microsoft.Identity.Web.TokenCache" Version="1.23.0" />
|
||||
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="6.16.0" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Update="host.json">
|
||||
|
39
src/ApiService/ApiService/EnvironmentVariables.cs
Normal file
39
src/ApiService/ApiService/EnvironmentVariables.cs
Normal file
@ -0,0 +1,39 @@
|
||||
using System;
|
||||
namespace Microsoft.OneFuzz.Service;
|
||||
|
||||
public static class EnvironmentVariables {
|
||||
|
||||
public static class AppInsights {
|
||||
public static string? AppId { get => Environment.GetEnvironmentVariable("APPINSIGHTS_APPID"); }
|
||||
public static string? InstrumentationKey { get => Environment.GetEnvironmentVariable("APPINSIGHTS_INSTRUMENTATIONKEY"); }
|
||||
}
|
||||
|
||||
public static class AzureSignalR {
|
||||
public static string? ConnectionString { get => Environment.GetEnvironmentVariable("AzureSignalRConnectionString"); }
|
||||
public static string? ServiceTransportType { get => Environment.GetEnvironmentVariable("AzureSignalRServiceTransportType"); }
|
||||
}
|
||||
|
||||
public static class AzureWebJob {
|
||||
public static string? DisableHomePage { get => Environment.GetEnvironmentVariable("AzureWebJobsDisableHomepage"); }
|
||||
public static string? Storage { get => Environment.GetEnvironmentVariable("AzureWebJobsStorage"); }
|
||||
}
|
||||
|
||||
public static class DiagnosticsAzureBlob {
|
||||
public static string? ContainerSasUrl { get => Environment.GetEnvironmentVariable("DIAGNOSTICS_AZUREBLOBCONTAINERSASURL"); }
|
||||
public static string? RetentionDays { get => Environment.GetEnvironmentVariable("DIAGNOSTICS_AZUREBLOBRETENTIONINDAYS"); }
|
||||
}
|
||||
|
||||
public static string? MultiTenantDomain { get => Environment.GetEnvironmentVariable("MULTI_TENANT_DOMAIN"); }
|
||||
|
||||
public static class OneFuzz {
|
||||
public static string? DataStorage { get => Environment.GetEnvironmentVariable("ONEFUZZ_DATA_STORAGE"); }
|
||||
public static string? FuncStorage { get => Environment.GetEnvironmentVariable("ONEFUZZ_FUNC_STORAGE"); }
|
||||
public static string? Instance { get => Environment.GetEnvironmentVariable("ONEFUZZ_INSTANCE"); }
|
||||
public static string? InstanceName { get => Environment.GetEnvironmentVariable("ONEFUZZ_INSTANCE_NAME"); }
|
||||
public static string? Keyvault { get => Environment.GetEnvironmentVariable("ONEFUZZ_KEYVAULT"); }
|
||||
public static string? Monitor { get => Environment.GetEnvironmentVariable("ONEFUZZ_MONITOR"); }
|
||||
public static string? Owner { get => Environment.GetEnvironmentVariable("ONEFUZZ_OWNER"); }
|
||||
public static string? ResourceGroup { get => Environment.GetEnvironmentVariable("ONEFUZZ_RESOURCE_GROUP"); }
|
||||
public static string? Telemetry { get => Environment.GetEnvironmentVariable("ONEFUZZ_TELEMETRY"); }
|
||||
}
|
||||
}
|
67
src/ApiService/ApiService/HttpClient.cs
Normal file
67
src/ApiService/ApiService/HttpClient.cs
Normal file
@ -0,0 +1,67 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net.Http;
|
||||
using System.Threading.Tasks;
|
||||
using System.Net.Http.Headers;
|
||||
|
||||
namespace Microsoft.OneFuzz.Service;
|
||||
using TokenType = String;
|
||||
using AccessToken = String;
|
||||
|
||||
public class Request {
|
||||
private static HttpClient httpClient = new HttpClient();
|
||||
|
||||
Func<Task<Tuple<TokenType, AccessToken>>>? auth;
|
||||
|
||||
public Request(Func<Task<Tuple<TokenType, AccessToken>>>? auth = null) {
|
||||
this.auth = auth;
|
||||
}
|
||||
|
||||
private async Task<HttpResponseMessage> Send(HttpMethod method, Uri url, HttpContent? content = null, IDictionary<string, string>? headers = null) {
|
||||
var request = new HttpRequestMessage(method: method, requestUri: url);
|
||||
|
||||
if (auth is not null) {
|
||||
Tuple<TokenType, AccessToken> token = await auth();
|
||||
request.Headers.Authorization = new AuthenticationHeaderValue(token.Item1, token.Item2);
|
||||
}
|
||||
|
||||
if (content is not null) {
|
||||
request.Content = content;
|
||||
}
|
||||
|
||||
if (headers is not null) {
|
||||
foreach(var v in headers) {
|
||||
request.Headers.Add(v.Key, v.Value);
|
||||
}
|
||||
}
|
||||
|
||||
return await httpClient.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);
|
||||
}
|
||||
|
||||
public async Task<HttpResponseMessage> Get(Uri url) {
|
||||
return await Send(method: HttpMethod.Get, url: url);
|
||||
}
|
||||
public async Task<HttpResponseMessage> Delete(Uri url)
|
||||
{
|
||||
return await Send(method: HttpMethod.Delete, url: url);
|
||||
}
|
||||
|
||||
public async Task<HttpResponseMessage> Post(Uri url, String json, IDictionary<string, string>? headers = null) {
|
||||
using var b = new StringContent(json);
|
||||
b.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json");
|
||||
return await Send(method: HttpMethod.Post, url: url, headers:headers);
|
||||
}
|
||||
|
||||
public async Task<HttpResponseMessage> Put(Uri url, String json, IDictionary<string, string>? headers = null) {
|
||||
using var b = new StringContent(json);
|
||||
b.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json");
|
||||
return await Send(method: HttpMethod.Put, url: url, headers: headers);
|
||||
}
|
||||
|
||||
public async Task<HttpResponseMessage> Patch(Uri url, String json, IDictionary<string, string>? headers = null)
|
||||
{
|
||||
using var b = new StringContent(json);
|
||||
b.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json");
|
||||
return await Send(method: HttpMethod.Patch, url: url, headers: headers);
|
||||
}
|
||||
}
|
@ -3,17 +3,16 @@ using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using Microsoft.Azure.Functions.Worker.Configuration;
|
||||
|
||||
namespace ApiService
|
||||
{
|
||||
public class Program
|
||||
{
|
||||
public static void Main()
|
||||
{
|
||||
var host = new HostBuilder()
|
||||
.ConfigureFunctionsWorkerDefaults()
|
||||
.Build();
|
||||
namespace Microsoft.OneFuzz.Service;
|
||||
|
||||
host.Run();
|
||||
}
|
||||
public class Program
|
||||
{
|
||||
public static void Main()
|
||||
{
|
||||
var host = new HostBuilder()
|
||||
.ConfigureFunctionsWorkerDefaults()
|
||||
.Build();
|
||||
|
||||
host.Run();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -7,59 +7,55 @@ using Azure.Data.Tables;
|
||||
using System.Threading.Tasks;
|
||||
using Azure;
|
||||
|
||||
namespace Microsoft.OneFuzz.Service;
|
||||
|
||||
namespace ApiService
|
||||
|
||||
enum HeartbeatType
|
||||
{
|
||||
MachineAlive,
|
||||
TaskAlive,
|
||||
}
|
||||
|
||||
record NodeHeartbeatEntry(string NodeId, Dictionary<string, HeartbeatType>[] data);
|
||||
|
||||
|
||||
public class QueueNodeHearbeat
|
||||
{
|
||||
|
||||
|
||||
|
||||
enum HeartbeatType
|
||||
private (string, string) GetStorageAccountNameAndKey(string? accountId)
|
||||
{
|
||||
MachineAlive,
|
||||
TaskAlive,
|
||||
//TableEntity
|
||||
return ("test", "test");
|
||||
}
|
||||
|
||||
record NodeHeartbeatEntry(string NodeId, Dictionary<string, HeartbeatType>[] data);
|
||||
|
||||
|
||||
public class QueueNodeHearbeat
|
||||
private async Task<TableServiceClient> GetStorageClient(string? table, string? accounId)
|
||||
{
|
||||
|
||||
private (string, string) GetStorageAccountNameAndKey(string? accountId)
|
||||
accounId ??= System.Environment.GetEnvironmentVariable("ONEFUZZ_FUNC_STORAGE");
|
||||
if (accounId == null)
|
||||
{
|
||||
//TableEntity
|
||||
return ("test", "test");
|
||||
throw new Exception("ONEFUZZ_FUNC_STORAGE environment variable not set");
|
||||
}
|
||||
var (name, key) = GetStorageAccountNameAndKey(accounId);
|
||||
var tableClient = new TableServiceClient(new Uri(accounId), new TableSharedKeyCredential(name, key));
|
||||
await tableClient.CreateTableIfNotExistsAsync(table);
|
||||
return tableClient;
|
||||
}
|
||||
|
||||
private async Task<TableServiceClient> GetStorageClient(string? table, string? accounId)
|
||||
{
|
||||
accounId ??= System.Environment.GetEnvironmentVariable("ONEFUZZ_FUNC_STORAGE");
|
||||
if (accounId == null)
|
||||
{
|
||||
throw new Exception("ONEFUZZ_FUNC_STORAGE environment variable not set");
|
||||
}
|
||||
var (name, key) = GetStorageAccountNameAndKey(accounId);
|
||||
var tableClient = new TableServiceClient(new Uri(accounId), new TableSharedKeyCredential(name, key));
|
||||
await tableClient.CreateTableIfNotExistsAsync(table);
|
||||
return tableClient;
|
||||
}
|
||||
private readonly ILogger _logger;
|
||||
|
||||
private readonly ILogger _logger;
|
||||
public QueueNodeHearbeat(ILoggerFactory loggerFactory)
|
||||
{
|
||||
_logger = loggerFactory.CreateLogger<QueueNodeHearbeat>();
|
||||
}
|
||||
|
||||
public QueueNodeHearbeat(ILoggerFactory loggerFactory)
|
||||
{
|
||||
_logger = loggerFactory.CreateLogger<QueueNodeHearbeat>();
|
||||
}
|
||||
|
||||
[Function("QueueNodeHearbeat")]
|
||||
public void Run([QueueTrigger("myqueue-items", Connection = "AzureWebJobsStorage")] string msg)
|
||||
{
|
||||
var hb = JsonSerializer.Deserialize<NodeHeartbeatEntry>(msg);
|
||||
|
||||
[Function("QueueNodeHearbeat")]
|
||||
public void Run([QueueTrigger("myqueue-items", Connection = "AzureWebJobsStorage")] string msg)
|
||||
{
|
||||
var hb = JsonSerializer.Deserialize<NodeHeartbeatEntry>(msg);
|
||||
|
||||
|
||||
|
||||
_logger.LogInformation($"heartbeat: {msg}");
|
||||
}
|
||||
_logger.LogInformation($"heartbeat: {msg}");
|
||||
}
|
||||
}
|
||||
|
||||
|
977
src/ApiService/ApiService/packages.lock.json
Normal file
977
src/ApiService/ApiService/packages.lock.json
Normal file
@ -0,0 +1,977 @@
|
||||
{
|
||||
"version": 1,
|
||||
"dependencies": {
|
||||
"net6.0": {
|
||||
"Azure.Core": {
|
||||
"type": "Direct",
|
||||
"requested": "[1.23.0, )",
|
||||
"resolved": "1.23.0",
|
||||
"contentHash": "myulcGStD89NN7BUhAjkcfDhIvRj2UUwZHEgjB50pL3vb0LEunrtinxKqUGUuOheQVCHlILKLNoUeCThQ1iCOg==",
|
||||
"dependencies": {
|
||||
"Microsoft.Bcl.AsyncInterfaces": "1.1.1",
|
||||
"System.Diagnostics.DiagnosticSource": "4.6.0",
|
||||
"System.Memory.Data": "1.0.2",
|
||||
"System.Numerics.Vectors": "4.5.0",
|
||||
"System.Text.Encodings.Web": "4.7.2",
|
||||
"System.Text.Json": "4.7.2",
|
||||
"System.Threading.Tasks.Extensions": "4.5.4"
|
||||
}
|
||||
},
|
||||
"Azure.Data.Tables": {
|
||||
"type": "Direct",
|
||||
"requested": "[12.5.0, )",
|
||||
"resolved": "12.5.0",
|
||||
"contentHash": "XeIxPf+rF1NXkX3NJSB0ZTNgU233vyPXGmaFsR0lUVibtWP/lj+Qu1FcPxoslURcX0KC+UgTb226nqVdHjoweQ==",
|
||||
"dependencies": {
|
||||
"Azure.Core": "1.22.0",
|
||||
"System.Text.Json": "4.7.2"
|
||||
}
|
||||
},
|
||||
"Azure.Identity": {
|
||||
"type": "Direct",
|
||||
"requested": "[1.5.0, )",
|
||||
"resolved": "1.5.0",
|
||||
"contentHash": "VfF88dqrgKXZNOS/y4XrX/jmIfP3pkY+hBUzBNpoKml1nR+QshX6XlXWyToLtWV80TDQ1CmUVCJksktDg5+j1w==",
|
||||
"dependencies": {
|
||||
"Azure.Core": "1.20.0",
|
||||
"Microsoft.Identity.Client": "4.30.1",
|
||||
"Microsoft.Identity.Client.Extensions.Msal": "2.18.4",
|
||||
"System.Memory": "4.5.4",
|
||||
"System.Security.Cryptography.ProtectedData": "4.5.0",
|
||||
"System.Text.Json": "4.6.0",
|
||||
"System.Threading.Tasks.Extensions": "4.5.4"
|
||||
}
|
||||
},
|
||||
"Azure.Messaging.EventGrid": {
|
||||
"type": "Direct",
|
||||
"requested": "[4.9.0, )",
|
||||
"resolved": "4.9.0",
|
||||
"contentHash": "ooM1/ueb5pVIf+/BmS/SQKGW0LuP2Rn1Zc+RasCF0aMkJ5/kbc4ZXVrUd2YQlDaoeUOTJGSLs/VoGv0W1GiS5g==",
|
||||
"dependencies": {
|
||||
"Azure.Core": "1.22.0",
|
||||
"System.Memory.Data": "1.0.2",
|
||||
"System.Text.Json": "4.7.2"
|
||||
}
|
||||
},
|
||||
"Azure.ResourceManager": {
|
||||
"type": "Direct",
|
||||
"requested": "[1.0.0-beta.8, )",
|
||||
"resolved": "1.0.0-beta.8",
|
||||
"contentHash": "L8fYEV5kjP+BY1d9J7/hzQ/IHr1capJn9gkhzAEY4BPvMFTE9Aqsbb3p06r+iItcLP0y87eacQodfyPczADXVg==",
|
||||
"dependencies": {
|
||||
"Azure.Core": "1.22.0",
|
||||
"System.Text.Json": "4.7.2"
|
||||
}
|
||||
},
|
||||
"Azure.ResourceManager.Compute": {
|
||||
"type": "Direct",
|
||||
"requested": "[1.0.0-beta.6, )",
|
||||
"resolved": "1.0.0-beta.6",
|
||||
"contentHash": "equl7PjMwhmFFj3qewcK+2kqbEQUM64elLan6jPIxRbHQkQ/QOm/mHRWuTerW0BdUvj48e+odB6gJc4wW0aZbQ==",
|
||||
"dependencies": {
|
||||
"Azure.Core": "1.22.0",
|
||||
"Azure.ResourceManager": "1.0.0-beta.8",
|
||||
"System.Text.Json": "4.7.2"
|
||||
}
|
||||
},
|
||||
"Azure.ResourceManager.Network": {
|
||||
"type": "Direct",
|
||||
"requested": "[1.0.0-beta.5, )",
|
||||
"resolved": "1.0.0-beta.5",
|
||||
"contentHash": "F7p/eZatJ+8hPfHR+98LgNJC+nBH4GBDtluLk+ubgIF84DZ9KMjRSkvyv4d6Y9k8jHh8qYRt4lUUMpdwseSutA==",
|
||||
"dependencies": {
|
||||
"Azure.Core": "1.21.0",
|
||||
"Azure.ResourceManager": "1.0.0-beta.7",
|
||||
"System.Text.Json": "4.6.0"
|
||||
}
|
||||
},
|
||||
"Azure.ResourceManager.Resources": {
|
||||
"type": "Direct",
|
||||
"requested": "[1.0.0-beta.6, )",
|
||||
"resolved": "1.0.0-beta.6",
|
||||
"contentHash": "tKGuoj5WXte2YZWSfYVertSr8zAjg1pRqoRZkRPfntzSqBrTx7BrspEh6iNZyJngW0L33LOlHcvCvvosz0WJGQ==",
|
||||
"dependencies": {
|
||||
"Azure.Core": "1.22.0",
|
||||
"Azure.ResourceManager": "1.0.0-beta.8",
|
||||
"System.Text.Json": "4.7.2"
|
||||
}
|
||||
},
|
||||
"Azure.ResourceManager.Storage": {
|
||||
"type": "Direct",
|
||||
"requested": "[1.0.0-beta.6, )",
|
||||
"resolved": "1.0.0-beta.6",
|
||||
"contentHash": "zsBSj+cfBAgYzWAD7fRbTqyA7cALUeCeE2Tk34og2ZathKUl0Ngriki53u0dMif2LTkfKrO0UiBgyiNaeU/ixw==",
|
||||
"dependencies": {
|
||||
"Azure.Core": "1.22.0",
|
||||
"Azure.ResourceManager": "1.0.0-beta.8",
|
||||
"System.Text.Json": "4.7.2"
|
||||
}
|
||||
},
|
||||
"Microsoft.Azure.Functions.Worker": {
|
||||
"type": "Direct",
|
||||
"requested": "[1.5.2, )",
|
||||
"resolved": "1.5.2",
|
||||
"contentHash": "a42hCpHj4hb/SddLfTcnf+Vm9pbHZ8jSrKqopCBIoq6KaWWz5aAiaVTE1gv8YJqQern7RP8Z5WSn6T4a0wJsfg==",
|
||||
"dependencies": {
|
||||
"Azure.Core": "1.10.0",
|
||||
"Microsoft.Azure.Functions.Worker.Core": "1.3.1",
|
||||
"Microsoft.Azure.Functions.Worker.Grpc": "1.3.0",
|
||||
"Microsoft.Extensions.Hosting": "5.0.0",
|
||||
"Microsoft.Extensions.Hosting.Abstractions": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Azure.Functions.Worker.Extensions.EventGrid": {
|
||||
"type": "Direct",
|
||||
"requested": "[2.1.0, )",
|
||||
"resolved": "2.1.0",
|
||||
"contentHash": "8Kjhxaj2gK2Bi5K5jiNAG/e9tTlRItFNCINj+kfUDMBbf5lsiZUBChyAQCxrnITeHKkwAtgXB7GBX4W1Xcoc0A==",
|
||||
"dependencies": {
|
||||
"Microsoft.Azure.Functions.Worker.Extensions.Abstractions": "1.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Azure.Functions.Worker.Extensions.Http": {
|
||||
"type": "Direct",
|
||||
"requested": "[3.0.13, )",
|
||||
"resolved": "3.0.13",
|
||||
"contentHash": "GX41psGbjLSPKuFnBcGGB7PAAdhfLsgxvGVsyGq/jQwgGwjAVRRx2UbSl35+imKwCPZdT5vGjq6YV1rgXIeEvA==",
|
||||
"dependencies": {
|
||||
"Microsoft.Azure.Functions.Worker.Extensions.Abstractions": "1.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Azure.Functions.Worker.Extensions.Storage": {
|
||||
"type": "Direct",
|
||||
"requested": "[4.0.4, )",
|
||||
"resolved": "4.0.4",
|
||||
"contentHash": "lg/sBDVPkXI0l1kHYbvyF1eA+gwaM3p/WgjX1nwVMyAkJpniDCNa6Rv/nxJwLvdWFzFLOuUp7ns0sxF1AjNuhg==",
|
||||
"dependencies": {
|
||||
"Microsoft.Azure.Functions.Worker.Extensions.Abstractions": "1.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Azure.Functions.Worker.Extensions.Timer": {
|
||||
"type": "Direct",
|
||||
"requested": "[4.1.0, )",
|
||||
"resolved": "4.1.0",
|
||||
"contentHash": "8HvZaChaw40EKBfBew0XG132YhO6bEw0nznvey7gkhm9thUe6wkA2LXTXHXxcYefbx0rlh57WedSiJgKTG7MvQ==",
|
||||
"dependencies": {
|
||||
"Microsoft.Azure.Functions.Worker.Extensions.Abstractions": "1.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Azure.Functions.Worker.Sdk": {
|
||||
"type": "Direct",
|
||||
"requested": "[1.3.0, )",
|
||||
"resolved": "1.3.0",
|
||||
"contentHash": "g9oXOl9xr1O3alWItAiYLNu3BnXebLW51BRB06yuO86LPGRZewyJu88EwUdC2NU9wnIeE3/ObMuEAnRALZeuTQ==",
|
||||
"dependencies": {
|
||||
"Microsoft.Azure.Functions.Worker.Sdk.Analyzers": "1.1.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Logging.ApplicationInsights": {
|
||||
"type": "Direct",
|
||||
"requested": "[2.20.0, )",
|
||||
"resolved": "2.20.0",
|
||||
"contentHash": "phuNUDeTlffkJi6zAsMQNOpijNOQ4Olda1WL2L+F33u4fqXmY+EGQnPg81rHW6dOXIYCQvrQUr2gVN5NNMvwKA==",
|
||||
"dependencies": {
|
||||
"Microsoft.ApplicationInsights": "2.20.0",
|
||||
"Microsoft.Extensions.Logging": "2.1.1"
|
||||
}
|
||||
},
|
||||
"Microsoft.Graph": {
|
||||
"type": "Direct",
|
||||
"requested": "[4.20.0, )",
|
||||
"resolved": "4.20.0",
|
||||
"contentHash": "Pf8hdObmX3qF0AREu9e4dnk7inc3Pfw/sI/6l4RGTWDoORpP3Oyh0JoT/TJ+VIUaDk0W4fCUS0zSKhLpOr2UsQ==",
|
||||
"dependencies": {
|
||||
"Microsoft.Graph.Core": "2.0.8"
|
||||
}
|
||||
},
|
||||
"Microsoft.Identity.Client": {
|
||||
"type": "Direct",
|
||||
"requested": "[4.42.0, )",
|
||||
"resolved": "4.42.0",
|
||||
"contentHash": "BQeEI4mKDJaludUZwZXfmAs7y1Lhkbm81KDg4Q3JWY8tXi5S7vFFJ4+xcrZtEEuqtDnyhP+Yx0u+1PeOALuTGA=="
|
||||
},
|
||||
"Microsoft.Identity.Web.TokenCache": {
|
||||
"type": "Direct",
|
||||
"requested": "[1.23.0, )",
|
||||
"resolved": "1.23.0",
|
||||
"contentHash": "hk4x8v0fjfjxsYwUtamuYczlZS9zyk+g8tlaPFnEPo7ldFJjf/w912faFPqcDJoC8Va5Ykyw1prdQouORAn9zg==",
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.DataProtection": "5.0.8",
|
||||
"Microsoft.Extensions.Caching.Memory": "5.0.0",
|
||||
"Microsoft.Extensions.Logging": "5.0.0",
|
||||
"Microsoft.Identity.Client": "4.41.0",
|
||||
"System.Text.Encodings.Web": "5.0.1"
|
||||
}
|
||||
},
|
||||
"System.IdentityModel.Tokens.Jwt": {
|
||||
"type": "Direct",
|
||||
"requested": "[6.16.0, )",
|
||||
"resolved": "6.16.0",
|
||||
"contentHash": "QnZUawkmLkzEhwgvlqcm2YNAoRgz27zVY+2LzMBMWMcfFhl2Sv8aavZOeuFMofmYJsST9h7BilOn7MzFSUMihQ==",
|
||||
"dependencies": {
|
||||
"Microsoft.IdentityModel.JsonWebTokens": "6.16.0",
|
||||
"Microsoft.IdentityModel.Tokens": "6.16.0"
|
||||
}
|
||||
},
|
||||
"Google.Protobuf": {
|
||||
"type": "Transitive",
|
||||
"resolved": "3.15.8",
|
||||
"contentHash": "tA0S9QXJq+r3CjwBlcn5glEUrbdAxhPWO4yhq5+ycn6WW6+nsvqzO6Qf6NE9XWbEz/F2QSpBTxjdTI7SvVy7CQ==",
|
||||
"dependencies": {
|
||||
"System.Memory": "4.5.3",
|
||||
"System.Runtime.CompilerServices.Unsafe": "4.5.2"
|
||||
}
|
||||
},
|
||||
"Grpc.Core.Api": {
|
||||
"type": "Transitive",
|
||||
"resolved": "2.37.0",
|
||||
"contentHash": "ubqW2nTpiHyDudYGVXM+Vjh6WbgsI1fVQxsDK14/GnyPgiNMuNl8+GQcAYp5QPhAk5H4fjHJPI+KvbpVk8z6iQ==",
|
||||
"dependencies": {
|
||||
"System.Memory": "4.5.3"
|
||||
}
|
||||
},
|
||||
"Grpc.Net.Client": {
|
||||
"type": "Transitive",
|
||||
"resolved": "2.37.0",
|
||||
"contentHash": "oMDNXAPkBzfXljv/ZzlZSf22TEstBNI6je85/c3iztlFbbixTMLgi0sIu/uHtEKoEWUPr0nmBMvD+jtqKorGTg==",
|
||||
"dependencies": {
|
||||
"Grpc.Net.Common": "2.37.0",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "3.0.3"
|
||||
}
|
||||
},
|
||||
"Grpc.Net.ClientFactory": {
|
||||
"type": "Transitive",
|
||||
"resolved": "2.37.0",
|
||||
"contentHash": "zyeFej1A36+s5K6+zDUirmDEGHEFnHapQisT7YsR9nQqKsw1uYqjtG1gSVSg/Zvk0KYeLHs5/URtTU71kS4APg==",
|
||||
"dependencies": {
|
||||
"Grpc.Net.Client": "2.37.0",
|
||||
"Microsoft.Extensions.Http": "3.0.3"
|
||||
}
|
||||
},
|
||||
"Grpc.Net.Common": {
|
||||
"type": "Transitive",
|
||||
"resolved": "2.37.0",
|
||||
"contentHash": "V7fZb+87qB6Jio6uWXDHkxI9WT+y4EFwicAHkzB2lm/9wJazD0V35HhQjxvoONsldObaUimjqd4b/XZ0G07sDQ==",
|
||||
"dependencies": {
|
||||
"Grpc.Core.Api": "2.37.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.ApplicationInsights": {
|
||||
"type": "Transitive",
|
||||
"resolved": "2.20.0",
|
||||
"contentHash": "mb+EC5j06Msn5HhKrhrsMAst6JxvYUnphQMGY2cixCabgGAO3q79Y8o/p1Zce1Azgd1IVkRKAMzAV4vDCbXOqA==",
|
||||
"dependencies": {
|
||||
"System.Diagnostics.DiagnosticSource": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Cryptography.Internal": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.8",
|
||||
"contentHash": "giHheyNLOb+cAHpb8b0GhaS0xJ+hAIIDSyWPe5aOPwpgctsjOPRKFyn/268xv+zBVuEtyRJJEnBUlkOVzyIpZA=="
|
||||
},
|
||||
"Microsoft.AspNetCore.DataProtection": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.8",
|
||||
"contentHash": "wCMdfuKA+ePcB4nEDau5tNhhhC5NFa2LEXoRhk2Xaot13FFlyKA4t5UzIyV/OnAfB/bqbAIvChJD+biWY7u5SA==",
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Cryptography.Internal": "5.0.8",
|
||||
"Microsoft.AspNetCore.DataProtection.Abstractions": "5.0.8",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.Hosting.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.Options": "5.0.0",
|
||||
"Microsoft.Win32.Registry": "5.0.0",
|
||||
"System.Security.Cryptography.Xml": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.DataProtection.Abstractions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.8",
|
||||
"contentHash": "ZI9S2NGjuOKXN3PxJcF8EKVwd1cqpWyUSqiVoH8gqq5tlHaXULwPmoR0DBOFON4sEFETRWI69f5RQ3tJWw205A=="
|
||||
},
|
||||
"Microsoft.Azure.Functions.Worker.Core": {
|
||||
"type": "Transitive",
|
||||
"resolved": "1.3.1",
|
||||
"contentHash": "BPx6MPCpxAOHEWqNvZaHcDiZWTyDUZXnYa6np3NqQ0oVq/mPPBYWm5EZfOHywaSkiV+yrePxIO/emochtRMbLA==",
|
||||
"dependencies": {
|
||||
"Azure.Core": "1.10.0",
|
||||
"Microsoft.Extensions.Hosting": "5.0.0",
|
||||
"Microsoft.Extensions.Hosting.Abstractions": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Azure.Functions.Worker.Extensions.Abstractions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "1.0.0",
|
||||
"contentHash": "9dPxxE6KdBXM4JEiwfs6W+DuZ+7UAE0Ea2pSmSTQ/e954HDVfcEcSyIopZujjK1jbwExSBbBQHwn6VrA2Dpx2A=="
|
||||
},
|
||||
"Microsoft.Azure.Functions.Worker.Grpc": {
|
||||
"type": "Transitive",
|
||||
"resolved": "1.3.0",
|
||||
"contentHash": "bxveZ9OKBPyzztl7tTClAAdw6PNjLiQ2fEboafAXcIF7+2igHwp/RlUILfXLrzgqrbWPkFfCRCpSJ3LIIHYaJQ==",
|
||||
"dependencies": {
|
||||
"Azure.Core": "1.10.0",
|
||||
"Google.Protobuf": "3.15.8",
|
||||
"Grpc.Net.Client": "2.37.0",
|
||||
"Grpc.Net.ClientFactory": "2.37.0",
|
||||
"Microsoft.Azure.Functions.Worker.Core": "1.2.0",
|
||||
"Microsoft.Extensions.Hosting": "5.0.0",
|
||||
"Microsoft.Extensions.Hosting.Abstractions": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Azure.Functions.Worker.Sdk.Analyzers": {
|
||||
"type": "Transitive",
|
||||
"resolved": "1.1.0",
|
||||
"contentHash": "J7AZ9iv/UCd4Di0c84h1P/Sa1aQr5uqO0EBUKwE0AZeWJ11dDfKAwxMiAxYOKR+giy31DWBnuFc4GKY3BQYUjg=="
|
||||
},
|
||||
"Microsoft.Bcl.AsyncInterfaces": {
|
||||
"type": "Transitive",
|
||||
"resolved": "1.1.1",
|
||||
"contentHash": "yuvf07qFWFqtK3P/MRkEKLhn5r2UbSpVueRziSqj0yJQIKFwG1pq9mOayK3zE5qZCTs0CbrwL9M6R8VwqyGy2w=="
|
||||
},
|
||||
"Microsoft.CSharp": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.5.0",
|
||||
"contentHash": "kaj6Wb4qoMuH3HySFJhxwQfe8R/sJsNJnANrvv8WdFPMoNbKY5htfNscv+LHCu5ipz+49m2e+WQXpLXr9XYemQ=="
|
||||
},
|
||||
"Microsoft.Extensions.Caching.Abstractions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "bu8As90/SBAouMZ6fJ+qRNo1X+KgHGrVueFhhYi+E5WqEhcnp2HoWRFnMzXQ6g4RdZbvPowFerSbKNH4Dtg5yg==",
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Primitives": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Caching.Memory": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "/1qPCleFOkJe0O+xmFqCNLFYQZTJz965sVw8CUB/BQgsApBwzAUsL2BUkDvQW+geRUVTXUS9zLa0pBjC2VJ1gA==",
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Caching.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.Options": "5.0.0",
|
||||
"Microsoft.Extensions.Primitives": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "LN322qEKHjuVEhhXueTUe7RNePooZmS8aGid5aK2woX3NPjSnONFyKUc6+JknOS6ce6h2tCLfKPTBXE3mN/6Ag==",
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.Primitives": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Abstractions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "ETjSBHMp3OAZ4HxGQYpwyGsD8Sw5FegQXphi0rpoGMT74S4+I2mm7XJEswwn59XAaKOzC15oDSOWEE8SzDCd6Q==",
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Primitives": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Binder": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "Of1Irt1+NzWO+yEYkuDh5TpT4On7LKl98Q9iLqCdOZps6XXEWDj3AKtmyvzJPVXZe4apmkJJIiDL7rR1yC+hjQ==",
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.CommandLine": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "OelM+VQdhZ0XMXsEQBq/bt3kFzD+EBGqR4TAgFDRAye0JfvHAaRi+3BxCRcwqUAwDhV0U0HieljBGHlTgYseRA==",
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration": "5.0.0",
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.EnvironmentVariables": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "fqh6y6hAi0Z0fRsb4B/mP9OkKkSlifh5osa+N/YSQ+/S2a//+zYApZMUC1XeP9fdjlgZoPQoZ72Q2eLHyKLddQ==",
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration": "5.0.0",
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.FileExtensions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "rRdspYKA18ViPOISwAihhCMbusHsARCOtDMwa23f+BGEdIjpKPlhs3LLjmKlxfhpGXBjIsS0JpXcChjRUN+PAw==",
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration": "5.0.0",
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.FileProviders.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.FileProviders.Physical": "5.0.0",
|
||||
"Microsoft.Extensions.Primitives": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Json": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "Pak8ymSUfdzPfBTLHxeOwcR32YDbuVfhnH2hkfOLnJNQd19ItlBdpMjIDY9C5O/nS2Sn9bzDMai0ZrvF7KyY/Q==",
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration": "5.0.0",
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.Configuration.FileExtensions": "5.0.0",
|
||||
"Microsoft.Extensions.FileProviders.Abstractions": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.UserSecrets": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "+tK3seG68106lN277YWQvqmfyI/89w0uTu/5Gz5VYSUu5TI4mqwsaWLlSmT9Bl1yW/i1Nr06gHJxqaqB5NU9Tw==",
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.Configuration.Json": "5.0.0",
|
||||
"Microsoft.Extensions.FileProviders.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.FileProviders.Physical": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "Rc2kb/p3Ze6cP6rhFC3PJRdWGbLvSHZc0ev7YlyeU6FmHciDMLrhoVoTUEzKPhN5ZjFgKF1Cf5fOz8mCMIkvpA==",
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "ORj7Zh81gC69TyvmcUm9tSzytcy8AVousi+IVRAI8nLieQjOFryRusSFh7+aLk16FN9pQNqJAiMd7BTKINK0kA=="
|
||||
},
|
||||
"Microsoft.Extensions.FileProviders.Abstractions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "iuZIiZ3mteEb+nsUqpGXKx2cGF+cv6gWPd5jqQI4hzqdiJ6I94ddLjKhQOuRW1lueHwocIw30xbSHGhQj0zjdQ==",
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Primitives": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.FileProviders.Physical": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "1rkd8UO2qf21biwO7X0hL9uHP7vtfmdv/NLvKgCRHkdz1XnW8zVQJXyEYiN68WYpExgtVWn55QF0qBzgfh1mGg==",
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.FileProviders.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.FileSystemGlobbing": "5.0.0",
|
||||
"Microsoft.Extensions.Primitives": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.FileSystemGlobbing": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "ArliS8lGk8sWRtrWpqI8yUVYJpRruPjCDT+EIjrgkA/AAPRctlAkRISVZ334chAKktTLzD1+PK8F5IZpGedSqA=="
|
||||
},
|
||||
"Microsoft.Extensions.Hosting": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "hiokSU1TOVfcqpQAnpiOzP2rE9p+niq92g5yeAnwlbSrUlIdIS6M8emCknZvhdOagQA9x5YWNwe1n0kFUwE0NQ==",
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration": "5.0.0",
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.Configuration.Binder": "5.0.0",
|
||||
"Microsoft.Extensions.Configuration.CommandLine": "5.0.0",
|
||||
"Microsoft.Extensions.Configuration.EnvironmentVariables": "5.0.0",
|
||||
"Microsoft.Extensions.Configuration.FileExtensions": "5.0.0",
|
||||
"Microsoft.Extensions.Configuration.Json": "5.0.0",
|
||||
"Microsoft.Extensions.Configuration.UserSecrets": "5.0.0",
|
||||
"Microsoft.Extensions.DependencyInjection": "5.0.0",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.FileProviders.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.FileProviders.Physical": "5.0.0",
|
||||
"Microsoft.Extensions.Hosting.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.Logging": "5.0.0",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.Logging.Configuration": "5.0.0",
|
||||
"Microsoft.Extensions.Logging.Console": "5.0.0",
|
||||
"Microsoft.Extensions.Logging.Debug": "5.0.0",
|
||||
"Microsoft.Extensions.Logging.EventLog": "5.0.0",
|
||||
"Microsoft.Extensions.Logging.EventSource": "5.0.0",
|
||||
"Microsoft.Extensions.Options": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Hosting.Abstractions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "cbUOCePYBl1UhM+N2zmDSUyJ6cODulbtUd9gEzMFIK3RQDtP/gJsE08oLcBSXH3Q1RAQ0ex7OAB3HeTKB9bXpg==",
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.FileProviders.Abstractions": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Http": {
|
||||
"type": "Transitive",
|
||||
"resolved": "3.0.3",
|
||||
"contentHash": "dcyB8szIcSynjVZRuFgqkZpPgTc5zeRSj1HMXSmNqWbHYKiPYJl8ZQgBHz6wmZNSUUNGpCs5uxUg8DZHHDC1Ew==",
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "3.0.3",
|
||||
"Microsoft.Extensions.Logging": "3.0.3",
|
||||
"Microsoft.Extensions.Options": "3.0.3"
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Logging": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "MgOwK6tPzB6YNH21wssJcw/2MKwee8b2gI7SllYfn6rvTpIrVvVS5HAjSU2vqSku1fwqRvWP0MdIi14qjd93Aw==",
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection": "5.0.0",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.Options": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Logging.Abstractions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "NxP6ahFcBnnSfwNBi2KH2Oz8Xl5Sm2krjId/jRR3I7teFphwiUoUeZPwTNA21EX+5PtjqmyAvKaOeBXcJjcH/w=="
|
||||
},
|
||||
"Microsoft.Extensions.Logging.Configuration": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "N3/d0HeMRnBekadbZlmbp+In8EvNNkQHSdbtRzjrGVckdZWpYs5GNrAfaYqVplDFW0WUedSaFJ3khB50BWYGsw==",
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration": "5.0.0",
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.Configuration.Binder": "5.0.0",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.Logging": "5.0.0",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.Options": "5.0.0",
|
||||
"Microsoft.Extensions.Options.ConfigurationExtensions": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Logging.Console": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "jH0wbWhfvXjOVmCkbra4vbiovDtTUIWLQjCeJ7Xun3h4AHvwfzm7V7wlsXKs3tNnPrsCxZ9oaV0vUAgGY1JxOA==",
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.Logging": "5.0.0",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.Logging.Configuration": "5.0.0",
|
||||
"Microsoft.Extensions.Options": "5.0.0",
|
||||
"Microsoft.Extensions.Options.ConfigurationExtensions": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Logging.Debug": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "9dvt0xqRrClvhaPNpfyS39WxnW9G55l5lrV5ZX7IrEgwo4VwtmJKtoPiKVYKbhAuOBGUI5WY3hWLvF+PSbJp5A==",
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.Logging": "5.0.0",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Logging.EventLog": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "CYzsgF2lqgahGl/HuErsIDaZZ9ueN+MBjGfO/0jVDLPaXLaywxlGKFpDgXMaB053DRYZwD1H2Lb1I60mTXS3jg==",
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.Logging": "5.0.0",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.Options": "5.0.0",
|
||||
"System.Diagnostics.EventLog": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Logging.EventSource": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "hF+D6PJkrM0qXcSEGs1BwZwgP8c0BRkj26P/5wmYTcHKOp52GRey/Z/YKRmRIHIrXxj9tz/JgIjU9oWmiJ5HMw==",
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.Logging": "5.0.0",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.Options": "5.0.0",
|
||||
"Microsoft.Extensions.Primitives": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Options": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "CBvR92TCJ5uBIdd9/HzDSrxYak+0W/3+yxrNg8Qm6Bmrkh5L+nu6m3WeazQehcZ5q1/6dDA7J5YdQjim0165zg==",
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.Primitives": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Options.ConfigurationExtensions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "280RxNJqOeQqq47aJLy5D9LN61CAWeuRA83gPToQ8B9jl9SNdQ5EXjlfvF66zQI5AXMl+C/3hGnbtIEN+X3mqA==",
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.Configuration.Binder": "5.0.0",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
|
||||
"Microsoft.Extensions.Options": "5.0.0",
|
||||
"Microsoft.Extensions.Primitives": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Primitives": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "cI/VWn9G1fghXrNDagX9nYaaB/nokkZn0HYAawGaELQrl8InSezfe9OnfPZLcJq3esXxygh3hkq2c3qoV3SDyQ=="
|
||||
},
|
||||
"Microsoft.Graph.Core": {
|
||||
"type": "Transitive",
|
||||
"resolved": "2.0.8",
|
||||
"contentHash": "CcsCgY1O+LQaKMJkQCpVZPmK6uiFFUu49MwqTxoTBYtFG2/NwyGAIpla5gct8jWlS0DBKXWAyRlIzKt/6UGIDQ==",
|
||||
"dependencies": {
|
||||
"Azure.Core": "1.22.0",
|
||||
"Microsoft.Identity.Client": "4.41.0",
|
||||
"Microsoft.IdentityModel.Protocols.OpenIdConnect": "6.15.1",
|
||||
"System.Diagnostics.DiagnosticSource": "4.7.1",
|
||||
"System.Security.Claims": "4.3.0",
|
||||
"System.Text.Json": "6.0.2"
|
||||
}
|
||||
},
|
||||
"Microsoft.Identity.Client.Extensions.Msal": {
|
||||
"type": "Transitive",
|
||||
"resolved": "2.18.4",
|
||||
"contentHash": "HpG4oLwhQsy0ce7OWq9iDdLtJKOvKRStIKoSEOeBMKuohfuOWNDyhg8fMAJkpG/kFeoe4J329fiMHcJmmB+FPw==",
|
||||
"dependencies": {
|
||||
"Microsoft.Identity.Client": "4.30.0",
|
||||
"System.Security.Cryptography.ProtectedData": "4.5.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.IdentityModel.JsonWebTokens": {
|
||||
"type": "Transitive",
|
||||
"resolved": "6.16.0",
|
||||
"contentHash": "FJtXVXvjoza64VPFOPBxqnhe0yyQ5B/7A09+RpTXIzowr5+A4xcX42patsLrNGmFUvXZAHhS2u/6ojTzhYatpg==",
|
||||
"dependencies": {
|
||||
"Microsoft.IdentityModel.Tokens": "6.16.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.IdentityModel.Logging": {
|
||||
"type": "Transitive",
|
||||
"resolved": "6.16.0",
|
||||
"contentHash": "Fuo5SpYUpFRw90hBM3PDA1uQsrHmbIaxvwkldJcfi0O51gz/qjSFMe8136NFRoKA3NxZZScpz/47oFkRU2WA/A=="
|
||||
},
|
||||
"Microsoft.IdentityModel.Protocols": {
|
||||
"type": "Transitive",
|
||||
"resolved": "6.15.1",
|
||||
"contentHash": "6nHr+4yE8vj620Vy4L0pl7kmkvWc06wBrJ+AOo/gjqzu/UD/MYgySUqRGlZYrvvNmKkUWMw4hdn78MPCb4bstA==",
|
||||
"dependencies": {
|
||||
"Microsoft.IdentityModel.Logging": "6.15.1",
|
||||
"Microsoft.IdentityModel.Tokens": "6.15.1"
|
||||
}
|
||||
},
|
||||
"Microsoft.IdentityModel.Protocols.OpenIdConnect": {
|
||||
"type": "Transitive",
|
||||
"resolved": "6.15.1",
|
||||
"contentHash": "WwecgT/PNrytLNUWjkYtnnG2LXMAzkINSaZM+8dPPiEpOGz1bQDBWAenTSurYICxGoA1sOPriFXk+ocnQyprKw==",
|
||||
"dependencies": {
|
||||
"Microsoft.IdentityModel.Protocols": "6.15.1",
|
||||
"System.IdentityModel.Tokens.Jwt": "6.15.1"
|
||||
}
|
||||
},
|
||||
"Microsoft.IdentityModel.Tokens": {
|
||||
"type": "Transitive",
|
||||
"resolved": "6.16.0",
|
||||
"contentHash": "dL7r4bdRbDG0RmyYGw9cpO/pA3GVaxV+lI1ConYuQuRiAxd1ONFlxHue1o8wR8+lEB972cekzfj45WSNaq3+xA==",
|
||||
"dependencies": {
|
||||
"Microsoft.CSharp": "4.5.0",
|
||||
"Microsoft.IdentityModel.Logging": "6.16.0",
|
||||
"System.Security.Cryptography.Cng": "4.5.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.NETCore.Platforms": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ=="
|
||||
},
|
||||
"Microsoft.NETCore.Targets": {
|
||||
"type": "Transitive",
|
||||
"resolved": "1.1.0",
|
||||
"contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg=="
|
||||
},
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"Microsoft.Win32.SystemEvents": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "Bh6blKG8VAKvXiLe2L+sEsn62nc1Ij34MrNxepD2OCrS5cpCwQa9MeLyhVQPQ/R4Wlzwuy6wMK8hLb11QPDRsQ==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "5.0.0"
|
||||
}
|
||||
},
|
||||
"System.Collections": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Diagnostics.DiagnosticSource": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "tCQTzPsGZh/A9LhhA6zrqCRV4hOHsK90/G7q3Khxmn6tnB1PuNU0cRaKANP2AWcF9bn0zsuOoZOSrHuJk6oNBA=="
|
||||
},
|
||||
"System.Diagnostics.EventLog": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "FHkCwUfsTs+/5tsK+c0egLfacUgbhvcwi3wUFWSEEArSXao343mYqcpOVVFMlcCkdNtjU4YwAWaKYwal6f02og==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "5.0.0",
|
||||
"Microsoft.Win32.Registry": "5.0.0",
|
||||
"System.Security.Principal.Windows": "5.0.0"
|
||||
}
|
||||
},
|
||||
"System.Drawing.Common": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "SztFwAnpfKC8+sEKXAFxCBWhKQaEd97EiOL7oZJZP56zbqnLpmxACWA8aGseaUExciuEAUuR9dY8f7HkTRAdnw==",
|
||||
"dependencies": {
|
||||
"Microsoft.Win32.SystemEvents": "5.0.0"
|
||||
}
|
||||
},
|
||||
"System.Formats.Asn1": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "MTvUIktmemNB+El0Fgw9egyqT9AYSIk6DTJeoDSpc3GIHxHCMo8COqkWT1mptX5tZ1SlQ6HJZ0OsSvMth1c12w=="
|
||||
},
|
||||
"System.Globalization": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.IO": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
|
||||
"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": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.5.4",
|
||||
"contentHash": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw=="
|
||||
},
|
||||
"System.Memory.Data": {
|
||||
"type": "Transitive",
|
||||
"resolved": "1.0.2",
|
||||
"contentHash": "JGkzeqgBsiZwKJZ1IxPNsDFZDhUvuEdX8L8BDC8N3KOj+6zMcNU28CNN59TpZE/VJYy9cP+5M+sbxtWJx3/xtw==",
|
||||
"dependencies": {
|
||||
"System.Text.Encodings.Web": "4.7.2",
|
||||
"System.Text.Json": "4.6.0"
|
||||
}
|
||||
},
|
||||
"System.Numerics.Vectors": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.5.0",
|
||||
"contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ=="
|
||||
},
|
||||
"System.Reflection": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
|
||||
"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.Primitives": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Resources.ResourceManager": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Globalization": "4.3.0",
|
||||
"System.Reflection": "4.3.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Runtime": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0"
|
||||
}
|
||||
},
|
||||
"System.Runtime.CompilerServices.Unsafe": {
|
||||
"type": "Transitive",
|
||||
"resolved": "6.0.0",
|
||||
"contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg=="
|
||||
},
|
||||
"System.Runtime.Extensions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Runtime": "4.3.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.Claims": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "P/+BR/2lnc4PNDHt/TPBAWHVMLMRHsyYZbU1NphW4HIWzCggz8mJbTQQ3MKljFE7LS3WagmVFuBgoLcFzYXlkA==",
|
||||
"dependencies": {
|
||||
"System.Collections": "4.3.0",
|
||||
"System.Globalization": "4.3.0",
|
||||
"System.IO": "4.3.0",
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Runtime.Extensions": "4.3.0",
|
||||
"System.Security.Principal": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Security.Cryptography.Cng": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "jIMXsKn94T9JY7PvPq/tMfqa6GAaHpElRDpmG+SuL+D3+sTw2M8VhnibKnN8Tq+4JqbPJ/f+BwtLeDMEnzAvRg==",
|
||||
"dependencies": {
|
||||
"System.Formats.Asn1": "5.0.0"
|
||||
}
|
||||
},
|
||||
"System.Security.Cryptography.Pkcs": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "9TPLGjBCGKmNvG8pjwPeuYy0SMVmGZRwlTZvyPHDbYv/DRkoeumJdfumaaDNQzVGMEmbWtg07zUpSW9q70IlDQ==",
|
||||
"dependencies": {
|
||||
"System.Formats.Asn1": "5.0.0",
|
||||
"System.Security.Cryptography.Cng": "5.0.0"
|
||||
}
|
||||
},
|
||||
"System.Security.Cryptography.ProtectedData": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.5.0",
|
||||
"contentHash": "wLBKzFnDCxP12VL9ANydSYhk59fC4cvOr9ypYQLPnAj48NQIhqnjdD2yhP8yEKyBJEjERWS9DisKL7rX5eU25Q=="
|
||||
},
|
||||
"System.Security.Cryptography.Xml": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "MYmkHtCW+paFmPGFDktnLdOeH3zUrNchbZNki87E1ejNSMm9enSRbJokmvFrsWUrDE4bRE1lVeAle01+t6SGhA==",
|
||||
"dependencies": {
|
||||
"System.Security.Cryptography.Pkcs": "5.0.0",
|
||||
"System.Security.Permissions": "5.0.0"
|
||||
}
|
||||
},
|
||||
"System.Security.Permissions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "uE8juAhEkp7KDBCdjDIE3H9R1HJuEHqeqX8nLX9gmYKWwsqk3T5qZlPx8qle5DPKimC/Fy3AFTdV7HamgCh9qQ==",
|
||||
"dependencies": {
|
||||
"System.Security.AccessControl": "5.0.0",
|
||||
"System.Windows.Extensions": "5.0.0"
|
||||
}
|
||||
},
|
||||
"System.Security.Principal": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "I1tkfQlAoMM2URscUtpcRo/hX0jinXx6a/KUtEQoz3owaYwl3qwsO8cbzYVVnjxrzxjHo3nJC+62uolgeGIS9A==",
|
||||
"dependencies": {
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Security.Principal.Windows": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA=="
|
||||
},
|
||||
"System.Text.Encoding": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Text.Encodings.Web": {
|
||||
"type": "Transitive",
|
||||
"resolved": "6.0.0",
|
||||
"contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==",
|
||||
"dependencies": {
|
||||
"System.Runtime.CompilerServices.Unsafe": "6.0.0"
|
||||
}
|
||||
},
|
||||
"System.Text.Json": {
|
||||
"type": "Transitive",
|
||||
"resolved": "6.0.2",
|
||||
"contentHash": "0nE2gwXLn3PTBOPwORLqwuYvWB+Beomt9ZBX+6LmogMNKUvfD1SoDb/ycB1vBntT94rGaB/SvxEyeLu14H6aEg==",
|
||||
"dependencies": {
|
||||
"System.Runtime.CompilerServices.Unsafe": "6.0.0",
|
||||
"System.Text.Encodings.Web": "6.0.0"
|
||||
}
|
||||
},
|
||||
"System.Threading.Tasks": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Threading.Tasks.Extensions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.5.4",
|
||||
"contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg=="
|
||||
},
|
||||
"System.Windows.Extensions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "5.0.0",
|
||||
"contentHash": "c1ho9WU9ZxMZawML+ssPKZfdnrg/OjR3pe0m9v8230z3acqphwvPJqzAkH54xRYm5ntZHGG1EPP3sux9H3qSPg==",
|
||||
"dependencies": {
|
||||
"System.Drawing.Common": "5.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
23
src/ApiService/Tests/Tests.csproj
Normal file
23
src/ApiService/Tests/Tests.csproj
Normal file
@ -0,0 +1,23 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
|
||||
<IsPackable>false</IsPackable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.11.0" />
|
||||
<PackageReference Include="xunit" Version="2.4.1" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="coverlet.collector" Version="3.1.0">
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
13
src/ApiService/Tests/UnitTest1.cs
Normal file
13
src/ApiService/Tests/UnitTest1.cs
Normal file
@ -0,0 +1,13 @@
|
||||
using Xunit;
|
||||
|
||||
namespace Tests
|
||||
{
|
||||
public class UnitTest1
|
||||
{
|
||||
[Fact]
|
||||
public void Test1()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user