Initial commit: Auth.Module
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.Razor">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net10.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<RootNamespace>Auth.Module</RootNamespace>
|
||||
<AssemblyName>Auth.Module</AssemblyName>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
<ItemGroup>
|
||||
<SupportedPlatform Include="browser" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="MudBlazor" Version="8.9.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Components.Web" Version="10.0.1" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Components.Authorization" Version="10.0.1" />
|
||||
<PackageReference Include="Blazored.LocalStorage" Version="4.5.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Http" Version="10.0.1" />
|
||||
<PackageReference Include="Microsoft.Extensions.Localization" Version="10.0.1" />
|
||||
|
||||
|
||||
<!-- <PackageReference Include="SoloX.BlazorJsonLocalization" Version="3.0.0-alpha.2" /> -->
|
||||
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="../../../../Backend/SharedLogic/Generic/Generic.CL/Generic.CL.csproj" />
|
||||
<ProjectReference Include="../../../../Backend/APIs/Auth/Auth.Contracts/Auth.Contracts.csproj" />
|
||||
<ProjectReference Include="../../Layouts/LayoutLib.Layout/LayoutLib.Layout.csproj" />
|
||||
<ProjectReference Include="../../Generic/Common.RCL/Common.RCL.csproj" />
|
||||
<ProjectReference Include="../../Generic/Media.RCL/Media.RCL.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<!-- Embed default culture for instant loading -->
|
||||
<EmbeddedResource Include="*.json" />
|
||||
|
||||
<!-- Include wwwroot for HTTP-loaded cultures -->
|
||||
<!-- <Content Include="wwwroot\**\*" /> -->
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,3 @@
|
||||
<div class="my-component">
|
||||
This component is defined in the <strong>AuthLib</strong> library.
|
||||
</div>
|
||||
@@ -0,0 +1,6 @@
|
||||
.my-component {
|
||||
border: 2px dashed red;
|
||||
padding: 1em;
|
||||
margin: 1em 0;
|
||||
background-image: url('background.png');
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
@page "/user/basic-info"
|
||||
@inject UserAPIConsumer userAPIConsumer
|
||||
@inject NavigationManager nav
|
||||
|
||||
<Dialog ShowDialog="showNameDialog" OnCancel="ToggleNameDialog" OnSubmit="ChangeName" TitleName="@("Change Name")">
|
||||
<div>
|
||||
TEST TEST TEST
|
||||
</div>
|
||||
</Dialog>
|
||||
@*
|
||||
<Dialog OnCancel="ToggleEmailDialog" OnSubmit="ChangeEmail" TitleName="Change Email" ></Dialog>
|
||||
|
||||
|
||||
<Dialog OnCancel="TogglePhoneNumberDialog" OnSubmit="ChangePhoneNumber" TitleName="Change Phone Number" ></Dialog>
|
||||
|
||||
|
||||
<Dialog OnCancel="TogglePassword" OnSubmit="ChangePassword" TitleName="Change Password" ></Dialog> *@
|
||||
|
||||
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 p-20">
|
||||
@*
|
||||
<ToggleInput InputValue="userInfoUpdate.Name" OnSave="ChangeName" InputType="text" Label="Name"></ToggleInput>
|
||||
<ToggleInput InputValue="userInfoUpdate.Email" OnSave="ChangeEmail" InputType="email" Label="Email"></ToggleInput>
|
||||
<ToggleInput InputValue="userInfoUpdate.PhoneNumber" OnSave="ChangePhoneNumber" InputType="number" Label="Phone
|
||||
Number"></ToggleInput>
|
||||
<ToggleInput OnSave="ChangePassword" InputType="password" Label="Password"></ToggleInput> *@
|
||||
|
||||
<div class="flex flex-row justify-between">
|
||||
<label>Name:</label>
|
||||
<p>@user.Name</p>
|
||||
<button @onclick="ToggleNameDialog" class="btn btn-primary">Change</button>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="flex flex-row justify-between">
|
||||
<label>Email:</label>
|
||||
<p>@user.Email</p>
|
||||
<button @onclick="ToggleEmailDialog" class="btn btn-primary">Change</button>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="flex flex-row justify-between">
|
||||
<label>PhoneNumber:</label>
|
||||
<p>@user.PhoneNumber</p>
|
||||
<button @onclick="TogglePhoneNumberDialog" class="btn btn-primary">Change</button>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="flex flex-row justify-between">
|
||||
<label>Password:</label>
|
||||
<p>***********</p>
|
||||
<button @onclick="TogglePasswordDialog" class="btn btn-primary">Change</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@code {
|
||||
|
||||
UserVM user = new();
|
||||
|
||||
[CascadingParameter] public Task<AuthenticationState> authStateTask { get; set; }
|
||||
|
||||
bool showNameDialog = false;
|
||||
bool showEmailDialog = false;
|
||||
bool showPhoneNumberDialog = false;
|
||||
bool showPasswordDialog = false;
|
||||
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
|
||||
var userId = (await authStateTask).User.Claims.FirstOrDefault(x => x.Type == "id").Value;
|
||||
if (userId == null)
|
||||
nav.NavigateTo("/signin");
|
||||
|
||||
user = await userAPIConsumer.GetUser(userId);
|
||||
}
|
||||
|
||||
void ToggleNameDialog() => showNameDialog = !showNameDialog;
|
||||
|
||||
void ToggleEmailDialog() => showEmailDialog = !showEmailDialog;
|
||||
|
||||
void TogglePhoneNumberDialog() => showPhoneNumberDialog = !showPhoneNumberDialog;
|
||||
|
||||
void TogglePasswordDialog() => showPasswordDialog = !showPasswordDialog;
|
||||
|
||||
async Task ChangeName()
|
||||
{
|
||||
|
||||
ToggleNameDialog();
|
||||
}
|
||||
|
||||
async Task ChangeEmail()
|
||||
{
|
||||
|
||||
ToggleEmailDialog();
|
||||
}
|
||||
|
||||
async Task ChangePhoneNumber()
|
||||
{
|
||||
|
||||
TogglePhoneNumberDialog();
|
||||
}
|
||||
|
||||
async Task ChangePassword()
|
||||
{
|
||||
|
||||
TogglePasswordDialog();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
<div>
|
||||
<h2>Write your new Email</h2>
|
||||
<input class="input input-primary"/>
|
||||
<button @onclick="Submit">change email</button>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
@code{
|
||||
|
||||
|
||||
async Task Submit()
|
||||
{
|
||||
//SendEmailConfirmationToken()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
@layout EmptyLayout
|
||||
@inject UserAPIConsumer userAPIConsumer
|
||||
@inject NavigationManager nav
|
||||
|
||||
|
||||
<PageTitle>Sign In</PageTitle>
|
||||
|
||||
|
||||
|
||||
|
||||
<EditForm Model="@tokenRequestModel" OnValidSubmit="@OnValidSignIn" class="text-gray-600 body-font">
|
||||
<DataAnnotationsValidator />
|
||||
<ValidationSummary />
|
||||
<div class="container px-5 py-24 mx-auto flex flex-wrap items-center">
|
||||
<div class="lg:w-3/5 md:w-1/2 md:pr-16 lg:pr-0 pr-0">
|
||||
<h1 class="title-font font-medium text-3xl text-gray-900">Slow-carb next level shoindcgoitch ethical
|
||||
authentic, poko scenester</h1>
|
||||
<p class="leading-relaxed mt-4">Poke slow-carb mixtape knausgaard, typewriter street art gentrify hammock
|
||||
starladder roathse. Craies vegan tousled etsy austin.</p>
|
||||
</div>
|
||||
<div class="lg:w-2/6 md:w-1/2 bg-gray-100 rounded-lg p-8 flex flex-col md:ml-auto w-full mt-10 md:mt-0">
|
||||
<h2 class="text-gray-900 text-lg font-medium title-font mb-5">Sign In</h2>
|
||||
|
||||
<div class="relative mb-4">
|
||||
<label for="email" class="leading-7 text-sm text-gray-600">Email</label>
|
||||
<InputText type="email" placeholder="Email" @bind-Value="tokenRequestModel.Email" id="email"
|
||||
class="w-full bg-white rounded border border-gray-300 focus:border-indigo-500 focus:ring-2 focus:ring-indigo-200 text-base outline-none text-gray-700 py-1 px-3 leading-8 transition-colors duration-200 ease-in-out" />
|
||||
</div>
|
||||
<div class="relative mb-4">
|
||||
<label for="Password" class="leading-7 text-sm text-gray-600">Password</label>
|
||||
<InputText type="password" placeholder="Password" @bind-Value="tokenRequestModel.Password" id="Password"
|
||||
class="w-full bg-white rounded border border-gray-300 focus:border-indigo-500 focus:ring-2 focus:ring-indigo-200 text-base outline-none text-gray-700 py-1 px-3 leading-8 transition-colors duration-200 ease-in-out" />
|
||||
</div>
|
||||
|
||||
<button type="submit"
|
||||
class="text-white mt-4 bg-indigo-500 border-0 py-2 px-8 focus:outline-none hover:bg-indigo-600 rounded text-lg">Sign
|
||||
In</button>
|
||||
<p class="text-xs text-red-500 mt-4">@errorMessage</p>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</EditForm>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@code {
|
||||
|
||||
[Parameter]
|
||||
public EventCallback CarryOnRequest { get; set; }
|
||||
|
||||
private TokenRequestModel tokenRequestModel = new();
|
||||
|
||||
private string errorMessage = "";
|
||||
|
||||
|
||||
[CascadingParameter] public Task<AuthenticationState> authStateTask { get; set; }
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
}
|
||||
|
||||
public async Task OnValidSignIn()
|
||||
{
|
||||
var isSuccessful = await userAPIConsumer.Login(tokenRequestModel);
|
||||
if (isSuccessful)
|
||||
{
|
||||
errorMessage = "Verifcation Email Sent to your Original Email.";
|
||||
errorMessage = "Verifcation Email Sent to your Original Email.";
|
||||
// TODO: Capture NewEmail from user input. Using placeholder for now.
|
||||
userAPIConsumer.SendChangeEmailToken(new RequestChangeEmail { NewEmail = "placeholder@example.com" });
|
||||
}
|
||||
else
|
||||
errorMessage = "Wrong Email or Password.";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//Modal with confirm username and password ... calls a event call back that will carry on the request
|
||||
@@ -0,0 +1,47 @@
|
||||
@page "/forgotpassword"
|
||||
@* @using System.ComponentModel.DataAnnotations *@
|
||||
@inject UserAPIConsumer userAPIConsumer
|
||||
@layout EmptyLayout
|
||||
|
||||
<div class="container px-5 py-24 mx-auto flex flex-wrap items-center">
|
||||
|
||||
<div class="lg:w-2/6 md:w-1/2 bg-gray-100 rounded-lg p-8 flex flex-col mx-auto w-full mt-10 md:mt-0">
|
||||
<h2 class="text-gray-900 text-lg font-medium title-font mb-5">Reset your Password</h2>
|
||||
|
||||
|
||||
<div class="relative mb-4">
|
||||
<label for="email" class="leading-7 text-sm text-gray-600">Email</label>
|
||||
<input type="email" placeholder="Email" @bind="Email" id="email"
|
||||
class="w-full bg-white rounded border border-gray-300 focus:border-indigo-500 focus:ring-2 focus:ring-indigo-200 text-base outline-none text-gray-700 py-1 px-3 leading-8 transition-colors duration-200 ease-in-out" />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<button @onclick="ResetPassword" type="button"
|
||||
class="text-white mt-4 bg-indigo-500 border-0 py-2 px-8 focus:outline-none hover:bg-indigo-600 rounded text-lg">Reset
|
||||
Password</button>
|
||||
<p class='text-md text-center font-bold @(isSuccessful ? "text-green-500" : "text-red-500") mt-4'>@resultMessage
|
||||
</p>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@code {
|
||||
|
||||
string resultMessage = "";
|
||||
bool isSuccessful = false;
|
||||
|
||||
|
||||
public string Email { get; set; }
|
||||
|
||||
async Task ResetPassword()
|
||||
{
|
||||
isSuccessful = await userAPIConsumer.RequestResetPassword(Email);
|
||||
if (isSuccessful)
|
||||
resultMessage = "Email Sent.";
|
||||
else
|
||||
resultMessage = "Error.";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
@page "/account/reset-password/{*token}"
|
||||
@layout EmptyLayout
|
||||
@inject UserAPIConsumer userAPIConsumer
|
||||
|
||||
|
||||
<EditForm EditContext="ec" OnValidSubmit="Reset" class="container px-5 py-24 mx-auto flex flex-wrap items-center">
|
||||
|
||||
<div class="lg:w-2/6 md:w-1/2 bg-gray-100 rounded-lg p-8 flex flex-col mx-auto w-full mt-10 md:mt-0">
|
||||
<h2 class="text-gray-900 text-lg font-medium title-font mb-5">Reset your Password</h2>
|
||||
|
||||
|
||||
<div class="relative mb-4">
|
||||
<label for="email" class="leading-7 text-sm text-gray-600">Email</label>
|
||||
<InputText type="email" placeholder="Email" @bind-Value="passwordResetModel.Email" id="email"
|
||||
class="w-full bg-white rounded border border-gray-300 focus:border-indigo-500 focus:ring-2 focus:ring-indigo-200 text-base outline-none text-gray-700 py-1 px-3 leading-8 transition-colors duration-200 ease-in-out" />
|
||||
|
||||
</div>
|
||||
|
||||
<div class="relative mb-4">
|
||||
<label for="password" class="leading-7 text-sm text-gray-600">Password</label>
|
||||
<InputText type="password" placeholder="Password" @bind-Value="passwordResetModel.Password" id="password"
|
||||
class="w-full bg-white rounded border border-gray-300 focus:border-indigo-500 focus:ring-2 focus:ring-indigo-200 text-base outline-none text-gray-700 py-1 px-3 leading-8 transition-colors duration-200 ease-in-out" />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<button type="submit"
|
||||
class="text-white mt-4 bg-indigo-500 border-0 py-2 px-8 focus:outline-none hover:bg-indigo-600 rounded text-lg">Reset
|
||||
Password</button>
|
||||
<p class='text-md text-center font-bold @(isSuccessful ? "text-green-500" : "text-red-500") mt-4'>@resultMessage
|
||||
</p>
|
||||
|
||||
|
||||
</div>
|
||||
</EditForm>
|
||||
|
||||
|
||||
@code {
|
||||
|
||||
[Parameter]
|
||||
public string Token { get; set; }
|
||||
|
||||
PasswordResetModel passwordResetModel = new();
|
||||
@* string status = "Confirming..."; *@
|
||||
|
||||
string resultMessage = "";
|
||||
|
||||
bool isSuccessful = false;
|
||||
EditContext ec;
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
ec = new EditContext(passwordResetModel);
|
||||
}
|
||||
|
||||
async Task Reset()
|
||||
{
|
||||
resultMessage = "";
|
||||
passwordResetModel.Token = Token;
|
||||
if (ec.Validate())
|
||||
{
|
||||
isSuccessful = await userAPIConsumer.ResetPassword(passwordResetModel);
|
||||
if (isSuccessful)
|
||||
resultMessage = "Password reset successful.";
|
||||
else
|
||||
resultMessage = "Error, Try Again later";
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
@page "/confirm-phonenumber/{phoneNumber}/{token}"
|
||||
@inject UserAPIConsumer userAPIConsumer
|
||||
|
||||
|
||||
<h1>@message</h1>
|
||||
|
||||
|
||||
@code {
|
||||
|
||||
[Parameter]
|
||||
public string Token { get; set; }
|
||||
|
||||
[Parameter]
|
||||
public string PhoneNumber { get; set; }
|
||||
|
||||
string message = "";
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
var updatePhoneNumber = new UpdatePhoneNumber() { Token = Token, PhoneNumber = PhoneNumber };
|
||||
var isSuccess = await userAPIConsumer.UpdatePhoneNumber(updatePhoneNumber);
|
||||
if (isSuccess)
|
||||
message = $"Phone Number Changed to {PhoneNumber} Successfully.";
|
||||
else
|
||||
message = $"Server Error or Token Expired.";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
@page "/phone"
|
||||
@inject UserAPIConsumer userAPIConsumer
|
||||
@inject NavigationManager nav
|
||||
|
||||
|
||||
|
||||
<div class="flex flex-col w-full h-full p-20">
|
||||
<input @bind="phoneNumber" class="input input-primary" />
|
||||
<button @onclick="Submit" class="btn btn-primary">Submit</button>
|
||||
<p class="text-red-500">@error</p>
|
||||
</div>
|
||||
|
||||
@code {
|
||||
|
||||
string phoneNumber = "";
|
||||
|
||||
string error = "";
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
async Task Submit()
|
||||
{
|
||||
@* var updatePhoneNumber = new UpdatePhoneNumber() { PhoneNumber= phoneNumber}; *@
|
||||
var isSuccess = await userAPIConsumer.SendPhoneNumberToken(phoneNumber);
|
||||
if (isSuccess)
|
||||
nav.NavigateTo("/profile");
|
||||
else
|
||||
error = "Error updating Phone Number.";
|
||||
}
|
||||
}
|
||||
Executable
+98
@@ -0,0 +1,98 @@
|
||||
@page "/email-confirmed"
|
||||
@layout EmptyLayout
|
||||
@inject UserAPIConsumer userAPIConsumer
|
||||
@inject NavigationManager nav
|
||||
|
||||
|
||||
<PageTitle>Email Confirmed</PageTitle>
|
||||
|
||||
|
||||
<h1>Email Confirmed</h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@*
|
||||
|
||||
|
||||
|
||||
<EditForm Model="@tokenRequestModel" OnValidSubmit="@OnValidSignIn" class="text-gray-600 body-font">
|
||||
<DataAnnotationsValidator />
|
||||
<ValidationSummary />
|
||||
<div class="container px-5 py-24 mx-auto flex flex-wrap items-center">
|
||||
<div class="lg:w-3/5 md:w-1/2 md:pr-16 lg:pr-0 pr-0">
|
||||
<h1 class="title-font font-medium text-3xl text-gray-900">Slow-carb next level shoindcgoitch ethical
|
||||
authentic, poko scenester</h1>
|
||||
<p class="leading-relaxed mt-4">Poke slow-carb mixtape knausgaard, typewriter street art gentrify hammock
|
||||
starladder roathse. Craies vegan tousled etsy austin.</p>
|
||||
</div>
|
||||
<div class="lg:w-2/6 md:w-1/2 bg-gray-100 rounded-lg p-8 flex flex-col md:ml-auto w-full mt-10 md:mt-0">
|
||||
<h2 class="text-gray-900 text-lg font-medium title-font mb-5">Sign In</h2>
|
||||
|
||||
<div class="relative mb-4">
|
||||
<label for="email" class="leading-7 text-sm text-gray-600">Email</label>
|
||||
<InputText type="email" placeholder="Email" @bind-Value="tokenRequestModel.Email" id="email"
|
||||
class="w-full bg-white rounded border border-gray-300 focus:border-indigo-500 focus:ring-2 focus:ring-indigo-200
|
||||
text-base outline-none text-gray-700 py-1 px-3 leading-8 transition-colors duration-200 ease-in-out" />
|
||||
</div>
|
||||
<div class="relative mb-4">
|
||||
<label for="Password" class="leading-7 text-sm text-gray-600">Password</label>
|
||||
<InputText type="password" placeholder="Password" @bind-Value="tokenRequestModel.Password" id="Password"
|
||||
class="w-full bg-white rounded border border-gray-300 focus:border-indigo-500 focus:ring-2 focus:ring-indigo-200
|
||||
text-base outline-none text-gray-700 py-1 px-3 leading-8 transition-colors duration-200 ease-in-out" />
|
||||
</div>
|
||||
|
||||
<button type="submit"
|
||||
class="text-white mt-4 bg-indigo-500 border-0 py-2 px-8 focus:outline-none hover:bg-indigo-600 rounded text-lg">Sign
|
||||
In</button>
|
||||
<p class="text-xs text-red-500 mt-4">@errorMessage</p>
|
||||
|
||||
<NavLink href="/ForgotPassword">Forgot Password?</NavLink>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</EditForm>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@code {
|
||||
|
||||
[Parameter]
|
||||
public string? Token { get; set; }
|
||||
|
||||
private TokenRequestModel tokenRequestModel = new();
|
||||
private string errorMessage = "";
|
||||
|
||||
public async Task OnValidSignIn()
|
||||
{
|
||||
var isSuccessful = await userAPIConsumer.Login(tokenRequestModel);
|
||||
if (!string.IsNullOrEmpty(Token))
|
||||
{
|
||||
if (isSuccessful)
|
||||
{
|
||||
var confirmSuccessful = await userAPIConsumer.ConfirmEmail(Token);
|
||||
if (confirmSuccessful)
|
||||
nav.NavigateTo("/");
|
||||
else
|
||||
{
|
||||
errorMessage = "Error, confirming email. try again later.";
|
||||
}
|
||||
}
|
||||
else
|
||||
errorMessage = "Wrong Email or Password.";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
errorMessage = result.Message;
|
||||
}
|
||||
|
||||
} *@
|
||||
@@ -0,0 +1,35 @@
|
||||
@page "/home2"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<LanguageSwitcher></LanguageSwitcher>
|
||||
<h1>@Localizer["Hello"]</h1>
|
||||
<h1>Hello World</h1>
|
||||
<h1>Hello World</h1>
|
||||
<h1>Hello World</h1>
|
||||
<h1>Hello World</h1>
|
||||
<h1>Hello World</h1>
|
||||
<h1>Hello World</h1>
|
||||
<h1>Hello World</h1>
|
||||
<h1>Hello World</h1>
|
||||
<h1>Hello World</h1>
|
||||
<h1>Hello World</h1>
|
||||
<h1>Hello World</h1>
|
||||
<h1>Hello World</h1>
|
||||
<h1>Hello World</h1>
|
||||
<h1>Hello World</h1>
|
||||
<h1>Hello World</h1>
|
||||
<h1>Hello World</h1>
|
||||
<h1>Hello World</h1>
|
||||
<h1>Hello World</h1>
|
||||
|
||||
<MediaUploadContainer></MediaUploadContainer>
|
||||
|
||||
|
||||
|
||||
@code {
|
||||
|
||||
|
||||
}
|
||||
Executable
+38
@@ -0,0 +1,38 @@
|
||||
@page "/resend"
|
||||
@inject UserAPIConsumer userAPIConsumer
|
||||
@layout EmptyLayout
|
||||
|
||||
<div class="container px-5 py-24 mx-auto flex flex-wrap items-center">
|
||||
|
||||
<div class="lg:w-2/6 md:w-1/2 bg-gray-100 rounded-lg p-8 flex flex-col w-full mt-10 md:mt-0">
|
||||
<h2 class="text-gray-900 text-lg font-medium title-font mb-5">Verify your Email</h2>
|
||||
|
||||
<p>Didn't recieve an email? press the resend email button</p>
|
||||
|
||||
|
||||
<button @onclick="ResendEmail" type="button"
|
||||
class="text-white mt-4 bg-indigo-500 border-0 py-2 px-8 focus:outline-none hover:bg-indigo-600 rounded text-lg">Resend
|
||||
Email</button>
|
||||
<p class='text-md font-bold @(isSuccessful ? "text-green-500" : "text-red-500") mt-4'>@resultMessage</p>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@code {
|
||||
|
||||
string resultMessage = "";
|
||||
bool isSuccessful = false;
|
||||
|
||||
async Task ResendEmail()
|
||||
{
|
||||
resultMessage = "";
|
||||
isSuccessful = await userAPIConsumer.ResendConfirmation();
|
||||
if (isSuccessful)
|
||||
resultMessage = "Email Sent.";
|
||||
else
|
||||
resultMessage = "Error.";
|
||||
}
|
||||
|
||||
}
|
||||
Executable
+104
@@ -0,0 +1,104 @@
|
||||
@page "/SignIn"
|
||||
@page "/confirm-account/{*token}"
|
||||
@layout EmptyLayout
|
||||
@inject UserAPIConsumer userAPIConsumer
|
||||
@inject NavigationManager nav
|
||||
|
||||
|
||||
<PageTitle>Sign In</PageTitle>
|
||||
|
||||
|
||||
|
||||
|
||||
<EditForm Model="@tokenRequestModel" OnValidSubmit="@OnValidSignIn"
|
||||
class="flex justify-center items-center h-screen bg-base-200">
|
||||
<DataAnnotationsValidator />
|
||||
|
||||
<div class="card w-96 bg-base-100 shadow-xl">
|
||||
<div class="card-body">
|
||||
<h2 class="card-title text-2xl font-bold justify-center mb-6">Sign In</h2>
|
||||
|
||||
<div class="form-control w-full max-w-xs mx-auto">
|
||||
<label class="label">
|
||||
<span class="label-text">Email</span>
|
||||
</label>
|
||||
<InputText type="email" placeholder="email@example.com" @bind-Value="tokenRequestModel.Email"
|
||||
class="input input-bordered w-full max-w-xs" />
|
||||
</div>
|
||||
|
||||
<div class="form-control w-full max-w-xs mx-auto">
|
||||
<label class="label">
|
||||
<span class="label-text">Password</span>
|
||||
</label>
|
||||
<InputText type="password" placeholder="********" @bind-Value="tokenRequestModel.Password"
|
||||
class="input input-bordered w-full max-w-xs" />
|
||||
<label class="label">
|
||||
<a href="/ForgotPassword" class="label-text-alt link link-hover">Forgot Password?</a>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="card-actions justify-center mt-6">
|
||||
<button type="submit" class="btn btn-primary w-full max-w-xs">Sign In</button>
|
||||
</div>
|
||||
|
||||
@if (!string.IsNullOrEmpty(errorMessage))
|
||||
{
|
||||
<div class="alert alert-error mt-4">
|
||||
<span>@errorMessage</span>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</EditForm>
|
||||
|
||||
|
||||
|
||||
|
||||
@code {
|
||||
|
||||
[Parameter]
|
||||
public string? Token { get; set; }
|
||||
|
||||
private TokenRequestModel tokenRequestModel = new();
|
||||
private string errorMessage = "";
|
||||
|
||||
|
||||
[CascadingParameter] public Task<AuthenticationState> authStateTask { get; set; }
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
var user = (await authStateTask).User;
|
||||
if (user != null)
|
||||
if (user.Identity.IsAuthenticated)
|
||||
nav.NavigateTo("/");
|
||||
}
|
||||
|
||||
public async Task OnValidSignIn()
|
||||
{
|
||||
var isSuccessful = await userAPIConsumer.Login(tokenRequestModel);
|
||||
if (isSuccessful)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(Token))
|
||||
{
|
||||
var confirmSuccessful = await userAPIConsumer.ConfirmEmail(Token);
|
||||
if (confirmSuccessful)
|
||||
nav.NavigateTo("/email-confirmed");
|
||||
else
|
||||
{
|
||||
errorMessage = "Error, confirming email. try again later.";
|
||||
}
|
||||
}
|
||||
else
|
||||
nav.NavigateTo("/");
|
||||
}
|
||||
else
|
||||
errorMessage = "Wrong Email or Password.";
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@* errorMessage = result.Message; *@
|
||||
}
|
||||
|
||||
}
|
||||
Executable
+75
@@ -0,0 +1,75 @@
|
||||
@page "/signUp"
|
||||
@layout EmptyLayout
|
||||
@inject UserAPIConsumer userAPIConsumer
|
||||
@inject NavigationManager nav
|
||||
|
||||
<PageTitle>Sign Up</PageTitle>
|
||||
|
||||
|
||||
<EditForm Model="@registerModel" OnValidSubmit="@OnValidSignUp"
|
||||
class="flex justify-center items-center py-10 min-h-screen bg-base-200">
|
||||
<DataAnnotationsValidator />
|
||||
|
||||
<div class="card w-96 bg-base-100 shadow-xl">
|
||||
<div class="card-body">
|
||||
<h2 class="card-title text-2xl font-bold justify-center mb-6">Sign Up</h2>
|
||||
|
||||
<div class="form-control w-full">
|
||||
<label class="label"><span class="label-text">Full Name</span></label>
|
||||
<InputText type="text" @bind-Value="registerModel.FullName" class="input input-bordered w-full" />
|
||||
</div>
|
||||
|
||||
<div class="form-control w-full">
|
||||
<label class="label"><span class="label-text">Email</span></label>
|
||||
<InputText type="email" @bind-Value="registerModel.Email" class="input input-bordered w-full" />
|
||||
</div>
|
||||
|
||||
<div class="form-control w-full">
|
||||
<label class="label"><span class="label-text">Password</span></label>
|
||||
<InputText type="password" @bind-Value="registerModel.Password" class="input input-bordered w-full" />
|
||||
</div>
|
||||
|
||||
<div class="form-control w-full">
|
||||
<label class="label"><span class="label-text">Confirm Password</span></label>
|
||||
<InputText type="password" @bind-Value="registerModel.ConfirmPassword"
|
||||
class="input input-bordered w-full" />
|
||||
</div>
|
||||
|
||||
<div class="card-actions justify-center mt-6">
|
||||
<button type="submit" class="btn btn-primary w-full">Sign Up</button>
|
||||
</div>
|
||||
|
||||
@if (!string.IsNullOrEmpty(errorMessage))
|
||||
{
|
||||
<div class="alert alert-error mt-4">
|
||||
<span>@errorMessage</span>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</EditForm>
|
||||
|
||||
|
||||
@code {
|
||||
|
||||
private RegisterModel registerModel = new RegisterModel();
|
||||
private string errorMessage = "";
|
||||
|
||||
[CascadingParameter] public Task<AuthenticationState> authStateTask { get; set; }
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
var user = (await authStateTask).User;
|
||||
if (user.Identity.IsAuthenticated)
|
||||
nav.NavigateTo("/");
|
||||
}
|
||||
|
||||
private async Task OnValidSignUp()
|
||||
{
|
||||
var result = await userAPIConsumer.Register(registerModel);
|
||||
if (result.IsSuccessful)
|
||||
nav.NavigateTo("SignIn");
|
||||
else
|
||||
errorMessage = result.Message;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
<div class="modal-box">
|
||||
<h3 class="font-bold text-lg flex items-center gap-2">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6 text-warning" fill="none" viewBox="0 0 24 24"
|
||||
stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" />
|
||||
</svg>
|
||||
Add Role
|
||||
</h3>
|
||||
|
||||
<div class="py-4">
|
||||
<select @bind="SelectedValue" class="select select-bordered w-full">
|
||||
<option value="" disabled selected>Select a role</option>
|
||||
@foreach (var role in Roles)
|
||||
{
|
||||
<option value="@role">@role</option>
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="modal-action">
|
||||
<button class="btn" @onclick="OnCancel">Cancel</button>
|
||||
<button class="btn btn-primary" @onclick="OnAddRole">Add Role</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@code {
|
||||
[Parameter]
|
||||
public List<string> Roles { get; set; } = new();
|
||||
|
||||
public string SelectedValue { get; set; } = "";
|
||||
|
||||
[Parameter]
|
||||
public EventCallback OnClose { get; set; }
|
||||
|
||||
[Parameter]
|
||||
public EventCallback<string> OnConfirm { get; set; }
|
||||
|
||||
private async Task OnCancel() => await OnClose.InvokeAsync();
|
||||
|
||||
private async Task OnAddRole()
|
||||
{
|
||||
if (!string.IsNullOrEmpty(SelectedValue))
|
||||
{
|
||||
await OnConfirm.InvokeAsync(SelectedValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
@inject RoleAPIConsumer roleAPIConsumer
|
||||
|
||||
<div class="flex flex-col w-full h-full gap-5">
|
||||
<select @bind="selectedRole" class="select select-bordered w-full">
|
||||
<option value="" disabled selected>Select Role</option>
|
||||
@foreach (var role in roles)
|
||||
{
|
||||
<option value="@role">@role</option>
|
||||
}
|
||||
</select>
|
||||
<button class="w-full btn btn-primary h-full" @onclick="() => AddRole()">أضف صلاحية</button>
|
||||
</div>
|
||||
|
||||
@code {
|
||||
string selectedRole = "";
|
||||
|
||||
[Parameter] public UserVM UserVM { get; set; }
|
||||
[Parameter] public EventCallback AddMethod { get; set; }
|
||||
|
||||
List<string> roles = new();
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
roles = Enum.GetNames<AppEnum.Roles>().Except(UserVM.Roles).ToList();
|
||||
}
|
||||
|
||||
async Task AddRole()
|
||||
{
|
||||
if (string.IsNullOrEmpty(selectedRole)) return;
|
||||
|
||||
var result = await roleAPIConsumer.AddUserToRole(UserVM.Id, selectedRole);
|
||||
if (result)
|
||||
{
|
||||
UserVM.Roles.Add(selectedRole);
|
||||
// Snackbar removed, rely on UI update
|
||||
await AddMethod.InvokeAsync();
|
||||
}
|
||||
else
|
||||
{
|
||||
// Snackbar removed
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
@page "/manage-UserRole"
|
||||
@layout AdminLayout
|
||||
@inject UserAPIConsumer userAPIConsumer
|
||||
@inject RoleAPIConsumer roleAPIConsumer
|
||||
@using Auth.Contracts
|
||||
|
||||
<div class="overflow-x-auto p-4">
|
||||
<table class="table table-zebra table-bordered w-full">
|
||||
<thead>
|
||||
<tr class="text-center bg-base-200">
|
||||
<th colspan="3" class="text-xl p-4">صلاحيات الوصول للتطبيق</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>الأسم</th>
|
||||
@* <th>الوظيفة</th> *@
|
||||
<th>الصلحيات</th>
|
||||
<th>أضف صلاحية</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@if (users != null)
|
||||
{
|
||||
@foreach (var user in users)
|
||||
{
|
||||
<tr>
|
||||
<td>@user.Name</td>
|
||||
@* <td>@user.JobTitle</td> *@
|
||||
<td>
|
||||
<div class="flex flex-wrap gap-2">
|
||||
@foreach (var role in user.Roles)
|
||||
{
|
||||
<div class="badge badge-success gap-2">
|
||||
<span>@role</span>
|
||||
<button class="btn btn-xs btn-circle btn-ghost" @onclick="() => RemoveRole(user, role)"
|
||||
type="button">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="h-3 w-3" fill="none" viewBox="0 0 24 24"
|
||||
stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M6 18L18 6M6 6l12 12" />
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<AddRolePopUp UserVM="user" AddMethod="AddRole"></AddRolePopUp>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@code {
|
||||
|
||||
List<UserVM> users = new List<UserVM>();
|
||||
List<string> roles = new List<string>();
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
users = await userAPIConsumer.GetUsers();
|
||||
users ??= new List<UserVM>();
|
||||
roles = Enum.GetNames<AppEnum.Roles>().ToList();
|
||||
}
|
||||
|
||||
async Task AddRole()
|
||||
{
|
||||
StateHasChanged();
|
||||
}
|
||||
|
||||
async Task RemoveRole(UserVM user, string role)
|
||||
{
|
||||
var result = await roleAPIConsumer.RemoveUserFromRole(user.Id, role);
|
||||
if (result)
|
||||
{
|
||||
user.Roles.Remove(role);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Error handling logic if needed
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.AspNetCore.Components.Authorization;
|
||||
using Blazored.LocalStorage;
|
||||
using Auth.Module.Services;
|
||||
|
||||
namespace Auth.Module.Config
|
||||
{
|
||||
public static class AuthModuleExtensions
|
||||
{
|
||||
public static IServiceCollection AuthModuleServices(this IServiceCollection services)
|
||||
{
|
||||
services.AddScoped<AuthenticationStateProvider, ApiAuthenticationStateProvider>();
|
||||
// services.AddScoped<IAuthService>(sp => (ApiAuthenticationStateProvider)sp.GetRequiredService<AuthenticationStateProvider>());
|
||||
services.AddScoped<RoleAPIConsumer>();
|
||||
services.AddScoped<UserAPIConsumer>();
|
||||
|
||||
return services;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
using Microsoft.JSInterop;
|
||||
|
||||
namespace AuthLib;
|
||||
|
||||
// This class provides an example of how JavaScript functionality can be wrapped
|
||||
// in a .NET class for easy consumption. The associated JavaScript module is
|
||||
// loaded on demand when first needed.
|
||||
//
|
||||
// This class can be registered as scoped DI service and then injected into Blazor
|
||||
// components for use.
|
||||
|
||||
public class ExampleJsInterop : IAsyncDisposable
|
||||
{
|
||||
private readonly Lazy<Task<IJSObjectReference>> moduleTask;
|
||||
|
||||
public ExampleJsInterop(IJSRuntime jsRuntime)
|
||||
{
|
||||
moduleTask = new (() => jsRuntime.InvokeAsync<IJSObjectReference>(
|
||||
"import", "./_content/AuthLib/exampleJsInterop.js").AsTask());
|
||||
}
|
||||
|
||||
public async ValueTask<string> Prompt(string message)
|
||||
{
|
||||
var module = await moduleTask.Value;
|
||||
return await module.InvokeAsync<string>("showPrompt", message);
|
||||
}
|
||||
|
||||
public async ValueTask DisposeAsync()
|
||||
{
|
||||
if (moduleTask.IsValueCreated)
|
||||
{
|
||||
var module = await moduleTask.Value;
|
||||
await module.DisposeAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
Executable
+166
@@ -0,0 +1,166 @@
|
||||
using System.Net.Http.Headers;
|
||||
using System.Net.Http.Json;
|
||||
using System.Security.Claims;
|
||||
using System.Text;
|
||||
using System.Text.Json;
|
||||
using System.Threading.Tasks;
|
||||
using Auth.Contracts.DTOs.Auth;
|
||||
using Blazored.LocalStorage;
|
||||
using Microsoft.AspNetCore.Components.Authorization;
|
||||
|
||||
namespace Auth.Module.Services
|
||||
{
|
||||
public class ApiAuthenticationStateProvider : AuthenticationStateProvider
|
||||
{
|
||||
private readonly HttpClient _httpClient;
|
||||
private readonly ILocalStorageService _localStorage;
|
||||
|
||||
public ApiAuthenticationStateProvider(
|
||||
HttpClient httpClient,
|
||||
ILocalStorageService localStorage
|
||||
)
|
||||
{
|
||||
_httpClient = httpClient;
|
||||
_localStorage = localStorage;
|
||||
}
|
||||
|
||||
public override async Task<AuthenticationState> GetAuthenticationStateAsync()
|
||||
{
|
||||
var refreshToken = await _localStorage.GetItemAsync<string>("refreshToken");
|
||||
var accessToken = await _localStorage.GetItemAsync<string>("authToken");
|
||||
var expiryDate = await _localStorage.GetItemAsync<string>("expiryDate");
|
||||
|
||||
if (string.IsNullOrWhiteSpace(accessToken))
|
||||
return new AuthenticationState(new ClaimsPrincipal(new ClaimsIdentity()));
|
||||
|
||||
if (DateTime.Now.AddMinutes(4) > DateTime.Parse(expiryDate))
|
||||
{
|
||||
var tokenModel = JsonSerializer.Serialize(
|
||||
new TokenModel()
|
||||
{
|
||||
RefreshToken = refreshToken,
|
||||
AccessToken = accessToken,
|
||||
Expiry = new DateTime(),
|
||||
}
|
||||
);
|
||||
var response = await _httpClient.PostAsync(
|
||||
"auth/refresh",
|
||||
new StringContent(tokenModel, Encoding.UTF8, "application/json")
|
||||
);
|
||||
|
||||
if (!response.IsSuccessStatusCode)
|
||||
{
|
||||
_httpClient.DefaultRequestHeaders.Authorization = null;
|
||||
MarkUserAsLoggedOut();
|
||||
return new AuthenticationState(new ClaimsPrincipal(new ClaimsIdentity()));
|
||||
}
|
||||
|
||||
var loginResult = JsonSerializer.Deserialize<LoginResult>(
|
||||
await response.Content.ReadAsStringAsync(),
|
||||
new JsonSerializerOptions { PropertyNameCaseInsensitive = true }
|
||||
);
|
||||
|
||||
await _localStorage.SetItemAsync("authToken", loginResult.AccessToken);
|
||||
await _localStorage.SetItemAsync("refreshToken", loginResult.RefreshToken);
|
||||
await _localStorage.SetItemAsync("expiryDate", loginResult.Expiry);
|
||||
|
||||
accessToken = loginResult.AccessToken;
|
||||
}
|
||||
|
||||
// if (string.IsNullOrWhiteSpace(savedToken) || DateTime.Now > DateTime.Parse(expiryDate))
|
||||
// {
|
||||
// return new AuthenticationState(new ClaimsPrincipal(new ClaimsIdentity()));
|
||||
// }
|
||||
|
||||
|
||||
_httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(
|
||||
"Bearer",
|
||||
accessToken
|
||||
);
|
||||
|
||||
var claims = ParseClaimsFromJwt(accessToken);
|
||||
if (claims is null)
|
||||
return new AuthenticationState(new ClaimsPrincipal(new ClaimsIdentity()));
|
||||
|
||||
return new AuthenticationState(new ClaimsPrincipal(new ClaimsIdentity(claims, "jwt")));
|
||||
}
|
||||
|
||||
public async void MarkUserAsAuthenticated(string jwtToken)
|
||||
{
|
||||
var claims = ParseClaimsFromJwt(jwtToken);
|
||||
|
||||
var authenticatedUser = new ClaimsPrincipal(new ClaimsIdentity(claims, "apiauth"));
|
||||
var authState = Task.FromResult(new AuthenticationState(authenticatedUser));
|
||||
NotifyAuthenticationStateChanged(authState);
|
||||
|
||||
// var userId = authenticatedUser.Claims.FirstOrDefault(x => x.Type == "uid").Value;
|
||||
}
|
||||
|
||||
public async Task MarkUserAsLoggedOut()
|
||||
{
|
||||
var anonymousUser = new ClaimsPrincipal(new ClaimsIdentity());
|
||||
var authState = Task.FromResult(new AuthenticationState(anonymousUser));
|
||||
NotifyAuthenticationStateChanged(authState);
|
||||
|
||||
_httpClient.DefaultRequestHeaders.Authorization = null;
|
||||
}
|
||||
|
||||
private IEnumerable<Claim> ParseClaimsFromJwt(string jwt)
|
||||
{
|
||||
try
|
||||
{
|
||||
var claims = new List<Claim>();
|
||||
var payload = jwt.Split('.')[1];
|
||||
var jsonBytes = ParseBase64WithoutPadding(payload);
|
||||
var keyValuePairs = JsonSerializer.Deserialize<Dictionary<string, object>>(
|
||||
jsonBytes
|
||||
);
|
||||
|
||||
keyValuePairs.TryGetValue(ClaimTypes.Role, out object roles);
|
||||
|
||||
if (roles != null)
|
||||
{
|
||||
if (roles.ToString().Trim().StartsWith("["))
|
||||
{
|
||||
var parsedRoles = JsonSerializer.Deserialize<string[]>(roles.ToString());
|
||||
|
||||
foreach (var parsedRole in parsedRoles)
|
||||
{
|
||||
claims.Add(new Claim(ClaimTypes.Role, parsedRole));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
claims.Add(new Claim(ClaimTypes.Role, roles.ToString()));
|
||||
}
|
||||
|
||||
keyValuePairs.Remove(ClaimTypes.Role);
|
||||
}
|
||||
|
||||
claims.AddRange(
|
||||
keyValuePairs.Select(kvp => new Claim(kvp.Key, kvp.Value.ToString()))
|
||||
);
|
||||
|
||||
return claims;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private byte[] ParseBase64WithoutPadding(string base64)
|
||||
{
|
||||
switch (base64.Length % 4)
|
||||
{
|
||||
case 2:
|
||||
base64 += "==";
|
||||
break;
|
||||
case 3:
|
||||
base64 += "=";
|
||||
break;
|
||||
}
|
||||
return Convert.FromBase64String(base64);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,140 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net.Http.Json;
|
||||
using System.Threading.Tasks;
|
||||
// using Microsoft.Extensions.DependencyInjection; // For AddHttpClient(), AddHttpClient<T>
|
||||
using System.Net.Http;
|
||||
using Auth.Contracts.DTOs.Users; // For RoleVM
|
||||
|
||||
namespace Auth.Module.Services
|
||||
{
|
||||
public class RoleAPIConsumer
|
||||
{
|
||||
private readonly HttpClient client;
|
||||
|
||||
// public RealEstateFilter RealEstateFilter { get; set; } = new();
|
||||
|
||||
public RoleAPIConsumer(IHttpClientFactory httpClientFactory)
|
||||
{
|
||||
this.client = httpClientFactory.CreateClient("Auth");
|
||||
|
||||
}
|
||||
|
||||
public async Task<bool> RemoveUserFromRole(string userId, string roleName)
|
||||
{
|
||||
try
|
||||
{
|
||||
// query = query + $"Language={appState.Language}";
|
||||
|
||||
// var response = await client.GetFromJsonAsync<List<Product>>($"{query}");
|
||||
var response = await client.DeleteAsync($"role-management/{roleName}/user/{userId}");
|
||||
return response.IsSuccessStatusCode;
|
||||
}
|
||||
catch (HttpRequestException ex)
|
||||
{
|
||||
// _logger.LogError(ex, "GET Role failed for endpoint: {Endpoint}", endpoint);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<bool> AddUserToRole(string userId, string roleName)
|
||||
{
|
||||
try
|
||||
{
|
||||
var response = await client.PostAsync(
|
||||
$"role-management/{roleName}/user/{userId}",
|
||||
null
|
||||
);
|
||||
return response.IsSuccessStatusCode;
|
||||
// return await response.Content.ReadFromJsonAsync<RequestVM>();
|
||||
}
|
||||
catch (HttpRequestException ex)
|
||||
{
|
||||
// _logger.LogError(ex, "GET Role failed for endpoint: {Endpoint}", endpoint);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<List<RoleVM>> GetRoles()
|
||||
{
|
||||
try
|
||||
{
|
||||
return await client.GetFromJsonAsync<List<RoleVM>>("role-management/roles");
|
||||
}
|
||||
catch (HttpRequestException)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<bool> CreateRole(RoleVM role)
|
||||
{
|
||||
try
|
||||
{
|
||||
var response = await client.PostAsJsonAsync("role-management/roles", role);
|
||||
return response.IsSuccessStatusCode;
|
||||
}
|
||||
catch (HttpRequestException)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<bool> DeleteRole(string roleId)
|
||||
{
|
||||
try
|
||||
{
|
||||
var response = await client.DeleteAsync($"role-management/roles/{roleId}");
|
||||
return response.IsSuccessStatusCode;
|
||||
}
|
||||
catch (HttpRequestException)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<List<string>> GetRolePermissions(string roleId)
|
||||
{
|
||||
try
|
||||
{
|
||||
return await client.GetFromJsonAsync<List<string>>($"role-management/roles/{roleId}/permissions");
|
||||
}
|
||||
catch (HttpRequestException)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<bool> AddPermissionToRole(string roleId, string permission)
|
||||
{
|
||||
try
|
||||
{
|
||||
var response = await client.PostAsJsonAsync($"role-management/roles/{roleId}/permissions", permission);
|
||||
return response.IsSuccessStatusCode;
|
||||
}
|
||||
catch (HttpRequestException)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<bool> RemovePermissionFromRole(string roleId, string permission)
|
||||
{
|
||||
try
|
||||
{
|
||||
// Send as JSON body for DELETE request
|
||||
var request = new HttpRequestMessage(HttpMethod.Delete, $"role-management/roles/{roleId}/permissions")
|
||||
{
|
||||
Content = JsonContent.Create(permission)
|
||||
};
|
||||
var response = await client.SendAsync(request);
|
||||
return response.IsSuccessStatusCode;
|
||||
}
|
||||
catch (HttpRequestException)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Executable
+282
@@ -0,0 +1,282 @@
|
||||
using System.Net.Http.Headers;
|
||||
using System.Net.Http.Json;
|
||||
using System.Text;
|
||||
using System.Text.Json;
|
||||
using Auth.Contracts.DTOs.Auth;
|
||||
using Auth.Contracts.DTOs.Users;
|
||||
using Blazored.LocalStorage;
|
||||
using Microsoft.AspNetCore.Components.Authorization;
|
||||
|
||||
namespace Auth.Module.Services
|
||||
{
|
||||
public class UserAPIConsumer
|
||||
{
|
||||
private readonly HttpClient client;
|
||||
private readonly AuthenticationStateProvider _authenticationStateProvider;
|
||||
private readonly ILocalStorageService _localStorage;
|
||||
|
||||
public UserAPIConsumer(
|
||||
IHttpClientFactory httpClientFactory,
|
||||
AuthenticationStateProvider authenticationStateProvider,
|
||||
ILocalStorageService localStorage
|
||||
)
|
||||
{
|
||||
this.client = httpClientFactory.CreateClient("Auth");
|
||||
|
||||
_authenticationStateProvider = authenticationStateProvider;
|
||||
_localStorage = localStorage;
|
||||
}
|
||||
|
||||
public async Task<(bool IsSuccessful, string Message)> Register(RegisterModel registerModel)
|
||||
{
|
||||
try
|
||||
{
|
||||
var registerAsJson = JsonSerializer.Serialize(registerModel);
|
||||
var response = await client.PostAsync(
|
||||
"auth/Register",
|
||||
new StringContent(registerAsJson, Encoding.UTF8, "application/json")
|
||||
);
|
||||
|
||||
return (response.IsSuccessStatusCode, await response.Content.ReadAsStringAsync());
|
||||
}
|
||||
catch (HttpRequestException ex)
|
||||
{
|
||||
// _logger.LogError(ex, "GET request failed for endpoint: {Endpoint}", endpoint);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task RefreshToken(TokenModel tokenModel) { }
|
||||
|
||||
public async Task<bool> Login(TokenRequestModel tokenRequestModel)
|
||||
{
|
||||
try
|
||||
{
|
||||
var loginAsJson = JsonSerializer.Serialize(tokenRequestModel);
|
||||
var response = await client.PostAsync(
|
||||
"auth/login",
|
||||
new StringContent(loginAsJson, Encoding.UTF8, "application/json")
|
||||
);
|
||||
|
||||
if (response.IsSuccessStatusCode)
|
||||
{
|
||||
var loginResult = JsonSerializer.Deserialize<LoginResult>(
|
||||
await response.Content.ReadAsStringAsync(),
|
||||
new JsonSerializerOptions { PropertyNameCaseInsensitive = true }
|
||||
);
|
||||
await _localStorage.SetItemAsync("authToken", loginResult.AccessToken);
|
||||
await _localStorage.SetItemAsync("refreshToken", loginResult.RefreshToken);
|
||||
await _localStorage.SetItemAsync("expiryDate", loginResult.Expiry);
|
||||
|
||||
(
|
||||
(ApiAuthenticationStateProvider)_authenticationStateProvider
|
||||
).MarkUserAsAuthenticated(loginResult.AccessToken);
|
||||
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(
|
||||
"bearer",
|
||||
loginResult.AccessToken
|
||||
);
|
||||
|
||||
loginResult.IsSuccessful = true;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
catch (HttpRequestException ex)
|
||||
{
|
||||
// _logger.LogError(ex, "GET request failed for endpoint: {Endpoint}", endpoint);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task Logout()
|
||||
{
|
||||
try
|
||||
{
|
||||
try
|
||||
{
|
||||
await client.PostAsync("auth/logout", null);
|
||||
}
|
||||
catch { }
|
||||
|
||||
await _localStorage.RemoveItemAsync("authToken");
|
||||
await _localStorage.RemoveItemAsync("refreshToken");
|
||||
await _localStorage.RemoveItemAsync("expiryDate");
|
||||
|
||||
(
|
||||
(ApiAuthenticationStateProvider)_authenticationStateProvider
|
||||
).MarkUserAsLoggedOut();
|
||||
client.DefaultRequestHeaders.Authorization = null;
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<UserVM> GetUserInfoAsync(string id)
|
||||
{
|
||||
try
|
||||
{
|
||||
var user = await client.GetFromJsonAsync<UserVM>($"user/{id}");
|
||||
return user;
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<bool> UpdateUserInfoAsync(UserVM user)
|
||||
{
|
||||
try
|
||||
{
|
||||
var response = await client.PutAsJsonAsync("user", user);
|
||||
return response.IsSuccessStatusCode;
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<List<UserVM>> GetUsers()
|
||||
{
|
||||
try
|
||||
{
|
||||
var users = await client.GetFromJsonAsync<List<UserVM>>($"users");
|
||||
return users;
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<UserVM> GetUser(string id)
|
||||
{
|
||||
try
|
||||
{
|
||||
var user = await client.GetFromJsonAsync<UserVM>($"user/{id}");
|
||||
return user;
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<bool> UpdateUser(UserInfoUpdate user)
|
||||
{
|
||||
try
|
||||
{
|
||||
var response = await client.PutAsJsonAsync("user", user);
|
||||
return response.IsSuccessStatusCode;
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<bool> ResendConfirmation()
|
||||
{
|
||||
try
|
||||
{
|
||||
var response = await client.GetAsync("auth/resend-confirmation");
|
||||
return response.IsSuccessStatusCode;
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<bool> RequestResetPassword(string email)
|
||||
{
|
||||
try
|
||||
{
|
||||
var response = await client.GetAsync($"auth/password-reset-token/{email}");
|
||||
return response.IsSuccessStatusCode;
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<bool> ConfirmEmail(string token)
|
||||
{
|
||||
try
|
||||
{
|
||||
var response = await client.PostAsJsonAsync(
|
||||
"auth/confirm-email",
|
||||
token,
|
||||
new JsonSerializerOptions() { PropertyNameCaseInsensitive = true }
|
||||
);
|
||||
return response.IsSuccessStatusCode;
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<bool> ResetPassword(PasswordResetModel passwordResetModel)
|
||||
{
|
||||
try
|
||||
{
|
||||
var response = await client.PostAsJsonAsync(
|
||||
"auth/reset-password",
|
||||
passwordResetModel,
|
||||
new JsonSerializerOptions() { PropertyNameCaseInsensitive = true }
|
||||
);
|
||||
return response.IsSuccessStatusCode;
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<bool> SendPhoneNumberToken(string phoneNumber)
|
||||
{
|
||||
try
|
||||
{
|
||||
var result = await client.PostAsJsonAsync($"auth/phone-number", phoneNumber);
|
||||
return result.IsSuccessStatusCode;
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<bool> UpdatePhoneNumber(UpdatePhoneNumber updatePhoneNumber)
|
||||
{
|
||||
try
|
||||
{
|
||||
var result = await client.PutAsJsonAsync($"auth/phone-number", updatePhoneNumber);
|
||||
return result.IsSuccessStatusCode;
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<bool> SendChangeEmailToken(RequestChangeEmail requestChangeEmail)
|
||||
{
|
||||
try
|
||||
{
|
||||
var result = await client.PostAsJsonAsync($"auth/change-email", requestChangeEmail);
|
||||
return result.IsSuccessStatusCode;
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Generic.Contracts.Generics;
|
||||
|
||||
namespace Auth.Module.Services.Utils
|
||||
{
|
||||
public class QueryBuilder
|
||||
{
|
||||
private readonly StringBuilder _builder;
|
||||
|
||||
public QueryBuilder()
|
||||
{
|
||||
_builder = new StringBuilder();
|
||||
}
|
||||
|
||||
public QueryBuilder AddBase(string baseString)
|
||||
{
|
||||
_builder.Insert(0, baseString);
|
||||
return this;
|
||||
}
|
||||
|
||||
public QueryBuilder AddPagination(Pagination pagination)
|
||||
{
|
||||
if (pagination != null)
|
||||
{
|
||||
AppendParameter("currentPage", pagination.CurrentPage.Value);
|
||||
AppendParameter("pageSize", pagination.PageSize.Value);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public QueryBuilder AddSort(SortModel sort)
|
||||
{
|
||||
if (sort != null && !string.IsNullOrEmpty(sort.SortBy))
|
||||
{
|
||||
AppendParameter("Column", sort.SortBy);
|
||||
AppendParameter("sortDirection", sort.SortDirection.ToString());
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public QueryBuilder AddModelProperties<TModel>(TModel model)
|
||||
{
|
||||
if (model == null)
|
||||
return this;
|
||||
|
||||
var properties = typeof(TModel).GetProperties();
|
||||
foreach (var prop in properties)
|
||||
{
|
||||
var value = prop.GetValue(model)?.ToString();
|
||||
if (!string.IsNullOrEmpty(value))
|
||||
{
|
||||
AppendParameter(prop.Name.ToLower(), value);
|
||||
}
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
private void AppendParameter(string key, string value)
|
||||
{
|
||||
if (_builder.Length > 0)
|
||||
_builder.Append('&');
|
||||
_builder.Append($"{Uri.EscapeDataString(key)}={Uri.EscapeDataString(value)}");
|
||||
}
|
||||
|
||||
private void AppendParameter(string key, int value)
|
||||
{
|
||||
AppendParameter(key, value.ToString());
|
||||
}
|
||||
|
||||
public override string ToString() => _builder.ToString();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Auth.Module;
|
||||
|
||||
public class SharedRes
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
@using Microsoft.AspNetCore.Components.Web
|
||||
@using Auth.Contracts.DTOs.Users
|
||||
@using Auth.Contracts.DTOs.Auth
|
||||
@using Auth.Module.Config
|
||||
@using Auth.Module.Services
|
||||
|
||||
@using Microsoft.AspNetCore.Authorization
|
||||
@using Microsoft.AspNetCore.Components.Authorization
|
||||
@using Microsoft.AspNetCore.Components.Forms;
|
||||
@using Auth.Contracts;
|
||||
@using Common
|
||||
@using LayoutLib
|
||||
@using Generic
|
||||
@* @using Generic.Media.Components *@
|
||||
@using System.Net.Http
|
||||
@using System.Net.Http.Json
|
||||
@using Microsoft.AspNetCore.Components.Forms
|
||||
@using Microsoft.AspNetCore.Components.Routing
|
||||
@using Microsoft.AspNetCore.Components.Web
|
||||
@using Microsoft.AspNetCore.Components.Web.Virtualization
|
||||
@* @using AuthModule.Components *@
|
||||
@using Auth.Module
|
||||
@* @using SoloX.BlazorJsonLocalization *@
|
||||
@using Microsoft.Extensions.Localization
|
||||
@inject IStringLocalizer<Auth.Module.SharedRes> Localizer
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,584 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v10.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v10.0": {
|
||||
"Auth.RCL/1.0.0": {
|
||||
"dependencies": {
|
||||
"Auth.Contracts": "1.0.0",
|
||||
"Blazored.LocalStorage": "4.5.0",
|
||||
"Common.RCL": "1.0.0",
|
||||
"Generic.CL": "1.0.0",
|
||||
"LayoutLib.RCL": "1.0.0",
|
||||
"Media.RCL": "1.0.0",
|
||||
"Microsoft.AspNetCore.Components.Authorization": "10.0.1",
|
||||
"Microsoft.AspNetCore.Components.Web": "10.0.1",
|
||||
"Microsoft.Extensions.Http": "10.0.1",
|
||||
"Microsoft.Extensions.Localization": "10.0.1",
|
||||
"MudBlazor": "8.9.0"
|
||||
},
|
||||
"runtime": {
|
||||
"Auth.RCL.dll": {}
|
||||
}
|
||||
},
|
||||
"Blazored.LocalStorage/4.5.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Components.Web": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net8.0/Blazored.LocalStorage.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Authorization/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Metadata": "10.0.1",
|
||||
"Microsoft.Extensions.Diagnostics": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.AspNetCore.Authorization.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Components/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Authorization": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.AspNetCore.Components.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Authorization/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Authorization": "10.0.1",
|
||||
"Microsoft.AspNetCore.Components": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.AspNetCore.Components.Authorization.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Forms/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Components": "10.0.1",
|
||||
"Microsoft.Extensions.Validation": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.AspNetCore.Components.Forms.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Web/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Components": "10.0.1",
|
||||
"Microsoft.AspNetCore.Components.Forms": "10.0.1",
|
||||
"Microsoft.Extensions.DependencyInjection": "10.0.1",
|
||||
"Microsoft.Extensions.Primitives": "10.0.1",
|
||||
"Microsoft.JSInterop": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.AspNetCore.Components.Web.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Metadata/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.AspNetCore.Metadata.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Primitives": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Configuration.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Abstractions/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Primitives": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Configuration.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Binder/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration": "10.0.1",
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Configuration.Binder.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.DependencyInjection.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Diagnostics/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration": "10.0.1",
|
||||
"Microsoft.Extensions.Diagnostics.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Diagnostics.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Diagnostics.Abstractions/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Diagnostics.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Http/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Diagnostics": "10.0.1",
|
||||
"Microsoft.Extensions.Logging": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Http.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Localization/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Localization.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Localization.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Localization.Abstractions/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Localization.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Logging/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Logging.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Logging.Abstractions/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Logging.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Options/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Primitives": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Options.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Options.ConfigurationExtensions/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Configuration.Binder": "10.0.1",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1",
|
||||
"Microsoft.Extensions.Primitives": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Primitives/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Primitives.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Validation/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Validation.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.JSInterop/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.JSInterop.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"MudBlazor/8.9.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Components": "10.0.1",
|
||||
"Microsoft.AspNetCore.Components.Web": "10.0.1",
|
||||
"Microsoft.Extensions.Localization": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/MudBlazor.dll": {
|
||||
"assemblyVersion": "8.9.0.0",
|
||||
"fileVersion": "8.9.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Auth.Contracts/1.0.0": {
|
||||
"runtime": {
|
||||
"Auth.Contracts.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Common.RCL/1.0.0": {
|
||||
"dependencies": {
|
||||
"Generic.CL": "1.0.0",
|
||||
"Microsoft.AspNetCore.Components.Web": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"Common.RCL.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Generic.CL/1.0.0": {
|
||||
"runtime": {
|
||||
"Generic.CL.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"LayoutLib.RCL/1.0.0": {
|
||||
"dependencies": {
|
||||
"Common.RCL": "1.0.0",
|
||||
"Microsoft.AspNetCore.Components.Web": "10.0.1",
|
||||
"MudBlazor": "8.9.0"
|
||||
},
|
||||
"runtime": {
|
||||
"LayoutLib.RCL.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Media.RCL/1.0.0": {
|
||||
"dependencies": {
|
||||
"Blazored.LocalStorage": "4.5.0",
|
||||
"Microsoft.AspNetCore.Components.Authorization": "10.0.1",
|
||||
"Microsoft.AspNetCore.Components.Web": "10.0.1",
|
||||
"Microsoft.Extensions.Http": "10.0.1",
|
||||
"Microsoft.Extensions.Localization": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"Media.RCL.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"Auth.RCL/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Blazored.LocalStorage/4.5.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-6nZuJwA7zNIKx83IsObiHXZb09ponJOpCClU3en+hI8ZFvrOKXeOw+H7TegQZQrvdR1n9fkrVkEBQZg8vx6ZTw==",
|
||||
"path": "blazored.localstorage/4.5.0",
|
||||
"hashPath": "blazored.localstorage.4.5.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Authorization/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-Y9QE0gH4Q4cR7ZRToFju47c1MoeqxaLHdpzOviqD2TmnGGAeDMT9AV56j2BOVm5CsJAVyI/USxLYrkk2NVinZA==",
|
||||
"path": "microsoft.aspnetcore.authorization/10.0.1",
|
||||
"hashPath": "microsoft.aspnetcore.authorization.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Components/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-SbABcQ7soM9jC/HvPKrg/smQxsMD2gW9iHBRFtBiYTMSs5Vqh7+i47BTOe3OM3IGzly2FiOmeNHJhMYK7YFGWA==",
|
||||
"path": "microsoft.aspnetcore.components/10.0.1",
|
||||
"hashPath": "microsoft.aspnetcore.components.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Authorization/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-Ahez1F0EfsPqIT/X/TcdJCDYjVACHJwIPgZSof33wqLXaENUJNDnzphkmXOiBY1tvok/ZIUVEpeFLWdkLh0IyA==",
|
||||
"path": "microsoft.aspnetcore.components.authorization/10.0.1",
|
||||
"hashPath": "microsoft.aspnetcore.components.authorization.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Forms/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-aWUpLOz749gwMMaKe81tet+INC8nfskbauF2VO5Qr3lspj/l8S24zNLr95Bl8EwAizvBCNqwb8fPFU1dnn3WbA==",
|
||||
"path": "microsoft.aspnetcore.components.forms/10.0.1",
|
||||
"hashPath": "microsoft.aspnetcore.components.forms.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Web/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-hX74ijqAiUfIo6WpvLWignGYp7tkrRR3KRVBErwFSAcsiHeaCxGM81fYRXd9rf+gkFUNoKvcSxYyVZc2vFJVXg==",
|
||||
"path": "microsoft.aspnetcore.components.web/10.0.1",
|
||||
"hashPath": "microsoft.aspnetcore.components.web.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Metadata/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-6JrG03xROuR4mQIHGcT8OnaKVBoPLLbto5RicKQIUV3JIU7cZYKIWDAnk0SQcl7ziQr6R327D6QBOo+PbYnnrw==",
|
||||
"path": "microsoft.aspnetcore.metadata/10.0.1",
|
||||
"hashPath": "microsoft.aspnetcore.metadata.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Configuration/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-njoRekyMIK+smav8B6KL2YgIfUtlsRNuT7wvurpLW+m/hoRKVnoELk2YxnUnWRGScCd1rukLMxShwLqEOKowDg==",
|
||||
"path": "microsoft.extensions.configuration/10.0.1",
|
||||
"hashPath": "microsoft.extensions.configuration.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-kPlU11hql+L9RjrN2N9/0GcRcRcZrNFlLLjadasFWeBORT6pL6OE+RYRk90GGCyVGSxTK+e1/f3dsMj5zpFFiQ==",
|
||||
"path": "microsoft.extensions.configuration.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.configuration.abstractions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Binder/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-Lp4CZIuTVXtlvkAnTq6QvMSW7+H62gX2cU2vdFxHQUxvrWTpi7LwYI3X+YAyIS0r12/p7gaosco7efIxL4yFNw==",
|
||||
"path": "microsoft.extensions.configuration.binder/10.0.1",
|
||||
"hashPath": "microsoft.extensions.configuration.binder.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-zerXV0GAR9LCSXoSIApbWn+Dq1/T+6vbXMHGduq1LoVQRHT0BXsGQEau0jeLUBUcsoF/NaUT8ADPu8b+eNcIyg==",
|
||||
"path": "microsoft.extensions.dependencyinjection/10.0.1",
|
||||
"hashPath": "microsoft.extensions.dependencyinjection.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-oIy8fQxxbUsSrrOvgBqlVgOeCtDmrcynnTG+FQufcUWBrwyPfwlUkCDB2vaiBeYPyT+20u9/HeuHeBf+H4F/8g==",
|
||||
"path": "microsoft.extensions.dependencyinjection.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Diagnostics/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-YaocqxscJLxLit0F5yq2XyB+9C7rSRfeTL7MJIl7XwaOoUO3i0EqfO2kmtjiRduYWw7yjcSINEApYZbzjau2gQ==",
|
||||
"path": "microsoft.extensions.diagnostics/10.0.1",
|
||||
"hashPath": "microsoft.extensions.diagnostics.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Diagnostics.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-QMoMrkNpnQym5mpfdxfxpRDuqLpsOuztguFvzH9p+Ex+do+uLFoi7UkAsBO4e9/tNR3eMFraFf2fOAi2cp3jjA==",
|
||||
"path": "microsoft.extensions.diagnostics.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.diagnostics.abstractions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Http/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-ZXJup9ReE1Ot3M8jqcw1b/lnc8USxyYS3cyLsssU39u04TES9JNGviWUGIvP3K7mMU3TF7kQl2aS0SmVwegflw==",
|
||||
"path": "microsoft.extensions.http/10.0.1",
|
||||
"hashPath": "microsoft.extensions.http.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Localization/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-yJBI3IRm9uTRu7cPc7i90/8+CuiiJJ5M4khj6iWQcYnq6VrG+H2U5GzpRLtkVCsgxc1LjtkNMEbSDatfBA+z5g==",
|
||||
"path": "microsoft.extensions.localization/10.0.1",
|
||||
"hashPath": "microsoft.extensions.localization.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Localization.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-TQSQWF+iZdtGNgPiu7gKUqrTEeRD/mhk7KeYiuEwmTUPbawsYfPSNzSvOOeueJ0nU1697X8HZ2vCp2ByHNHkZg==",
|
||||
"path": "microsoft.extensions.localization.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.localization.abstractions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Logging/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-9ItMpMLFZFJFqCuHLLbR3LiA4ahA8dMtYuXpXl2YamSDWZhYS9BruPprkftY0tYi2bQ0slNrixdFm+4kpz1g5w==",
|
||||
"path": "microsoft.extensions.logging/10.0.1",
|
||||
"hashPath": "microsoft.extensions.logging.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Logging.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-YkmyiPIWAXVb+lPIrM0LE5bbtLOJkCiRTFiHpkVOvhI7uTvCfoOHLEN0LcsY56GpSD7NqX3gJNpsaDe87/B3zg==",
|
||||
"path": "microsoft.extensions.logging.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.logging.abstractions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Options/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-G6VVwywpJI4XIobetGHwg7wDOYC2L2XBYdtskxLaKF/Ynb5QBwLl7Q//wxAR2aVCLkMpoQrjSP9VoORkyddsNQ==",
|
||||
"path": "microsoft.extensions.options/10.0.1",
|
||||
"hashPath": "microsoft.extensions.options.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Options.ConfigurationExtensions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-pL78/Im7O3WmxHzlKUsWTYchKL881udU7E26gCD3T0+/tPhWVfjPwMzfN/MRKU7aoFYcOiqcG2k1QTlH5woWow==",
|
||||
"path": "microsoft.extensions.options.configurationextensions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.options.configurationextensions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Primitives/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-DO8XrJkp5x4PddDuc/CH37yDBCs9BYN6ijlKyR3vMb55BP1Vwh90vOX8bNfnKxr5B2qEI3D8bvbY1fFbDveDHQ==",
|
||||
"path": "microsoft.extensions.primitives/10.0.1",
|
||||
"hashPath": "microsoft.extensions.primitives.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Validation/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-5bcu9zWhgY8AZUN1ERNH0BQKFh10xlx4UrCh+0cDn7wB01QkrK4S6Jh45fCgEqmWJWVGqBS2g8MN0Lu/99Zgdg==",
|
||||
"path": "microsoft.extensions.validation/10.0.1",
|
||||
"hashPath": "microsoft.extensions.validation.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.JSInterop/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-pTfoYBjs7HKmTEk9cNWcSySdTKT8USjviLgmMaSs/YA0+oONufKy9hqqZ5EE4CNy9y24SDDc9lerXfV7aiVfWA==",
|
||||
"path": "microsoft.jsinterop/10.0.1",
|
||||
"hashPath": "microsoft.jsinterop.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"MudBlazor/8.9.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-KdjXMXiSvl6uNr+S2YDhGI1aX/TULMQejQSniMlp6QTss35NKFrJyrMAmN082HNvOObuKdnTtLpntJ7rM5Op/A==",
|
||||
"path": "mudblazor/8.9.0",
|
||||
"hashPath": "mudblazor.8.9.0.nupkg.sha512"
|
||||
},
|
||||
"Auth.Contracts/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Common.RCL/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Generic.CL/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"LayoutLib.RCL/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Media.RCL/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,583 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v10.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v10.0": {
|
||||
"AuthModule/1.0.0": {
|
||||
"dependencies": {
|
||||
"Auth.Contracts": "1.0.0",
|
||||
"Blazored.LocalStorage": "4.5.0",
|
||||
"Common": "1.0.0",
|
||||
"Generic": "1.0.0",
|
||||
"LayoutLib": "1.0.0",
|
||||
"Media": "1.0.0",
|
||||
"Microsoft.AspNetCore.Components.Authorization": "10.0.1",
|
||||
"Microsoft.AspNetCore.Components.Web": "10.0.1",
|
||||
"Microsoft.Extensions.Http": "10.0.1",
|
||||
"Microsoft.Extensions.Localization": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"AuthModule.dll": {}
|
||||
}
|
||||
},
|
||||
"Blazored.LocalStorage/4.5.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Components.Web": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net8.0/Blazored.LocalStorage.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Authorization/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Metadata": "10.0.1",
|
||||
"Microsoft.Extensions.Diagnostics": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.AspNetCore.Authorization.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Components/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Authorization": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.AspNetCore.Components.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Authorization/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Authorization": "10.0.1",
|
||||
"Microsoft.AspNetCore.Components": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.AspNetCore.Components.Authorization.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Forms/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Components": "10.0.1",
|
||||
"Microsoft.Extensions.Validation": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.AspNetCore.Components.Forms.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Web/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Components": "10.0.1",
|
||||
"Microsoft.AspNetCore.Components.Forms": "10.0.1",
|
||||
"Microsoft.Extensions.DependencyInjection": "10.0.1",
|
||||
"Microsoft.Extensions.Primitives": "10.0.1",
|
||||
"Microsoft.JSInterop": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.AspNetCore.Components.Web.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Metadata/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.AspNetCore.Metadata.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Primitives": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Configuration.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Abstractions/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Primitives": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Configuration.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Binder/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration": "10.0.1",
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Configuration.Binder.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.DependencyInjection.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Diagnostics/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration": "10.0.1",
|
||||
"Microsoft.Extensions.Diagnostics.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Diagnostics.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Diagnostics.Abstractions/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Diagnostics.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Http/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Diagnostics": "10.0.1",
|
||||
"Microsoft.Extensions.Logging": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Http.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Localization/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Localization.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Localization.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Localization.Abstractions/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Localization.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Logging/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Logging.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Logging.Abstractions/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Logging.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Options/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Primitives": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Options.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Options.ConfigurationExtensions/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Configuration.Binder": "10.0.1",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1",
|
||||
"Microsoft.Extensions.Primitives": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Primitives/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Primitives.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Validation/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Validation.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.JSInterop/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.JSInterop.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"MudBlazor/8.9.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Components": "10.0.1",
|
||||
"Microsoft.AspNetCore.Components.Web": "10.0.1",
|
||||
"Microsoft.Extensions.Localization": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/MudBlazor.dll": {
|
||||
"assemblyVersion": "8.9.0.0",
|
||||
"fileVersion": "8.9.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Auth.Contracts/1.0.0": {
|
||||
"runtime": {
|
||||
"Auth.Contracts.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Common/1.0.0": {
|
||||
"dependencies": {
|
||||
"Generic": "1.0.0",
|
||||
"Microsoft.AspNetCore.Components.Web": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"Common.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Generic/1.0.0": {
|
||||
"runtime": {
|
||||
"Generic.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"LayoutLib/1.0.0": {
|
||||
"dependencies": {
|
||||
"Common": "1.0.0",
|
||||
"Microsoft.AspNetCore.Components.Web": "10.0.1",
|
||||
"MudBlazor": "8.9.0"
|
||||
},
|
||||
"runtime": {
|
||||
"LayoutLib.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Media/1.0.0": {
|
||||
"dependencies": {
|
||||
"Blazored.LocalStorage": "4.5.0",
|
||||
"Microsoft.AspNetCore.Components.Authorization": "10.0.1",
|
||||
"Microsoft.AspNetCore.Components.Web": "10.0.1",
|
||||
"Microsoft.Extensions.Http": "10.0.1",
|
||||
"Microsoft.Extensions.Localization": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"Media.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"AuthModule/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Blazored.LocalStorage/4.5.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-6nZuJwA7zNIKx83IsObiHXZb09ponJOpCClU3en+hI8ZFvrOKXeOw+H7TegQZQrvdR1n9fkrVkEBQZg8vx6ZTw==",
|
||||
"path": "blazored.localstorage/4.5.0",
|
||||
"hashPath": "blazored.localstorage.4.5.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Authorization/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-Y9QE0gH4Q4cR7ZRToFju47c1MoeqxaLHdpzOviqD2TmnGGAeDMT9AV56j2BOVm5CsJAVyI/USxLYrkk2NVinZA==",
|
||||
"path": "microsoft.aspnetcore.authorization/10.0.1",
|
||||
"hashPath": "microsoft.aspnetcore.authorization.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Components/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-SbABcQ7soM9jC/HvPKrg/smQxsMD2gW9iHBRFtBiYTMSs5Vqh7+i47BTOe3OM3IGzly2FiOmeNHJhMYK7YFGWA==",
|
||||
"path": "microsoft.aspnetcore.components/10.0.1",
|
||||
"hashPath": "microsoft.aspnetcore.components.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Authorization/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-Ahez1F0EfsPqIT/X/TcdJCDYjVACHJwIPgZSof33wqLXaENUJNDnzphkmXOiBY1tvok/ZIUVEpeFLWdkLh0IyA==",
|
||||
"path": "microsoft.aspnetcore.components.authorization/10.0.1",
|
||||
"hashPath": "microsoft.aspnetcore.components.authorization.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Forms/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-aWUpLOz749gwMMaKe81tet+INC8nfskbauF2VO5Qr3lspj/l8S24zNLr95Bl8EwAizvBCNqwb8fPFU1dnn3WbA==",
|
||||
"path": "microsoft.aspnetcore.components.forms/10.0.1",
|
||||
"hashPath": "microsoft.aspnetcore.components.forms.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Web/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-hX74ijqAiUfIo6WpvLWignGYp7tkrRR3KRVBErwFSAcsiHeaCxGM81fYRXd9rf+gkFUNoKvcSxYyVZc2vFJVXg==",
|
||||
"path": "microsoft.aspnetcore.components.web/10.0.1",
|
||||
"hashPath": "microsoft.aspnetcore.components.web.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Metadata/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-6JrG03xROuR4mQIHGcT8OnaKVBoPLLbto5RicKQIUV3JIU7cZYKIWDAnk0SQcl7ziQr6R327D6QBOo+PbYnnrw==",
|
||||
"path": "microsoft.aspnetcore.metadata/10.0.1",
|
||||
"hashPath": "microsoft.aspnetcore.metadata.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Configuration/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-njoRekyMIK+smav8B6KL2YgIfUtlsRNuT7wvurpLW+m/hoRKVnoELk2YxnUnWRGScCd1rukLMxShwLqEOKowDg==",
|
||||
"path": "microsoft.extensions.configuration/10.0.1",
|
||||
"hashPath": "microsoft.extensions.configuration.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-kPlU11hql+L9RjrN2N9/0GcRcRcZrNFlLLjadasFWeBORT6pL6OE+RYRk90GGCyVGSxTK+e1/f3dsMj5zpFFiQ==",
|
||||
"path": "microsoft.extensions.configuration.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.configuration.abstractions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Binder/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-Lp4CZIuTVXtlvkAnTq6QvMSW7+H62gX2cU2vdFxHQUxvrWTpi7LwYI3X+YAyIS0r12/p7gaosco7efIxL4yFNw==",
|
||||
"path": "microsoft.extensions.configuration.binder/10.0.1",
|
||||
"hashPath": "microsoft.extensions.configuration.binder.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-zerXV0GAR9LCSXoSIApbWn+Dq1/T+6vbXMHGduq1LoVQRHT0BXsGQEau0jeLUBUcsoF/NaUT8ADPu8b+eNcIyg==",
|
||||
"path": "microsoft.extensions.dependencyinjection/10.0.1",
|
||||
"hashPath": "microsoft.extensions.dependencyinjection.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-oIy8fQxxbUsSrrOvgBqlVgOeCtDmrcynnTG+FQufcUWBrwyPfwlUkCDB2vaiBeYPyT+20u9/HeuHeBf+H4F/8g==",
|
||||
"path": "microsoft.extensions.dependencyinjection.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Diagnostics/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-YaocqxscJLxLit0F5yq2XyB+9C7rSRfeTL7MJIl7XwaOoUO3i0EqfO2kmtjiRduYWw7yjcSINEApYZbzjau2gQ==",
|
||||
"path": "microsoft.extensions.diagnostics/10.0.1",
|
||||
"hashPath": "microsoft.extensions.diagnostics.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Diagnostics.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-QMoMrkNpnQym5mpfdxfxpRDuqLpsOuztguFvzH9p+Ex+do+uLFoi7UkAsBO4e9/tNR3eMFraFf2fOAi2cp3jjA==",
|
||||
"path": "microsoft.extensions.diagnostics.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.diagnostics.abstractions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Http/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-ZXJup9ReE1Ot3M8jqcw1b/lnc8USxyYS3cyLsssU39u04TES9JNGviWUGIvP3K7mMU3TF7kQl2aS0SmVwegflw==",
|
||||
"path": "microsoft.extensions.http/10.0.1",
|
||||
"hashPath": "microsoft.extensions.http.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Localization/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-yJBI3IRm9uTRu7cPc7i90/8+CuiiJJ5M4khj6iWQcYnq6VrG+H2U5GzpRLtkVCsgxc1LjtkNMEbSDatfBA+z5g==",
|
||||
"path": "microsoft.extensions.localization/10.0.1",
|
||||
"hashPath": "microsoft.extensions.localization.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Localization.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-TQSQWF+iZdtGNgPiu7gKUqrTEeRD/mhk7KeYiuEwmTUPbawsYfPSNzSvOOeueJ0nU1697X8HZ2vCp2ByHNHkZg==",
|
||||
"path": "microsoft.extensions.localization.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.localization.abstractions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Logging/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-9ItMpMLFZFJFqCuHLLbR3LiA4ahA8dMtYuXpXl2YamSDWZhYS9BruPprkftY0tYi2bQ0slNrixdFm+4kpz1g5w==",
|
||||
"path": "microsoft.extensions.logging/10.0.1",
|
||||
"hashPath": "microsoft.extensions.logging.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Logging.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-YkmyiPIWAXVb+lPIrM0LE5bbtLOJkCiRTFiHpkVOvhI7uTvCfoOHLEN0LcsY56GpSD7NqX3gJNpsaDe87/B3zg==",
|
||||
"path": "microsoft.extensions.logging.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.logging.abstractions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Options/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-G6VVwywpJI4XIobetGHwg7wDOYC2L2XBYdtskxLaKF/Ynb5QBwLl7Q//wxAR2aVCLkMpoQrjSP9VoORkyddsNQ==",
|
||||
"path": "microsoft.extensions.options/10.0.1",
|
||||
"hashPath": "microsoft.extensions.options.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Options.ConfigurationExtensions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-pL78/Im7O3WmxHzlKUsWTYchKL881udU7E26gCD3T0+/tPhWVfjPwMzfN/MRKU7aoFYcOiqcG2k1QTlH5woWow==",
|
||||
"path": "microsoft.extensions.options.configurationextensions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.options.configurationextensions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Primitives/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-DO8XrJkp5x4PddDuc/CH37yDBCs9BYN6ijlKyR3vMb55BP1Vwh90vOX8bNfnKxr5B2qEI3D8bvbY1fFbDveDHQ==",
|
||||
"path": "microsoft.extensions.primitives/10.0.1",
|
||||
"hashPath": "microsoft.extensions.primitives.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Validation/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-5bcu9zWhgY8AZUN1ERNH0BQKFh10xlx4UrCh+0cDn7wB01QkrK4S6Jh45fCgEqmWJWVGqBS2g8MN0Lu/99Zgdg==",
|
||||
"path": "microsoft.extensions.validation/10.0.1",
|
||||
"hashPath": "microsoft.extensions.validation.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.JSInterop/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-pTfoYBjs7HKmTEk9cNWcSySdTKT8USjviLgmMaSs/YA0+oONufKy9hqqZ5EE4CNy9y24SDDc9lerXfV7aiVfWA==",
|
||||
"path": "microsoft.jsinterop/10.0.1",
|
||||
"hashPath": "microsoft.jsinterop.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"MudBlazor/8.9.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-KdjXMXiSvl6uNr+S2YDhGI1aX/TULMQejQSniMlp6QTss35NKFrJyrMAmN082HNvOObuKdnTtLpntJ7rM5Op/A==",
|
||||
"path": "mudblazor/8.9.0",
|
||||
"hashPath": "mudblazor.8.9.0.nupkg.sha512"
|
||||
},
|
||||
"Auth.Contracts/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Common/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Generic/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"LayoutLib/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Media/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"ContentRoots":["/mnt/data/Work/Programming/MainProgram/Frontend/Libs/Generic/Common/Common.RCL/wwwroot/","/mnt/data/Work/Programming/MainProgram/Frontend/Libs/Generic/Common/Common.RCL/obj/Debug/net10.0/scopedcss/bundle/","/mnt/data/Work/Programming/MainProgram/Frontend/Libs/Generic/Common/Common.RCL/obj/Debug/net10.0/compressed/"],"Root":{"Children":{"background.png":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"background.png"},"Patterns":null},"Common.RCL.styles.css":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"Common.RCL.styles.css"},"Patterns":null},"Common.RCL.styles.css.gz":{"Children":null,"Asset":{"ContentRootIndex":2,"SubPath":"fy9rjyaakk-{0}-dph6jvottp-dph6jvottp.gz"},"Patterns":null},"exampleJsInterop.js":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"exampleJsInterop.js"},"Patterns":null},"exampleJsInterop.js.gz":{"Children":null,"Asset":{"ContentRootIndex":2,"SubPath":"fiwgk79u47-{0}-luzdqbu196-luzdqbu196.gz"},"Patterns":null},"css":{"Children":{"carousal.js":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"css/carousal.js"},"Patterns":null},"carousal.js.gz":{"Children":null,"Asset":{"ContentRootIndex":2,"SubPath":"32onbuj1wh-{0}-vnhftjewbd-vnhftjewbd.gz"},"Patterns":null}},"Asset":null,"Patterns":null}},"Asset":null,"Patterns":[{"ContentRootIndex":0,"Pattern":"**","Depth":0}]}}
|
||||
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"ContentRoots":["/mnt/data/Work/Programming/MainProgram/Frontend/Libs/Generic/Common/wwwroot/","/mnt/data/Work/Programming/MainProgram/Frontend/Libs/Generic/Common/obj/Debug/net10.0/scopedcss/bundle/","/mnt/data/Work/Programming/MainProgram/Frontend/Libs/Generic/Common/obj/Debug/net10.0/compressed/"],"Root":{"Children":{"background.png":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"background.png"},"Patterns":null},"Common.styles.css":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"Common.styles.css"},"Patterns":null},"Common.styles.css.gz":{"Children":null,"Asset":{"ContentRootIndex":2,"SubPath":"8adx25x7bv-{0}-dyev8wf6eo-dyev8wf6eo.gz"},"Patterns":null},"exampleJsInterop.js":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"exampleJsInterop.js"},"Patterns":null},"exampleJsInterop.js.gz":{"Children":null,"Asset":{"ContentRootIndex":2,"SubPath":"2lk3dd1lz9-{0}-luzdqbu196-luzdqbu196.gz"},"Patterns":null},"css":{"Children":{"carousal.js":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"css/carousal.js"},"Patterns":null},"carousal.js.gz":{"Children":null,"Asset":{"ContentRootIndex":2,"SubPath":"ywk08q3juw-{0}-vnhftjewbd-vnhftjewbd.gz"},"Patterns":null}},"Asset":null,"Patterns":null}},"Asset":null,"Patterns":[{"ContentRootIndex":0,"Pattern":"**","Depth":0}]}}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"ContentRoots":["/mnt/data/Work/Programming/MainProgram/Frontend/Libs/Layouts/LayoutLib/LayoutLib.RCL/wwwroot/","/mnt/data/Work/Programming/MainProgram/Frontend/Libs/Layouts/LayoutLib/LayoutLib.RCL/obj/Debug/net10.0/compressed/","/mnt/data/Work/Programming/MainProgram/Frontend/Libs/Layouts/LayoutLib/LayoutLib.RCL/obj/Debug/net10.0/scopedcss/bundle/","/mnt/data/Work/Programming/MainProgram/Frontend/Libs/Generic/Common/Common.RCL/wwwroot/","/mnt/data/Work/Programming/MainProgram/Frontend/Libs/Generic/Common/Common.RCL/obj/Debug/net10.0/scopedcss/projectbundle/","/mnt/data/Work/Programming/MainProgram/Frontend/Libs/Generic/Common/Common.RCL/obj/Debug/net10.0/compressed/","/home/yla/.nuget/packages/mudblazor/8.9.0/staticwebassets/"],"Root":{"Children":{"background.png":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"background.png"},"Patterns":null},"exampleJsInterop.js":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"exampleJsInterop.js"},"Patterns":null},"exampleJsInterop.js.gz":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"ly0x8gpdve-{0}-luzdqbu196-luzdqbu196.gz"},"Patterns":null},"LayoutLib.RCL.styles.css":{"Children":null,"Asset":{"ContentRootIndex":2,"SubPath":"LayoutLib.RCL.styles.css"},"Patterns":null},"LayoutLib.RCL.styles.css.gz":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"44umfahe6v-{0}-4uc3imhjqu-4uc3imhjqu.gz"},"Patterns":null},"resources":{"Children":{"SharedRes.ar.json":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"resources/SharedRes.ar.json"},"Patterns":null},"SharedRes.ar.json.gz":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"4s4ng6c1jl-{0}-w52k902j3l-w52k902j3l.gz"},"Patterns":null},"SharedRes.en.json":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"resources/SharedRes.en.json"},"Patterns":null},"SharedRes.en.json.gz":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"1d086a33fb-{0}-z8qc8wrh10-z8qc8wrh10.gz"},"Patterns":null}},"Asset":null,"Patterns":null},"_content":{"Children":{"Common.RCL":{"Children":{"background.png":{"Children":null,"Asset":{"ContentRootIndex":3,"SubPath":"background.png"},"Patterns":null},"Common.RCL.dph6jvottp.bundle.scp.css":{"Children":null,"Asset":{"ContentRootIndex":4,"SubPath":"Common.RCL.bundle.scp.css"},"Patterns":null},"Common.RCL.dph6jvottp.bundle.scp.css.gz":{"Children":null,"Asset":{"ContentRootIndex":5,"SubPath":"nyiqsnbdqh-{0}-dph6jvottp-dph6jvottp.gz"},"Patterns":null},"exampleJsInterop.js":{"Children":null,"Asset":{"ContentRootIndex":3,"SubPath":"exampleJsInterop.js"},"Patterns":null},"exampleJsInterop.js.gz":{"Children":null,"Asset":{"ContentRootIndex":5,"SubPath":"fiwgk79u47-{0}-luzdqbu196-luzdqbu196.gz"},"Patterns":null},"css":{"Children":{"carousal.js":{"Children":null,"Asset":{"ContentRootIndex":3,"SubPath":"css/carousal.js"},"Patterns":null},"carousal.js.gz":{"Children":null,"Asset":{"ContentRootIndex":5,"SubPath":"32onbuj1wh-{0}-vnhftjewbd-vnhftjewbd.gz"},"Patterns":null}},"Asset":null,"Patterns":null}},"Asset":null,"Patterns":[{"ContentRootIndex":3,"Pattern":"**","Depth":2}]},"MudBlazor":{"Children":{"MudBlazor.min.css":{"Children":null,"Asset":{"ContentRootIndex":6,"SubPath":"MudBlazor.min.css"},"Patterns":null},"MudBlazor.min.js":{"Children":null,"Asset":{"ContentRootIndex":6,"SubPath":"MudBlazor.min.js"},"Patterns":null}},"Asset":null,"Patterns":null}},"Asset":null,"Patterns":null}},"Asset":null,"Patterns":[{"ContentRootIndex":0,"Pattern":"**","Depth":0}]}}
|
||||
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"ContentRoots":["/mnt/data/Work/Programming/MainProgram/Frontend/Libs/Layouts/LayoutLib/wwwroot/","/mnt/data/Work/Programming/MainProgram/Frontend/Libs/Layouts/LayoutLib/obj/Debug/net10.0/compressed/","/mnt/data/Work/Programming/MainProgram/Frontend/Libs/Layouts/LayoutLib/obj/Debug/net10.0/scopedcss/bundle/","/mnt/data/Work/Programming/MainProgram/Frontend/Libs/Generic/Common/wwwroot/","/mnt/data/Work/Programming/MainProgram/Frontend/Libs/Generic/Common/obj/Debug/net10.0/scopedcss/projectbundle/","/mnt/data/Work/Programming/MainProgram/Frontend/Libs/Generic/Common/obj/Debug/net10.0/compressed/","/home/yla/.nuget/packages/mudblazor/8.9.0/staticwebassets/"],"Root":{"Children":{"background.png":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"background.png"},"Patterns":null},"exampleJsInterop.js":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"exampleJsInterop.js"},"Patterns":null},"exampleJsInterop.js.gz":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"j230ay6ibu-{0}-luzdqbu196-luzdqbu196.gz"},"Patterns":null},"LayoutLib.styles.css":{"Children":null,"Asset":{"ContentRootIndex":2,"SubPath":"LayoutLib.styles.css"},"Patterns":null},"LayoutLib.styles.css.gz":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"o5dp2pr57p-{0}-5phnxoj3fu-5phnxoj3fu.gz"},"Patterns":null},"resources":{"Children":{"SharedRes.ar.json":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"resources/SharedRes.ar.json"},"Patterns":null},"SharedRes.ar.json.gz":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"rx6wnqzng0-{0}-w52k902j3l-w52k902j3l.gz"},"Patterns":null},"SharedRes.en.json":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"resources/SharedRes.en.json"},"Patterns":null},"SharedRes.en.json.gz":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"zamg5qeycn-{0}-z8qc8wrh10-z8qc8wrh10.gz"},"Patterns":null}},"Asset":null,"Patterns":null},"_content":{"Children":{"Common":{"Children":{"background.png":{"Children":null,"Asset":{"ContentRootIndex":3,"SubPath":"background.png"},"Patterns":null},"Common.dyev8wf6eo.bundle.scp.css":{"Children":null,"Asset":{"ContentRootIndex":4,"SubPath":"Common.bundle.scp.css"},"Patterns":null},"Common.dyev8wf6eo.bundle.scp.css.gz":{"Children":null,"Asset":{"ContentRootIndex":5,"SubPath":"4dziwjilcl-{0}-dyev8wf6eo-dyev8wf6eo.gz"},"Patterns":null},"exampleJsInterop.js":{"Children":null,"Asset":{"ContentRootIndex":3,"SubPath":"exampleJsInterop.js"},"Patterns":null},"exampleJsInterop.js.gz":{"Children":null,"Asset":{"ContentRootIndex":5,"SubPath":"2lk3dd1lz9-{0}-luzdqbu196-luzdqbu196.gz"},"Patterns":null},"css":{"Children":{"carousal.js":{"Children":null,"Asset":{"ContentRootIndex":3,"SubPath":"css/carousal.js"},"Patterns":null},"carousal.js.gz":{"Children":null,"Asset":{"ContentRootIndex":5,"SubPath":"ywk08q3juw-{0}-vnhftjewbd-vnhftjewbd.gz"},"Patterns":null}},"Asset":null,"Patterns":null}},"Asset":null,"Patterns":[{"ContentRootIndex":3,"Pattern":"**","Depth":2}]},"MudBlazor":{"Children":{"MudBlazor.min.css":{"Children":null,"Asset":{"ContentRootIndex":6,"SubPath":"MudBlazor.min.css"},"Patterns":null},"MudBlazor.min.js":{"Children":null,"Asset":{"ContentRootIndex":6,"SubPath":"MudBlazor.min.js"},"Patterns":null}},"Asset":null,"Patterns":null}},"Asset":null,"Patterns":null}},"Asset":null,"Patterns":[{"ContentRootIndex":0,"Pattern":"**","Depth":0}]}}
|
||||
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"ContentRoots":["/mnt/data/Work/Programming/MainProgram/Frontend/Libs/Generic/Media/Media.RCL/wwwroot/","/mnt/data/Work/Programming/MainProgram/Frontend/Libs/Generic/Media/Media.RCL/obj/Debug/net10.0/compressed/"],"Root":{"Children":{"css":{"Children":{"cropper.min.css":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"css/cropper.min.css"},"Patterns":null},"cropper.min.css.gz":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"w5z14dlnee-{0}-ozxrxjrq84-ozxrxjrq84.gz"},"Patterns":null}},"Asset":null,"Patterns":null},"js":{"Children":{"crop.js":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"js/crop.js"},"Patterns":null},"crop.js.gz":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"hk7nq8n70x-{0}-rzaytjouo0-rzaytjouo0.gz"},"Patterns":null},"cropper.min.js":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"js/cropper.min.js"},"Patterns":null},"cropper.min.js.gz":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"c4qv7zag90-{0}-llc9n82qda-llc9n82qda.gz"},"Patterns":null},"mediaInterop.js":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"js/mediaInterop.js"},"Patterns":null},"mediaInterop.js.gz":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"8rzz1ly4wd-{0}-j3t2utpur3-j3t2utpur3.gz"},"Patterns":null}},"Asset":null,"Patterns":null},"lib":{"Children":{"cropper.min.css":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"lib/cropper.min.css"},"Patterns":null},"cropper.min.css.gz":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"nsvlrsxof5-{0}-tef8z25zm7-tef8z25zm7.gz"},"Patterns":null},"cropper.min.js":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"lib/cropper.min.js"},"Patterns":null},"cropper.min.js.gz":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"ke9t4lehyl-{0}-9ydfkw1ttr-9ydfkw1ttr.gz"},"Patterns":null}},"Asset":null,"Patterns":null}},"Asset":null,"Patterns":[{"ContentRootIndex":0,"Pattern":"**","Depth":0}]}}
|
||||
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"ContentRoots":["/mnt/data/Work/Programming/MainProgram/Frontend/Libs/Generic/Media/wwwroot/","/mnt/data/Work/Programming/MainProgram/Frontend/Libs/Generic/Media/obj/Debug/net10.0/compressed/"],"Root":{"Children":{"css":{"Children":{"cropper.min.css":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"css/cropper.min.css"},"Patterns":null},"cropper.min.css.gz":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"63e88vs3br-{0}-ozxrxjrq84-ozxrxjrq84.gz"},"Patterns":null}},"Asset":null,"Patterns":null},"js":{"Children":{"crop.js":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"js/crop.js"},"Patterns":null},"crop.js.gz":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"lps60iqv38-{0}-rzaytjouo0-rzaytjouo0.gz"},"Patterns":null},"cropper.min.js":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"js/cropper.min.js"},"Patterns":null},"cropper.min.js.gz":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"srub7l4ycb-{0}-llc9n82qda-llc9n82qda.gz"},"Patterns":null},"mediaInterop.js":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"js/mediaInterop.js"},"Patterns":null},"mediaInterop.js.gz":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"do8do2nz96-{0}-j3t2utpur3-j3t2utpur3.gz"},"Patterns":null}},"Asset":null,"Patterns":null},"lib":{"Children":{"cropper.min.css":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"lib/cropper.min.css"},"Patterns":null},"cropper.min.css.gz":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"0m7r05w73h-{0}-tef8z25zm7-tef8z25zm7.gz"},"Patterns":null},"cropper.min.js":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"lib/cropper.min.js"},"Patterns":null},"cropper.min.js.gz":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"xgz1hv2puc-{0}-9ydfkw1ttr-9ydfkw1ttr.gz"},"Patterns":null}},"Asset":null,"Patterns":null}},"Asset":null,"Patterns":[{"ContentRootIndex":0,"Pattern":"**","Depth":0}]}}
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,642 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v9.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v9.0": {
|
||||
"AuthModule/1.0.0": {
|
||||
"dependencies": {
|
||||
"Auth.Contracts": "1.0.0",
|
||||
"Blazored.LocalStorage": "4.5.0",
|
||||
"Common": "1.0.0",
|
||||
"Generic": "1.0.0",
|
||||
"LayoutLib": "1.0.0",
|
||||
"Media": "1.0.0",
|
||||
"Microsoft.AspNetCore.Components.Authorization": "9.0.5",
|
||||
"Microsoft.AspNetCore.Components.Web": "9.0.5",
|
||||
"Microsoft.Extensions.Http": "9.0.0",
|
||||
"Microsoft.Extensions.Localization": "9.0.1",
|
||||
"SoloX.BlazorJsonLocalization": "3.0.0-alpha.2"
|
||||
},
|
||||
"runtime": {
|
||||
"AuthModule.dll": {}
|
||||
},
|
||||
"resources": {
|
||||
"en-US/AuthModule.resources.dll": {
|
||||
"locale": "en-US"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Blazored.LocalStorage/4.5.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Components.Web": "9.0.5"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net8.0/Blazored.LocalStorage.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Authorization/9.0.5": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Metadata": "9.0.5",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "9.0.5",
|
||||
"Microsoft.Extensions.Options": "9.0.5"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.AspNetCore.Authorization.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.525.22904"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Components/9.0.5": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Authorization": "9.0.5",
|
||||
"Microsoft.AspNetCore.Components.Analyzers": "9.0.5"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.AspNetCore.Components.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.525.22904"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Analyzers/9.0.5": {},
|
||||
"Microsoft.AspNetCore.Components.Authorization/9.0.5": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Authorization": "9.0.5",
|
||||
"Microsoft.AspNetCore.Components": "9.0.5"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.AspNetCore.Components.Authorization.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.525.22904"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Forms/9.0.5": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Components": "9.0.5"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.AspNetCore.Components.Forms.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.525.22904"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Web/9.0.5": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Components": "9.0.5",
|
||||
"Microsoft.AspNetCore.Components.Forms": "9.0.5",
|
||||
"Microsoft.Extensions.DependencyInjection": "9.0.5",
|
||||
"Microsoft.Extensions.Primitives": "9.0.5",
|
||||
"Microsoft.JSInterop": "9.0.5"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.AspNetCore.Components.Web.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.525.22904"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Metadata/9.0.5": {
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.AspNetCore.Metadata.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.525.22904"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration/9.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "9.0.0",
|
||||
"Microsoft.Extensions.Primitives": "9.0.5"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.Extensions.Configuration.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.24.52809"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Abstractions/9.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Primitives": "9.0.5"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.Extensions.Configuration.Abstractions.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.24.52809"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Binder/9.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "9.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.Extensions.Configuration.Binder.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.24.52809"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection/9.0.5": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.5"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.Extensions.DependencyInjection.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.525.21509"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions/9.0.5": {
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.525.21509"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Diagnostics/9.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration": "9.0.0",
|
||||
"Microsoft.Extensions.Diagnostics.Abstractions": "9.0.0",
|
||||
"Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.Extensions.Diagnostics.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.24.52809"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Diagnostics.Abstractions/9.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.5",
|
||||
"Microsoft.Extensions.Options": "9.0.5"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.Extensions.Diagnostics.Abstractions.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.24.52809"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.FileProviders.Abstractions/9.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Primitives": "9.0.5"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.Extensions.FileProviders.Abstractions.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.24.52809"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.FileProviders.Embedded/9.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.FileProviders.Abstractions": "9.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.Extensions.FileProviders.Embedded.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.24.52903"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Http/9.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "9.0.0",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.5",
|
||||
"Microsoft.Extensions.Diagnostics": "9.0.0",
|
||||
"Microsoft.Extensions.Logging": "9.0.0",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "9.0.5",
|
||||
"Microsoft.Extensions.Options": "9.0.5"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.Extensions.Http.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.24.52809"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Localization/9.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.5",
|
||||
"Microsoft.Extensions.Localization.Abstractions": "9.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "9.0.5",
|
||||
"Microsoft.Extensions.Options": "9.0.5"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.Extensions.Localization.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.124.61009"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Localization.Abstractions/9.0.1": {
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.Extensions.Localization.Abstractions.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.124.61009"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Logging/9.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection": "9.0.5",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "9.0.5",
|
||||
"Microsoft.Extensions.Options": "9.0.5"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.Extensions.Logging.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.24.52809"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Logging.Abstractions/9.0.5": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.5"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.Extensions.Logging.Abstractions.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.525.21509"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Options/9.0.5": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.5",
|
||||
"Microsoft.Extensions.Primitives": "9.0.5"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.Extensions.Options.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.525.21509"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Options.ConfigurationExtensions/9.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "9.0.0",
|
||||
"Microsoft.Extensions.Configuration.Binder": "9.0.0",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.5",
|
||||
"Microsoft.Extensions.Options": "9.0.5",
|
||||
"Microsoft.Extensions.Primitives": "9.0.5"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.24.52809"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Primitives/9.0.5": {
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.Extensions.Primitives.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.525.21509"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.JSInterop/9.0.5": {
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.JSInterop.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.525.22904"
|
||||
}
|
||||
}
|
||||
},
|
||||
"MudBlazor/8.9.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Components": "9.0.5",
|
||||
"Microsoft.AspNetCore.Components.Web": "9.0.5",
|
||||
"Microsoft.Extensions.Localization": "9.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/MudBlazor.dll": {
|
||||
"assemblyVersion": "8.9.0.0",
|
||||
"fileVersion": "8.9.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"SoloX.BlazorJsonLocalization/3.0.0-alpha.2": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Components": "9.0.5",
|
||||
"Microsoft.Extensions.FileProviders.Embedded": "9.0.0",
|
||||
"Microsoft.Extensions.Localization": "9.0.1",
|
||||
"Microsoft.Extensions.Logging": "9.0.0",
|
||||
"System.Text.Json": "9.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/SoloX.BlazorJsonLocalization.dll": {
|
||||
"assemblyVersion": "3.0.0.0",
|
||||
"fileVersion": "3.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Text.Json/9.0.0": {},
|
||||
"Auth.Contracts/1.0.0": {
|
||||
"runtime": {
|
||||
"Auth.Contracts.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Common/1.0.0": {
|
||||
"dependencies": {
|
||||
"Generic": "1.0.0",
|
||||
"Microsoft.AspNetCore.Components.Web": "9.0.5"
|
||||
},
|
||||
"runtime": {
|
||||
"Common.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Generic/1.0.0": {
|
||||
"runtime": {
|
||||
"Generic.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"LayoutLib/1.0.0": {
|
||||
"dependencies": {
|
||||
"Common": "1.0.0",
|
||||
"Microsoft.AspNetCore.Components.Web": "9.0.5",
|
||||
"MudBlazor": "8.9.0"
|
||||
},
|
||||
"runtime": {
|
||||
"LayoutLib.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Media/1.0.0": {
|
||||
"dependencies": {
|
||||
"Blazored.LocalStorage": "4.5.0",
|
||||
"Microsoft.AspNetCore.Components.Authorization": "9.0.5",
|
||||
"Microsoft.AspNetCore.Components.Web": "9.0.5",
|
||||
"Microsoft.Extensions.Http": "9.0.0",
|
||||
"Microsoft.Extensions.Localization": "9.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"Media.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"AuthModule/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Blazored.LocalStorage/4.5.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-6nZuJwA7zNIKx83IsObiHXZb09ponJOpCClU3en+hI8ZFvrOKXeOw+H7TegQZQrvdR1n9fkrVkEBQZg8vx6ZTw==",
|
||||
"path": "blazored.localstorage/4.5.0",
|
||||
"hashPath": "blazored.localstorage.4.5.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Authorization/9.0.5": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-HPd+7PG+nMZSP13bTJuM5+q0vdzoBtjoBUMP9iuUGwG/kFHkeBOZ9QrZuSHHGmz/IgYdLbqbdJGEykSI5biIPw==",
|
||||
"path": "microsoft.aspnetcore.authorization/9.0.5",
|
||||
"hashPath": "microsoft.aspnetcore.authorization.9.0.5.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Components/9.0.5": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-qwA9bx7nWayh1ogWe1H13vyGL64pNjHrukHmnZ9WZbQPtHeY9QTuXkvF/Uue0tzGbxChBf9v2LH5+KeVaRJIqw==",
|
||||
"path": "microsoft.aspnetcore.components/9.0.5",
|
||||
"hashPath": "microsoft.aspnetcore.components.9.0.5.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Analyzers/9.0.5": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-u9dQP0/bjkTVHFHVBV+8TYpBVerjbFfvD3nwwOfaoJ8VmyCHoBFbD8m4nxV+rfu+jVLe2FQF4skjHZLIjjFbyQ==",
|
||||
"path": "microsoft.aspnetcore.components.analyzers/9.0.5",
|
||||
"hashPath": "microsoft.aspnetcore.components.analyzers.9.0.5.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Authorization/9.0.5": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-amVsHIy/+712NIC246Hwtha2GFRVxAwEl5REhNSpgY++aRAKRU6S0x3xrJT8/kU9tfNpXjHbMd3xMedqBb5iJA==",
|
||||
"path": "microsoft.aspnetcore.components.authorization/9.0.5",
|
||||
"hashPath": "microsoft.aspnetcore.components.authorization.9.0.5.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Forms/9.0.5": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-KsAPGDQIa3SpP9yaIDrlETHpqprtmbbotdbGfGJ9aVvn/vi72cCTUVzpWOXIXgstVCb0ZQ940o/wfHKxBZEQMg==",
|
||||
"path": "microsoft.aspnetcore.components.forms/9.0.5",
|
||||
"hashPath": "microsoft.aspnetcore.components.forms.9.0.5.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Web/9.0.5": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-llh2dh9rR9JcnAMqvbijc9BzEnVhloQwKF8Kvfw73N2tJMnUJoxF3C9Ln1sao+nkZo3IpUuUu3k2czLOpS3NRQ==",
|
||||
"path": "microsoft.aspnetcore.components.web/9.0.5",
|
||||
"hashPath": "microsoft.aspnetcore.components.web.9.0.5.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Metadata/9.0.5": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-E4lbYlraZfZLvWgliUEtrqKt42++Yh9mpGKLyGHPGo1FpbZrXF/x+fOg5dbe22bnuosgWn3cj30566XKdwiodw==",
|
||||
"path": "microsoft.aspnetcore.metadata/9.0.5",
|
||||
"hashPath": "microsoft.aspnetcore.metadata.9.0.5.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Configuration/9.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-YIMO9T3JL8MeEXgVozKt2v79hquo/EFtnY0vgxmLnUvk1Rei/halI7kOWZL2RBeV9FMGzgM9LZA8CVaNwFMaNA==",
|
||||
"path": "microsoft.extensions.configuration/9.0.0",
|
||||
"hashPath": "microsoft.extensions.configuration.9.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Abstractions/9.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-lqvd7W3FGKUO1+ZoUEMaZ5XDJeWvjpy2/M/ptCGz3tXLD4HWVaSzjufsAsjemasBEg+2SxXVtYVvGt5r2nKDlg==",
|
||||
"path": "microsoft.extensions.configuration.abstractions/9.0.0",
|
||||
"hashPath": "microsoft.extensions.configuration.abstractions.9.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Binder/9.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-RiScL99DcyngY9zJA2ROrri7Br8tn5N4hP4YNvGdTN/bvg1A3dwvDOxHnNZ3Im7x2SJ5i4LkX1uPiR/MfSFBLQ==",
|
||||
"path": "microsoft.extensions.configuration.binder/9.0.0",
|
||||
"hashPath": "microsoft.extensions.configuration.binder.9.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection/9.0.5": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-N1Mn0T/tUBPoLL+Fzsp+VCEtneUhhxc1//Dx3BeuQ8AX+XrMlYCfnp2zgpEXnTCB7053CLdiqVWPZ7mEX6MPjg==",
|
||||
"path": "microsoft.extensions.dependencyinjection/9.0.5",
|
||||
"hashPath": "microsoft.extensions.dependencyinjection.9.0.5.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions/9.0.5": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-cjnRtsEAzU73aN6W7vkWy8Phj5t3Xm78HSqgrbh/O4Q9SK/yN73wZVa21QQY6amSLQRQ/M8N+koGnY6PuvKQsw==",
|
||||
"path": "microsoft.extensions.dependencyinjection.abstractions/9.0.5",
|
||||
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.9.0.5.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Diagnostics/9.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-0CF9ZrNw5RAlRfbZuVIvzzhP8QeWqHiUmMBU/2H7Nmit8/vwP3/SbHeEctth7D4Gz2fBnEbokPc1NU8/j/1ZLw==",
|
||||
"path": "microsoft.extensions.diagnostics/9.0.0",
|
||||
"hashPath": "microsoft.extensions.diagnostics.9.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Diagnostics.Abstractions/9.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-1K8P7XzuzX8W8pmXcZjcrqS6x5eSSdvhQohmcpgiQNY/HlDAlnrhR9dvlURfFz428A+RTCJpUyB+aKTA6AgVcQ==",
|
||||
"path": "microsoft.extensions.diagnostics.abstractions/9.0.0",
|
||||
"hashPath": "microsoft.extensions.diagnostics.abstractions.9.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.FileProviders.Abstractions/9.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-uK439QzYR0q2emLVtYzwyK3x+T5bTY4yWsd/k/ZUS9LR6Sflp8MIdhGXW8kQCd86dQD4tLqvcbLkku8qHY263Q==",
|
||||
"path": "microsoft.extensions.fileproviders.abstractions/9.0.0",
|
||||
"hashPath": "microsoft.extensions.fileproviders.abstractions.9.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.FileProviders.Embedded/9.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-6Ev1goLIvggLF6uCs6oZvdr9JM+2b1Zj+4FLdBWNW5iw3tm2BymVIb0yMsjnQTBWL7YUmqVWH3u45hSqOfvuqg==",
|
||||
"path": "microsoft.extensions.fileproviders.embedded/9.0.0",
|
||||
"hashPath": "microsoft.extensions.fileproviders.embedded.9.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Http/9.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-DqI4q54U4hH7bIAq9M5a/hl5Odr/KBAoaZ0dcT4OgutD8dook34CbkvAfAIzkMVjYXiL+E5ul9etwwqiX4PHGw==",
|
||||
"path": "microsoft.extensions.http/9.0.0",
|
||||
"hashPath": "microsoft.extensions.http.9.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Localization/9.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-UgvX4Yb2T3tEsKT30ktZr0H7kTRPapCgEH0bdTwxiEGSdA39/hAQMvvb+vgHpqmevDU5+puyI9ujRkmmbF946w==",
|
||||
"path": "microsoft.extensions.localization/9.0.1",
|
||||
"hashPath": "microsoft.extensions.localization.9.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Localization.Abstractions/9.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-CABog43lyaZQMjmlktuImCy6zmAzRBaXqN81uPaMQjlp//ISDVYItZPh6KWpWRF4MY/B67X5oDc3JTUpfdocZw==",
|
||||
"path": "microsoft.extensions.localization.abstractions/9.0.1",
|
||||
"hashPath": "microsoft.extensions.localization.abstractions.9.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Logging/9.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-crjWyORoug0kK7RSNJBTeSE6VX8IQgLf3nUpTB9m62bPXp/tzbnOsnbe8TXEG0AASNaKZddnpHKw7fET8E++Pg==",
|
||||
"path": "microsoft.extensions.logging/9.0.0",
|
||||
"hashPath": "microsoft.extensions.logging.9.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Logging.Abstractions/9.0.5": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-pP1PADCrIxMYJXxFmTVbAgEU7GVpjK5i0/tyfU9DiE0oXQy3JWQaOVgCkrCiePLgS8b5sghM3Fau3EeHiVWbCg==",
|
||||
"path": "microsoft.extensions.logging.abstractions/9.0.5",
|
||||
"hashPath": "microsoft.extensions.logging.abstractions.9.0.5.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Options/9.0.5": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-vPdJQU8YLOUSSK8NL0RmwcXJr2E0w8xH559PGQl4JYsglgilZr9LZnqV2zdgk+XR05+kuvhBEZKoDVd46o7NqA==",
|
||||
"path": "microsoft.extensions.options/9.0.5",
|
||||
"hashPath": "microsoft.extensions.options.9.0.5.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Options.ConfigurationExtensions/9.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-Ob3FXsXkcSMQmGZi7qP07EQ39kZpSBlTcAZLbJLdI4FIf0Jug8biv2HTavWmnTirchctPlq9bl/26CXtQRguzA==",
|
||||
"path": "microsoft.extensions.options.configurationextensions/9.0.0",
|
||||
"hashPath": "microsoft.extensions.options.configurationextensions.9.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Primitives/9.0.5": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-b4OAv1qE1C9aM+ShWJu3rlo/WjDwa/I30aIPXqDWSKXTtKl1Wwh6BZn+glH5HndGVVn3C6ZAPQj5nv7/7HJNBQ==",
|
||||
"path": "microsoft.extensions.primitives/9.0.5",
|
||||
"hashPath": "microsoft.extensions.primitives.9.0.5.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.JSInterop/9.0.5": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-ji4fQKbUUZiq3lmzVBMvp15VgBtEyfR51NrmEjo6qnD97Jf1R6C6QkSMjwUO8bw5NZIDRtmPCYurypB3W5AMEg==",
|
||||
"path": "microsoft.jsinterop/9.0.5",
|
||||
"hashPath": "microsoft.jsinterop.9.0.5.nupkg.sha512"
|
||||
},
|
||||
"MudBlazor/8.9.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-KdjXMXiSvl6uNr+S2YDhGI1aX/TULMQejQSniMlp6QTss35NKFrJyrMAmN082HNvOObuKdnTtLpntJ7rM5Op/A==",
|
||||
"path": "mudblazor/8.9.0",
|
||||
"hashPath": "mudblazor.8.9.0.nupkg.sha512"
|
||||
},
|
||||
"SoloX.BlazorJsonLocalization/3.0.0-alpha.2": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-PsVAw8qo/gukhGTyG8HdwpFqcNkYcxJBV0pjmexwOSsGfyXzxhvbS6PJvVekP3RfeBu7KcK+q6jZJ616PU9Cgg==",
|
||||
"path": "solox.blazorjsonlocalization/3.0.0-alpha.2",
|
||||
"hashPath": "solox.blazorjsonlocalization.3.0.0-alpha.2.nupkg.sha512"
|
||||
},
|
||||
"System.Text.Json/9.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-js7+qAu/9mQvnhA4EfGMZNEzXtJCDxgkgj8ohuxq/Qxv+R56G+ljefhiJHOxTNiw54q8vmABCWUwkMulNdlZ4A==",
|
||||
"path": "system.text.json/9.0.0",
|
||||
"hashPath": "system.text.json.9.0.0.nupkg.sha512"
|
||||
},
|
||||
"Auth.Contracts/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Common/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Generic/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"LayoutLib/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Media/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"ContentRoots":["/mnt/Dataa/Work/Programming/MainProgram/Frontend/Libs/Generic/Common/wwwroot/","/mnt/Dataa/Work/Programming/MainProgram/Frontend/Libs/Generic/Common/obj/Debug/net9.0/scopedcss/bundle/","/mnt/Dataa/Work/Programming/MainProgram/Frontend/Libs/Generic/Common/obj/Debug/net9.0/compressed/"],"Root":{"Children":{"background.png":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"background.png"},"Patterns":null},"Common.styles.css":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"Common.styles.css"},"Patterns":null},"Common.styles.css.gz":{"Children":null,"Asset":{"ContentRootIndex":2,"SubPath":"eonzp9tba4-dyev8wf6eo.gz"},"Patterns":null},"exampleJsInterop.js":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"exampleJsInterop.js"},"Patterns":null},"exampleJsInterop.js.gz":{"Children":null,"Asset":{"ContentRootIndex":2,"SubPath":"azr3gilc9r-luzdqbu196.gz"},"Patterns":null},"css":{"Children":{"carousal.js":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"css/carousal.js"},"Patterns":null},"carousal.js.gz":{"Children":null,"Asset":{"ContentRootIndex":2,"SubPath":"uhkfeye1o1-vnhftjewbd.gz"},"Patterns":null}},"Asset":null,"Patterns":null}},"Asset":null,"Patterns":[{"ContentRootIndex":0,"Pattern":"**","Depth":0}]}}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"ContentRoots":["/mnt/Dataa/Work/Programming/MainProgram/Frontend/Libs/Layouts/LayoutLib/wwwroot/","/mnt/Dataa/Work/Programming/MainProgram/Frontend/Libs/Layouts/LayoutLib/obj/Debug/net9.0/compressed/","/mnt/Dataa/Work/Programming/MainProgram/Frontend/Libs/Layouts/LayoutLib/obj/Debug/net9.0/scopedcss/bundle/","/mnt/Dataa/Work/Programming/MainProgram/Frontend/Libs/Generic/Common/wwwroot/","/mnt/Dataa/Work/Programming/MainProgram/Frontend/Libs/Generic/Common/obj/Debug/net9.0/scopedcss/projectbundle/","/mnt/Dataa/Work/Programming/MainProgram/Frontend/Libs/Generic/Common/obj/Debug/net9.0/compressed/","/home/yla/.nuget/packages/mudblazor/8.9.0/staticwebassets/"],"Root":{"Children":{"background.png":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"background.png"},"Patterns":null},"exampleJsInterop.js":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"exampleJsInterop.js"},"Patterns":null},"exampleJsInterop.js.gz":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"8pznqeuxgm-luzdqbu196.gz"},"Patterns":null},"LayoutLib.styles.css":{"Children":null,"Asset":{"ContentRootIndex":2,"SubPath":"LayoutLib.styles.css"},"Patterns":null},"LayoutLib.styles.css.gz":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"9yjcmi6iat-5phnxoj3fu.gz"},"Patterns":null},"_content":{"Children":{"Common":{"Children":{"background.png":{"Children":null,"Asset":{"ContentRootIndex":3,"SubPath":"background.png"},"Patterns":null},"Common.dyev8wf6eo.bundle.scp.css":{"Children":null,"Asset":{"ContentRootIndex":4,"SubPath":"Common.bundle.scp.css"},"Patterns":null},"Common.dyev8wf6eo.bundle.scp.css.gz":{"Children":null,"Asset":{"ContentRootIndex":5,"SubPath":"qc5h9nywsh-dyev8wf6eo.gz"},"Patterns":null},"exampleJsInterop.js":{"Children":null,"Asset":{"ContentRootIndex":3,"SubPath":"exampleJsInterop.js"},"Patterns":null},"exampleJsInterop.js.gz":{"Children":null,"Asset":{"ContentRootIndex":5,"SubPath":"azr3gilc9r-luzdqbu196.gz"},"Patterns":null},"css":{"Children":{"carousal.js":{"Children":null,"Asset":{"ContentRootIndex":3,"SubPath":"css/carousal.js"},"Patterns":null},"carousal.js.gz":{"Children":null,"Asset":{"ContentRootIndex":5,"SubPath":"uhkfeye1o1-vnhftjewbd.gz"},"Patterns":null}},"Asset":null,"Patterns":null}},"Asset":null,"Patterns":[{"ContentRootIndex":3,"Pattern":"**","Depth":2}]},"MudBlazor":{"Children":{"MudBlazor.min.css":{"Children":null,"Asset":{"ContentRootIndex":6,"SubPath":"MudBlazor.min.css"},"Patterns":null},"MudBlazor.min.css.gz":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"tzxjg6is5z-sowobu9fea.gz"},"Patterns":null},"MudBlazor.min.js":{"Children":null,"Asset":{"ContentRootIndex":6,"SubPath":"MudBlazor.min.js"},"Patterns":null},"MudBlazor.min.js.gz":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"0wz98yz2xy-b8x8f7e52z.gz"},"Patterns":null}},"Asset":null,"Patterns":null}},"Asset":null,"Patterns":null}},"Asset":null,"Patterns":[{"ContentRootIndex":0,"Pattern":"**","Depth":0}]}}
|
||||
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"ContentRoots":["/mnt/Dataa/Work/Programming/MainProgram/Frontend/Libs/Generic/Media/wwwroot/","/mnt/Dataa/Work/Programming/MainProgram/Frontend/Libs/Generic/Media/obj/Debug/net9.0/compressed/"],"Root":{"Children":{"css":{"Children":{"cropper.min.css":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"css/cropper.min.css"},"Patterns":null},"cropper.min.css.gz":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"cfog6n5tcn-ozxrxjrq84.gz"},"Patterns":null}},"Asset":null,"Patterns":null},"js":{"Children":{"crop.js":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"js/crop.js"},"Patterns":null},"crop.js.gz":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"6475xpiqob-rzaytjouo0.gz"},"Patterns":null},"cropper.min.js":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"js/cropper.min.js"},"Patterns":null},"cropper.min.js.gz":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"a1l3n5r079-llc9n82qda.gz"},"Patterns":null},"mediaInterop.js":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"js/mediaInterop.js"},"Patterns":null},"mediaInterop.js.gz":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"e9z9tclwgg-j3t2utpur3.gz"},"Patterns":null}},"Asset":null,"Patterns":null},"lib":{"Children":{"cropper.min.css":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"lib/cropper.min.css"},"Patterns":null},"cropper.min.css.gz":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"ozu905yipp-tef8z25zm7.gz"},"Patterns":null},"cropper.min.js":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"lib/cropper.min.js"},"Patterns":null},"cropper.min.js.gz":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"dqwik5h0u9-9ydfkw1ttr.gz"},"Patterns":null}},"Asset":null,"Patterns":null}},"Asset":null,"Patterns":[{"ContentRootIndex":0,"Pattern":"**","Depth":0}]}}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"Hello": "سلام سلام سلام"
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"Hello": "سلام سلام سلام"
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,584 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v10.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v10.0": {
|
||||
"Auth.Module/1.0.0": {
|
||||
"dependencies": {
|
||||
"Auth.Contracts": "1.0.0",
|
||||
"Blazored.LocalStorage": "4.5.0",
|
||||
"Common.RCL": "1.0.0",
|
||||
"Generic.CL": "1.0.0",
|
||||
"LayoutLib.Layout": "1.0.0",
|
||||
"Media.RCL": "1.0.0",
|
||||
"Microsoft.AspNetCore.Components.Authorization": "10.0.1",
|
||||
"Microsoft.AspNetCore.Components.Web": "10.0.1",
|
||||
"Microsoft.Extensions.Http": "10.0.1",
|
||||
"Microsoft.Extensions.Localization": "10.0.1",
|
||||
"MudBlazor": "8.9.0"
|
||||
},
|
||||
"runtime": {
|
||||
"Auth.Module.dll": {}
|
||||
}
|
||||
},
|
||||
"Blazored.LocalStorage/4.5.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Components.Web": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net8.0/Blazored.LocalStorage.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Authorization/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Metadata": "10.0.1",
|
||||
"Microsoft.Extensions.Diagnostics": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.AspNetCore.Authorization.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Components/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Authorization": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.AspNetCore.Components.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Authorization/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Authorization": "10.0.1",
|
||||
"Microsoft.AspNetCore.Components": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.AspNetCore.Components.Authorization.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Forms/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Components": "10.0.1",
|
||||
"Microsoft.Extensions.Validation": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.AspNetCore.Components.Forms.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Web/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Components": "10.0.1",
|
||||
"Microsoft.AspNetCore.Components.Forms": "10.0.1",
|
||||
"Microsoft.Extensions.DependencyInjection": "10.0.1",
|
||||
"Microsoft.Extensions.Primitives": "10.0.1",
|
||||
"Microsoft.JSInterop": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.AspNetCore.Components.Web.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Metadata/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.AspNetCore.Metadata.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Primitives": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Configuration.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Abstractions/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Primitives": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Configuration.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Binder/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration": "10.0.1",
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Configuration.Binder.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.DependencyInjection.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Diagnostics/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration": "10.0.1",
|
||||
"Microsoft.Extensions.Diagnostics.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Diagnostics.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Diagnostics.Abstractions/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Diagnostics.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Http/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Diagnostics": "10.0.1",
|
||||
"Microsoft.Extensions.Logging": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Http.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Localization/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Localization.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Localization.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Localization.Abstractions/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Localization.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Logging/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Logging.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Logging.Abstractions/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Logging.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Options/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Primitives": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Options.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Options.ConfigurationExtensions/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Configuration.Binder": "10.0.1",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1",
|
||||
"Microsoft.Extensions.Primitives": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Primitives/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Primitives.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Validation/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Validation.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.JSInterop/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.JSInterop.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"MudBlazor/8.9.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Components": "10.0.1",
|
||||
"Microsoft.AspNetCore.Components.Web": "10.0.1",
|
||||
"Microsoft.Extensions.Localization": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/MudBlazor.dll": {
|
||||
"assemblyVersion": "8.9.0.0",
|
||||
"fileVersion": "8.9.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Auth.Contracts/1.0.0": {
|
||||
"runtime": {
|
||||
"Auth.Contracts.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Common.RCL/1.0.0": {
|
||||
"dependencies": {
|
||||
"Generic.CL": "1.0.0",
|
||||
"Microsoft.AspNetCore.Components.Web": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"Common.RCL.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Generic.CL/1.0.0": {
|
||||
"runtime": {
|
||||
"Generic.CL.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"LayoutLib.Layout/1.0.0": {
|
||||
"dependencies": {
|
||||
"Common.RCL": "1.0.0",
|
||||
"Microsoft.AspNetCore.Components.Web": "10.0.1",
|
||||
"MudBlazor": "8.9.0"
|
||||
},
|
||||
"runtime": {
|
||||
"LayoutLib.Layout.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Media.RCL/1.0.0": {
|
||||
"dependencies": {
|
||||
"Blazored.LocalStorage": "4.5.0",
|
||||
"Microsoft.AspNetCore.Components.Authorization": "10.0.1",
|
||||
"Microsoft.AspNetCore.Components.Web": "10.0.1",
|
||||
"Microsoft.Extensions.Http": "10.0.1",
|
||||
"Microsoft.Extensions.Localization": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"Media.RCL.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"Auth.Module/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Blazored.LocalStorage/4.5.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-6nZuJwA7zNIKx83IsObiHXZb09ponJOpCClU3en+hI8ZFvrOKXeOw+H7TegQZQrvdR1n9fkrVkEBQZg8vx6ZTw==",
|
||||
"path": "blazored.localstorage/4.5.0",
|
||||
"hashPath": "blazored.localstorage.4.5.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Authorization/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-Y9QE0gH4Q4cR7ZRToFju47c1MoeqxaLHdpzOviqD2TmnGGAeDMT9AV56j2BOVm5CsJAVyI/USxLYrkk2NVinZA==",
|
||||
"path": "microsoft.aspnetcore.authorization/10.0.1",
|
||||
"hashPath": "microsoft.aspnetcore.authorization.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Components/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-SbABcQ7soM9jC/HvPKrg/smQxsMD2gW9iHBRFtBiYTMSs5Vqh7+i47BTOe3OM3IGzly2FiOmeNHJhMYK7YFGWA==",
|
||||
"path": "microsoft.aspnetcore.components/10.0.1",
|
||||
"hashPath": "microsoft.aspnetcore.components.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Authorization/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-Ahez1F0EfsPqIT/X/TcdJCDYjVACHJwIPgZSof33wqLXaENUJNDnzphkmXOiBY1tvok/ZIUVEpeFLWdkLh0IyA==",
|
||||
"path": "microsoft.aspnetcore.components.authorization/10.0.1",
|
||||
"hashPath": "microsoft.aspnetcore.components.authorization.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Forms/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-aWUpLOz749gwMMaKe81tet+INC8nfskbauF2VO5Qr3lspj/l8S24zNLr95Bl8EwAizvBCNqwb8fPFU1dnn3WbA==",
|
||||
"path": "microsoft.aspnetcore.components.forms/10.0.1",
|
||||
"hashPath": "microsoft.aspnetcore.components.forms.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Web/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-hX74ijqAiUfIo6WpvLWignGYp7tkrRR3KRVBErwFSAcsiHeaCxGM81fYRXd9rf+gkFUNoKvcSxYyVZc2vFJVXg==",
|
||||
"path": "microsoft.aspnetcore.components.web/10.0.1",
|
||||
"hashPath": "microsoft.aspnetcore.components.web.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Metadata/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-6JrG03xROuR4mQIHGcT8OnaKVBoPLLbto5RicKQIUV3JIU7cZYKIWDAnk0SQcl7ziQr6R327D6QBOo+PbYnnrw==",
|
||||
"path": "microsoft.aspnetcore.metadata/10.0.1",
|
||||
"hashPath": "microsoft.aspnetcore.metadata.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Configuration/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-njoRekyMIK+smav8B6KL2YgIfUtlsRNuT7wvurpLW+m/hoRKVnoELk2YxnUnWRGScCd1rukLMxShwLqEOKowDg==",
|
||||
"path": "microsoft.extensions.configuration/10.0.1",
|
||||
"hashPath": "microsoft.extensions.configuration.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-kPlU11hql+L9RjrN2N9/0GcRcRcZrNFlLLjadasFWeBORT6pL6OE+RYRk90GGCyVGSxTK+e1/f3dsMj5zpFFiQ==",
|
||||
"path": "microsoft.extensions.configuration.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.configuration.abstractions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Binder/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-Lp4CZIuTVXtlvkAnTq6QvMSW7+H62gX2cU2vdFxHQUxvrWTpi7LwYI3X+YAyIS0r12/p7gaosco7efIxL4yFNw==",
|
||||
"path": "microsoft.extensions.configuration.binder/10.0.1",
|
||||
"hashPath": "microsoft.extensions.configuration.binder.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-zerXV0GAR9LCSXoSIApbWn+Dq1/T+6vbXMHGduq1LoVQRHT0BXsGQEau0jeLUBUcsoF/NaUT8ADPu8b+eNcIyg==",
|
||||
"path": "microsoft.extensions.dependencyinjection/10.0.1",
|
||||
"hashPath": "microsoft.extensions.dependencyinjection.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-oIy8fQxxbUsSrrOvgBqlVgOeCtDmrcynnTG+FQufcUWBrwyPfwlUkCDB2vaiBeYPyT+20u9/HeuHeBf+H4F/8g==",
|
||||
"path": "microsoft.extensions.dependencyinjection.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Diagnostics/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-YaocqxscJLxLit0F5yq2XyB+9C7rSRfeTL7MJIl7XwaOoUO3i0EqfO2kmtjiRduYWw7yjcSINEApYZbzjau2gQ==",
|
||||
"path": "microsoft.extensions.diagnostics/10.0.1",
|
||||
"hashPath": "microsoft.extensions.diagnostics.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Diagnostics.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-QMoMrkNpnQym5mpfdxfxpRDuqLpsOuztguFvzH9p+Ex+do+uLFoi7UkAsBO4e9/tNR3eMFraFf2fOAi2cp3jjA==",
|
||||
"path": "microsoft.extensions.diagnostics.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.diagnostics.abstractions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Http/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-ZXJup9ReE1Ot3M8jqcw1b/lnc8USxyYS3cyLsssU39u04TES9JNGviWUGIvP3K7mMU3TF7kQl2aS0SmVwegflw==",
|
||||
"path": "microsoft.extensions.http/10.0.1",
|
||||
"hashPath": "microsoft.extensions.http.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Localization/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-yJBI3IRm9uTRu7cPc7i90/8+CuiiJJ5M4khj6iWQcYnq6VrG+H2U5GzpRLtkVCsgxc1LjtkNMEbSDatfBA+z5g==",
|
||||
"path": "microsoft.extensions.localization/10.0.1",
|
||||
"hashPath": "microsoft.extensions.localization.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Localization.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-TQSQWF+iZdtGNgPiu7gKUqrTEeRD/mhk7KeYiuEwmTUPbawsYfPSNzSvOOeueJ0nU1697X8HZ2vCp2ByHNHkZg==",
|
||||
"path": "microsoft.extensions.localization.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.localization.abstractions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Logging/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-9ItMpMLFZFJFqCuHLLbR3LiA4ahA8dMtYuXpXl2YamSDWZhYS9BruPprkftY0tYi2bQ0slNrixdFm+4kpz1g5w==",
|
||||
"path": "microsoft.extensions.logging/10.0.1",
|
||||
"hashPath": "microsoft.extensions.logging.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Logging.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-YkmyiPIWAXVb+lPIrM0LE5bbtLOJkCiRTFiHpkVOvhI7uTvCfoOHLEN0LcsY56GpSD7NqX3gJNpsaDe87/B3zg==",
|
||||
"path": "microsoft.extensions.logging.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.logging.abstractions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Options/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-G6VVwywpJI4XIobetGHwg7wDOYC2L2XBYdtskxLaKF/Ynb5QBwLl7Q//wxAR2aVCLkMpoQrjSP9VoORkyddsNQ==",
|
||||
"path": "microsoft.extensions.options/10.0.1",
|
||||
"hashPath": "microsoft.extensions.options.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Options.ConfigurationExtensions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-pL78/Im7O3WmxHzlKUsWTYchKL881udU7E26gCD3T0+/tPhWVfjPwMzfN/MRKU7aoFYcOiqcG2k1QTlH5woWow==",
|
||||
"path": "microsoft.extensions.options.configurationextensions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.options.configurationextensions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Primitives/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-DO8XrJkp5x4PddDuc/CH37yDBCs9BYN6ijlKyR3vMb55BP1Vwh90vOX8bNfnKxr5B2qEI3D8bvbY1fFbDveDHQ==",
|
||||
"path": "microsoft.extensions.primitives/10.0.1",
|
||||
"hashPath": "microsoft.extensions.primitives.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Validation/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-5bcu9zWhgY8AZUN1ERNH0BQKFh10xlx4UrCh+0cDn7wB01QkrK4S6Jh45fCgEqmWJWVGqBS2g8MN0Lu/99Zgdg==",
|
||||
"path": "microsoft.extensions.validation/10.0.1",
|
||||
"hashPath": "microsoft.extensions.validation.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.JSInterop/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-pTfoYBjs7HKmTEk9cNWcSySdTKT8USjviLgmMaSs/YA0+oONufKy9hqqZ5EE4CNy9y24SDDc9lerXfV7aiVfWA==",
|
||||
"path": "microsoft.jsinterop/10.0.1",
|
||||
"hashPath": "microsoft.jsinterop.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"MudBlazor/8.9.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-KdjXMXiSvl6uNr+S2YDhGI1aX/TULMQejQSniMlp6QTss35NKFrJyrMAmN082HNvOObuKdnTtLpntJ7rM5Op/A==",
|
||||
"path": "mudblazor/8.9.0",
|
||||
"hashPath": "mudblazor.8.9.0.nupkg.sha512"
|
||||
},
|
||||
"Auth.Contracts/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Common.RCL/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Generic.CL/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"LayoutLib.Layout/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Media.RCL/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,584 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v10.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v10.0": {
|
||||
"Auth.RCL/1.0.0": {
|
||||
"dependencies": {
|
||||
"Auth.Contracts": "1.0.0",
|
||||
"Blazored.LocalStorage": "4.5.0",
|
||||
"Common.RCL": "1.0.0",
|
||||
"Generic.CL": "1.0.0",
|
||||
"LayoutLib.RCL": "1.0.0",
|
||||
"Media.RCL": "1.0.0",
|
||||
"Microsoft.AspNetCore.Components.Authorization": "10.0.1",
|
||||
"Microsoft.AspNetCore.Components.Web": "10.0.1",
|
||||
"Microsoft.Extensions.Http": "10.0.1",
|
||||
"Microsoft.Extensions.Localization": "10.0.1",
|
||||
"MudBlazor": "8.9.0"
|
||||
},
|
||||
"runtime": {
|
||||
"Auth.RCL.dll": {}
|
||||
}
|
||||
},
|
||||
"Blazored.LocalStorage/4.5.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Components.Web": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net8.0/Blazored.LocalStorage.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Authorization/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Metadata": "10.0.1",
|
||||
"Microsoft.Extensions.Diagnostics": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.AspNetCore.Authorization.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Components/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Authorization": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.AspNetCore.Components.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Authorization/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Authorization": "10.0.1",
|
||||
"Microsoft.AspNetCore.Components": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.AspNetCore.Components.Authorization.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Forms/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Components": "10.0.1",
|
||||
"Microsoft.Extensions.Validation": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.AspNetCore.Components.Forms.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Web/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Components": "10.0.1",
|
||||
"Microsoft.AspNetCore.Components.Forms": "10.0.1",
|
||||
"Microsoft.Extensions.DependencyInjection": "10.0.1",
|
||||
"Microsoft.Extensions.Primitives": "10.0.1",
|
||||
"Microsoft.JSInterop": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.AspNetCore.Components.Web.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.Metadata/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.AspNetCore.Metadata.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Primitives": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Configuration.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Abstractions/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Primitives": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Configuration.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Binder/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration": "10.0.1",
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Configuration.Binder.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.DependencyInjection.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Diagnostics/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration": "10.0.1",
|
||||
"Microsoft.Extensions.Diagnostics.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Diagnostics.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Diagnostics.Abstractions/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Diagnostics.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Http/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Diagnostics": "10.0.1",
|
||||
"Microsoft.Extensions.Logging": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Http.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Localization/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Localization.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Localization.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Localization.Abstractions/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Localization.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Logging/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Logging.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Logging.Abstractions/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Logging.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Options/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Primitives": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Options.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Options.ConfigurationExtensions/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Configuration.Binder": "10.0.1",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1",
|
||||
"Microsoft.Extensions.Primitives": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Primitives/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Primitives.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Validation/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Validation.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.JSInterop/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.JSInterop.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"MudBlazor/8.9.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.Components": "10.0.1",
|
||||
"Microsoft.AspNetCore.Components.Web": "10.0.1",
|
||||
"Microsoft.Extensions.Localization": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/MudBlazor.dll": {
|
||||
"assemblyVersion": "8.9.0.0",
|
||||
"fileVersion": "8.9.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Auth.Contracts/1.0.0": {
|
||||
"runtime": {
|
||||
"Auth.Contracts.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Common.RCL/1.0.0": {
|
||||
"dependencies": {
|
||||
"Generic.CL": "1.0.0",
|
||||
"Microsoft.AspNetCore.Components.Web": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"Common.RCL.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Generic.CL/1.0.0": {
|
||||
"runtime": {
|
||||
"Generic.CL.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"LayoutLib.RCL/1.0.0": {
|
||||
"dependencies": {
|
||||
"Common.RCL": "1.0.0",
|
||||
"Microsoft.AspNetCore.Components.Web": "10.0.1",
|
||||
"MudBlazor": "8.9.0"
|
||||
},
|
||||
"runtime": {
|
||||
"LayoutLib.RCL.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Media.RCL/1.0.0": {
|
||||
"dependencies": {
|
||||
"Blazored.LocalStorage": "4.5.0",
|
||||
"Microsoft.AspNetCore.Components.Authorization": "10.0.1",
|
||||
"Microsoft.AspNetCore.Components.Web": "10.0.1",
|
||||
"Microsoft.Extensions.Http": "10.0.1",
|
||||
"Microsoft.Extensions.Localization": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"Media.RCL.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"Auth.RCL/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Blazored.LocalStorage/4.5.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-6nZuJwA7zNIKx83IsObiHXZb09ponJOpCClU3en+hI8ZFvrOKXeOw+H7TegQZQrvdR1n9fkrVkEBQZg8vx6ZTw==",
|
||||
"path": "blazored.localstorage/4.5.0",
|
||||
"hashPath": "blazored.localstorage.4.5.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Authorization/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-Y9QE0gH4Q4cR7ZRToFju47c1MoeqxaLHdpzOviqD2TmnGGAeDMT9AV56j2BOVm5CsJAVyI/USxLYrkk2NVinZA==",
|
||||
"path": "microsoft.aspnetcore.authorization/10.0.1",
|
||||
"hashPath": "microsoft.aspnetcore.authorization.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Components/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-SbABcQ7soM9jC/HvPKrg/smQxsMD2gW9iHBRFtBiYTMSs5Vqh7+i47BTOe3OM3IGzly2FiOmeNHJhMYK7YFGWA==",
|
||||
"path": "microsoft.aspnetcore.components/10.0.1",
|
||||
"hashPath": "microsoft.aspnetcore.components.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Authorization/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-Ahez1F0EfsPqIT/X/TcdJCDYjVACHJwIPgZSof33wqLXaENUJNDnzphkmXOiBY1tvok/ZIUVEpeFLWdkLh0IyA==",
|
||||
"path": "microsoft.aspnetcore.components.authorization/10.0.1",
|
||||
"hashPath": "microsoft.aspnetcore.components.authorization.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Forms/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-aWUpLOz749gwMMaKe81tet+INC8nfskbauF2VO5Qr3lspj/l8S24zNLr95Bl8EwAizvBCNqwb8fPFU1dnn3WbA==",
|
||||
"path": "microsoft.aspnetcore.components.forms/10.0.1",
|
||||
"hashPath": "microsoft.aspnetcore.components.forms.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Components.Web/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-hX74ijqAiUfIo6WpvLWignGYp7tkrRR3KRVBErwFSAcsiHeaCxGM81fYRXd9rf+gkFUNoKvcSxYyVZc2vFJVXg==",
|
||||
"path": "microsoft.aspnetcore.components.web/10.0.1",
|
||||
"hashPath": "microsoft.aspnetcore.components.web.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.Metadata/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-6JrG03xROuR4mQIHGcT8OnaKVBoPLLbto5RicKQIUV3JIU7cZYKIWDAnk0SQcl7ziQr6R327D6QBOo+PbYnnrw==",
|
||||
"path": "microsoft.aspnetcore.metadata/10.0.1",
|
||||
"hashPath": "microsoft.aspnetcore.metadata.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Configuration/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-njoRekyMIK+smav8B6KL2YgIfUtlsRNuT7wvurpLW+m/hoRKVnoELk2YxnUnWRGScCd1rukLMxShwLqEOKowDg==",
|
||||
"path": "microsoft.extensions.configuration/10.0.1",
|
||||
"hashPath": "microsoft.extensions.configuration.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-kPlU11hql+L9RjrN2N9/0GcRcRcZrNFlLLjadasFWeBORT6pL6OE+RYRk90GGCyVGSxTK+e1/f3dsMj5zpFFiQ==",
|
||||
"path": "microsoft.extensions.configuration.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.configuration.abstractions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Binder/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-Lp4CZIuTVXtlvkAnTq6QvMSW7+H62gX2cU2vdFxHQUxvrWTpi7LwYI3X+YAyIS0r12/p7gaosco7efIxL4yFNw==",
|
||||
"path": "microsoft.extensions.configuration.binder/10.0.1",
|
||||
"hashPath": "microsoft.extensions.configuration.binder.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-zerXV0GAR9LCSXoSIApbWn+Dq1/T+6vbXMHGduq1LoVQRHT0BXsGQEau0jeLUBUcsoF/NaUT8ADPu8b+eNcIyg==",
|
||||
"path": "microsoft.extensions.dependencyinjection/10.0.1",
|
||||
"hashPath": "microsoft.extensions.dependencyinjection.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-oIy8fQxxbUsSrrOvgBqlVgOeCtDmrcynnTG+FQufcUWBrwyPfwlUkCDB2vaiBeYPyT+20u9/HeuHeBf+H4F/8g==",
|
||||
"path": "microsoft.extensions.dependencyinjection.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Diagnostics/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-YaocqxscJLxLit0F5yq2XyB+9C7rSRfeTL7MJIl7XwaOoUO3i0EqfO2kmtjiRduYWw7yjcSINEApYZbzjau2gQ==",
|
||||
"path": "microsoft.extensions.diagnostics/10.0.1",
|
||||
"hashPath": "microsoft.extensions.diagnostics.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Diagnostics.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-QMoMrkNpnQym5mpfdxfxpRDuqLpsOuztguFvzH9p+Ex+do+uLFoi7UkAsBO4e9/tNR3eMFraFf2fOAi2cp3jjA==",
|
||||
"path": "microsoft.extensions.diagnostics.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.diagnostics.abstractions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Http/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-ZXJup9ReE1Ot3M8jqcw1b/lnc8USxyYS3cyLsssU39u04TES9JNGviWUGIvP3K7mMU3TF7kQl2aS0SmVwegflw==",
|
||||
"path": "microsoft.extensions.http/10.0.1",
|
||||
"hashPath": "microsoft.extensions.http.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Localization/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-yJBI3IRm9uTRu7cPc7i90/8+CuiiJJ5M4khj6iWQcYnq6VrG+H2U5GzpRLtkVCsgxc1LjtkNMEbSDatfBA+z5g==",
|
||||
"path": "microsoft.extensions.localization/10.0.1",
|
||||
"hashPath": "microsoft.extensions.localization.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Localization.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-TQSQWF+iZdtGNgPiu7gKUqrTEeRD/mhk7KeYiuEwmTUPbawsYfPSNzSvOOeueJ0nU1697X8HZ2vCp2ByHNHkZg==",
|
||||
"path": "microsoft.extensions.localization.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.localization.abstractions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Logging/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-9ItMpMLFZFJFqCuHLLbR3LiA4ahA8dMtYuXpXl2YamSDWZhYS9BruPprkftY0tYi2bQ0slNrixdFm+4kpz1g5w==",
|
||||
"path": "microsoft.extensions.logging/10.0.1",
|
||||
"hashPath": "microsoft.extensions.logging.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Logging.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-YkmyiPIWAXVb+lPIrM0LE5bbtLOJkCiRTFiHpkVOvhI7uTvCfoOHLEN0LcsY56GpSD7NqX3gJNpsaDe87/B3zg==",
|
||||
"path": "microsoft.extensions.logging.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.logging.abstractions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Options/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-G6VVwywpJI4XIobetGHwg7wDOYC2L2XBYdtskxLaKF/Ynb5QBwLl7Q//wxAR2aVCLkMpoQrjSP9VoORkyddsNQ==",
|
||||
"path": "microsoft.extensions.options/10.0.1",
|
||||
"hashPath": "microsoft.extensions.options.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Options.ConfigurationExtensions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-pL78/Im7O3WmxHzlKUsWTYchKL881udU7E26gCD3T0+/tPhWVfjPwMzfN/MRKU7aoFYcOiqcG2k1QTlH5woWow==",
|
||||
"path": "microsoft.extensions.options.configurationextensions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.options.configurationextensions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Primitives/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-DO8XrJkp5x4PddDuc/CH37yDBCs9BYN6ijlKyR3vMb55BP1Vwh90vOX8bNfnKxr5B2qEI3D8bvbY1fFbDveDHQ==",
|
||||
"path": "microsoft.extensions.primitives/10.0.1",
|
||||
"hashPath": "microsoft.extensions.primitives.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Validation/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-5bcu9zWhgY8AZUN1ERNH0BQKFh10xlx4UrCh+0cDn7wB01QkrK4S6Jh45fCgEqmWJWVGqBS2g8MN0Lu/99Zgdg==",
|
||||
"path": "microsoft.extensions.validation/10.0.1",
|
||||
"hashPath": "microsoft.extensions.validation.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.JSInterop/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-pTfoYBjs7HKmTEk9cNWcSySdTKT8USjviLgmMaSs/YA0+oONufKy9hqqZ5EE4CNy9y24SDDc9lerXfV7aiVfWA==",
|
||||
"path": "microsoft.jsinterop/10.0.1",
|
||||
"hashPath": "microsoft.jsinterop.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"MudBlazor/8.9.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-KdjXMXiSvl6uNr+S2YDhGI1aX/TULMQejQSniMlp6QTss35NKFrJyrMAmN082HNvOObuKdnTtLpntJ7rM5Op/A==",
|
||||
"path": "mudblazor/8.9.0",
|
||||
"hashPath": "mudblazor.8.9.0.nupkg.sha512"
|
||||
},
|
||||
"Auth.Contracts/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Common.RCL/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Generic.CL/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"LayoutLib.RCL/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Media.RCL/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user