diff --git a/.gitignore b/.gitignore
index add57be..b59e83d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,93 @@
+############################################
+# .NET Build
+############################################
+
bin/
obj/
-/packages/
-riderModule.iml
-/_ReSharper.Caches/
\ No newline at end of file
+out/
+publish/
+
+############################################
+# Visual Studio
+############################################
+
+.vs/
+*.user
+*.suo
+*.userprefs
+*.csproj.user
+*.dbmdl
+*.cache
+*.pdb
+*.opendb
+
+############################################
+# Rider / JetBrains
+############################################
+
+.idea/
+*.sln.iml
+
+############################################
+# VSCode
+############################################
+
+.vscode/
+
+############################################
+# NuGet
+############################################
+
+*.nupkg
+*.snupkg
+packages/
+.nuget/
+.nuget/packages/
+
+############################################
+# Logs
+############################################
+
+*.log
+logs/
+
+############################################
+# OS files
+############################################
+
+.DS_Store
+Thumbs.db
+
+############################################
+# Local secrets / environment
+############################################
+
+.env
+.env.*
+secrets.json
+appsettings.Development.json
+
+############################################
+# E2EE private keys
+############################################
+
+keys/*
+!keys/.gitkeep
+
+############################################
+# Local test databases / data folders
+############################################
+
+data/
+*.db
+*.sqlite
+*.sqlite3
+
+############################################
+# Temporary files
+############################################
+
+*.tmp
+*.temp
+*.bak
+*.swp
\ No newline at end of file
diff --git a/.idea/.idea.RelayCore/.idea/.gitignore b/.idea/.idea.RelayCore/.idea/.gitignore
deleted file mode 100644
index 50dbf98..0000000
--- a/.idea/.idea.RelayCore/.idea/.gitignore
+++ /dev/null
@@ -1,13 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
-# Rider ignored files
-/projectSettingsUpdater.xml
-/modules.xml
-/contentModel.xml
-/.idea.RelayCore.iml
-# Editor-based HTTP Client requests
-/httpRequests/
-# Datasource local storage ignored files
-/dataSources/
-/dataSources.local.xml
diff --git a/.idea/.idea.RelayCore/.idea/AndroidProjectSystem.xml b/.idea/.idea.RelayCore/.idea/AndroidProjectSystem.xml
deleted file mode 100644
index e82600c..0000000
--- a/.idea/.idea.RelayCore/.idea/AndroidProjectSystem.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/.idea.RelayCore/.idea/encodings.xml b/.idea/.idea.RelayCore/.idea/encodings.xml
deleted file mode 100644
index df87cf9..0000000
--- a/.idea/.idea.RelayCore/.idea/encodings.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/.idea/.idea.RelayCore/.idea/indexLayout.xml b/.idea/.idea.RelayCore/.idea/indexLayout.xml
deleted file mode 100644
index 7b08163..0000000
--- a/.idea/.idea.RelayCore/.idea/indexLayout.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/.idea.RelayCore/.idea/vcs.xml b/.idea/.idea.RelayCore/.idea/vcs.xml
deleted file mode 100644
index 94a25f7..0000000
--- a/.idea/.idea.RelayCore/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
deleted file mode 100644
index d6dc02a..0000000
--- a/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-FROM mcr.microsoft.com/dotnet/runtime:9.0 AS base
-USER $APP_UID
-WORKDIR /app
-
-FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
-ARG BUILD_CONFIGURATION=Release
-WORKDIR /src
-COPY ["RelayCore.csproj", "./"]
-RUN dotnet restore "RelayCore.csproj"
-COPY . .
-WORKDIR "/src/"
-RUN dotnet build "./RelayCore.csproj" -c $BUILD_CONFIGURATION -o /app/build
-
-FROM build AS publish
-ARG BUILD_CONFIGURATION=Release
-RUN dotnet publish "./RelayCore.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
-
-FROM base AS final
-WORKDIR /app
-COPY --from=publish /app/publish .
-ENTRYPOINT ["dotnet", "RelayCore.dll"]
diff --git a/Program.cs b/Program.cs
deleted file mode 100644
index 33ea9c4..0000000
--- a/Program.cs
+++ /dev/null
@@ -1,173 +0,0 @@
-using System.ComponentModel.Design;
-using SurrealDb.Net;
-using SurrealDb.Net.Models;
-using SurrealDb.Net.Models.Auth;
-using System.Text.Json;
-using PasswordHasher;
-
-using var db = new SurrealDbClient("ws://127.0.0.1:8000/rpc");
-
-await db.SignIn(new RootAuth { Username = "root", Password = "secret" });
-await db.Use("test", "test");
-
-var user = new Users
-{
- Username = "Keeper317",
- Email = "Keeper317@gmail.com",
- CreatedAt = DateTime.Now,
- UpdatedAt = DateTime.Now,
- LastLogin = DateTime.Now,
- TwoFactorEnabled = false,
- EmailVerified = false,
- AccountStatus = (int) AccountStatuses.Active,
- OnlineStatus = (int) OnlineStatuses.Online,
-};
-var created = await db.Create("users", user);
-Console.WriteLine($"Created Person: {ToJsonString(created)}");
-var hasher = new PasswordHasher.PasswordHasher();
-user.Password = hasher.HashPassword(created.Id + "password");
-user.UpdatedAt = DateTime.Now;
-user.LastLogin = DateTime.Now;
-user.Id = created.Id;
-
-bool isValid = hasher.VerifyPassword(created.Id + "password", user.Password);
-Console.WriteLine($"Password match: {isValid}");
-
-var updated = await db.Merge("users", new() { Id = created.Id, Password = user.Password });
-
-// var updated = await db.Merge(
-// new() { Id = (TABLE, "8b4nwczy6x8f8zd5sslq"), Marketing = true }
-// );
-Console.WriteLine($"Updated Person: {ToJsonString(updated)}");
-//
-var people = await db.Select("users");
-Console.WriteLine($"Select Person: {ToJsonString(people)}");
-//
-// var queryResponse = await db.Query($"SELECT Marketing, count() AS Count FROM type::table({TABLE}) GROUP BY Marketing");
-// var groups = queryResponse.GetValue>(0);
-// Console.WriteLine($"Get Value as group: {ToJsonString(groups)}");
-
-await db.Delete("users");
-
-
-static string ToJsonString(object? o)
-{
- return JsonSerializer.Serialize(o, new JsonSerializerOptions { WriteIndented = true, });
-}
-
-public class ResponsibilityMerge : Record
-{
- public bool Marketing { get; set; }
-}
-public class Group
-{
- public bool Marketing { get; set; }
- public int Count { get; set; }
-}
-
-public class Users : Record
-{
- public required string Username { get; set; }
- public string? Password { get; set; }
- public required string Email { get; set; }
- public required DateTime CreatedAt { get; set; }
- public required DateTime UpdatedAt { get; set; }
- public required DateTime LastLogin { get; set; }
- public bool TwoFactorEnabled { get; set; }
- public bool EmailVerified { get; set; }
- public required int AccountStatus { get; set; }
- public required int OnlineStatus { get; set; }
-}
-
-public class PasswordHash : Record
-{
- public string? Password { get; set; }
-}
-
-public class Sessions : Record
-{
- public required string UserId { get; set; }
- public required string TokenHash { get; set; }
- public required DateTime IssuedAt { get; set; }
- public required DateTime ExpiresAt { get; set; }
- public DateTime? LastUsedAt { get; set; }
- public bool Revoked { get; set; }
- public required string DeviceName { get; set; }
- public required string IpAddress { get; set; }
- public required string UserAgent { get; set; }
-}
-
-public class PasswordReset : Record
-{
- public required string UserId { get; set; }
- public required string TokenHash { get; set; }
- public required DateTime CreatedAt { get; set; }
- public required DateTime ExpiresAt { get; set; }
- public bool Revoked { get; set; }
-}
-
-public class Licenses : Record
-{
- public required string UserId { get; set; }
- public required int LicenseType { get; set; }
- public required int Status { get; set; }
- public required DateTime CreatedAt { get; set; }
- public required DateTime StartsAt { get; set; }
- public required DateTime UpdatedAt { get; set; }
- public required DateTime ExpiresAt { get; set; }
-
-}
-
-public class AuthAudits : Record
-{
- public required string UserId { get; set; }
- public required int EventType { get; set; }
- public bool Success { get; set; }
- public required string IpAddress { get; set; }
- public required string UserAgent { get; set; }
- public required string Details { get; set; }
- public required DateTime CreatedAt { get; set; }
-}
-enum AccountStatuses
-{
- Active,
- Suspended,
- Banned,
- Deleted
-}
-
-enum OnlineStatuses
-{
- Online,
- Busy,
- DND,
- Invisible,
- Offline
-}
-
-enum LicenseStatuses
-{
- Active,
- Expired,
- Renewable,
- Revoked
-}
-
-enum LicenseType
-{
- Free,
- Basic,
- Advanced,
- Pro,
- Enterprise
-}
-
-enum LogEvents
-{
- LoginSuccess,
- LoginFailure,
- LogoutSuccess,
- LogoutFailure,
- PasswordResetSuccess,
- PasswordResetFailure,
-}
\ No newline at end of file
diff --git a/Relay.sln b/Relay.sln
new file mode 100644
index 0000000..add378e
--- /dev/null
+++ b/Relay.sln
@@ -0,0 +1,62 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.0.31903.59
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RelayCore", "RelayCore\RelayCore.csproj", "{346BE501-DE74-4E88-9787-4722FBC8BD0D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RelayClient", "RelayClient\RelayClient.csproj", "{AB9DA5AB-55DC-4DE4-834C-E1E1BCD0C3CD}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RelayServer", "RelayServer\RelayServer.csproj", "{38995780-E9AA-44D6-B62D-07CCA45E4E4C}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Any CPU = Release|Any CPU
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {346BE501-DE74-4E88-9787-4722FBC8BD0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {346BE501-DE74-4E88-9787-4722FBC8BD0D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {346BE501-DE74-4E88-9787-4722FBC8BD0D}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {346BE501-DE74-4E88-9787-4722FBC8BD0D}.Debug|x64.Build.0 = Debug|Any CPU
+ {346BE501-DE74-4E88-9787-4722FBC8BD0D}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {346BE501-DE74-4E88-9787-4722FBC8BD0D}.Debug|x86.Build.0 = Debug|Any CPU
+ {346BE501-DE74-4E88-9787-4722FBC8BD0D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {346BE501-DE74-4E88-9787-4722FBC8BD0D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {346BE501-DE74-4E88-9787-4722FBC8BD0D}.Release|x64.ActiveCfg = Release|Any CPU
+ {346BE501-DE74-4E88-9787-4722FBC8BD0D}.Release|x64.Build.0 = Release|Any CPU
+ {346BE501-DE74-4E88-9787-4722FBC8BD0D}.Release|x86.ActiveCfg = Release|Any CPU
+ {346BE501-DE74-4E88-9787-4722FBC8BD0D}.Release|x86.Build.0 = Release|Any CPU
+ {AB9DA5AB-55DC-4DE4-834C-E1E1BCD0C3CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {AB9DA5AB-55DC-4DE4-834C-E1E1BCD0C3CD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {AB9DA5AB-55DC-4DE4-834C-E1E1BCD0C3CD}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {AB9DA5AB-55DC-4DE4-834C-E1E1BCD0C3CD}.Debug|x64.Build.0 = Debug|Any CPU
+ {AB9DA5AB-55DC-4DE4-834C-E1E1BCD0C3CD}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {AB9DA5AB-55DC-4DE4-834C-E1E1BCD0C3CD}.Debug|x86.Build.0 = Debug|Any CPU
+ {AB9DA5AB-55DC-4DE4-834C-E1E1BCD0C3CD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {AB9DA5AB-55DC-4DE4-834C-E1E1BCD0C3CD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {AB9DA5AB-55DC-4DE4-834C-E1E1BCD0C3CD}.Release|x64.ActiveCfg = Release|Any CPU
+ {AB9DA5AB-55DC-4DE4-834C-E1E1BCD0C3CD}.Release|x64.Build.0 = Release|Any CPU
+ {AB9DA5AB-55DC-4DE4-834C-E1E1BCD0C3CD}.Release|x86.ActiveCfg = Release|Any CPU
+ {AB9DA5AB-55DC-4DE4-834C-E1E1BCD0C3CD}.Release|x86.Build.0 = Release|Any CPU
+ {38995780-E9AA-44D6-B62D-07CCA45E4E4C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {38995780-E9AA-44D6-B62D-07CCA45E4E4C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {38995780-E9AA-44D6-B62D-07CCA45E4E4C}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {38995780-E9AA-44D6-B62D-07CCA45E4E4C}.Debug|x64.Build.0 = Debug|Any CPU
+ {38995780-E9AA-44D6-B62D-07CCA45E4E4C}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {38995780-E9AA-44D6-B62D-07CCA45E4E4C}.Debug|x86.Build.0 = Debug|Any CPU
+ {38995780-E9AA-44D6-B62D-07CCA45E4E4C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {38995780-E9AA-44D6-B62D-07CCA45E4E4C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {38995780-E9AA-44D6-B62D-07CCA45E4E4C}.Release|x64.ActiveCfg = Release|Any CPU
+ {38995780-E9AA-44D6-B62D-07CCA45E4E4C}.Release|x64.Build.0 = Release|Any CPU
+ {38995780-E9AA-44D6-B62D-07CCA45E4E4C}.Release|x86.ActiveCfg = Release|Any CPU
+ {38995780-E9AA-44D6-B62D-07CCA45E4E4C}.Release|x86.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/RelayClient/.gitignore b/RelayClient/.gitignore
new file mode 100644
index 0000000..b59e83d
--- /dev/null
+++ b/RelayClient/.gitignore
@@ -0,0 +1,93 @@
+############################################
+# .NET Build
+############################################
+
+bin/
+obj/
+out/
+publish/
+
+############################################
+# Visual Studio
+############################################
+
+.vs/
+*.user
+*.suo
+*.userprefs
+*.csproj.user
+*.dbmdl
+*.cache
+*.pdb
+*.opendb
+
+############################################
+# Rider / JetBrains
+############################################
+
+.idea/
+*.sln.iml
+
+############################################
+# VSCode
+############################################
+
+.vscode/
+
+############################################
+# NuGet
+############################################
+
+*.nupkg
+*.snupkg
+packages/
+.nuget/
+.nuget/packages/
+
+############################################
+# Logs
+############################################
+
+*.log
+logs/
+
+############################################
+# OS files
+############################################
+
+.DS_Store
+Thumbs.db
+
+############################################
+# Local secrets / environment
+############################################
+
+.env
+.env.*
+secrets.json
+appsettings.Development.json
+
+############################################
+# E2EE private keys
+############################################
+
+keys/*
+!keys/.gitkeep
+
+############################################
+# Local test databases / data folders
+############################################
+
+data/
+*.db
+*.sqlite
+*.sqlite3
+
+############################################
+# Temporary files
+############################################
+
+*.tmp
+*.temp
+*.bak
+*.swp
\ No newline at end of file
diff --git a/RelayClient/App.xaml b/RelayClient/App.xaml
new file mode 100644
index 0000000..0485623
--- /dev/null
+++ b/RelayClient/App.xaml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/RelayClient/App.xaml.cs b/RelayClient/App.xaml.cs
new file mode 100644
index 0000000..3da581d
--- /dev/null
+++ b/RelayClient/App.xaml.cs
@@ -0,0 +1,16 @@
+using Microsoft.Extensions.DependencyInjection;
+
+namespace RelayClient;
+
+public partial class App : Application
+{
+ public App()
+ {
+ InitializeComponent();
+ }
+
+ protected override Window CreateWindow(IActivationState? activationState)
+ {
+ return new Window(new AppShell());
+ }
+}
\ No newline at end of file
diff --git a/RelayClient/AppShell.xaml b/RelayClient/AppShell.xaml
new file mode 100644
index 0000000..b205bde
--- /dev/null
+++ b/RelayClient/AppShell.xaml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
diff --git a/RelayClient/AppShell.xaml.cs b/RelayClient/AppShell.xaml.cs
new file mode 100644
index 0000000..b751b95
--- /dev/null
+++ b/RelayClient/AppShell.xaml.cs
@@ -0,0 +1,9 @@
+namespace RelayClient;
+
+public partial class AppShell : Shell
+{
+ public AppShell()
+ {
+ InitializeComponent();
+ }
+}
\ No newline at end of file
diff --git a/RelayClient/MainPage.xaml b/RelayClient/MainPage.xaml
new file mode 100644
index 0000000..f8b87d0
--- /dev/null
+++ b/RelayClient/MainPage.xaml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/RelayClient/MainPage.xaml.cs b/RelayClient/MainPage.xaml.cs
new file mode 100644
index 0000000..f10d86c
--- /dev/null
+++ b/RelayClient/MainPage.xaml.cs
@@ -0,0 +1,23 @@
+namespace RelayClient;
+
+public partial class MainPage : ContentPage
+{
+ int count = 0;
+
+ public MainPage()
+ {
+ InitializeComponent();
+ }
+
+ private void OnCounterClicked(object? sender, EventArgs e)
+ {
+ count++;
+
+ if (count == 1)
+ CounterBtn.Text = $"Clicked {count} time";
+ else
+ CounterBtn.Text = $"Clicked {count} times";
+
+ SemanticScreenReader.Announce(CounterBtn.Text);
+ }
+}
\ No newline at end of file
diff --git a/RelayClient/MauiProgram.cs b/RelayClient/MauiProgram.cs
new file mode 100644
index 0000000..50927fe
--- /dev/null
+++ b/RelayClient/MauiProgram.cs
@@ -0,0 +1,25 @@
+using Microsoft.Extensions.Logging;
+using Microsoft.Maui.Hosting;
+
+namespace RelayClient;
+
+public static class MauiProgram
+{
+ public static MauiApp CreateMauiApp()
+ {
+ var builder = MauiApp.CreateBuilder();
+ builder
+ .UseMauiApp()
+ .ConfigureFonts(fonts =>
+ {
+ fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
+ fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
+ });
+
+#if DEBUG
+ builder.Logging.AddDebug();
+#endif
+
+ return builder.Build();
+ }
+}
\ No newline at end of file
diff --git a/RelayClient/Platforms/Android/AndroidManifest.xml b/RelayClient/Platforms/Android/AndroidManifest.xml
new file mode 100644
index 0000000..e9937ad
--- /dev/null
+++ b/RelayClient/Platforms/Android/AndroidManifest.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/RelayClient/Platforms/Android/MainActivity.cs b/RelayClient/Platforms/Android/MainActivity.cs
new file mode 100644
index 0000000..e368a02
--- /dev/null
+++ b/RelayClient/Platforms/Android/MainActivity.cs
@@ -0,0 +1,12 @@
+using Android.App;
+using Android.Content.PM;
+using Android.OS;
+
+namespace RelayClient;
+
+[Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, LaunchMode = LaunchMode.SingleTop,
+ ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode |
+ ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)]
+public class MainActivity : MauiAppCompatActivity
+{
+}
\ No newline at end of file
diff --git a/RelayClient/Platforms/Android/MainApplication.cs b/RelayClient/Platforms/Android/MainApplication.cs
new file mode 100644
index 0000000..ea67751
--- /dev/null
+++ b/RelayClient/Platforms/Android/MainApplication.cs
@@ -0,0 +1,15 @@
+using Android.App;
+using Android.Runtime;
+
+namespace RelayClient;
+
+[Application]
+public class MainApplication : MauiApplication
+{
+ public MainApplication(IntPtr handle, JniHandleOwnership ownership)
+ : base(handle, ownership)
+ {
+ }
+
+ protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
+}
\ No newline at end of file
diff --git a/RelayClient/Platforms/Android/Resources/values/colors.xml b/RelayClient/Platforms/Android/Resources/values/colors.xml
new file mode 100644
index 0000000..c04d749
--- /dev/null
+++ b/RelayClient/Platforms/Android/Resources/values/colors.xml
@@ -0,0 +1,6 @@
+
+
+ #512BD4
+ #2B0B98
+ #2B0B98
+
\ No newline at end of file
diff --git a/RelayClient/Platforms/MacCatalyst/AppDelegate.cs b/RelayClient/Platforms/MacCatalyst/AppDelegate.cs
new file mode 100644
index 0000000..ec9f816
--- /dev/null
+++ b/RelayClient/Platforms/MacCatalyst/AppDelegate.cs
@@ -0,0 +1,9 @@
+using Foundation;
+
+namespace RelayClient;
+
+[Register("AppDelegate")]
+public class AppDelegate : MauiUIApplicationDelegate
+{
+ protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
+}
\ No newline at end of file
diff --git a/RelayClient/Platforms/MacCatalyst/Entitlements.plist b/RelayClient/Platforms/MacCatalyst/Entitlements.plist
new file mode 100644
index 0000000..de4adc9
--- /dev/null
+++ b/RelayClient/Platforms/MacCatalyst/Entitlements.plist
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+ com.apple.security.app-sandbox
+
+
+ com.apple.security.network.client
+
+
+
+
diff --git a/RelayClient/Platforms/MacCatalyst/Info.plist b/RelayClient/Platforms/MacCatalyst/Info.plist
new file mode 100644
index 0000000..f2e0987
--- /dev/null
+++ b/RelayClient/Platforms/MacCatalyst/Info.plist
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ UIDeviceFamily
+
+ 2
+
+ LSApplicationCategoryType
+ public.app-category.lifestyle
+ UIRequiredDeviceCapabilities
+
+ arm64
+
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ UISupportedInterfaceOrientations~ipad
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationPortraitUpsideDown
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ XSAppIconAssets
+ Assets.xcassets/appicon.appiconset
+
+
diff --git a/RelayClient/Platforms/MacCatalyst/Program.cs b/RelayClient/Platforms/MacCatalyst/Program.cs
new file mode 100644
index 0000000..9ee92fa
--- /dev/null
+++ b/RelayClient/Platforms/MacCatalyst/Program.cs
@@ -0,0 +1,15 @@
+using ObjCRuntime;
+using UIKit;
+
+namespace RelayClient;
+
+public class Program
+{
+ // This is the main entry point of the application.
+ static void Main(string[] args)
+ {
+ // if you want to use a different Application Delegate class from "AppDelegate"
+ // you can specify it here.
+ UIApplication.Main(args, null, typeof(AppDelegate));
+ }
+}
\ No newline at end of file
diff --git a/RelayClient/Platforms/Windows/App.xaml b/RelayClient/Platforms/Windows/App.xaml
new file mode 100644
index 0000000..6527f81
--- /dev/null
+++ b/RelayClient/Platforms/Windows/App.xaml
@@ -0,0 +1,8 @@
+
+
+
diff --git a/RelayClient/Platforms/Windows/App.xaml.cs b/RelayClient/Platforms/Windows/App.xaml.cs
new file mode 100644
index 0000000..74d15ee
--- /dev/null
+++ b/RelayClient/Platforms/Windows/App.xaml.cs
@@ -0,0 +1,23 @@
+using Microsoft.UI.Xaml;
+
+// To learn more about WinUI, the WinUI project structure,
+// and more about our project templates, see: http://aka.ms/winui-project-info.
+
+namespace RelayClient.WinUI;
+
+///
+/// Provides application-specific behavior to supplement the default Application class.
+///
+public partial class App : MauiWinUIApplication
+{
+ ///
+ /// Initializes the singleton application object. This is the first line of authored code
+ /// executed, and as such is the logical equivalent of main() or WinMain().
+ ///
+ public App()
+ {
+ this.InitializeComponent();
+ }
+
+ protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
+}
\ No newline at end of file
diff --git a/RelayClient/Platforms/Windows/Package.appxmanifest b/RelayClient/Platforms/Windows/Package.appxmanifest
new file mode 100644
index 0000000..b3c21e1
--- /dev/null
+++ b/RelayClient/Platforms/Windows/Package.appxmanifest
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+ $placeholder$
+ User Name
+ $placeholder$.png
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/RelayClient/Platforms/Windows/app.manifest b/RelayClient/Platforms/Windows/app.manifest
new file mode 100644
index 0000000..439c31c
--- /dev/null
+++ b/RelayClient/Platforms/Windows/app.manifest
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+ true/PM
+ PerMonitorV2, PerMonitor
+
+ true
+
+
+
diff --git a/RelayClient/Platforms/iOS/AppDelegate.cs b/RelayClient/Platforms/iOS/AppDelegate.cs
new file mode 100644
index 0000000..ec9f816
--- /dev/null
+++ b/RelayClient/Platforms/iOS/AppDelegate.cs
@@ -0,0 +1,9 @@
+using Foundation;
+
+namespace RelayClient;
+
+[Register("AppDelegate")]
+public class AppDelegate : MauiUIApplicationDelegate
+{
+ protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
+}
\ No newline at end of file
diff --git a/RelayClient/Platforms/iOS/Info.plist b/RelayClient/Platforms/iOS/Info.plist
new file mode 100644
index 0000000..0004a4f
--- /dev/null
+++ b/RelayClient/Platforms/iOS/Info.plist
@@ -0,0 +1,32 @@
+
+
+
+
+ LSRequiresIPhoneOS
+
+ UIDeviceFamily
+
+ 1
+ 2
+
+ UIRequiredDeviceCapabilities
+
+ arm64
+
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ UISupportedInterfaceOrientations~ipad
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationPortraitUpsideDown
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ XSAppIconAssets
+ Assets.xcassets/appicon.appiconset
+
+
diff --git a/RelayClient/Platforms/iOS/Program.cs b/RelayClient/Platforms/iOS/Program.cs
new file mode 100644
index 0000000..9ee92fa
--- /dev/null
+++ b/RelayClient/Platforms/iOS/Program.cs
@@ -0,0 +1,15 @@
+using ObjCRuntime;
+using UIKit;
+
+namespace RelayClient;
+
+public class Program
+{
+ // This is the main entry point of the application.
+ static void Main(string[] args)
+ {
+ // if you want to use a different Application Delegate class from "AppDelegate"
+ // you can specify it here.
+ UIApplication.Main(args, null, typeof(AppDelegate));
+ }
+}
\ No newline at end of file
diff --git a/RelayClient/Platforms/iOS/Resources/PrivacyInfo.xcprivacy b/RelayClient/Platforms/iOS/Resources/PrivacyInfo.xcprivacy
new file mode 100644
index 0000000..24ab3b4
--- /dev/null
+++ b/RelayClient/Platforms/iOS/Resources/PrivacyInfo.xcprivacy
@@ -0,0 +1,51 @@
+
+
+
+
+
+ NSPrivacyAccessedAPITypes
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategoryFileTimestamp
+ NSPrivacyAccessedAPITypeReasons
+
+ C617.1
+
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategorySystemBootTime
+ NSPrivacyAccessedAPITypeReasons
+
+ 35F9.1
+
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategoryDiskSpace
+ NSPrivacyAccessedAPITypeReasons
+
+ E174.1
+
+
+
+
+
+
diff --git a/RelayClient/Properties/launchSettings.json b/RelayClient/Properties/launchSettings.json
new file mode 100644
index 0000000..4f85793
--- /dev/null
+++ b/RelayClient/Properties/launchSettings.json
@@ -0,0 +1,8 @@
+{
+ "profiles": {
+ "Windows Machine": {
+ "commandName": "Project",
+ "nativeDebugging": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/RelayClient/README.md b/RelayClient/README.md
new file mode 100644
index 0000000..f31753a
--- /dev/null
+++ b/RelayClient/README.md
@@ -0,0 +1 @@
+# RelayClient
diff --git a/RelayClient/RelayClient.csproj b/RelayClient/RelayClient.csproj
new file mode 100644
index 0000000..b536a2d
--- /dev/null
+++ b/RelayClient/RelayClient.csproj
@@ -0,0 +1,46 @@
+
+
+
+ net10.0-android;net10.0-ios;net10.0-maccatalyst
+
+ $(TargetFrameworks);net10.0-windows10.0.19041.0
+
+
+ Exe
+ RelayClient
+ true
+ true
+ enable
+ enable
+
+ SourceGen
+
+ RelayClient
+ com.companyname.relayclient
+ 1.0
+ 1
+
+ None
+
+ 15.0
+ 15.0
+ 21.0
+ 10.0.17763.0
+ 10.0.17763.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/RelayClient/Resources/AppIcon/appicon.svg b/RelayClient/Resources/AppIcon/appicon.svg
new file mode 100644
index 0000000..9d63b65
--- /dev/null
+++ b/RelayClient/Resources/AppIcon/appicon.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/RelayClient/Resources/AppIcon/appiconfg.svg b/RelayClient/Resources/AppIcon/appiconfg.svg
new file mode 100644
index 0000000..21dfb25
--- /dev/null
+++ b/RelayClient/Resources/AppIcon/appiconfg.svg
@@ -0,0 +1,8 @@
+
+
+
\ No newline at end of file
diff --git a/RelayClient/Resources/Fonts/OpenSans-Regular.ttf b/RelayClient/Resources/Fonts/OpenSans-Regular.ttf
new file mode 100644
index 0000000..2cc82d2
Binary files /dev/null and b/RelayClient/Resources/Fonts/OpenSans-Regular.ttf differ
diff --git a/RelayClient/Resources/Fonts/OpenSans-Semibold.ttf b/RelayClient/Resources/Fonts/OpenSans-Semibold.ttf
new file mode 100644
index 0000000..fcb5284
Binary files /dev/null and b/RelayClient/Resources/Fonts/OpenSans-Semibold.ttf differ
diff --git a/RelayClient/Resources/Images/dotnet_bot.png b/RelayClient/Resources/Images/dotnet_bot.png
new file mode 100644
index 0000000..054167e
Binary files /dev/null and b/RelayClient/Resources/Images/dotnet_bot.png differ
diff --git a/RelayClient/Resources/Raw/AboutAssets.txt b/RelayClient/Resources/Raw/AboutAssets.txt
new file mode 100644
index 0000000..89dc758
--- /dev/null
+++ b/RelayClient/Resources/Raw/AboutAssets.txt
@@ -0,0 +1,15 @@
+Any raw assets you want to be deployed with your application can be placed in
+this directory (and child directories). Deployment of the asset to your application
+is automatically handled by the following `MauiAsset` Build Action within your `.csproj`.
+
+
+
+These files will be deployed with your package and will be accessible using Essentials:
+
+ async Task LoadMauiAsset()
+ {
+ using var stream = await FileSystem.OpenAppPackageFileAsync("AboutAssets.txt");
+ using var reader = new StreamReader(stream);
+
+ var contents = reader.ReadToEnd();
+ }
diff --git a/RelayClient/Resources/Splash/splash.svg b/RelayClient/Resources/Splash/splash.svg
new file mode 100644
index 0000000..21dfb25
--- /dev/null
+++ b/RelayClient/Resources/Splash/splash.svg
@@ -0,0 +1,8 @@
+
+
+
\ No newline at end of file
diff --git a/RelayClient/Resources/Styles/Colors.xaml b/RelayClient/Resources/Styles/Colors.xaml
new file mode 100644
index 0000000..d57fcc6
--- /dev/null
+++ b/RelayClient/Resources/Styles/Colors.xaml
@@ -0,0 +1,44 @@
+
+
+
+
+
+ #512BD4
+ #ac99ea
+ #242424
+ #DFD8F7
+ #9880e5
+ #2B0B98
+
+ White
+ Black
+ #D600AA
+ #190649
+ #1f1f1f
+
+ #E1E1E1
+ #C8C8C8
+ #ACACAC
+ #919191
+ #6E6E6E
+ #404040
+ #212121
+ #141414
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/RelayClient/Resources/Styles/Styles.xaml b/RelayClient/Resources/Styles/Styles.xaml
new file mode 100644
index 0000000..5fef12a
--- /dev/null
+++ b/RelayClient/Resources/Styles/Styles.xaml
@@ -0,0 +1,434 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/RelayCore.sln.DotSettings.user b/RelayCore.sln.DotSettings.user
deleted file mode 100644
index 35bb567..0000000
--- a/RelayCore.sln.DotSettings.user
+++ /dev/null
@@ -1,2 +0,0 @@
-
- ForceIncluded
\ No newline at end of file
diff --git a/RelayCore/.gitignore b/RelayCore/.gitignore
new file mode 100644
index 0000000..b59e83d
--- /dev/null
+++ b/RelayCore/.gitignore
@@ -0,0 +1,93 @@
+############################################
+# .NET Build
+############################################
+
+bin/
+obj/
+out/
+publish/
+
+############################################
+# Visual Studio
+############################################
+
+.vs/
+*.user
+*.suo
+*.userprefs
+*.csproj.user
+*.dbmdl
+*.cache
+*.pdb
+*.opendb
+
+############################################
+# Rider / JetBrains
+############################################
+
+.idea/
+*.sln.iml
+
+############################################
+# VSCode
+############################################
+
+.vscode/
+
+############################################
+# NuGet
+############################################
+
+*.nupkg
+*.snupkg
+packages/
+.nuget/
+.nuget/packages/
+
+############################################
+# Logs
+############################################
+
+*.log
+logs/
+
+############################################
+# OS files
+############################################
+
+.DS_Store
+Thumbs.db
+
+############################################
+# Local secrets / environment
+############################################
+
+.env
+.env.*
+secrets.json
+appsettings.Development.json
+
+############################################
+# E2EE private keys
+############################################
+
+keys/*
+!keys/.gitkeep
+
+############################################
+# Local test databases / data folders
+############################################
+
+data/
+*.db
+*.sqlite
+*.sqlite3
+
+############################################
+# Temporary files
+############################################
+
+*.tmp
+*.temp
+*.bak
+*.swp
\ No newline at end of file
diff --git a/RelayCore/E2EeHelper.cs b/RelayCore/E2EeHelper.cs
new file mode 100644
index 0000000..c4d5578
--- /dev/null
+++ b/RelayCore/E2EeHelper.cs
@@ -0,0 +1,82 @@
+using System.Security.Cryptography;
+using System.Text;
+
+namespace RelayCore;
+
+public static class E2EeHelper
+{
+ public static (string publicKey, string privateKey) GenerateRsaKeyPair()
+ {
+ using var rsa = RSA.Create(2048);
+
+ var publicKey = Convert.ToBase64String(rsa.ExportSubjectPublicKeyInfo());
+ var privateKey = Convert.ToBase64String(rsa.ExportPkcs8PrivateKey());
+
+ return (publicKey, privateKey);
+ }
+
+ public static EncryptedMessagePayload EncryptForRecipient(string plainText, string recipientPublicKeyBase64)
+ {
+ var aesKey = RandomNumberGenerator.GetBytes(32);
+ var nonce = RandomNumberGenerator.GetBytes(12);
+ var plainBytes = Encoding.UTF8.GetBytes(plainText);
+ var cipherBytes = new byte[plainBytes.Length];
+ var tag = new byte[16];
+
+ using (var aes = new AesGcm(aesKey, 16))
+ {
+ aes.Encrypt(nonce, plainBytes, cipherBytes, tag);
+ }
+
+ var recipientPublicKey = Convert.FromBase64String(recipientPublicKeyBase64);
+ byte[] encryptedKey;
+
+ using (var rsa = RSA.Create())
+ {
+ rsa.ImportSubjectPublicKeyInfo(recipientPublicKey, out _);
+ encryptedKey = rsa.Encrypt(aesKey, RSAEncryptionPadding.OaepSHA256);
+ }
+
+ return new EncryptedMessagePayload
+ {
+ CipherText = Convert.ToBase64String(cipherBytes),
+ Nonce = Convert.ToBase64String(nonce),
+ Tag = Convert.ToBase64String(tag),
+ EncryptedKey = Convert.ToBase64String(encryptedKey)
+ };
+ }
+
+ public static string DecryptForRecipient(EncryptedMessagePayload payload, string recipientPrivateKeyBase64)
+ {
+ var encryptedKey = Convert.FromBase64String(payload.EncryptedKey);
+ var privateKey = Convert.FromBase64String(recipientPrivateKeyBase64);
+
+ byte[] aesKey;
+
+ using (var rsa = RSA.Create())
+ {
+ rsa.ImportPkcs8PrivateKey(privateKey, out _);
+ aesKey = rsa.Decrypt(encryptedKey, RSAEncryptionPadding.OaepSHA256);
+ }
+
+ var nonce = Convert.FromBase64String(payload.Nonce);
+ var tag = Convert.FromBase64String(payload.Tag);
+ var cipherBytes = Convert.FromBase64String(payload.CipherText);
+ var plainBytes = new byte[cipherBytes.Length];
+
+ using (var aes = new AesGcm(aesKey, 16))
+ {
+ aes.Decrypt(nonce, cipherBytes, tag, plainBytes);
+ }
+
+ return Encoding.UTF8.GetString(plainBytes);
+ }
+}
+
+public class EncryptedMessagePayload
+{
+ public required string CipherText { get; set; }
+ public required string Nonce { get; set; }
+ public required string Tag { get; set; }
+ public required string EncryptedKey { get; set; }
+}
\ No newline at end of file
diff --git a/PasswordHasher.cs b/RelayCore/PasswordHasher.cs
similarity index 100%
rename from PasswordHasher.cs
rename to RelayCore/PasswordHasher.cs
diff --git a/RelayCore/Program.cs b/RelayCore/Program.cs
new file mode 100644
index 0000000..4b45823
--- /dev/null
+++ b/RelayCore/Program.cs
@@ -0,0 +1,298 @@
+using SurrealDb.Net;
+using SurrealDb.Net.Models;
+using SurrealDb.Net.Models.Auth;
+using System.Text.Json;
+using PasswordHasher;
+using RelayCore;
+
+using var db = new SurrealDbClient("ws://127.0.0.1:8000/rpc");
+
+await db.SignIn(new RootAuth { Username = "root", Password = "secret" });
+await db.Use("test", "test");
+
+var keeper = await CreateUserAsync(db, "Keeper317", "Keeper317@gmail.com", "password");
+var kira = await CreateUserAsync(db, "Ru_Kira", "jduesling13@gmail.com", "password");
+
+Console.WriteLine($"Keeper created: {ToJsonString(keeper)}");
+Console.WriteLine($"Kira created: {ToJsonString(kira)}");
+
+var keeperKeys = E2EeHelper.GenerateRsaKeyPair();
+var kiraKeys = E2EeHelper.GenerateRsaKeyPair();
+
+KeyStorage.SavePrivateKey("Keeper317", keeperKeys.privateKey);
+KeyStorage.SavePrivateKey("Ru_Kira", kiraKeys.privateKey);
+
+await db.Create("user_keys", new UserKeys
+{
+ UserId = keeper.Id.ToString(),
+ PublicKey = keeperKeys.publicKey,
+ CreatedAt = DateTime.UtcNow,
+ UpdatedAt = DateTime.UtcNow
+});
+
+await db.Create("user_keys", new UserKeys
+{
+ UserId = kira.Id.ToString(),
+ PublicKey = kiraKeys.publicKey,
+ CreatedAt = DateTime.UtcNow,
+ UpdatedAt = DateTime.UtcNow
+});
+
+Console.WriteLine("Public keys stored for both users.");
+
+var conversation = await db.Create("conversations", new Conversations
+{
+ CreatedByUserId = keeper.Id.ToString(),
+ CreatedAt = DateTime.UtcNow,
+ UpdatedAt = DateTime.UtcNow,
+ Title = "Keeper317 + Ru_Kira",
+ IsDirectMessage = true
+});
+
+Console.WriteLine($"Conversation created: {ToJsonString(conversation)}");
+
+await db.Create("conversation_members", new ConversationMembers
+{
+ ConversationId = conversation.Id.ToString(),
+ UserId = keeper.Id.ToString(),
+ JoinedAt = DateTime.UtcNow
+});
+
+await db.Create("conversation_members", new ConversationMembers
+{
+ ConversationId = conversation.Id.ToString(),
+ UserId = kira.Id.ToString(),
+ JoinedAt = DateTime.UtcNow
+});
+
+Console.WriteLine("Conversation members added.");
+
+var encrypted = E2EeHelper.EncryptForRecipient("hello from Keeper317", kiraKeys.publicKey);
+
+var savedMessage = await db.Create("messages", new Messages
+{
+ ConversationId = conversation.Id.ToString(),
+ SenderUserId = keeper.Id.ToString(),
+ RecipientUserId = kira.Id.ToString(),
+ CipherText = encrypted.CipherText,
+ Nonce = encrypted.Nonce,
+ Tag = encrypted.Tag,
+ EncryptedKey = encrypted.EncryptedKey,
+ CreatedAt = DateTime.UtcNow
+});
+
+Console.WriteLine($"Encrypted message saved: {ToJsonString(savedMessage)}");
+
+var decrypted = E2EeHelper.DecryptForRecipient(encrypted, kiraKeys.privateKey);
+Console.WriteLine($"Decrypted for Ru_Kira: {decrypted}");
+
+return;
+
+static string ToJsonString(object? o)
+{
+ return JsonSerializer.Serialize(o, new JsonSerializerOptions { WriteIndented = true });
+}
+
+static async Task CreateUserAsync(SurrealDbClient db, string username, string email, string rawPassword)
+{
+ var now = DateTime.UtcNow;
+
+ var user = new Users
+ {
+ Username = username,
+ Email = email,
+ CreatedAt = now,
+ UpdatedAt = now,
+ LastLogin = now,
+ TwoFactorEnabled = false,
+ EmailVerified = false,
+ AccountStatus = (int)AccountStatuses.Active,
+ OnlineStatus = (int)OnlineStatuses.Online,
+ };
+
+ var created = await db.Create("users", user);
+
+ var hasher = new PasswordHasher.PasswordHasher();
+ var passwordHash = hasher.HashPassword(created.Id.ToString() + rawPassword);
+
+ var updated = await db.Merge(new PasswordHash
+ {
+ Id = created.Id,
+ Password = passwordHash
+ });
+
+ return updated;
+}
+
+public static class KeyStorage
+{
+ public static void SavePrivateKey(string username, string privateKey)
+ {
+ Directory.CreateDirectory("keys");
+ File.WriteAllText(Path.Combine("keys", $"{username}.private.key"), privateKey);
+ }
+
+ public static string LoadPrivateKey(string username)
+ {
+ return File.ReadAllText(Path.Combine("keys", $"{username}.private.key"));
+ }
+
+ public static bool PrivateKeyExists(string username)
+ {
+ return File.Exists(Path.Combine("keys", $"{username}.private.key"));
+ }
+}
+
+public class ResponsibilityMerge : Record
+{
+ public bool Marketing { get; set; }
+}
+public class Group
+{
+ public bool Marketing { get; set; }
+ public int Count { get; set; }
+}
+
+public class Users : Record
+{
+ public required string Username { get; set; }
+ public string? Password { get; set; }
+ public required string Email { get; set; }
+ public required DateTime CreatedAt { get; set; }
+ public required DateTime UpdatedAt { get; set; }
+ public required DateTime LastLogin { get; set; }
+ public bool TwoFactorEnabled { get; set; }
+ public bool EmailVerified { get; set; }
+ public required int AccountStatus { get; set; }
+ public required int OnlineStatus { get; set; }
+}
+
+public class PasswordHash : Record
+{
+ public string? Password { get; set; }
+}
+
+public class Sessions : Record
+{
+ public required string UserId { get; set; }
+ public required string TokenHash { get; set; }
+ public required DateTime IssuedAt { get; set; }
+ public required DateTime ExpiresAt { get; set; }
+ public DateTime? LastUsedAt { get; set; }
+ public bool Revoked { get; set; }
+ public required string DeviceName { get; set; }
+ public required string IpAddress { get; set; }
+ public required string UserAgent { get; set; }
+}
+
+public class PasswordReset : Record
+{
+ public required string UserId { get; set; }
+ public required string TokenHash { get; set; }
+ public required DateTime CreatedAt { get; set; }
+ public required DateTime ExpiresAt { get; set; }
+ public bool Revoked { get; set; }
+}
+
+public class Licenses : Record
+{
+ public required string UserId { get; set; }
+ public required int LicenseType { get; set; }
+ public required int Status { get; set; }
+ public required DateTime CreatedAt { get; set; }
+ public required DateTime StartsAt { get; set; }
+ public required DateTime UpdatedAt { get; set; }
+ public required DateTime ExpiresAt { get; set; }
+
+}
+
+public class AuthAudits : Record
+{
+ public required string UserId { get; set; }
+ public required int EventType { get; set; }
+ public bool Success { get; set; }
+ public required string IpAddress { get; set; }
+ public required string UserAgent { get; set; }
+ public required string Details { get; set; }
+ public required DateTime CreatedAt { get; set; }
+}
+
+public class UserKeys : Record
+{
+ public required string UserId { get; set; }
+ public required string PublicKey { get; set; }
+ public required DateTime CreatedAt { get; set; }
+ public required DateTime UpdatedAt { get; set; }
+}
+
+public class Conversations : Record
+{
+ public required string CreatedByUserId { get; set; }
+ public required DateTime CreatedAt { get; set; }
+ public required DateTime UpdatedAt { get; set; }
+ public string? Title { get; set; }
+ public bool IsDirectMessage { get; set; }
+}
+
+public class ConversationMembers : Record
+{
+ public required string ConversationId { get; set; }
+ public required string UserId { get; set; }
+ public required DateTime JoinedAt { get; set; }
+}
+
+public class Messages : Record
+{
+ public required string ConversationId { get; set; }
+ public required string SenderUserId { get; set; }
+ public required string RecipientUserId { get; set; }
+ public required string CipherText { get; set; }
+ public required string Nonce { get; set; }
+ public required string Tag { get; set; }
+ public required string EncryptedKey { get; set; }
+ public required DateTime CreatedAt { get; set; }
+}
+
+enum AccountStatuses
+{
+ Active,
+ Suspended,
+ Banned,
+ Deleted
+}
+
+enum OnlineStatuses
+{
+ Online,
+ Busy,
+ DND,
+ Invisible,
+ Offline
+}
+
+enum LicenseStatuses
+{
+ Active,
+ Expired,
+ Renewable,
+ Revoked
+}
+
+enum LicenseType
+{
+ Free,
+ Basic,
+ Advanced,
+ Pro,
+ Enterprise
+}
+
+enum LogEvents
+{
+ LoginSuccess,
+ LoginFailure,
+ LogoutSuccess,
+ LogoutFailure,
+ PasswordResetSuccess,
+ PasswordResetFailure,
+}
\ No newline at end of file
diff --git a/RelayCore/README.md b/RelayCore/README.md
new file mode 100644
index 0000000..c099d39
--- /dev/null
+++ b/RelayCore/README.md
@@ -0,0 +1 @@
+# RelayCore
diff --git a/RelayCore.csproj b/RelayCore/RelayCore.csproj
similarity index 100%
rename from RelayCore.csproj
rename to RelayCore/RelayCore.csproj
diff --git a/RelayCore.sln b/RelayCore/RelayCore.sln
similarity index 100%
rename from RelayCore.sln
rename to RelayCore/RelayCore.sln
diff --git a/RelayCore/keys/.gitkeep b/RelayCore/keys/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/RelayServer/.gitignore b/RelayServer/.gitignore
new file mode 100644
index 0000000..b59e83d
--- /dev/null
+++ b/RelayServer/.gitignore
@@ -0,0 +1,93 @@
+############################################
+# .NET Build
+############################################
+
+bin/
+obj/
+out/
+publish/
+
+############################################
+# Visual Studio
+############################################
+
+.vs/
+*.user
+*.suo
+*.userprefs
+*.csproj.user
+*.dbmdl
+*.cache
+*.pdb
+*.opendb
+
+############################################
+# Rider / JetBrains
+############################################
+
+.idea/
+*.sln.iml
+
+############################################
+# VSCode
+############################################
+
+.vscode/
+
+############################################
+# NuGet
+############################################
+
+*.nupkg
+*.snupkg
+packages/
+.nuget/
+.nuget/packages/
+
+############################################
+# Logs
+############################################
+
+*.log
+logs/
+
+############################################
+# OS files
+############################################
+
+.DS_Store
+Thumbs.db
+
+############################################
+# Local secrets / environment
+############################################
+
+.env
+.env.*
+secrets.json
+appsettings.Development.json
+
+############################################
+# E2EE private keys
+############################################
+
+keys/*
+!keys/.gitkeep
+
+############################################
+# Local test databases / data folders
+############################################
+
+data/
+*.db
+*.sqlite
+*.sqlite3
+
+############################################
+# Temporary files
+############################################
+
+*.tmp
+*.temp
+*.bak
+*.swp
\ No newline at end of file
diff --git a/RelayServer/Program.cs b/RelayServer/Program.cs
new file mode 100644
index 0000000..837131c
--- /dev/null
+++ b/RelayServer/Program.cs
@@ -0,0 +1 @@
+Console.WriteLine("Hello, World!");
\ No newline at end of file
diff --git a/RelayServer/README.md b/RelayServer/README.md
new file mode 100644
index 0000000..2cd21e5
--- /dev/null
+++ b/RelayServer/README.md
@@ -0,0 +1 @@
+# RelayServer
diff --git a/RelayServer/RelayServer.csproj b/RelayServer/RelayServer.csproj
new file mode 100644
index 0000000..6c1dc92
--- /dev/null
+++ b/RelayServer/RelayServer.csproj
@@ -0,0 +1,10 @@
+
+
+
+ Exe
+ net10.0
+ enable
+ enable
+
+
+
diff --git a/compose.yaml b/compose.yaml
deleted file mode 100644
index eed92af..0000000
--- a/compose.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-services:
- relaycore:
- image: relaycore
- build:
- context: .
- dockerfile: Dockerfile
-
diff --git a/global.json b/global.json
new file mode 100644
index 0000000..9a523dc
--- /dev/null
+++ b/global.json
@@ -0,0 +1,7 @@
+{
+ "sdk": {
+ "version": "10.0.0",
+ "rollForward": "latestMajor",
+ "allowPrerelease": false
+ }
+}
\ No newline at end of file
diff --git a/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs b/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs
deleted file mode 100644
index feda5e9..0000000
--- a/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs
+++ /dev/null
@@ -1,4 +0,0 @@
-//
-using System;
-using System.Reflection;
-[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")]
diff --git a/obj/Debug/net9.0/RelayCore.AssemblyInfo.cs b/obj/Debug/net9.0/RelayCore.AssemblyInfo.cs
deleted file mode 100644
index 8e7d44b..0000000
--- a/obj/Debug/net9.0/RelayCore.AssemblyInfo.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// This code was generated by a tool.
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-//------------------------------------------------------------------------------
-
-using System;
-using System.Reflection;
-
-[assembly: System.Reflection.AssemblyCompanyAttribute("RelayCore")]
-[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
-[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
-[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+7682ce0429634f5b008d85c59acf4ed3838121ef")]
-[assembly: System.Reflection.AssemblyProductAttribute("RelayCore")]
-[assembly: System.Reflection.AssemblyTitleAttribute("RelayCore")]
-[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
-
-// Generated by the MSBuild WriteCodeFragment class.
-
diff --git a/obj/Debug/net9.0/RelayCore.AssemblyInfoInputs.cache b/obj/Debug/net9.0/RelayCore.AssemblyInfoInputs.cache
deleted file mode 100644
index 56d3ba3..0000000
--- a/obj/Debug/net9.0/RelayCore.AssemblyInfoInputs.cache
+++ /dev/null
@@ -1 +0,0 @@
-86555fdeb5734425e2303585c6b325bb51b77f8679eb62d09e5e490545061734
diff --git a/obj/Debug/net9.0/RelayCore.GeneratedMSBuildEditorConfig.editorconfig b/obj/Debug/net9.0/RelayCore.GeneratedMSBuildEditorConfig.editorconfig
deleted file mode 100644
index da7f5a5..0000000
--- a/obj/Debug/net9.0/RelayCore.GeneratedMSBuildEditorConfig.editorconfig
+++ /dev/null
@@ -1,15 +0,0 @@
-is_global = true
-build_property.TargetFramework = net9.0
-build_property.TargetPlatformMinVersion =
-build_property.UsingMicrosoftNETSdkWeb =
-build_property.ProjectTypeGuids =
-build_property.InvariantGlobalization =
-build_property.PlatformNeutralAssembly =
-build_property.EnforceExtendedAnalyzerRules =
-build_property._SupportedPlatformList = Linux,macOS,Windows
-build_property.RootNamespace = RelayCore
-build_property.ProjectDir = D:\DDI\Relay\RelayChat\RelayCore\
-build_property.EnableComHosting =
-build_property.EnableGeneratedComInterfaceComImportInterop =
-build_property.EffectiveAnalysisLevelStyle = 9.0
-build_property.EnableCodeStyleSeverity =
diff --git a/obj/Debug/net9.0/RelayCore.GlobalUsings.g.cs b/obj/Debug/net9.0/RelayCore.GlobalUsings.g.cs
deleted file mode 100644
index 8578f3d..0000000
--- a/obj/Debug/net9.0/RelayCore.GlobalUsings.g.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-//
-global using global::System;
-global using global::System.Collections.Generic;
-global using global::System.IO;
-global using global::System.Linq;
-global using global::System.Net.Http;
-global using global::System.Threading;
-global using global::System.Threading.Tasks;
diff --git a/obj/Debug/net9.0/RelayCore.assets.cache b/obj/Debug/net9.0/RelayCore.assets.cache
deleted file mode 100644
index 8889c27..0000000
Binary files a/obj/Debug/net9.0/RelayCore.assets.cache and /dev/null differ
diff --git a/obj/RelayCore.csproj.nuget.dgspec.json b/obj/RelayCore.csproj.nuget.dgspec.json
deleted file mode 100644
index 4555919..0000000
--- a/obj/RelayCore.csproj.nuget.dgspec.json
+++ /dev/null
@@ -1,84 +0,0 @@
-{
- "format": 1,
- "restore": {
- "D:\\DDI\\Relay\\RelayChat\\RelayCore\\RelayCore.csproj": {}
- },
- "projects": {
- "D:\\DDI\\Relay\\RelayChat\\RelayCore\\RelayCore.csproj": {
- "version": "1.0.0",
- "restore": {
- "projectUniqueName": "D:\\DDI\\Relay\\RelayChat\\RelayCore\\RelayCore.csproj",
- "projectName": "RelayCore",
- "projectPath": "D:\\DDI\\Relay\\RelayChat\\RelayCore\\RelayCore.csproj",
- "packagesPath": "C:\\Users\\Core\\.nuget\\packages\\",
- "outputPath": "D:\\DDI\\Relay\\RelayChat\\RelayCore\\obj\\",
- "projectStyle": "PackageReference",
- "fallbackFolders": [
- "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
- ],
- "configFilePaths": [
- "C:\\Users\\Core\\AppData\\Roaming\\NuGet\\NuGet.Config",
- "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
- "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
- ],
- "originalTargetFrameworks": [
- "net9.0"
- ],
- "sources": {
- "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
- "C:\\Program Files\\dotnet\\library-packs": {},
- "https://api.nuget.org/v3/index.json": {}
- },
- "frameworks": {
- "net9.0": {
- "targetAlias": "net9.0",
- "projectReferences": {}
- }
- },
- "warningProperties": {
- "warnAsError": [
- "NU1605"
- ]
- },
- "restoreAuditProperties": {
- "enableAudit": "true",
- "auditLevel": "low",
- "auditMode": "direct"
- },
- "SdkAnalysisLevel": "9.0.300"
- },
- "frameworks": {
- "net9.0": {
- "targetAlias": "net9.0",
- "dependencies": {
- "Konscious.Security.Cryptography.Argon2": {
- "target": "Package",
- "version": "[1.3.1, )"
- },
- "SurrealDb.Net": {
- "target": "Package",
- "version": "[0.9.0, )"
- }
- },
- "imports": [
- "net461",
- "net462",
- "net47",
- "net471",
- "net472",
- "net48",
- "net481"
- ],
- "assetTargetFallback": true,
- "warn": true,
- "frameworkReferences": {
- "Microsoft.NETCore.App": {
- "privateAssets": "all"
- }
- },
- "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.305/PortableRuntimeIdentifierGraph.json"
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/obj/RelayCore.csproj.nuget.g.props b/obj/RelayCore.csproj.nuget.g.props
deleted file mode 100644
index 65e84c4..0000000
--- a/obj/RelayCore.csproj.nuget.g.props
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
- True
- NuGet
- $(MSBuildThisFileDirectory)project.assets.json
- $(UserProfile)\.nuget\packages\
- C:\Users\Core\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages
- PackageReference
- 6.14.0
-
-
-
-
-
-
\ No newline at end of file
diff --git a/obj/RelayCore.csproj.nuget.g.targets b/obj/RelayCore.csproj.nuget.g.targets
deleted file mode 100644
index 90e8d8a..0000000
--- a/obj/RelayCore.csproj.nuget.g.targets
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/obj/project.assets.json b/obj/project.assets.json
deleted file mode 100644
index 4837f80..0000000
--- a/obj/project.assets.json
+++ /dev/null
@@ -1,1426 +0,0 @@
-{
- "version": 3,
- "targets": {
- "net9.0": {
- "ConcurrentHashSet/1.3.0": {
- "type": "package",
- "compile": {
- "lib/netstandard2.0/ConcurrentCollections.dll": {
- "related": ".xml"
- }
- },
- "runtime": {
- "lib/netstandard2.0/ConcurrentCollections.dll": {
- "related": ".xml"
- }
- }
- },
- "Dahomey.Cbor/1.24.3": {
- "type": "package",
- "dependencies": {
- "System.IO.Pipelines": "7.0.0"
- },
- "compile": {
- "lib/net8.0/Dahomey.Cbor.dll": {}
- },
- "runtime": {
- "lib/net8.0/Dahomey.Cbor.dll": {}
- }
- },
- "Konscious.Security.Cryptography.Argon2/1.3.1": {
- "type": "package",
- "dependencies": {
- "Konscious.Security.Cryptography.Blake2": "1.1.1",
- "System.Memory": "4.5.4"
- },
- "compile": {
- "lib/net8.0/Konscious.Security.Cryptography.Argon2.dll": {
- "related": ".xml"
- }
- },
- "runtime": {
- "lib/net8.0/Konscious.Security.Cryptography.Argon2.dll": {
- "related": ".xml"
- }
- }
- },
- "Konscious.Security.Cryptography.Blake2/1.1.1": {
- "type": "package",
- "compile": {
- "lib/net8.0/Konscious.Security.Cryptography.Blake2.dll": {
- "related": ".xml"
- }
- },
- "runtime": {
- "lib/net8.0/Konscious.Security.Cryptography.Blake2.dll": {
- "related": ".xml"
- }
- }
- },
- "Microsoft.Bcl.AsyncInterfaces/6.0.0": {
- "type": "package",
- "compile": {
- "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": {
- "related": ".xml"
- }
- },
- "runtime": {
- "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": {
- "related": ".xml"
- }
- }
- },
- "Microsoft.Extensions.Configuration/9.0.4": {
- "type": "package",
- "dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
- "Microsoft.Extensions.Primitives": "9.0.4"
- },
- "compile": {
- "lib/net9.0/Microsoft.Extensions.Configuration.dll": {
- "related": ".xml"
- }
- },
- "runtime": {
- "lib/net9.0/Microsoft.Extensions.Configuration.dll": {
- "related": ".xml"
- }
- },
- "build": {
- "buildTransitive/net8.0/_._": {}
- }
- },
- "Microsoft.Extensions.Configuration.Abstractions/9.0.4": {
- "type": "package",
- "dependencies": {
- "Microsoft.Extensions.Primitives": "9.0.4"
- },
- "compile": {
- "lib/net9.0/Microsoft.Extensions.Configuration.Abstractions.dll": {
- "related": ".xml"
- }
- },
- "runtime": {
- "lib/net9.0/Microsoft.Extensions.Configuration.Abstractions.dll": {
- "related": ".xml"
- }
- },
- "build": {
- "buildTransitive/net8.0/_._": {}
- }
- },
- "Microsoft.Extensions.Configuration.Binder/9.0.4": {
- "type": "package",
- "dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.4"
- },
- "compile": {
- "lib/net9.0/Microsoft.Extensions.Configuration.Binder.dll": {
- "related": ".xml"
- }
- },
- "runtime": {
- "lib/net9.0/Microsoft.Extensions.Configuration.Binder.dll": {
- "related": ".xml"
- }
- },
- "build": {
- "buildTransitive/netstandard2.0/Microsoft.Extensions.Configuration.Binder.targets": {}
- }
- },
- "Microsoft.Extensions.DependencyInjection/9.0.4": {
- "type": "package",
- "dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4"
- },
- "compile": {
- "lib/net9.0/Microsoft.Extensions.DependencyInjection.dll": {
- "related": ".xml"
- }
- },
- "runtime": {
- "lib/net9.0/Microsoft.Extensions.DependencyInjection.dll": {
- "related": ".xml"
- }
- },
- "build": {
- "buildTransitive/net8.0/_._": {}
- }
- },
- "Microsoft.Extensions.DependencyInjection.Abstractions/9.0.4": {
- "type": "package",
- "compile": {
- "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
- "related": ".xml"
- }
- },
- "runtime": {
- "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
- "related": ".xml"
- }
- },
- "build": {
- "buildTransitive/net8.0/_._": {}
- }
- },
- "Microsoft.Extensions.Diagnostics/9.0.4": {
- "type": "package",
- "dependencies": {
- "Microsoft.Extensions.Configuration": "9.0.4",
- "Microsoft.Extensions.Diagnostics.Abstractions": "9.0.4",
- "Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.4"
- },
- "compile": {
- "lib/net9.0/Microsoft.Extensions.Diagnostics.dll": {
- "related": ".xml"
- }
- },
- "runtime": {
- "lib/net9.0/Microsoft.Extensions.Diagnostics.dll": {
- "related": ".xml"
- }
- },
- "build": {
- "buildTransitive/net8.0/_._": {}
- }
- },
- "Microsoft.Extensions.Diagnostics.Abstractions/9.0.4": {
- "type": "package",
- "dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
- "Microsoft.Extensions.Options": "9.0.4"
- },
- "compile": {
- "lib/net9.0/Microsoft.Extensions.Diagnostics.Abstractions.dll": {
- "related": ".xml"
- }
- },
- "runtime": {
- "lib/net9.0/Microsoft.Extensions.Diagnostics.Abstractions.dll": {
- "related": ".xml"
- }
- },
- "build": {
- "buildTransitive/net8.0/_._": {}
- }
- },
- "Microsoft.Extensions.Http/9.0.4": {
- "type": "package",
- "dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
- "Microsoft.Extensions.Diagnostics": "9.0.4",
- "Microsoft.Extensions.Logging": "9.0.4",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.4",
- "Microsoft.Extensions.Options": "9.0.4"
- },
- "compile": {
- "lib/net9.0/Microsoft.Extensions.Http.dll": {
- "related": ".xml"
- }
- },
- "runtime": {
- "lib/net9.0/Microsoft.Extensions.Http.dll": {
- "related": ".xml"
- }
- },
- "build": {
- "buildTransitive/net8.0/_._": {}
- }
- },
- "Microsoft.Extensions.Logging/9.0.4": {
- "type": "package",
- "dependencies": {
- "Microsoft.Extensions.DependencyInjection": "9.0.4",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.4",
- "Microsoft.Extensions.Options": "9.0.4"
- },
- "compile": {
- "lib/net9.0/Microsoft.Extensions.Logging.dll": {
- "related": ".xml"
- }
- },
- "runtime": {
- "lib/net9.0/Microsoft.Extensions.Logging.dll": {
- "related": ".xml"
- }
- },
- "build": {
- "buildTransitive/net8.0/_._": {}
- }
- },
- "Microsoft.Extensions.Logging.Abstractions/9.0.4": {
- "type": "package",
- "dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4"
- },
- "compile": {
- "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.dll": {
- "related": ".xml"
- }
- },
- "runtime": {
- "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.dll": {
- "related": ".xml"
- }
- },
- "build": {
- "buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets": {}
- }
- },
- "Microsoft.Extensions.Options/9.0.4": {
- "type": "package",
- "dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
- "Microsoft.Extensions.Primitives": "9.0.4"
- },
- "compile": {
- "lib/net9.0/Microsoft.Extensions.Options.dll": {
- "related": ".xml"
- }
- },
- "runtime": {
- "lib/net9.0/Microsoft.Extensions.Options.dll": {
- "related": ".xml"
- }
- },
- "build": {
- "buildTransitive/net8.0/Microsoft.Extensions.Options.targets": {}
- }
- },
- "Microsoft.Extensions.Options.ConfigurationExtensions/9.0.4": {
- "type": "package",
- "dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
- "Microsoft.Extensions.Configuration.Binder": "9.0.4",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
- "Microsoft.Extensions.Options": "9.0.4",
- "Microsoft.Extensions.Primitives": "9.0.4"
- },
- "compile": {
- "lib/net9.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll": {
- "related": ".xml"
- }
- },
- "runtime": {
- "lib/net9.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll": {
- "related": ".xml"
- }
- },
- "build": {
- "buildTransitive/net8.0/_._": {}
- }
- },
- "Microsoft.Extensions.Primitives/9.0.4": {
- "type": "package",
- "compile": {
- "lib/net9.0/Microsoft.Extensions.Primitives.dll": {
- "related": ".xml"
- }
- },
- "runtime": {
- "lib/net9.0/Microsoft.Extensions.Primitives.dll": {
- "related": ".xml"
- }
- },
- "build": {
- "buildTransitive/net8.0/_._": {}
- }
- },
- "Microsoft.IO.RecyclableMemoryStream/3.0.1": {
- "type": "package",
- "compile": {
- "lib/net6.0/Microsoft.IO.RecyclableMemoryStream.dll": {
- "related": ".xml"
- }
- },
- "runtime": {
- "lib/net6.0/Microsoft.IO.RecyclableMemoryStream.dll": {
- "related": ".xml"
- }
- }
- },
- "Microsoft.Spatial/7.18.0": {
- "type": "package",
- "compile": {
- "lib/netstandard2.0/Microsoft.Spatial.dll": {
- "related": ".xml"
- }
- },
- "runtime": {
- "lib/netstandard2.0/Microsoft.Spatial.dll": {
- "related": ".xml"
- }
- }
- },
- "Semver/3.0.0": {
- "type": "package",
- "dependencies": {
- "Microsoft.Extensions.Primitives": "5.0.1"
- },
- "compile": {
- "lib/net5.0/Semver.dll": {
- "related": ".xml"
- }
- },
- "runtime": {
- "lib/net5.0/Semver.dll": {
- "related": ".xml"
- }
- }
- },
- "SurrealDb.Net/0.9.0": {
- "type": "package",
- "dependencies": {
- "ConcurrentHashSet": "1.3.0",
- "Dahomey.Cbor": "1.24.3",
- "Microsoft.Extensions.Http": "9.0.4",
- "Microsoft.IO.RecyclableMemoryStream": "3.0.1",
- "Microsoft.Spatial": "7.18.0",
- "Semver": "3.0.0",
- "System.Collections.Immutable": "9.0.4",
- "System.Linq.Async": "6.0.1",
- "SystemTextJsonPatch": "4.2.0",
- "Websocket.Client": "5.1.2"
- },
- "compile": {
- "lib/net9.0/SurrealDb.Net.dll": {
- "related": ".xml"
- }
- },
- "runtime": {
- "lib/net9.0/SurrealDb.Net.dll": {
- "related": ".xml"
- }
- }
- },
- "System.Collections.Immutable/9.0.4": {
- "type": "package",
- "compile": {
- "lib/net9.0/System.Collections.Immutable.dll": {
- "related": ".xml"
- }
- },
- "runtime": {
- "lib/net9.0/System.Collections.Immutable.dll": {
- "related": ".xml"
- }
- },
- "build": {
- "buildTransitive/net8.0/_._": {}
- }
- },
- "System.IO.Pipelines/7.0.0": {
- "type": "package",
- "compile": {
- "lib/net7.0/System.IO.Pipelines.dll": {
- "related": ".xml"
- }
- },
- "runtime": {
- "lib/net7.0/System.IO.Pipelines.dll": {
- "related": ".xml"
- }
- },
- "build": {
- "buildTransitive/net6.0/_._": {}
- }
- },
- "System.Linq.Async/6.0.1": {
- "type": "package",
- "dependencies": {
- "Microsoft.Bcl.AsyncInterfaces": "6.0.0"
- },
- "compile": {
- "ref/net6.0/System.Linq.Async.dll": {
- "related": ".xml"
- }
- },
- "runtime": {
- "lib/net6.0/System.Linq.Async.dll": {
- "related": ".xml"
- }
- }
- },
- "System.Memory/4.5.4": {
- "type": "package",
- "compile": {
- "ref/netcoreapp2.1/_._": {}
- },
- "runtime": {
- "lib/netcoreapp2.1/_._": {}
- }
- },
- "System.Reactive/6.0.0": {
- "type": "package",
- "compile": {
- "lib/net6.0/System.Reactive.dll": {
- "related": ".xml"
- }
- },
- "runtime": {
- "lib/net6.0/System.Reactive.dll": {
- "related": ".xml"
- }
- },
- "build": {
- "buildTransitive/net6.0/_._": {}
- }
- },
- "System.Threading.Channels/8.0.0": {
- "type": "package",
- "compile": {
- "lib/net8.0/System.Threading.Channels.dll": {
- "related": ".xml"
- }
- },
- "runtime": {
- "lib/net8.0/System.Threading.Channels.dll": {
- "related": ".xml"
- }
- },
- "build": {
- "buildTransitive/net6.0/_._": {}
- }
- },
- "SystemTextJsonPatch/4.2.0": {
- "type": "package",
- "compile": {
- "lib/net9.0/SystemTextJsonPatch.dll": {
- "related": ".xml"
- }
- },
- "runtime": {
- "lib/net9.0/SystemTextJsonPatch.dll": {
- "related": ".xml"
- }
- }
- },
- "Websocket.Client/5.1.2": {
- "type": "package",
- "dependencies": {
- "Microsoft.Extensions.Logging.Abstractions": "8.0.0",
- "Microsoft.IO.RecyclableMemoryStream": "3.0.0",
- "System.Reactive": "6.0.0",
- "System.Threading.Channels": "8.0.0"
- },
- "compile": {
- "lib/net8.0/Websocket.Client.dll": {
- "related": ".xml"
- }
- },
- "runtime": {
- "lib/net8.0/Websocket.Client.dll": {
- "related": ".xml"
- }
- }
- }
- }
- },
- "libraries": {
- "ConcurrentHashSet/1.3.0": {
- "sha512": "a30gfk4WDn2f7sOisXpko+CrQ7s5nL1ZWk4afnRwwRQHWPRrRSZpzn5Dz2YWpJtS90NJqkytQ/MkzHq4QYTIbg==",
- "type": "package",
- "path": "concurrenthashset/1.3.0",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "concurrenthashset.1.3.0.nupkg.sha512",
- "concurrenthashset.nuspec",
- "lib/net461/ConcurrentCollections.dll",
- "lib/net461/ConcurrentCollections.xml",
- "lib/netstandard1.0/ConcurrentCollections.dll",
- "lib/netstandard1.0/ConcurrentCollections.xml",
- "lib/netstandard2.0/ConcurrentCollections.dll",
- "lib/netstandard2.0/ConcurrentCollections.xml"
- ]
- },
- "Dahomey.Cbor/1.24.3": {
- "sha512": "SIwp1RYjViZZw5ahxA7lYjegqZ6eu/78710MVY5/ukWCZ8WlSjGjpWrE3LOeCUxQnxkeRKy+pZyQUh+K91KBiA==",
- "type": "package",
- "path": "dahomey.cbor/1.24.3",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "dahomey.cbor.1.24.3.nupkg.sha512",
- "dahomey.cbor.nuspec",
- "lib/net6.0/Dahomey.Cbor.dll",
- "lib/net7.0/Dahomey.Cbor.dll",
- "lib/net8.0/Dahomey.Cbor.dll",
- "lib/netstandard2.0/Dahomey.Cbor.dll"
- ]
- },
- "Konscious.Security.Cryptography.Argon2/1.3.1": {
- "sha512": "T+OAGwzYYXftahpOxO7J4xA5K6urxwGnWQf3M+Jpi+76Azv/0T3M5SuN+h7/QvXuiqNw3ZEZ5QqVLI5ygDAylw==",
- "type": "package",
- "path": "konscious.security.cryptography.argon2/1.3.1",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "konscious.security.cryptography.argon2.1.3.1.nupkg.sha512",
- "konscious.security.cryptography.argon2.nuspec",
- "lib/net46/Konscious.Security.Cryptography.Argon2.dll",
- "lib/net46/Konscious.Security.Cryptography.Argon2.xml",
- "lib/net6.0/Konscious.Security.Cryptography.Argon2.dll",
- "lib/net6.0/Konscious.Security.Cryptography.Argon2.xml",
- "lib/net8.0/Konscious.Security.Cryptography.Argon2.dll",
- "lib/net8.0/Konscious.Security.Cryptography.Argon2.xml",
- "lib/netstandard1.3/Konscious.Security.Cryptography.Argon2.dll",
- "lib/netstandard1.3/Konscious.Security.Cryptography.Argon2.xml"
- ]
- },
- "Konscious.Security.Cryptography.Blake2/1.1.1": {
- "sha512": "odwOyzj/J/lHJZNwFWJGU/LRecBShupAJ2S8TQqZfhUe9niHzu/voBYK5wuVKsvSpzbfupKQYZguVyIk1sgOkQ==",
- "type": "package",
- "path": "konscious.security.cryptography.blake2/1.1.1",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "konscious.security.cryptography.blake2.1.1.1.nupkg.sha512",
- "konscious.security.cryptography.blake2.nuspec",
- "lib/net46/Konscious.Security.Cryptography.Blake2.dll",
- "lib/net46/Konscious.Security.Cryptography.Blake2.xml",
- "lib/net6.0/Konscious.Security.Cryptography.Blake2.dll",
- "lib/net6.0/Konscious.Security.Cryptography.Blake2.xml",
- "lib/net8.0/Konscious.Security.Cryptography.Blake2.dll",
- "lib/net8.0/Konscious.Security.Cryptography.Blake2.xml",
- "lib/netstandard1.3/Konscious.Security.Cryptography.Blake2.dll",
- "lib/netstandard1.3/Konscious.Security.Cryptography.Blake2.xml"
- ]
- },
- "Microsoft.Bcl.AsyncInterfaces/6.0.0": {
- "sha512": "UcSjPsst+DfAdJGVDsu346FX0ci0ah+lw3WRtn18NUwEqRt70HaOQ7lI72vy3+1LxtqI3T5GWwV39rQSrCzAeg==",
- "type": "package",
- "path": "microsoft.bcl.asyncinterfaces/6.0.0",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "Icon.png",
- "LICENSE.TXT",
- "THIRD-PARTY-NOTICES.TXT",
- "lib/net461/Microsoft.Bcl.AsyncInterfaces.dll",
- "lib/net461/Microsoft.Bcl.AsyncInterfaces.xml",
- "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll",
- "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.xml",
- "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll",
- "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.xml",
- "microsoft.bcl.asyncinterfaces.6.0.0.nupkg.sha512",
- "microsoft.bcl.asyncinterfaces.nuspec",
- "useSharedDesignerContext.txt"
- ]
- },
- "Microsoft.Extensions.Configuration/9.0.4": {
- "sha512": "KIVBrMbItnCJDd1RF4KEaE8jZwDJcDUJW5zXpbwQ05HNYTK1GveHxHK0B3SjgDJuR48GRACXAO+BLhL8h34S7g==",
- "type": "package",
- "path": "microsoft.extensions.configuration/9.0.4",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "Icon.png",
- "LICENSE.TXT",
- "PACKAGE.md",
- "THIRD-PARTY-NOTICES.TXT",
- "buildTransitive/net461/Microsoft.Extensions.Configuration.targets",
- "buildTransitive/net462/_._",
- "buildTransitive/net8.0/_._",
- "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.targets",
- "lib/net462/Microsoft.Extensions.Configuration.dll",
- "lib/net462/Microsoft.Extensions.Configuration.xml",
- "lib/net8.0/Microsoft.Extensions.Configuration.dll",
- "lib/net8.0/Microsoft.Extensions.Configuration.xml",
- "lib/net9.0/Microsoft.Extensions.Configuration.dll",
- "lib/net9.0/Microsoft.Extensions.Configuration.xml",
- "lib/netstandard2.0/Microsoft.Extensions.Configuration.dll",
- "lib/netstandard2.0/Microsoft.Extensions.Configuration.xml",
- "microsoft.extensions.configuration.9.0.4.nupkg.sha512",
- "microsoft.extensions.configuration.nuspec",
- "useSharedDesignerContext.txt"
- ]
- },
- "Microsoft.Extensions.Configuration.Abstractions/9.0.4": {
- "sha512": "0LN/DiIKvBrkqp7gkF3qhGIeZk6/B63PthAHjQsxymJfIBcz0kbf4/p/t4lMgggVxZ+flRi5xvTwlpPOoZk8fg==",
- "type": "package",
- "path": "microsoft.extensions.configuration.abstractions/9.0.4",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "Icon.png",
- "LICENSE.TXT",
- "PACKAGE.md",
- "THIRD-PARTY-NOTICES.TXT",
- "buildTransitive/net461/Microsoft.Extensions.Configuration.Abstractions.targets",
- "buildTransitive/net462/_._",
- "buildTransitive/net8.0/_._",
- "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.Abstractions.targets",
- "lib/net462/Microsoft.Extensions.Configuration.Abstractions.dll",
- "lib/net462/Microsoft.Extensions.Configuration.Abstractions.xml",
- "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll",
- "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.xml",
- "lib/net9.0/Microsoft.Extensions.Configuration.Abstractions.dll",
- "lib/net9.0/Microsoft.Extensions.Configuration.Abstractions.xml",
- "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll",
- "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.xml",
- "microsoft.extensions.configuration.abstractions.9.0.4.nupkg.sha512",
- "microsoft.extensions.configuration.abstractions.nuspec",
- "useSharedDesignerContext.txt"
- ]
- },
- "Microsoft.Extensions.Configuration.Binder/9.0.4": {
- "sha512": "cdrjcl9RIcwt3ECbnpP0Gt1+pkjdW90mq5yFYy8D9qRj2NqFFcv3yDp141iEamsd9E218sGxK8WHaIOcrqgDJg==",
- "type": "package",
- "path": "microsoft.extensions.configuration.binder/9.0.4",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "Icon.png",
- "LICENSE.TXT",
- "PACKAGE.md",
- "THIRD-PARTY-NOTICES.TXT",
- "analyzers/dotnet/cs/Microsoft.Extensions.Configuration.Binder.SourceGeneration.dll",
- "analyzers/dotnet/cs/cs/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll",
- "analyzers/dotnet/cs/de/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll",
- "analyzers/dotnet/cs/es/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll",
- "analyzers/dotnet/cs/fr/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll",
- "analyzers/dotnet/cs/it/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll",
- "analyzers/dotnet/cs/ja/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll",
- "analyzers/dotnet/cs/ko/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll",
- "analyzers/dotnet/cs/pl/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll",
- "analyzers/dotnet/cs/pt-BR/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll",
- "analyzers/dotnet/cs/ru/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll",
- "analyzers/dotnet/cs/tr/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll",
- "analyzers/dotnet/cs/zh-Hans/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll",
- "analyzers/dotnet/cs/zh-Hant/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll",
- "buildTransitive/netstandard2.0/Microsoft.Extensions.Configuration.Binder.targets",
- "lib/net462/Microsoft.Extensions.Configuration.Binder.dll",
- "lib/net462/Microsoft.Extensions.Configuration.Binder.xml",
- "lib/net8.0/Microsoft.Extensions.Configuration.Binder.dll",
- "lib/net8.0/Microsoft.Extensions.Configuration.Binder.xml",
- "lib/net9.0/Microsoft.Extensions.Configuration.Binder.dll",
- "lib/net9.0/Microsoft.Extensions.Configuration.Binder.xml",
- "lib/netstandard2.0/Microsoft.Extensions.Configuration.Binder.dll",
- "lib/netstandard2.0/Microsoft.Extensions.Configuration.Binder.xml",
- "microsoft.extensions.configuration.binder.9.0.4.nupkg.sha512",
- "microsoft.extensions.configuration.binder.nuspec",
- "useSharedDesignerContext.txt"
- ]
- },
- "Microsoft.Extensions.DependencyInjection/9.0.4": {
- "sha512": "f2MTUaS2EQ3lX4325ytPAISZqgBfXmY0WvgD80ji6Z20AoDNiCESxsqo6mFRwHJD/jfVKRw9FsW6+86gNre3ug==",
- "type": "package",
- "path": "microsoft.extensions.dependencyinjection/9.0.4",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "Icon.png",
- "LICENSE.TXT",
- "PACKAGE.md",
- "THIRD-PARTY-NOTICES.TXT",
- "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.targets",
- "buildTransitive/net462/_._",
- "buildTransitive/net8.0/_._",
- "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.targets",
- "lib/net462/Microsoft.Extensions.DependencyInjection.dll",
- "lib/net462/Microsoft.Extensions.DependencyInjection.xml",
- "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll",
- "lib/net8.0/Microsoft.Extensions.DependencyInjection.xml",
- "lib/net9.0/Microsoft.Extensions.DependencyInjection.dll",
- "lib/net9.0/Microsoft.Extensions.DependencyInjection.xml",
- "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.dll",
- "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.xml",
- "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.dll",
- "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.xml",
- "microsoft.extensions.dependencyinjection.9.0.4.nupkg.sha512",
- "microsoft.extensions.dependencyinjection.nuspec",
- "useSharedDesignerContext.txt"
- ]
- },
- "Microsoft.Extensions.DependencyInjection.Abstractions/9.0.4": {
- "sha512": "UI0TQPVkS78bFdjkTodmkH0Fe8lXv9LnhGFKgKrsgUJ5a5FVdFRcgjIkBVLbGgdRhxWirxH/8IXUtEyYJx6GQg==",
- "type": "package",
- "path": "microsoft.extensions.dependencyinjection.abstractions/9.0.4",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "Icon.png",
- "LICENSE.TXT",
- "PACKAGE.md",
- "THIRD-PARTY-NOTICES.TXT",
- "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.Abstractions.targets",
- "buildTransitive/net462/_._",
- "buildTransitive/net8.0/_._",
- "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.Abstractions.targets",
- "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
- "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
- "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
- "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
- "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
- "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
- "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
- "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
- "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
- "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
- "microsoft.extensions.dependencyinjection.abstractions.9.0.4.nupkg.sha512",
- "microsoft.extensions.dependencyinjection.abstractions.nuspec",
- "useSharedDesignerContext.txt"
- ]
- },
- "Microsoft.Extensions.Diagnostics/9.0.4": {
- "sha512": "1bCSQrGv9+bpF5MGKF6THbnRFUZqQDrWPA39NDeVW9djeHBmow8kX4SX6/8KkeKI8gmUDG7jsG/bVuNAcY/ATQ==",
- "type": "package",
- "path": "microsoft.extensions.diagnostics/9.0.4",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "Icon.png",
- "LICENSE.TXT",
- "THIRD-PARTY-NOTICES.TXT",
- "buildTransitive/net461/Microsoft.Extensions.Diagnostics.targets",
- "buildTransitive/net462/_._",
- "buildTransitive/net8.0/_._",
- "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Diagnostics.targets",
- "lib/net462/Microsoft.Extensions.Diagnostics.dll",
- "lib/net462/Microsoft.Extensions.Diagnostics.xml",
- "lib/net8.0/Microsoft.Extensions.Diagnostics.dll",
- "lib/net8.0/Microsoft.Extensions.Diagnostics.xml",
- "lib/net9.0/Microsoft.Extensions.Diagnostics.dll",
- "lib/net9.0/Microsoft.Extensions.Diagnostics.xml",
- "lib/netstandard2.0/Microsoft.Extensions.Diagnostics.dll",
- "lib/netstandard2.0/Microsoft.Extensions.Diagnostics.xml",
- "microsoft.extensions.diagnostics.9.0.4.nupkg.sha512",
- "microsoft.extensions.diagnostics.nuspec",
- "useSharedDesignerContext.txt"
- ]
- },
- "Microsoft.Extensions.Diagnostics.Abstractions/9.0.4": {
- "sha512": "IAucBcHYtiCmMyFag+Vrp5m+cjGRlDttJk9Vx7Dqpq+Ama4BzVUOk0JARQakgFFr7ZTBSgLKlHmtY5MiItB7Cg==",
- "type": "package",
- "path": "microsoft.extensions.diagnostics.abstractions/9.0.4",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "Icon.png",
- "LICENSE.TXT",
- "THIRD-PARTY-NOTICES.TXT",
- "buildTransitive/net461/Microsoft.Extensions.Diagnostics.Abstractions.targets",
- "buildTransitive/net462/_._",
- "buildTransitive/net8.0/_._",
- "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Diagnostics.Abstractions.targets",
- "lib/net462/Microsoft.Extensions.Diagnostics.Abstractions.dll",
- "lib/net462/Microsoft.Extensions.Diagnostics.Abstractions.xml",
- "lib/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.dll",
- "lib/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.xml",
- "lib/net9.0/Microsoft.Extensions.Diagnostics.Abstractions.dll",
- "lib/net9.0/Microsoft.Extensions.Diagnostics.Abstractions.xml",
- "lib/netstandard2.0/Microsoft.Extensions.Diagnostics.Abstractions.dll",
- "lib/netstandard2.0/Microsoft.Extensions.Diagnostics.Abstractions.xml",
- "microsoft.extensions.diagnostics.abstractions.9.0.4.nupkg.sha512",
- "microsoft.extensions.diagnostics.abstractions.nuspec",
- "useSharedDesignerContext.txt"
- ]
- },
- "Microsoft.Extensions.Http/9.0.4": {
- "sha512": "ezelU6HJgmq4862YoWuEbHGSV+JnfnonTSbNSJVh6n6wDehyiJn4hBtcK7rGbf2KO3QeSvK5y8E7uzn1oaRH5w==",
- "type": "package",
- "path": "microsoft.extensions.http/9.0.4",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "Icon.png",
- "LICENSE.TXT",
- "PACKAGE.md",
- "THIRD-PARTY-NOTICES.TXT",
- "buildTransitive/net461/Microsoft.Extensions.Http.targets",
- "buildTransitive/net462/_._",
- "buildTransitive/net8.0/_._",
- "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Http.targets",
- "lib/net462/Microsoft.Extensions.Http.dll",
- "lib/net462/Microsoft.Extensions.Http.xml",
- "lib/net8.0/Microsoft.Extensions.Http.dll",
- "lib/net8.0/Microsoft.Extensions.Http.xml",
- "lib/net9.0/Microsoft.Extensions.Http.dll",
- "lib/net9.0/Microsoft.Extensions.Http.xml",
- "lib/netstandard2.0/Microsoft.Extensions.Http.dll",
- "lib/netstandard2.0/Microsoft.Extensions.Http.xml",
- "microsoft.extensions.http.9.0.4.nupkg.sha512",
- "microsoft.extensions.http.nuspec",
- "useSharedDesignerContext.txt"
- ]
- },
- "Microsoft.Extensions.Logging/9.0.4": {
- "sha512": "xW6QPYsqhbuWBO9/1oA43g/XPKbohJx+7G8FLQgQXIriYvY7s+gxr2wjQJfRoPO900dvvv2vVH7wZovG+M1m6w==",
- "type": "package",
- "path": "microsoft.extensions.logging/9.0.4",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "Icon.png",
- "LICENSE.TXT",
- "PACKAGE.md",
- "THIRD-PARTY-NOTICES.TXT",
- "buildTransitive/net461/Microsoft.Extensions.Logging.targets",
- "buildTransitive/net462/_._",
- "buildTransitive/net8.0/_._",
- "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.targets",
- "lib/net462/Microsoft.Extensions.Logging.dll",
- "lib/net462/Microsoft.Extensions.Logging.xml",
- "lib/net8.0/Microsoft.Extensions.Logging.dll",
- "lib/net8.0/Microsoft.Extensions.Logging.xml",
- "lib/net9.0/Microsoft.Extensions.Logging.dll",
- "lib/net9.0/Microsoft.Extensions.Logging.xml",
- "lib/netstandard2.0/Microsoft.Extensions.Logging.dll",
- "lib/netstandard2.0/Microsoft.Extensions.Logging.xml",
- "lib/netstandard2.1/Microsoft.Extensions.Logging.dll",
- "lib/netstandard2.1/Microsoft.Extensions.Logging.xml",
- "microsoft.extensions.logging.9.0.4.nupkg.sha512",
- "microsoft.extensions.logging.nuspec",
- "useSharedDesignerContext.txt"
- ]
- },
- "Microsoft.Extensions.Logging.Abstractions/9.0.4": {
- "sha512": "0MXlimU4Dud6t+iNi5NEz3dO2w1HXdhoOLaYFuLPCjAsvlPQGwOT6V2KZRMLEhCAm/stSZt1AUv0XmDdkjvtbw==",
- "type": "package",
- "path": "microsoft.extensions.logging.abstractions/9.0.4",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "Icon.png",
- "LICENSE.TXT",
- "PACKAGE.md",
- "THIRD-PARTY-NOTICES.TXT",
- "analyzers/dotnet/roslyn3.11/cs/Microsoft.Extensions.Logging.Generators.dll",
- "analyzers/dotnet/roslyn3.11/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn3.11/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn3.11/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn3.11/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn3.11/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn3.11/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn3.11/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn3.11/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn3.11/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn3.11/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn3.11/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn3.11/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn3.11/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn4.0/cs/Microsoft.Extensions.Logging.Generators.dll",
- "analyzers/dotnet/roslyn4.0/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn4.0/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn4.0/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn4.0/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn4.0/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn4.0/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn4.0/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn4.0/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn4.0/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn4.0/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn4.0/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn4.0/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn4.0/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Logging.Generators.dll",
- "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll",
- "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll",
- "buildTransitive/net461/Microsoft.Extensions.Logging.Abstractions.targets",
- "buildTransitive/net462/Microsoft.Extensions.Logging.Abstractions.targets",
- "buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets",
- "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Abstractions.targets",
- "buildTransitive/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.targets",
- "lib/net462/Microsoft.Extensions.Logging.Abstractions.dll",
- "lib/net462/Microsoft.Extensions.Logging.Abstractions.xml",
- "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll",
- "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.xml",
- "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.dll",
- "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.xml",
- "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll",
- "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.xml",
- "microsoft.extensions.logging.abstractions.9.0.4.nupkg.sha512",
- "microsoft.extensions.logging.abstractions.nuspec",
- "useSharedDesignerContext.txt"
- ]
- },
- "Microsoft.Extensions.Options/9.0.4": {
- "sha512": "fiFI2+58kicqVZyt/6obqoFwHiab7LC4FkQ3mmiBJ28Yy4fAvy2+v9MRnSvvlOO8chTOjKsdafFl/K9veCPo5g==",
- "type": "package",
- "path": "microsoft.extensions.options/9.0.4",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "Icon.png",
- "LICENSE.TXT",
- "PACKAGE.md",
- "THIRD-PARTY-NOTICES.TXT",
- "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Options.SourceGeneration.dll",
- "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Options.SourceGeneration.resources.dll",
- "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Options.SourceGeneration.resources.dll",
- "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Options.SourceGeneration.resources.dll",
- "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Options.SourceGeneration.resources.dll",
- "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Options.SourceGeneration.resources.dll",
- "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Options.SourceGeneration.resources.dll",
- "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Options.SourceGeneration.resources.dll",
- "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Options.SourceGeneration.resources.dll",
- "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Options.SourceGeneration.resources.dll",
- "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Options.SourceGeneration.resources.dll",
- "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Options.SourceGeneration.resources.dll",
- "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Options.SourceGeneration.resources.dll",
- "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Options.SourceGeneration.resources.dll",
- "buildTransitive/net461/Microsoft.Extensions.Options.targets",
- "buildTransitive/net462/Microsoft.Extensions.Options.targets",
- "buildTransitive/net8.0/Microsoft.Extensions.Options.targets",
- "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Options.targets",
- "buildTransitive/netstandard2.0/Microsoft.Extensions.Options.targets",
- "lib/net462/Microsoft.Extensions.Options.dll",
- "lib/net462/Microsoft.Extensions.Options.xml",
- "lib/net8.0/Microsoft.Extensions.Options.dll",
- "lib/net8.0/Microsoft.Extensions.Options.xml",
- "lib/net9.0/Microsoft.Extensions.Options.dll",
- "lib/net9.0/Microsoft.Extensions.Options.xml",
- "lib/netstandard2.0/Microsoft.Extensions.Options.dll",
- "lib/netstandard2.0/Microsoft.Extensions.Options.xml",
- "lib/netstandard2.1/Microsoft.Extensions.Options.dll",
- "lib/netstandard2.1/Microsoft.Extensions.Options.xml",
- "microsoft.extensions.options.9.0.4.nupkg.sha512",
- "microsoft.extensions.options.nuspec",
- "useSharedDesignerContext.txt"
- ]
- },
- "Microsoft.Extensions.Options.ConfigurationExtensions/9.0.4": {
- "sha512": "aridVhAT3Ep+vsirR1pzjaOw0Jwiob6dc73VFQn2XmDfBA2X98M8YKO1GarvsXRX7gX1Aj+hj2ijMzrMHDOm0A==",
- "type": "package",
- "path": "microsoft.extensions.options.configurationextensions/9.0.4",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "Icon.png",
- "LICENSE.TXT",
- "PACKAGE.md",
- "THIRD-PARTY-NOTICES.TXT",
- "buildTransitive/net461/Microsoft.Extensions.Options.ConfigurationExtensions.targets",
- "buildTransitive/net462/_._",
- "buildTransitive/net8.0/_._",
- "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Options.ConfigurationExtensions.targets",
- "lib/net462/Microsoft.Extensions.Options.ConfigurationExtensions.dll",
- "lib/net462/Microsoft.Extensions.Options.ConfigurationExtensions.xml",
- "lib/net8.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll",
- "lib/net8.0/Microsoft.Extensions.Options.ConfigurationExtensions.xml",
- "lib/net9.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll",
- "lib/net9.0/Microsoft.Extensions.Options.ConfigurationExtensions.xml",
- "lib/netstandard2.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll",
- "lib/netstandard2.0/Microsoft.Extensions.Options.ConfigurationExtensions.xml",
- "microsoft.extensions.options.configurationextensions.9.0.4.nupkg.sha512",
- "microsoft.extensions.options.configurationextensions.nuspec",
- "useSharedDesignerContext.txt"
- ]
- },
- "Microsoft.Extensions.Primitives/9.0.4": {
- "sha512": "SPFyMjyku1nqTFFJ928JAMd0QnRe4xjE7KeKnZMWXf3xk+6e0WiOZAluYtLdbJUXtsl2cCRSi8cBquJ408k8RA==",
- "type": "package",
- "path": "microsoft.extensions.primitives/9.0.4",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "Icon.png",
- "LICENSE.TXT",
- "PACKAGE.md",
- "THIRD-PARTY-NOTICES.TXT",
- "buildTransitive/net461/Microsoft.Extensions.Primitives.targets",
- "buildTransitive/net462/_._",
- "buildTransitive/net8.0/_._",
- "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Primitives.targets",
- "lib/net462/Microsoft.Extensions.Primitives.dll",
- "lib/net462/Microsoft.Extensions.Primitives.xml",
- "lib/net8.0/Microsoft.Extensions.Primitives.dll",
- "lib/net8.0/Microsoft.Extensions.Primitives.xml",
- "lib/net9.0/Microsoft.Extensions.Primitives.dll",
- "lib/net9.0/Microsoft.Extensions.Primitives.xml",
- "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll",
- "lib/netstandard2.0/Microsoft.Extensions.Primitives.xml",
- "microsoft.extensions.primitives.9.0.4.nupkg.sha512",
- "microsoft.extensions.primitives.nuspec",
- "useSharedDesignerContext.txt"
- ]
- },
- "Microsoft.IO.RecyclableMemoryStream/3.0.1": {
- "sha512": "s/s20YTVY9r9TPfTrN5g8zPF1YhwxyqO6PxUkrYTGI2B+OGPe9AdajWZrLhFqXIvqIW23fnUE4+ztrUWNU1+9g==",
- "type": "package",
- "path": "microsoft.io.recyclablememorystream/3.0.1",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "README.md",
- "lib/net6.0/Microsoft.IO.RecyclableMemoryStream.dll",
- "lib/net6.0/Microsoft.IO.RecyclableMemoryStream.xml",
- "lib/netstandard2.0/Microsoft.IO.RecyclableMemoryStream.dll",
- "lib/netstandard2.0/Microsoft.IO.RecyclableMemoryStream.xml",
- "lib/netstandard2.1/Microsoft.IO.RecyclableMemoryStream.dll",
- "lib/netstandard2.1/Microsoft.IO.RecyclableMemoryStream.xml",
- "microsoft.io.recyclablememorystream.3.0.1.nupkg.sha512",
- "microsoft.io.recyclablememorystream.nuspec"
- ]
- },
- "Microsoft.Spatial/7.18.0": {
- "sha512": "zisZHpaCqYl4Cy3dEDQ7/lIm7w/wEXyr9smHN5N3hxQmlO669tKnVjKK+cpS/vwRnQkAAZfipIhPVKyPXb0nEA==",
- "type": "package",
- "path": "microsoft.spatial/7.18.0",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "lib/net45/Microsoft.Spatial.dll",
- "lib/net45/Microsoft.Spatial.xml",
- "lib/netstandard1.1/Microsoft.Spatial.dll",
- "lib/netstandard1.1/Microsoft.Spatial.xml",
- "lib/netstandard2.0/Microsoft.Spatial.dll",
- "lib/netstandard2.0/Microsoft.Spatial.xml",
- "microsoft.spatial.7.18.0.nupkg.sha512",
- "microsoft.spatial.nuspec"
- ]
- },
- "Semver/3.0.0": {
- "sha512": "9jZCicsVgTebqkAujRWtC9J1A5EQVlu0TVKHcgoCuv345ve5DYf4D1MjhKEnQjdRZo6x/vdv6QQrYFs7ilGzLA==",
- "type": "package",
- "path": "semver/3.0.0",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "README.md",
- "lib/net5.0/Semver.dll",
- "lib/net5.0/Semver.xml",
- "lib/netstandard2.0/Semver.dll",
- "lib/netstandard2.0/Semver.xml",
- "lib/netstandard2.1/Semver.dll",
- "lib/netstandard2.1/Semver.xml",
- "semver.3.0.0.nupkg.sha512",
- "semver.nuspec"
- ]
- },
- "SurrealDb.Net/0.9.0": {
- "sha512": "SCGNxiVRnt+V7G1nSNb9qLwmwOWljG32z6kWOIh4tIVG4jTezexaNenZVXrzemnlo93oe1c3ZvcBjp0R9x1gwQ==",
- "type": "package",
- "path": "surrealdb.net/0.9.0",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "LICENSE",
- "README.md",
- "icon.png",
- "lib/net6.0/SurrealDb.Net.dll",
- "lib/net6.0/SurrealDb.Net.xml",
- "lib/net7.0/SurrealDb.Net.dll",
- "lib/net7.0/SurrealDb.Net.xml",
- "lib/net8.0/SurrealDb.Net.dll",
- "lib/net8.0/SurrealDb.Net.xml",
- "lib/net9.0/SurrealDb.Net.dll",
- "lib/net9.0/SurrealDb.Net.xml",
- "lib/netstandard2.1/SurrealDb.Net.dll",
- "lib/netstandard2.1/SurrealDb.Net.xml",
- "surrealdb.net.0.9.0.nupkg.sha512",
- "surrealdb.net.nuspec"
- ]
- },
- "System.Collections.Immutable/9.0.4": {
- "sha512": "wfm2NgK22MmBe5qJjp52qzpkeDZKb4l9LbdubhZSehY1z4LS+lld6R+B+UQNb2AZRHu/QJlHxEUcRst5hIEejg==",
- "type": "package",
- "path": "system.collections.immutable/9.0.4",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "Icon.png",
- "LICENSE.TXT",
- "PACKAGE.md",
- "THIRD-PARTY-NOTICES.TXT",
- "buildTransitive/net461/System.Collections.Immutable.targets",
- "buildTransitive/net462/_._",
- "buildTransitive/net8.0/_._",
- "buildTransitive/netcoreapp2.0/System.Collections.Immutable.targets",
- "lib/net462/System.Collections.Immutable.dll",
- "lib/net462/System.Collections.Immutable.xml",
- "lib/net8.0/System.Collections.Immutable.dll",
- "lib/net8.0/System.Collections.Immutable.xml",
- "lib/net9.0/System.Collections.Immutable.dll",
- "lib/net9.0/System.Collections.Immutable.xml",
- "lib/netstandard2.0/System.Collections.Immutable.dll",
- "lib/netstandard2.0/System.Collections.Immutable.xml",
- "system.collections.immutable.9.0.4.nupkg.sha512",
- "system.collections.immutable.nuspec",
- "useSharedDesignerContext.txt"
- ]
- },
- "System.IO.Pipelines/7.0.0": {
- "sha512": "jRn6JYnNPW6xgQazROBLSfpdoczRw694vO5kKvMcNnpXuolEixUyw6IBuBs2Y2mlSX/LdLvyyWmfXhaI3ND1Yg==",
- "type": "package",
- "path": "system.io.pipelines/7.0.0",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "Icon.png",
- "LICENSE.TXT",
- "THIRD-PARTY-NOTICES.TXT",
- "buildTransitive/net461/System.IO.Pipelines.targets",
- "buildTransitive/net462/_._",
- "buildTransitive/net6.0/_._",
- "buildTransitive/netcoreapp2.0/System.IO.Pipelines.targets",
- "lib/net462/System.IO.Pipelines.dll",
- "lib/net462/System.IO.Pipelines.xml",
- "lib/net6.0/System.IO.Pipelines.dll",
- "lib/net6.0/System.IO.Pipelines.xml",
- "lib/net7.0/System.IO.Pipelines.dll",
- "lib/net7.0/System.IO.Pipelines.xml",
- "lib/netstandard2.0/System.IO.Pipelines.dll",
- "lib/netstandard2.0/System.IO.Pipelines.xml",
- "system.io.pipelines.7.0.0.nupkg.sha512",
- "system.io.pipelines.nuspec",
- "useSharedDesignerContext.txt"
- ]
- },
- "System.Linq.Async/6.0.1": {
- "sha512": "0YhHcaroWpQ9UCot3Pizah7ryAzQhNvobLMSxeDIGmnXfkQn8u5owvpOH0K6EVB+z9L7u6Cc4W17Br/+jyttEQ==",
- "type": "package",
- "path": "system.linq.async/6.0.1",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "Logo.png",
- "lib/net48/System.Linq.Async.dll",
- "lib/net48/System.Linq.Async.xml",
- "lib/net6.0/System.Linq.Async.dll",
- "lib/net6.0/System.Linq.Async.xml",
- "lib/netstandard2.0/System.Linq.Async.dll",
- "lib/netstandard2.0/System.Linq.Async.xml",
- "lib/netstandard2.1/System.Linq.Async.dll",
- "lib/netstandard2.1/System.Linq.Async.xml",
- "ref/net48/System.Linq.Async.dll",
- "ref/net48/System.Linq.Async.xml",
- "ref/net6.0/System.Linq.Async.dll",
- "ref/net6.0/System.Linq.Async.xml",
- "ref/netstandard2.0/System.Linq.Async.dll",
- "ref/netstandard2.0/System.Linq.Async.xml",
- "ref/netstandard2.1/System.Linq.Async.dll",
- "ref/netstandard2.1/System.Linq.Async.xml",
- "system.linq.async.6.0.1.nupkg.sha512",
- "system.linq.async.nuspec"
- ]
- },
- "System.Memory/4.5.4": {
- "sha512": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw==",
- "type": "package",
- "path": "system.memory/4.5.4",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "LICENSE.TXT",
- "THIRD-PARTY-NOTICES.TXT",
- "lib/net461/System.Memory.dll",
- "lib/net461/System.Memory.xml",
- "lib/netcoreapp2.1/_._",
- "lib/netstandard1.1/System.Memory.dll",
- "lib/netstandard1.1/System.Memory.xml",
- "lib/netstandard2.0/System.Memory.dll",
- "lib/netstandard2.0/System.Memory.xml",
- "ref/netcoreapp2.1/_._",
- "system.memory.4.5.4.nupkg.sha512",
- "system.memory.nuspec",
- "useSharedDesignerContext.txt",
- "version.txt"
- ]
- },
- "System.Reactive/6.0.0": {
- "sha512": "31kfaW4ZupZzPsI5PVe77VhnvFF55qgma7KZr/E0iFTs6fmdhhG8j0mgEx620iLTey1EynOkEfnyTjtNEpJzGw==",
- "type": "package",
- "path": "system.reactive/6.0.0",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "build/net6.0-windows10.0.19041/_._",
- "build/net6.0/_._",
- "buildTransitive/net6.0-windows10.0.19041/_._",
- "buildTransitive/net6.0/_._",
- "icon.png",
- "lib/net472/System.Reactive.dll",
- "lib/net472/System.Reactive.xml",
- "lib/net6.0-windows10.0.19041/System.Reactive.dll",
- "lib/net6.0-windows10.0.19041/System.Reactive.xml",
- "lib/net6.0/System.Reactive.dll",
- "lib/net6.0/System.Reactive.xml",
- "lib/netstandard2.0/System.Reactive.dll",
- "lib/netstandard2.0/System.Reactive.xml",
- "lib/uap10.0.18362/System.Reactive.dll",
- "lib/uap10.0.18362/System.Reactive.pri",
- "lib/uap10.0.18362/System.Reactive.xml",
- "readme.md",
- "system.reactive.6.0.0.nupkg.sha512",
- "system.reactive.nuspec"
- ]
- },
- "System.Threading.Channels/8.0.0": {
- "sha512": "CMaFr7v+57RW7uZfZkPExsPB6ljwzhjACWW1gfU35Y56rk72B/Wu+sTqxVmGSk4SFUlPc3cjeKND0zktziyjBA==",
- "type": "package",
- "path": "system.threading.channels/8.0.0",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "Icon.png",
- "LICENSE.TXT",
- "PACKAGE.md",
- "THIRD-PARTY-NOTICES.TXT",
- "buildTransitive/net461/System.Threading.Channels.targets",
- "buildTransitive/net462/_._",
- "buildTransitive/net6.0/_._",
- "buildTransitive/netcoreapp2.0/System.Threading.Channels.targets",
- "lib/net462/System.Threading.Channels.dll",
- "lib/net462/System.Threading.Channels.xml",
- "lib/net6.0/System.Threading.Channels.dll",
- "lib/net6.0/System.Threading.Channels.xml",
- "lib/net7.0/System.Threading.Channels.dll",
- "lib/net7.0/System.Threading.Channels.xml",
- "lib/net8.0/System.Threading.Channels.dll",
- "lib/net8.0/System.Threading.Channels.xml",
- "lib/netstandard2.0/System.Threading.Channels.dll",
- "lib/netstandard2.0/System.Threading.Channels.xml",
- "lib/netstandard2.1/System.Threading.Channels.dll",
- "lib/netstandard2.1/System.Threading.Channels.xml",
- "system.threading.channels.8.0.0.nupkg.sha512",
- "system.threading.channels.nuspec",
- "useSharedDesignerContext.txt"
- ]
- },
- "SystemTextJsonPatch/4.2.0": {
- "sha512": "InSbrL1gJGrNdrQYJe+XkBVbnRH85TRBh+yjG7Lzx/2NyHeHIjlGI1hq2Q0zKMdVwjnynj8wqoYlvaXfh0meZA==",
- "type": "package",
- "path": "systemtextjsonpatch/4.2.0",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "README.md",
- "lib/net6.0/SystemTextJsonPatch.dll",
- "lib/net6.0/SystemTextJsonPatch.xml",
- "lib/net7.0/SystemTextJsonPatch.dll",
- "lib/net7.0/SystemTextJsonPatch.xml",
- "lib/net8.0/SystemTextJsonPatch.dll",
- "lib/net8.0/SystemTextJsonPatch.xml",
- "lib/net9.0/SystemTextJsonPatch.dll",
- "lib/net9.0/SystemTextJsonPatch.xml",
- "lib/netstandard2.0/SystemTextJsonPatch.dll",
- "lib/netstandard2.0/SystemTextJsonPatch.xml",
- "logo.png",
- "systemtextjsonpatch.4.2.0.nupkg.sha512",
- "systemtextjsonpatch.nuspec"
- ]
- },
- "Websocket.Client/5.1.2": {
- "sha512": "ZE5VoUCIYbfACGmXxgfD96i4W0wyBk0JEwIViyPpvxdk/pNfzh2SX9BgEj8fTqNaxlFl0bUTWq1UUvR/c18BTQ==",
- "type": "package",
- "path": "websocket.client/5.1.2",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "README.md",
- "icon-modern.png",
- "icon.png",
- "lib/net6.0/Websocket.Client.dll",
- "lib/net6.0/Websocket.Client.xml",
- "lib/net7.0/Websocket.Client.dll",
- "lib/net7.0/Websocket.Client.xml",
- "lib/net8.0/Websocket.Client.dll",
- "lib/net8.0/Websocket.Client.xml",
- "lib/netstandard2.1/Websocket.Client.dll",
- "lib/netstandard2.1/Websocket.Client.xml",
- "websocket.client.5.1.2.nupkg.sha512",
- "websocket.client.nuspec"
- ]
- }
- },
- "projectFileDependencyGroups": {
- "net9.0": [
- "Konscious.Security.Cryptography.Argon2 >= 1.3.1",
- "SurrealDb.Net >= 0.9.0"
- ]
- },
- "packageFolders": {
- "C:\\Users\\Core\\.nuget\\packages\\": {},
- "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {}
- },
- "project": {
- "version": "1.0.0",
- "restore": {
- "projectUniqueName": "D:\\DDI\\Relay\\RelayChat\\RelayCore\\RelayCore.csproj",
- "projectName": "RelayCore",
- "projectPath": "D:\\DDI\\Relay\\RelayChat\\RelayCore\\RelayCore.csproj",
- "packagesPath": "C:\\Users\\Core\\.nuget\\packages\\",
- "outputPath": "D:\\DDI\\Relay\\RelayChat\\RelayCore\\obj\\",
- "projectStyle": "PackageReference",
- "fallbackFolders": [
- "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
- ],
- "configFilePaths": [
- "C:\\Users\\Core\\AppData\\Roaming\\NuGet\\NuGet.Config",
- "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
- "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
- ],
- "originalTargetFrameworks": [
- "net9.0"
- ],
- "sources": {
- "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
- "C:\\Program Files\\dotnet\\library-packs": {},
- "https://api.nuget.org/v3/index.json": {}
- },
- "frameworks": {
- "net9.0": {
- "targetAlias": "net9.0",
- "projectReferences": {}
- }
- },
- "warningProperties": {
- "warnAsError": [
- "NU1605"
- ]
- },
- "restoreAuditProperties": {
- "enableAudit": "true",
- "auditLevel": "low",
- "auditMode": "direct"
- },
- "SdkAnalysisLevel": "9.0.300"
- },
- "frameworks": {
- "net9.0": {
- "targetAlias": "net9.0",
- "dependencies": {
- "Konscious.Security.Cryptography.Argon2": {
- "target": "Package",
- "version": "[1.3.1, )"
- },
- "SurrealDb.Net": {
- "target": "Package",
- "version": "[0.9.0, )"
- }
- },
- "imports": [
- "net461",
- "net462",
- "net47",
- "net471",
- "net472",
- "net48",
- "net481"
- ],
- "assetTargetFallback": true,
- "warn": true,
- "frameworkReferences": {
- "Microsoft.NETCore.App": {
- "privateAssets": "all"
- }
- },
- "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.305/PortableRuntimeIdentifierGraph.json"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/obj/project.nuget.cache b/obj/project.nuget.cache
deleted file mode 100644
index f2556c4..0000000
--- a/obj/project.nuget.cache
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "version": 2,
- "dgSpecHash": "hVKcd/jquSo=",
- "success": true,
- "projectFilePath": "D:\\DDI\\Relay\\RelayChat\\RelayCore\\RelayCore.csproj",
- "expectedPackageFiles": [
- "C:\\Users\\Core\\.nuget\\packages\\concurrenthashset\\1.3.0\\concurrenthashset.1.3.0.nupkg.sha512",
- "C:\\Users\\Core\\.nuget\\packages\\dahomey.cbor\\1.24.3\\dahomey.cbor.1.24.3.nupkg.sha512",
- "C:\\Users\\Core\\.nuget\\packages\\konscious.security.cryptography.argon2\\1.3.1\\konscious.security.cryptography.argon2.1.3.1.nupkg.sha512",
- "C:\\Users\\Core\\.nuget\\packages\\konscious.security.cryptography.blake2\\1.1.1\\konscious.security.cryptography.blake2.1.1.1.nupkg.sha512",
- "C:\\Users\\Core\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\6.0.0\\microsoft.bcl.asyncinterfaces.6.0.0.nupkg.sha512",
- "C:\\Users\\Core\\.nuget\\packages\\microsoft.extensions.configuration\\9.0.4\\microsoft.extensions.configuration.9.0.4.nupkg.sha512",
- "C:\\Users\\Core\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\9.0.4\\microsoft.extensions.configuration.abstractions.9.0.4.nupkg.sha512",
- "C:\\Users\\Core\\.nuget\\packages\\microsoft.extensions.configuration.binder\\9.0.4\\microsoft.extensions.configuration.binder.9.0.4.nupkg.sha512",
- "C:\\Users\\Core\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\9.0.4\\microsoft.extensions.dependencyinjection.9.0.4.nupkg.sha512",
- "C:\\Users\\Core\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\9.0.4\\microsoft.extensions.dependencyinjection.abstractions.9.0.4.nupkg.sha512",
- "C:\\Users\\Core\\.nuget\\packages\\microsoft.extensions.diagnostics\\9.0.4\\microsoft.extensions.diagnostics.9.0.4.nupkg.sha512",
- "C:\\Users\\Core\\.nuget\\packages\\microsoft.extensions.diagnostics.abstractions\\9.0.4\\microsoft.extensions.diagnostics.abstractions.9.0.4.nupkg.sha512",
- "C:\\Users\\Core\\.nuget\\packages\\microsoft.extensions.http\\9.0.4\\microsoft.extensions.http.9.0.4.nupkg.sha512",
- "C:\\Users\\Core\\.nuget\\packages\\microsoft.extensions.logging\\9.0.4\\microsoft.extensions.logging.9.0.4.nupkg.sha512",
- "C:\\Users\\Core\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\9.0.4\\microsoft.extensions.logging.abstractions.9.0.4.nupkg.sha512",
- "C:\\Users\\Core\\.nuget\\packages\\microsoft.extensions.options\\9.0.4\\microsoft.extensions.options.9.0.4.nupkg.sha512",
- "C:\\Users\\Core\\.nuget\\packages\\microsoft.extensions.options.configurationextensions\\9.0.4\\microsoft.extensions.options.configurationextensions.9.0.4.nupkg.sha512",
- "C:\\Users\\Core\\.nuget\\packages\\microsoft.extensions.primitives\\9.0.4\\microsoft.extensions.primitives.9.0.4.nupkg.sha512",
- "C:\\Users\\Core\\.nuget\\packages\\microsoft.io.recyclablememorystream\\3.0.1\\microsoft.io.recyclablememorystream.3.0.1.nupkg.sha512",
- "C:\\Users\\Core\\.nuget\\packages\\microsoft.spatial\\7.18.0\\microsoft.spatial.7.18.0.nupkg.sha512",
- "C:\\Users\\Core\\.nuget\\packages\\semver\\3.0.0\\semver.3.0.0.nupkg.sha512",
- "C:\\Users\\Core\\.nuget\\packages\\surrealdb.net\\0.9.0\\surrealdb.net.0.9.0.nupkg.sha512",
- "C:\\Users\\Core\\.nuget\\packages\\system.collections.immutable\\9.0.4\\system.collections.immutable.9.0.4.nupkg.sha512",
- "C:\\Users\\Core\\.nuget\\packages\\system.io.pipelines\\7.0.0\\system.io.pipelines.7.0.0.nupkg.sha512",
- "C:\\Users\\Core\\.nuget\\packages\\system.linq.async\\6.0.1\\system.linq.async.6.0.1.nupkg.sha512",
- "C:\\Users\\Core\\.nuget\\packages\\system.memory\\4.5.4\\system.memory.4.5.4.nupkg.sha512",
- "C:\\Users\\Core\\.nuget\\packages\\system.reactive\\6.0.0\\system.reactive.6.0.0.nupkg.sha512",
- "C:\\Users\\Core\\.nuget\\packages\\system.threading.channels\\8.0.0\\system.threading.channels.8.0.0.nupkg.sha512",
- "C:\\Users\\Core\\.nuget\\packages\\systemtextjsonpatch\\4.2.0\\systemtextjsonpatch.4.2.0.nupkg.sha512",
- "C:\\Users\\Core\\.nuget\\packages\\websocket.client\\5.1.2\\websocket.client.5.1.2.nupkg.sha512"
- ],
- "logs": []
-}
\ No newline at end of file
diff --git a/obj/project.packagespec.json b/obj/project.packagespec.json
deleted file mode 100644
index 6e15b5d..0000000
--- a/obj/project.packagespec.json
+++ /dev/null
@@ -1 +0,0 @@
-"restore":{"projectUniqueName":"D:\\DDI\\Relay\\RelayChat\\RelayCore\\RelayCore.csproj","projectName":"RelayCore","projectPath":"D:\\DDI\\Relay\\RelayChat\\RelayCore\\RelayCore.csproj","outputPath":"D:\\DDI\\Relay\\RelayChat\\RelayCore\\obj\\","projectStyle":"PackageReference","fallbackFolders":["C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"],"originalTargetFrameworks":["net9.0"],"sources":{"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\":{},"C:\\Program Files\\dotnet\\library-packs":{},"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net9.0":{"targetAlias":"net9.0","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]},"restoreAuditProperties":{"enableAudit":"true","auditLevel":"low","auditMode":"direct"},"SdkAnalysisLevel":"9.0.300"}"frameworks":{"net9.0":{"targetAlias":"net9.0","dependencies":{"Konscious.Security.Cryptography.Argon2":{"target":"Package","version":"[1.3.1, )"},"SurrealDb.Net":{"target":"Package","version":"[0.9.0, )"}},"imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"C:\\Program Files\\dotnet\\sdk\\9.0.305/PortableRuntimeIdentifierGraph.json"}}
\ No newline at end of file
diff --git a/obj/rider.project.model.nuget.info b/obj/rider.project.model.nuget.info
deleted file mode 100644
index f9a00fa..0000000
--- a/obj/rider.project.model.nuget.info
+++ /dev/null
@@ -1 +0,0 @@
-17734474740469652
\ No newline at end of file
diff --git a/obj/rider.project.restore.info b/obj/rider.project.restore.info
deleted file mode 100644
index 84908d7..0000000
--- a/obj/rider.project.restore.info
+++ /dev/null
@@ -1 +0,0 @@
-17734474749787742
\ No newline at end of file