summary refs log tree commit diff
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2025-12-14 23:18:35 +0100
committerRory& <root@rory.gay>2025-12-14 23:18:35 +0100
commit4534d4dbf5f5071fa71c5dec4444bf4b2bbd040c (patch)
tree614304bd951f09a73155a9bd9ee192cf946e854a
parentNo longer generate security_jwtSecret, switch webauthn to modern tokens, dont (diff)
downloadserver-ts-4534d4dbf5f5071fa71c5dec4444bf4b2bbd040c.tar.xz
admin api packaging
-rw-r--r--.gitignore4
-rw-r--r--extra/admin-api/.gitignore2
-rw-r--r--extra/admin-api/ConfigTest/ConfigTest.csproj20
-rw-r--r--extra/admin-api/ConfigTest/Program.cs14
-rw-r--r--extra/admin-api/ConfigTest/Properties/launchSettings.json12
-rw-r--r--extra/admin-api/ConfigTest/Worker.cs43
-rw-r--r--extra/admin-api/ConfigTest/appsettings.Development.json (renamed from extra/admin-api/Spacebar.AdminAPI/appsettings.Development.json)0
-rw-r--r--extra/admin-api/ConfigTest/appsettings.json (renamed from extra/admin-api/Spacebar.AdminAPI/appsettings.json)0
-rw-r--r--extra/admin-api/Spacebar.AdminApi/Controllers/ConfigController.cs61
-rw-r--r--extra/admin-api/Spacebar.AdminApi/Controllers/GuildController.cs (renamed from extra/admin-api/Spacebar.AdminAPI/Controllers/GuildController.cs)6
-rw-r--r--extra/admin-api/Spacebar.AdminApi/Controllers/Media/UserMediaController.cs (renamed from extra/admin-api/Spacebar.AdminAPI/Controllers/Media/UserMediaController.cs)6
-rw-r--r--extra/admin-api/Spacebar.AdminApi/Controllers/PingController.cs (renamed from extra/admin-api/Spacebar.AdminAPI/Controllers/PingController.cs)4
-rw-r--r--extra/admin-api/Spacebar.AdminApi/Controllers/UserController.cs (renamed from extra/admin-api/Spacebar.AdminAPI/Controllers/UserController.cs)6
-rw-r--r--extra/admin-api/Spacebar.AdminApi/Extensions/DbExtensions.cs (renamed from extra/admin-api/Spacebar.AdminAPI/Extensions/DbExtensions.cs)2
-rw-r--r--extra/admin-api/Spacebar.AdminApi/Middleware/AuthenticationMiddleware.cs (renamed from extra/admin-api/Spacebar.AdminAPI/Middleware/AuthenticationMiddleware.cs)4
-rw-r--r--extra/admin-api/Spacebar.AdminApi/Program.cs (renamed from extra/admin-api/Spacebar.AdminAPI/Program.cs)4
-rw-r--r--extra/admin-api/Spacebar.AdminApi/Properties/launchSettings.json (renamed from extra/admin-api/Spacebar.AdminAPI/Properties/launchSettings.json)0
-rw-r--r--extra/admin-api/Spacebar.AdminApi/Services/AuthenticationService.cs (renamed from extra/admin-api/Spacebar.AdminAPI/Services/AuthenticationService.cs)2
-rw-r--r--extra/admin-api/Spacebar.AdminApi/Services/Configuration.cs (renamed from extra/admin-api/Spacebar.AdminAPI/Services/Configuration.cs)2
-rw-r--r--extra/admin-api/Spacebar.AdminApi/Spacebar.AdminApi.csproj (renamed from extra/admin-api/Spacebar.AdminAPI/Spacebar.AdminAPI.csproj)1
-rw-r--r--extra/admin-api/Spacebar.AdminApi/appsettings.Development.json27
-rw-r--r--extra/admin-api/Spacebar.AdminApi/appsettings.json9
-rw-r--r--extra/admin-api/Spacebar.AdminApi/deps.json447
-rw-r--r--extra/admin-api/Spacebar.CleanSettingsRows/deps.json492
-rw-r--r--extra/admin-api/Spacebar.ConfigModel/Class1.cs64
-rw-r--r--extra/admin-api/Spacebar.ConfigModel/Extensions/JsonExtensions.cs119
-rw-r--r--extra/admin-api/Spacebar.ConfigModel/Spacebar.ConfigModel.csproj9
-rw-r--r--extra/admin-api/Spacebar.Db/deps.json362
-rw-r--r--extra/admin-api/SpacebarAdminAPI.sln18
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/App.razor (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/App.razor)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Classes/OpenAPI/OpenAPISchema.cs (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Classes/OpenAPI/OpenAPISchema.cs)2
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Layout/MainLayout.razor (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Layout/MainLayout.razor)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Layout/MainLayout.razor.css (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Layout/MainLayout.razor.css)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Layout/NavMenu.razor (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Layout/NavMenu.razor)2
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Layout/NavMenu.razor.css (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Layout/NavMenu.razor.css)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/Guilds.razor (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/Guilds.razor)2
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/Home.razor (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/Home.razor)2
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/HttpTestClient.razor (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/HttpTestClient.razor)7
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/HttpTestClientParts/OpenAPIParameterDescription.razor (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/HttpTestClientParts/OpenAPIParameterDescription.razor)2
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/Login.razor (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/Login.razor)2
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/Media/Index.razor (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/Media/Index.razor)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/Media/Users.razor (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/Media/Users.razor)2
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/Users.razor (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/Users.razor)2
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/UsersDelete.razor (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/UsersDelete.razor)2
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Program.cs (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Program.cs)4
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Properties/launchSettings.json (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Properties/launchSettings.json)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Services/Config.cs (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Services/Config.cs)2
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Services/StreamingHttpClient.cs (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Services/StreamingHttpClient.cs)21
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Spacebar.AdminApi.TestClient.csproj (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Spacebar.AdminAPI.TestClient.csproj)4
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/_Imports.razor (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/_Imports.razor)4
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/deps.json217
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/appsettings.json (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/appsettings.json)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/css/app.css (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/css/app.css)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/favicon.png (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/favicon.png)bin1148 -> 1148 bytes
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/icon-192.png (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/icon-192.png)bin2626 -> 2626 bytes
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/index.html (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/index.html)2
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css.map (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css.map)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css.map (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css.map)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css.map (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css.map)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css.map (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css.map)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css.map (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css.map)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.css (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.css)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css.map (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css.map)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css.map (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css.map)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js.map (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js.map)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js.map (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js.map)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.js (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.js)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/jetbrains-mono.css (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/jetbrains-mono.css)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Bold.woff2 (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Bold.woff2)bin94588 -> 94588 bytes
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-BoldItalic.woff2 (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-BoldItalic.woff2)bin98152 -> 98152 bytes
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-ExtraBold.woff2 (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-ExtraBold.woff2)bin93692 -> 93692 bytes
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-ExtraBoldItalic.woff2 (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-ExtraBoldItalic.woff2)bin96864 -> 96864 bytes
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-ExtraLight.woff2 (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-ExtraLight.woff2)bin92712 -> 92712 bytes
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-ExtraLightItalic.woff2 (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-ExtraLightItalic.woff2)bin95816 -> 95816 bytes
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Italic.woff2 (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Italic.woff2)bin95864 -> 95864 bytes
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Light.woff2 (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Light.woff2)bin93856 -> 93856 bytes
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-LightItalic.woff2 (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-LightItalic.woff2)bin97280 -> 97280 bytes
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Medium.woff2 (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Medium.woff2)bin93824 -> 93824 bytes
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-MediumItalic.woff2 (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-MediumItalic.woff2)bin97808 -> 97808 bytes
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Regular.woff2 (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Regular.woff2)bin92164 -> 92164 bytes
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-SemiBold.woff2 (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-SemiBold.woff2)bin94472 -> 94472 bytes
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-SemiBoldItalic.woff2 (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-SemiBoldItalic.woff2)bin98124 -> 98124 bytes
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Thin.woff2 (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Thin.woff2)bin90612 -> 90612 bytes
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-ThinItalic.woff2 (renamed from extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-ThinItalic.woff2)bin94316 -> 94316 bytes
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApiTest/Program.cs (renamed from extra/admin-api/Utilities/Spacebar.AdminAPITest/Program.cs)0
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApiTest/Spacebar.AdminApiTest.csproj (renamed from extra/admin-api/Utilities/Spacebar.AdminAPITest/Spacebar.AdminAPITest.csproj)0
-rw-r--r--extra/admin-api/flake.lock6
-rw-r--r--extra/admin-api/flake.nix82
-rw-r--r--extra/admin-api/nuget.config9
-rw-r--r--extra/admin-api/outputs.nix128
-rw-r--r--flake.nix266
124 files changed, 2246 insertions, 264 deletions
diff --git a/.gitignore b/.gitignore

index bb79fbf7..c1a78e41 100644 --- a/.gitignore +++ b/.gitignore
@@ -26,4 +26,6 @@ bun.lock # optional generated outputs from schema.js schemas_orig/ schemas_nested/ -schemas_final/ \ No newline at end of file +schemas_final/ + +!/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/ \ No newline at end of file diff --git a/extra/admin-api/.gitignore b/extra/admin-api/.gitignore
index f4e4961b..65497125 100644 --- a/extra/admin-api/.gitignore +++ b/extra/admin-api/.gitignore
@@ -6,4 +6,4 @@ appsettings.Local*.json /*.patch Spacebar.Db/**/*.orig -Spacebar.Db/**/*.rej +Spacebar.Db/**/*.rej \ No newline at end of file diff --git a/extra/admin-api/ConfigTest/ConfigTest.csproj b/extra/admin-api/ConfigTest/ConfigTest.csproj new file mode 100644
index 00000000..7244b673 --- /dev/null +++ b/extra/admin-api/ConfigTest/ConfigTest.csproj
@@ -0,0 +1,20 @@ +<Project Sdk="Microsoft.NET.Sdk.Worker"> + + <PropertyGroup> + <TargetFramework>net10.0</TargetFramework> + <Nullable>enable</Nullable> + <ImplicitUsings>enable</ImplicitUsings> + <UserSecretsId>dotnet-ConfigTest-18d89c0e-df5d-447b-8429-7d526a35ab13</UserSecretsId> + </PropertyGroup> + + <ItemGroup> + <PackageReference Include="Microsoft.EntityFrameworkCore" Version="10.0.1" /> + <PackageReference Include="Microsoft.Extensions.Hosting" Version="10.0.0" /> + <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="10.0.0" /> + </ItemGroup> + + <ItemGroup> + <ProjectReference Include="..\Spacebar.ConfigModel\Spacebar.ConfigModel.csproj" /> + <ProjectReference Include="..\Spacebar.Db\Spacebar.Db.csproj" /> + </ItemGroup> +</Project> diff --git a/extra/admin-api/ConfigTest/Program.cs b/extra/admin-api/ConfigTest/Program.cs new file mode 100644
index 00000000..5945bcf6 --- /dev/null +++ b/extra/admin-api/ConfigTest/Program.cs
@@ -0,0 +1,14 @@ +using ConfigTest; +using Microsoft.EntityFrameworkCore; +using Spacebar.Db.Contexts; + +var builder = Host.CreateApplicationBuilder(args); +builder.Services.AddHostedService<Worker>(); +builder.Services.AddDbContext<SpacebarDbContext>(options => { + options + .UseNpgsql(builder.Configuration.GetConnectionString("Spacebar")) + .EnableDetailedErrors(); +}, ServiceLifetime.Singleton); + +var host = builder.Build(); +host.Run(); diff --git a/extra/admin-api/ConfigTest/Properties/launchSettings.json b/extra/admin-api/ConfigTest/Properties/launchSettings.json new file mode 100644
index 00000000..c355f360 --- /dev/null +++ b/extra/admin-api/ConfigTest/Properties/launchSettings.json
@@ -0,0 +1,12 @@ +{ + "$schema": "https://json.schemastore.org/launchsettings.json", + "profiles": { + "ConfigTest": { + "commandName": "Project", + "dotnetRunMessages": true, + "environmentVariables": { + "DOTNET_ENVIRONMENT": "Development" + } + } + } +} diff --git a/extra/admin-api/ConfigTest/Worker.cs b/extra/admin-api/ConfigTest/Worker.cs new file mode 100644
index 00000000..dd3ef779 --- /dev/null +++ b/extra/admin-api/ConfigTest/Worker.cs
@@ -0,0 +1,43 @@ +using System.Text.Json.Nodes; +using Spacebar.ConfigModel.Extensions; +using Spacebar.Db.Contexts; + +namespace ConfigTest; + +public class Worker(ILogger<Worker> logger, SpacebarDbContext db) : BackgroundService +{ + protected override async Task ExecuteAsync(CancellationToken stoppingToken) + { + var config = db.Configs + .OrderBy(x => x.Key) + .ToDictionary(x => x.Key, x => x.Value); + foreach (var (key, value) in config) + { + Console.WriteLine("Config Key: {0}, Value: {1}", key, value ?? "[NULL]"); + } + + var readConfig = config.ToNestedJsonObject(); + Console.WriteLine(readConfig); + var mapped = readConfig.ToFlatKv(); + foreach (var (key, value) in mapped) + { + Console.WriteLine("Mapped Key: {0}, Value: {1}", key, value ?? "[NULL]"); + } + + // check that they're equal + foreach (var (key, value) in config) + { + if (!mapped.ContainsKey(key)) + { + Console.WriteLine("Missing Key in Mapped: {0}", key); + continue; + } + + if (mapped[key] != value) + { + Console.WriteLine("Value Mismatch for Key: {0}, Original: {1}, Mapped: {2}", key, value ?? "[NULL]", mapped[key] ?? "[NULL]"); + } + } + Environment.Exit(0); + } +} \ No newline at end of file diff --git a/extra/admin-api/Spacebar.AdminAPI/appsettings.Development.json b/extra/admin-api/ConfigTest/appsettings.Development.json
index 03245773..03245773 100644 --- a/extra/admin-api/Spacebar.AdminAPI/appsettings.Development.json +++ b/extra/admin-api/ConfigTest/appsettings.Development.json
diff --git a/extra/admin-api/Spacebar.AdminAPI/appsettings.json b/extra/admin-api/ConfigTest/appsettings.json
index 10f68b8c..10f68b8c 100644 --- a/extra/admin-api/Spacebar.AdminAPI/appsettings.json +++ b/extra/admin-api/ConfigTest/appsettings.json
diff --git a/extra/admin-api/Spacebar.AdminApi/Controllers/ConfigController.cs b/extra/admin-api/Spacebar.AdminApi/Controllers/ConfigController.cs new file mode 100644
index 00000000..96465616 --- /dev/null +++ b/extra/admin-api/Spacebar.AdminApi/Controllers/ConfigController.cs
@@ -0,0 +1,61 @@ +using System.Text.Json.Nodes; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using Spacebar.AdminApi.Extensions; +using Spacebar.AdminApi.Models; +using Spacebar.AdminApi.Services; +using Spacebar.Db.Contexts; +using Spacebar.Db.Models; +using Spacebar.RabbitMqUtilities; +using Spacebar.ConfigModel.Extensions; + +namespace Spacebar.AdminApi.Controllers; + +[ApiController] +[Route("/Configuration")] +public class ConfigController(ILogger<ConfigController> logger, SpacebarDbContext db, RabbitMQService mq, IServiceProvider sp, AuthenticationService auth) : ControllerBase { + private readonly ILogger<ConfigController> _logger = logger; + + [HttpGet] + public async Task<JsonObject> Get() { + (await auth.GetCurrentUser(Request)).GetRights().AssertHasAllRights(SpacebarRights.Rights.OPERATOR); + + var config = (await db.Configs.AsNoTracking().ToDictionaryAsync(x => x.Key, x => x.Value)).ToNestedJsonObject(); + return config; + } + + [HttpPost] + public async Task<IActionResult> Post([FromBody] JsonObject newConfig) { + (await auth.GetCurrentUser(Request)).GetRights().AssertHasAllRights(SpacebarRights.Rights.OPERATOR); + + var flatConfig = newConfig.ToFlatKv(); + var tasks = flatConfig.Select(async x => { + await using var scope = sp.CreateAsyncScope(); + var scopedDb = scope.ServiceProvider.GetRequiredService<SpacebarDbContext>(); + var existingConfig = await scopedDb.Configs.FindAsync(x.Key); + if (existingConfig != null) { + existingConfig.Value = x.Value; + scopedDb.Configs.Update(existingConfig); + } + else { + await scopedDb.Configs.AddAsync(new Config + { Key = x.Key, Value = x.Value }); + } + + await scopedDb.SaveChangesAsync(); + }); + await Task.WhenAll(tasks); + // TODO: rabbitmq + + return Ok(); + } + + [HttpPost] + public async Task<IActionResult> ReloadConfig() { + (await auth.GetCurrentUser(Request)).GetRights().AssertHasAllRights(SpacebarRights.Rights.OPERATOR); + + // TODO: rabbitmq + + return Ok(); + } +} \ No newline at end of file diff --git a/extra/admin-api/Spacebar.AdminAPI/Controllers/GuildController.cs b/extra/admin-api/Spacebar.AdminApi/Controllers/GuildController.cs
index 03b38e64..05bd604a 100644 --- a/extra/admin-api/Spacebar.AdminAPI/Controllers/GuildController.cs +++ b/extra/admin-api/Spacebar.AdminApi/Controllers/GuildController.cs
@@ -2,14 +2,14 @@ using ArcaneLibs.Extensions; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using RabbitMQ.Client; -using Spacebar.AdminAPI.Extensions; +using Spacebar.AdminApi.Extensions; using Spacebar.AdminApi.Models; -using Spacebar.AdminAPI.Services; +using Spacebar.AdminApi.Services; using Spacebar.Db.Contexts; using Spacebar.Db.Models; using Spacebar.RabbitMqUtilities; -namespace Spacebar.AdminAPI.Controllers; +namespace Spacebar.AdminApi.Controllers; [ApiController] [Route("/Guilds")] diff --git a/extra/admin-api/Spacebar.AdminAPI/Controllers/Media/UserMediaController.cs b/extra/admin-api/Spacebar.AdminApi/Controllers/Media/UserMediaController.cs
index a4d915e5..f3415731 100644 --- a/extra/admin-api/Spacebar.AdminAPI/Controllers/Media/UserMediaController.cs +++ b/extra/admin-api/Spacebar.AdminApi/Controllers/Media/UserMediaController.cs
@@ -1,13 +1,13 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; -using Spacebar.AdminAPI.Extensions; +using Spacebar.AdminApi.Extensions; using Spacebar.AdminApi.Models; -using Spacebar.AdminAPI.Services; +using Spacebar.AdminApi.Services; using Spacebar.Db.Contexts; using Spacebar.Db.Models; using Spacebar.RabbitMqUtilities; -namespace Spacebar.AdminAPI.Controllers.Media; +namespace Spacebar.AdminApi.Controllers.Media; [ApiController] [Route("/media/user")] diff --git a/extra/admin-api/Spacebar.AdminAPI/Controllers/PingController.cs b/extra/admin-api/Spacebar.AdminApi/Controllers/PingController.cs
index a2aceb50..05b6d876 100644 --- a/extra/admin-api/Spacebar.AdminAPI/Controllers/PingController.cs +++ b/extra/admin-api/Spacebar.AdminApi/Controllers/PingController.cs
@@ -1,7 +1,7 @@ using Microsoft.AspNetCore.Mvc; -using Spacebar.AdminAPI.Services; +using Spacebar.AdminApi.Services; -namespace Spacebar.AdminAPI.Controllers; +namespace Spacebar.AdminApi.Controllers; [ApiController] [Route("/")] diff --git a/extra/admin-api/Spacebar.AdminAPI/Controllers/UserController.cs b/extra/admin-api/Spacebar.AdminApi/Controllers/UserController.cs
index c727077a..505f789e 100644 --- a/extra/admin-api/Spacebar.AdminAPI/Controllers/UserController.cs +++ b/extra/admin-api/Spacebar.AdminApi/Controllers/UserController.cs
@@ -4,14 +4,14 @@ using ArcaneLibs.Extensions; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using RabbitMQ.Client; -using Spacebar.AdminAPI.Extensions; +using Spacebar.AdminApi.Extensions; using Spacebar.AdminApi.Models; -using Spacebar.AdminAPI.Services; +using Spacebar.AdminApi.Services; using Spacebar.Db.Contexts; using Spacebar.Db.Models; using Spacebar.RabbitMqUtilities; -namespace Spacebar.AdminAPI.Controllers; +namespace Spacebar.AdminApi.Controllers; [ApiController] [Route("/users")] diff --git a/extra/admin-api/Spacebar.AdminAPI/Extensions/DbExtensions.cs b/extra/admin-api/Spacebar.AdminApi/Extensions/DbExtensions.cs
index f6318e8f..1220de91 100644 --- a/extra/admin-api/Spacebar.AdminAPI/Extensions/DbExtensions.cs +++ b/extra/admin-api/Spacebar.AdminApi/Extensions/DbExtensions.cs
@@ -2,7 +2,7 @@ using Microsoft.EntityFrameworkCore; using Spacebar.AdminApi.Models; using Spacebar.Db.Models; -namespace Spacebar.AdminAPI.Extensions; +namespace Spacebar.AdminApi.Extensions; public static class DbExtensions { public static string? GetString(this DbSet<Config> config, string key) => config.Find(key)?.Value; diff --git a/extra/admin-api/Spacebar.AdminAPI/Middleware/AuthenticationMiddleware.cs b/extra/admin-api/Spacebar.AdminApi/Middleware/AuthenticationMiddleware.cs
index dea89586..a5144add 100644 --- a/extra/admin-api/Spacebar.AdminAPI/Middleware/AuthenticationMiddleware.cs +++ b/extra/admin-api/Spacebar.AdminApi/Middleware/AuthenticationMiddleware.cs
@@ -1,11 +1,11 @@ using System.IdentityModel.Tokens.Jwt; using System.Security.Cryptography; using Microsoft.IdentityModel.Tokens; -using Spacebar.AdminAPI.Services; +using Spacebar.AdminApi.Services; using Spacebar.Db.Contexts; using Spacebar.Db.Models; -namespace Spacebar.AdminAPI.Middleware; +namespace Spacebar.AdminApi.Middleware; public class AuthenticationMiddleware(RequestDelegate next) { private static Dictionary<string, User> _userCache = new(); diff --git a/extra/admin-api/Spacebar.AdminAPI/Program.cs b/extra/admin-api/Spacebar.AdminApi/Program.cs
index 93b28b15..f3e977cb 100644 --- a/extra/admin-api/Spacebar.AdminAPI/Program.cs +++ b/extra/admin-api/Spacebar.AdminApi/Program.cs
@@ -1,8 +1,8 @@ using System.Text.Json.Serialization; using Microsoft.AspNetCore.Http.Timeouts; using Microsoft.EntityFrameworkCore; -using Spacebar.AdminAPI.Middleware; -using Spacebar.AdminAPI.Services; +using Spacebar.AdminApi.Middleware; +using Spacebar.AdminApi.Services; using Spacebar.Db.Contexts; using Spacebar.RabbitMqUtilities; diff --git a/extra/admin-api/Spacebar.AdminAPI/Properties/launchSettings.json b/extra/admin-api/Spacebar.AdminApi/Properties/launchSettings.json
index d362517c..d362517c 100644 --- a/extra/admin-api/Spacebar.AdminAPI/Properties/launchSettings.json +++ b/extra/admin-api/Spacebar.AdminApi/Properties/launchSettings.json
diff --git a/extra/admin-api/Spacebar.AdminAPI/Services/AuthenticationService.cs b/extra/admin-api/Spacebar.AdminApi/Services/AuthenticationService.cs
index d402c5b9..788c8eb9 100644 --- a/extra/admin-api/Spacebar.AdminAPI/Services/AuthenticationService.cs +++ b/extra/admin-api/Spacebar.AdminApi/Services/AuthenticationService.cs
@@ -4,7 +4,7 @@ using Microsoft.IdentityModel.Tokens; using Spacebar.Db.Contexts; using Spacebar.Db.Models; -namespace Spacebar.AdminAPI.Services; +namespace Spacebar.AdminApi.Services; public class AuthenticationService(SpacebarDbContext db, Configuration config) { private static Dictionary<string, User> _userCache = new(); diff --git a/extra/admin-api/Spacebar.AdminAPI/Services/Configuration.cs b/extra/admin-api/Spacebar.AdminApi/Services/Configuration.cs
index a58ef5c0..f6b2c029 100644 --- a/extra/admin-api/Spacebar.AdminAPI/Services/Configuration.cs +++ b/extra/admin-api/Spacebar.AdminApi/Services/Configuration.cs
@@ -1,4 +1,4 @@ -namespace Spacebar.AdminAPI.Services; +namespace Spacebar.AdminApi.Services; public class Configuration { public Configuration(IConfiguration configuration) { diff --git a/extra/admin-api/Spacebar.AdminAPI/Spacebar.AdminAPI.csproj b/extra/admin-api/Spacebar.AdminApi/Spacebar.AdminApi.csproj
index 872e1188..950f8a1f 100644 --- a/extra/admin-api/Spacebar.AdminAPI/Spacebar.AdminAPI.csproj +++ b/extra/admin-api/Spacebar.AdminApi/Spacebar.AdminApi.csproj
@@ -16,6 +16,7 @@ <ItemGroup> <ProjectReference Include="..\Spacebar.AdminApi.Models\Spacebar.AdminApi.Models.csproj" /> + <ProjectReference Include="..\Spacebar.ConfigModel\Spacebar.ConfigModel.csproj" /> <ProjectReference Include="..\Spacebar.Db\Spacebar.Db.csproj" /> <ProjectReference Include="..\Utilities\Spacebar.RabbitMqUtilities\Spacebar.RabbitMqUtilities.csproj" /> </ItemGroup> diff --git a/extra/admin-api/Spacebar.AdminApi/appsettings.Development.json b/extra/admin-api/Spacebar.AdminApi/appsettings.Development.json new file mode 100644
index 00000000..03245773 --- /dev/null +++ b/extra/admin-api/Spacebar.AdminApi/appsettings.Development.json
@@ -0,0 +1,27 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Trace", //Warning + "Microsoft.AspNetCore.Mvc": "Warning", //Warning + "Microsoft.AspNetCore.HostFiltering": "Warning", //Warning + "Microsoft.AspNetCore.Cors": "Warning", //Warning + // "Microsoft.EntityFrameworkCore": "Warning" + "Microsoft.EntityFrameworkCore.Database.Command": "Debug" + } + }, + "ConnectionStrings": { + "Spacebar": "Host=127.0.0.1; Username=postgres; Database=spacebar; Port=5432; Include Error Detail=true; Maximum Pool Size=1000; Command Timeout=6000; Timeout=600;", + }, + "RabbitMQ": { + "Host": "127.0.0.1", + "Port": 5673, + "Username": "guest", + "Password": "guest" + }, + "SpacebarAdminApi": { + "Enforce2FA": true, + "OverrideUid": null, + "DisableAuthentication": false + } +} diff --git a/extra/admin-api/Spacebar.AdminApi/appsettings.json b/extra/admin-api/Spacebar.AdminApi/appsettings.json new file mode 100644
index 00000000..10f68b8c --- /dev/null +++ b/extra/admin-api/Spacebar.AdminApi/appsettings.json
@@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/extra/admin-api/Spacebar.AdminApi/deps.json b/extra/admin-api/Spacebar.AdminApi/deps.json new file mode 100644
index 00000000..f1ddcb25 --- /dev/null +++ b/extra/admin-api/Spacebar.AdminApi/deps.json
@@ -0,0 +1,447 @@ +[ + { + "pname": "ArcaneLibs", + "version": "1.0.0-preview.20251005-232225", + "hash": "sha256-EsYLSiyX5Nj+ZpFb6FOcAYqDsQFSbvgm9NKaarJjK/0=" + }, + { + "pname": "ArcaneLibs.StringNormalisation", + "version": "1.0.0-preview.20251005-232225", + "hash": "sha256-CdftHRV6idRMojLMgnDRxgSOvfP1DU+9KTKyBGlwoSI=" + }, + { + "pname": "Humanizer.Core", + "version": "2.14.1", + "hash": "sha256-EXvojddPu+9JKgOG9NSQgUTfWq1RpOYw7adxDPKDJ6o=" + }, + { + "pname": "Microsoft.AspNetCore.OpenApi", + "version": "10.0.0", + "hash": "sha256-mf3kOdkliLF4OD+CrmEhMNNDGOPKWGBOBWtX2EV5YEU=" + }, + { + "pname": "Microsoft.Build", + "version": "17.7.2", + "hash": "sha256-k35nFdPxC8t0zAltVSmAJtsepp/ubNIjPOsJ6k8jSqM=" + }, + { + "pname": "Microsoft.Build.Framework", + "version": "17.14.28", + "hash": "sha256-7RzEyIipumafwLW1xN1q23114NafG6PT0+RADElNsiM=" + }, + { + "pname": "Microsoft.Build.Framework", + "version": "17.7.2", + "hash": "sha256-fNWmVQYFTJDveAGmxEdNqJRAczV6+Ep8RA8clKBJFqw=" + }, + { + "pname": "Microsoft.Build.Tasks.Core", + "version": "17.14.28", + "hash": "sha256-M9zRXYijH2HtLlRXbrUK1a1LQ9zkT+DC9ZmMiiVZwv0=" + }, + { + "pname": "Microsoft.Build.Tasks.Core", + "version": "17.7.2", + "hash": "sha256-OrV/qWgZHzGlNUmaSfX5wDBcmg1aQeF3/OUHpSH+uZU=" + }, + { + "pname": "Microsoft.Build.Utilities.Core", + "version": "17.14.28", + "hash": "sha256-VFfO+UpyTpw2X/qiCCOCYzvMLuu7B+XVSSpJZQLkPzU=" + }, + { + "pname": "Microsoft.Build.Utilities.Core", + "version": "17.7.2", + "hash": "sha256-oatF0KfuP1nb4+OLNKg2/R/ZLO4EiACaO5leaxMEY4A=" + }, + { + "pname": "Microsoft.CodeAnalysis.Analyzers", + "version": "3.11.0", + "hash": "sha256-hQ2l6E6PO4m7i+ZsfFlEx+93UsLPo4IY3wDkNG11/Sw=" + }, + { + "pname": "Microsoft.CodeAnalysis.Common", + "version": "4.14.0", + "hash": "sha256-ne/zxH3GqoGB4OemnE8oJElG5mai+/67ASaKqwmL2BE=" + }, + { + "pname": "Microsoft.CodeAnalysis.CSharp", + "version": "4.14.0", + "hash": "sha256-5Mzj3XkYYLkwDWh17r1NEXSbXwwWYQPiOmkSMlgo1JY=" + }, + { + "pname": "Microsoft.CodeAnalysis.CSharp.Workspaces", + "version": "4.14.0", + "hash": "sha256-aNbV1a0yYBs0fpQawG6LXcbyoE8en+YFSpV5vcYE4J4=" + }, + { + "pname": "Microsoft.CodeAnalysis.Workspaces.Common", + "version": "4.14.0", + "hash": "sha256-0YfeaJe01WBUm9avy4a8FacQJXA1NkpnDpiXu4yz88I=" + }, + { + "pname": "Microsoft.CodeAnalysis.Workspaces.MSBuild", + "version": "4.14.0", + "hash": "sha256-5SJfpRqzqCK0UbkmAaJpA/r1XJb0YAriMMeQHYC4d+o=" + }, + { + "pname": "Microsoft.EntityFrameworkCore", + "version": "10.0.0", + "hash": "sha256-xfgrlxhtOkQwF5Q7j8gSm41URJiH8IuJ/T/Dh88++hE=" + }, + { + "pname": "Microsoft.EntityFrameworkCore", + "version": "10.0.1", + "hash": "sha256-IxA+/nDA6hZkUm9bDT6bRu8+9qeHA3gbTvIhR9Ncg4w=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Abstractions", + "version": "10.0.0", + "hash": "sha256-UDgZbRQcGPaKsE53EH6bvJiv+Q4KSxAbnsVhTVFGG4Q=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Abstractions", + "version": "10.0.1", + "hash": "sha256-FMGXhAAgcVSedV0/GmUVqAwoiRzFJil9mQYr6eNgowg=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Analyzers", + "version": "10.0.0", + "hash": "sha256-7Q0jYJO50cqGI+u6gLpootbB8GZvgsgtg0F9FZI1jig=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Analyzers", + "version": "10.0.1", + "hash": "sha256-O949vr98WoSRXtiIo0ZI6dz2cibIBKbiuC+mQOe9bV4=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Design", + "version": "10.0.1", + "hash": "sha256-GGNZIGNEMhSGaMRFkRN4bOuCUBs5YVnX8klXarm319U=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Relational", + "version": "10.0.0", + "hash": "sha256-vOP2CE5YA551BlpbOuIy6RuAiAEPEpCVS1cEE33/zN4=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Relational", + "version": "10.0.1", + "hash": "sha256-zLgxr/iW9HP8Fip1IDgr7X0Ar8OWKDvVmoEt65gG6VY=" + }, + { + "pname": "Microsoft.Extensions.Caching.Abstractions", + "version": "10.0.1", + "hash": "sha256-qVLAEqxPK/dNq+z1a6D9NqdcSg/18sfzZhlBWMkqV/A=" + }, + { + "pname": "Microsoft.Extensions.Caching.Memory", + "version": "10.0.0", + "hash": "sha256-AMgDSm1k6q0s17spGtyR5q8nAqUFDOxl/Fe38f9M+d4=" + }, + { + "pname": "Microsoft.Extensions.Caching.Memory", + "version": "10.0.1", + "hash": "sha256-Qb7xK6VEZDas0lJFaW1suKdFjtkSYwLHHxkQEfWIU2A=" + }, + { + "pname": "Microsoft.Extensions.Configuration", + "version": "10.0.0", + "hash": "sha256-MsLskVPpkCvov5+DWIaALCt1qfRRX4u228eHxvpE0dg=" + }, + { + "pname": "Microsoft.Extensions.Configuration.Abstractions", + "version": "10.0.0", + "hash": "sha256-GcgrnTAieCV7AVT13zyOjfwwL86e99iiO/MiMOxPGG0=" + }, + { + "pname": "Microsoft.Extensions.Configuration.Abstractions", + "version": "10.0.1", + "hash": "sha256-s4PDp+vtzdxKIxnOT3+dDRoTDopyl8kqmmw4KDnkOtQ=" + }, + { + "pname": "Microsoft.Extensions.Configuration.Binder", + "version": "10.0.0", + "hash": "sha256-YSiWoA3VQR22k6+bSEAUqeG7UDzZlJfHWDTubUO5V8U=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection", + "version": "10.0.1", + "hash": "sha256-RKOB+zPrtQNUbJY/1jR54rKOM8KHPgynPExxugku3I8=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection", + "version": "9.0.0", + "hash": "sha256-dAH52PPlTLn7X+1aI/7npdrDzMEFPMXRv4isV1a+14k=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection.Abstractions", + "version": "10.0.0", + "hash": "sha256-9iodXP39YqgxomnOPOxd/mzbG0JfOSXzFoNU3omT2Ps=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection.Abstractions", + "version": "10.0.1", + "hash": "sha256-zNUpau51ds7iQTaSUTFtyTHIUoinYc129W50CnufMdQ=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection.Abstractions", + "version": "9.0.0", + "hash": "sha256-CncVwkKZ5CsIG2O0+OM9qXuYXh3p6UGyueTHSLDVL+c=" + }, + { + "pname": "Microsoft.Extensions.DependencyModel", + "version": "10.0.1", + "hash": "sha256-XIj2jEURe25YA4RhBSuCqQpic0YP+TZaO/dbBPCjad8=" + }, + { + "pname": "Microsoft.Extensions.Logging", + "version": "10.0.0", + "hash": "sha256-P+zPAadLL63k/GqK34/qChqQjY9aIRxZfxlB9lqsSrs=" + }, + { + "pname": "Microsoft.Extensions.Logging", + "version": "10.0.1", + "hash": "sha256-zuLP3SIpCToMOlIPOEv3Kq8y/minecd8k8GSkxFo13E=" + }, + { + "pname": "Microsoft.Extensions.Logging", + "version": "9.0.0", + "hash": "sha256-kR16c+N8nQrWeYLajqnXPg7RiXjZMSFLnKLEs4VfjcM=" + }, + { + "pname": "Microsoft.Extensions.Logging.Abstractions", + "version": "10.0.0", + "hash": "sha256-BnhgGZc01HwTSxogavq7Ueq4V7iMA3wPnbfRwQ4RhGk=" + }, + { + "pname": "Microsoft.Extensions.Logging.Abstractions", + "version": "10.0.1", + "hash": "sha256-NRk0feNE1fgi/hyO0AVDbSGJQRT+9yte6Lpm4Hz/2Bs=" + }, + { + "pname": "Microsoft.Extensions.Logging.Abstractions", + "version": "9.0.0", + "hash": "sha256-iBTs9twjWXFeERt4CErkIIcoJZU1jrd1RWCI8V5j7KU=" + }, + { + "pname": "Microsoft.Extensions.Options", + "version": "10.0.1", + "hash": "sha256-vBiSS1vqAC7eDrpJNT4H3A9qLikCSAepnNRbry0mKnk=" + }, + { + "pname": "Microsoft.Extensions.Options", + "version": "9.0.0", + "hash": "sha256-DT5euAQY/ItB5LPI8WIp6Dnd0lSvBRP35vFkOXC68ck=" + }, + { + "pname": "Microsoft.Extensions.Primitives", + "version": "10.0.0", + "hash": "sha256-Dup08KcptLjlnpN5t5//+p4n8FUTgRAq4n/w1s6us+I=" + }, + { + "pname": "Microsoft.Extensions.Primitives", + "version": "10.0.1", + "hash": "sha256-EXmukq09erT4s+miQpBSYy3IY4HxxKlwEPL43/KoyEc=" + }, + { + "pname": "Microsoft.Extensions.Primitives", + "version": "9.0.0", + "hash": "sha256-ZNLusK1CRuq5BZYZMDqaz04PIKScE2Z7sS2tehU7EJs=" + }, + { + "pname": "Microsoft.IdentityModel.Abstractions", + "version": "8.15.0", + "hash": "sha256-LKTvERNUTMCEF7xs377tCMwOMRki93OS4kh6Yv0uXJ4=" + }, + { + "pname": "Microsoft.IdentityModel.JsonWebTokens", + "version": "8.15.0", + "hash": "sha256-LwzKiGjcnORvmQ9tim6lomXpfVlPpd/fE8FKTFWKlpM=" + }, + { + "pname": "Microsoft.IdentityModel.Logging", + "version": "8.15.0", + "hash": "sha256-mMXwsjGcrrmHR1mG7BLTKg/30mX+m93QVX17/ynOOd4=" + }, + { + "pname": "Microsoft.IdentityModel.Tokens", + "version": "8.15.0", + "hash": "sha256-7Lo/TsvqgNCEMyFssO3Om233521Pqgb9K9lUeHc5HMk=" + }, + { + "pname": "Microsoft.NET.StringTools", + "version": "17.14.28", + "hash": "sha256-UzREyvDxkiOQ4cEOQ5UCjkwXGrldIDCcbefECTPGjXI=" + }, + { + "pname": "Microsoft.NET.StringTools", + "version": "17.7.2", + "hash": "sha256-hQE07TCgcQuyu9ZHVq2gPDb0+xe8ECJUdrgh17bJP4o=" + }, + { + "pname": "Microsoft.OpenApi", + "version": "2.0.0", + "hash": "sha256-8eiM3Mx4Hx1etx52RlczoHG2z9XIpWgu2LQtWSt086k=" + }, + { + "pname": "Mono.TextTemplating", + "version": "3.0.0", + "hash": "sha256-VlgGDvgNZb7MeBbIZ4DE2Nn/j2aD9k6XqNHnASUSDr0=" + }, + { + "pname": "Newtonsoft.Json", + "version": "13.0.3", + "hash": "sha256-hy/BieY4qxBWVVsDqqOPaLy1QobiIapkbrESm6v2PHc=" + }, + { + "pname": "Npgsql", + "version": "10.0.0", + "hash": "sha256-UVKz9dH/rVCCbMyFdqA31RYpht1XgDRLIqUy0Dp9ACQ=" + }, + { + "pname": "Npgsql.EntityFrameworkCore.PostgreSQL", + "version": "10.0.0", + "hash": "sha256-XIJxnTMektQVP1qtslEIGbmBGrIQsvjQjCMRTs9UIbg=" + }, + { + "pname": "RabbitMQ.Client", + "version": "7.2.0", + "hash": "sha256-NkEb2ey0jo/OAeaVOUwIeSbeplqkOsgv1+ys8ZQgemQ=" + }, + { + "pname": "System.CodeDom", + "version": "6.0.0", + "hash": "sha256-uPetUFZyHfxjScu5x4agjk9pIhbCkt5rG4Axj25npcQ=" + }, + { + "pname": "System.CodeDom", + "version": "7.0.0", + "hash": "sha256-7IPt39cY+0j0ZcRr/J45xPtEjnSXdUJ/5ai3ebaYQiE=" + }, + { + "pname": "System.CodeDom", + "version": "9.0.0", + "hash": "sha256-578lcBgswW0eM16r0EnJzfGodPx86RxxFoZHc2PSzsw=" + }, + { + "pname": "System.Composition", + "version": "9.0.0", + "hash": "sha256-FehOkQ2u1p8mQ0/wn3cZ+24HjhTLdck8VZYWA1CcgbM=" + }, + { + "pname": "System.Composition.AttributedModel", + "version": "9.0.0", + "hash": "sha256-a7y7H6zj+kmYkllNHA402DoVfY9IaqC3Ooys8Vzl24M=" + }, + { + "pname": "System.Composition.Convention", + "version": "9.0.0", + "hash": "sha256-tw4vE5JRQ60ubTZBbxoMPhtjOQCC3XoDFUH7NHO7o8U=" + }, + { + "pname": "System.Composition.Hosting", + "version": "9.0.0", + "hash": "sha256-oOxU+DPEEfMCuNLgW6wSkZp0JY5gYt44FJNnWt+967s=" + }, + { + "pname": "System.Composition.Runtime", + "version": "9.0.0", + "hash": "sha256-AyIe+di1TqwUBbSJ/sJ8Q8tzsnTN+VBdJw4K8xZz43s=" + }, + { + "pname": "System.Composition.TypedParts", + "version": "9.0.0", + "hash": "sha256-F5fpTUs3Rr7yP/NyIzr+Xn5NdTXXp8rrjBnF9UBBUog=" + }, + { + "pname": "System.Configuration.ConfigurationManager", + "version": "7.0.0", + "hash": "sha256-SgBexTTjRn23uuXvkzO0mz0qOfA23MiS4Wv+qepMLZE=" + }, + { + "pname": "System.Configuration.ConfigurationManager", + "version": "9.0.0", + "hash": "sha256-+pLnTC0YDP6Kjw5DVBiFrV/Q3x5is/+6N6vAtjvhVWk=" + }, + { + "pname": "System.Diagnostics.EventLog", + "version": "9.0.0", + "hash": "sha256-tPvt6yoAp56sK/fe+/ei8M65eavY2UUhRnbrREj/Ems=" + }, + { + "pname": "System.Formats.Nrbf", + "version": "9.0.0", + "hash": "sha256-c4qf6CocQUZB0ySGQd8s15PXY7xfrjQqMGXxkwytKyw=" + }, + { + "pname": "System.IdentityModel.Tokens.Jwt", + "version": "8.15.0", + "hash": "sha256-5O0wbGp0gWnukK+0mWBjMnP1bZc6N0xuNcO2qmFiUX8=" + }, + { + "pname": "System.Reflection.MetadataLoadContext", + "version": "7.0.0", + "hash": "sha256-VYl6SFD130K9Aw4eJH16ApJ9Sau4Xu0dcxEip2veuTI=" + }, + { + "pname": "System.Resources.Extensions", + "version": "9.0.0", + "hash": "sha256-y2gLEMuAy6QfEyNJxABC/ayMWGnwlpX735jsUQLktho=" + }, + { + "pname": "System.Security.Cryptography.Pkcs", + "version": "7.0.0", + "hash": "sha256-3J3vL9hcKSuZjT2GKappa2A9p2xJm1nH2asTNAl8ZCA=" + }, + { + "pname": "System.Security.Cryptography.Pkcs", + "version": "7.0.2", + "hash": "sha256-qS5Z/Yo8J+f3ExVX5Qkcpj1Z57oUZqz5rWa1h5bVpl8=" + }, + { + "pname": "System.Security.Cryptography.Pkcs", + "version": "9.0.0", + "hash": "sha256-AjG14mGeSc2Ka4QSelGBM1LrGBW3VJX60lnihKyJjGY=" + }, + { + "pname": "System.Security.Cryptography.ProtectedData", + "version": "9.0.0", + "hash": "sha256-gPgPU7k/InTqmXoRzQfUMEKL3QuTnOKowFqmXTnWaBQ=" + }, + { + "pname": "System.Security.Cryptography.Xml", + "version": "7.0.1", + "hash": "sha256-CH8+JVC8LyCSW75/6ZQ7ecMbSOAE1c16z4dG8JTp01w=" + }, + { + "pname": "System.Security.Cryptography.Xml", + "version": "9.0.0", + "hash": "sha256-SQJWwAFrJUddEU6JiZB52FM9tGjRlJAYH8oYVzG5IJU=" + }, + { + "pname": "System.Security.Permissions", + "version": "7.0.0", + "hash": "sha256-DOFoX+AKRmrkllykHheR8FfUXYx/Ph+I/HYuReQydXI=" + }, + { + "pname": "System.Security.Permissions", + "version": "9.0.0", + "hash": "sha256-BFrA9ottmQtLIAiKiGRbfSUpzNJwuaOCeFRDN4Z0ku0=" + }, + { + "pname": "System.Threading.RateLimiting", + "version": "8.0.0", + "hash": "sha256-KOEWEt6ZthvZHJ2Wp70d9nBhBrPqobGQDi2twlKYh/w=" + }, + { + "pname": "System.Windows.Extensions", + "version": "9.0.0", + "hash": "sha256-RErD+Ju15qtnwdwB7E0SjjJGAnhXwJyC7UPcl24Z3Vs=" + }, + { + "pname": "Unidecode.NET", + "version": "2.1.0", + "hash": "sha256-nfxHxG/YwRftOP+wiSW8NL5hIVwt+wnfRb0lURjrZoc=" + } +] diff --git a/extra/admin-api/Spacebar.CleanSettingsRows/deps.json b/extra/admin-api/Spacebar.CleanSettingsRows/deps.json new file mode 100644
index 00000000..2938cdaa --- /dev/null +++ b/extra/admin-api/Spacebar.CleanSettingsRows/deps.json
@@ -0,0 +1,492 @@ +[ + { + "pname": "Humanizer.Core", + "version": "2.14.1", + "hash": "sha256-EXvojddPu+9JKgOG9NSQgUTfWq1RpOYw7adxDPKDJ6o=" + }, + { + "pname": "Microsoft.Build", + "version": "17.7.2", + "hash": "sha256-k35nFdPxC8t0zAltVSmAJtsepp/ubNIjPOsJ6k8jSqM=" + }, + { + "pname": "Microsoft.Build.Framework", + "version": "17.14.28", + "hash": "sha256-7RzEyIipumafwLW1xN1q23114NafG6PT0+RADElNsiM=" + }, + { + "pname": "Microsoft.Build.Framework", + "version": "17.7.2", + "hash": "sha256-fNWmVQYFTJDveAGmxEdNqJRAczV6+Ep8RA8clKBJFqw=" + }, + { + "pname": "Microsoft.Build.Tasks.Core", + "version": "17.14.28", + "hash": "sha256-M9zRXYijH2HtLlRXbrUK1a1LQ9zkT+DC9ZmMiiVZwv0=" + }, + { + "pname": "Microsoft.Build.Tasks.Core", + "version": "17.7.2", + "hash": "sha256-OrV/qWgZHzGlNUmaSfX5wDBcmg1aQeF3/OUHpSH+uZU=" + }, + { + "pname": "Microsoft.Build.Utilities.Core", + "version": "17.14.28", + "hash": "sha256-VFfO+UpyTpw2X/qiCCOCYzvMLuu7B+XVSSpJZQLkPzU=" + }, + { + "pname": "Microsoft.Build.Utilities.Core", + "version": "17.7.2", + "hash": "sha256-oatF0KfuP1nb4+OLNKg2/R/ZLO4EiACaO5leaxMEY4A=" + }, + { + "pname": "Microsoft.CodeAnalysis.Analyzers", + "version": "3.11.0", + "hash": "sha256-hQ2l6E6PO4m7i+ZsfFlEx+93UsLPo4IY3wDkNG11/Sw=" + }, + { + "pname": "Microsoft.CodeAnalysis.Common", + "version": "4.14.0", + "hash": "sha256-ne/zxH3GqoGB4OemnE8oJElG5mai+/67ASaKqwmL2BE=" + }, + { + "pname": "Microsoft.CodeAnalysis.CSharp", + "version": "4.14.0", + "hash": "sha256-5Mzj3XkYYLkwDWh17r1NEXSbXwwWYQPiOmkSMlgo1JY=" + }, + { + "pname": "Microsoft.CodeAnalysis.CSharp.Workspaces", + "version": "4.14.0", + "hash": "sha256-aNbV1a0yYBs0fpQawG6LXcbyoE8en+YFSpV5vcYE4J4=" + }, + { + "pname": "Microsoft.CodeAnalysis.Workspaces.Common", + "version": "4.14.0", + "hash": "sha256-0YfeaJe01WBUm9avy4a8FacQJXA1NkpnDpiXu4yz88I=" + }, + { + "pname": "Microsoft.CodeAnalysis.Workspaces.MSBuild", + "version": "4.14.0", + "hash": "sha256-5SJfpRqzqCK0UbkmAaJpA/r1XJb0YAriMMeQHYC4d+o=" + }, + { + "pname": "Microsoft.EntityFrameworkCore", + "version": "10.0.0", + "hash": "sha256-xfgrlxhtOkQwF5Q7j8gSm41URJiH8IuJ/T/Dh88++hE=" + }, + { + "pname": "Microsoft.EntityFrameworkCore", + "version": "10.0.1", + "hash": "sha256-IxA+/nDA6hZkUm9bDT6bRu8+9qeHA3gbTvIhR9Ncg4w=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Abstractions", + "version": "10.0.0", + "hash": "sha256-UDgZbRQcGPaKsE53EH6bvJiv+Q4KSxAbnsVhTVFGG4Q=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Abstractions", + "version": "10.0.1", + "hash": "sha256-FMGXhAAgcVSedV0/GmUVqAwoiRzFJil9mQYr6eNgowg=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Analyzers", + "version": "10.0.0", + "hash": "sha256-7Q0jYJO50cqGI+u6gLpootbB8GZvgsgtg0F9FZI1jig=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Analyzers", + "version": "10.0.1", + "hash": "sha256-O949vr98WoSRXtiIo0ZI6dz2cibIBKbiuC+mQOe9bV4=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Design", + "version": "10.0.1", + "hash": "sha256-GGNZIGNEMhSGaMRFkRN4bOuCUBs5YVnX8klXarm319U=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Relational", + "version": "10.0.0", + "hash": "sha256-vOP2CE5YA551BlpbOuIy6RuAiAEPEpCVS1cEE33/zN4=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Relational", + "version": "10.0.1", + "hash": "sha256-zLgxr/iW9HP8Fip1IDgr7X0Ar8OWKDvVmoEt65gG6VY=" + }, + { + "pname": "Microsoft.Extensions.Caching.Abstractions", + "version": "10.0.1", + "hash": "sha256-qVLAEqxPK/dNq+z1a6D9NqdcSg/18sfzZhlBWMkqV/A=" + }, + { + "pname": "Microsoft.Extensions.Caching.Memory", + "version": "10.0.0", + "hash": "sha256-AMgDSm1k6q0s17spGtyR5q8nAqUFDOxl/Fe38f9M+d4=" + }, + { + "pname": "Microsoft.Extensions.Caching.Memory", + "version": "10.0.1", + "hash": "sha256-Qb7xK6VEZDas0lJFaW1suKdFjtkSYwLHHxkQEfWIU2A=" + }, + { + "pname": "Microsoft.Extensions.Configuration", + "version": "10.0.0", + "hash": "sha256-MsLskVPpkCvov5+DWIaALCt1qfRRX4u228eHxvpE0dg=" + }, + { + "pname": "Microsoft.Extensions.Configuration.Abstractions", + "version": "10.0.0", + "hash": "sha256-GcgrnTAieCV7AVT13zyOjfwwL86e99iiO/MiMOxPGG0=" + }, + { + "pname": "Microsoft.Extensions.Configuration.Abstractions", + "version": "10.0.1", + "hash": "sha256-s4PDp+vtzdxKIxnOT3+dDRoTDopyl8kqmmw4KDnkOtQ=" + }, + { + "pname": "Microsoft.Extensions.Configuration.Binder", + "version": "10.0.0", + "hash": "sha256-YSiWoA3VQR22k6+bSEAUqeG7UDzZlJfHWDTubUO5V8U=" + }, + { + "pname": "Microsoft.Extensions.Configuration.CommandLine", + "version": "10.0.0", + "hash": "sha256-ldTiRFqnv8/pA0gl6UR+4DDGAIZOf9+MhaLWOuKOXOI=" + }, + { + "pname": "Microsoft.Extensions.Configuration.EnvironmentVariables", + "version": "10.0.0", + "hash": "sha256-UayfeqrAmNyfOkuhcBKfj8UpjQqV/ZMqWrDyxCSG1MA=" + }, + { + "pname": "Microsoft.Extensions.Configuration.FileExtensions", + "version": "10.0.0", + "hash": "sha256-rN+3rqrHiTaBfHgP+E4dA8Qm2cFJPfbEcd93yKLsqlQ=" + }, + { + "pname": "Microsoft.Extensions.Configuration.Json", + "version": "10.0.0", + "hash": "sha256-VCFukgsxiQ2MFGE6RDMFTGopBHbcZL2t0ER7ENaFXRY=" + }, + { + "pname": "Microsoft.Extensions.Configuration.UserSecrets", + "version": "10.0.0", + "hash": "sha256-uIoIpbDPRMfFqT8Y6j/wHbFCAly6H1N9qpxnomRbHIo=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection", + "version": "10.0.0", + "hash": "sha256-LYm9hVlo/R9c2aAKHsDYJ5vY9U0+3Jvclme3ou3BtvQ=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection", + "version": "10.0.1", + "hash": "sha256-RKOB+zPrtQNUbJY/1jR54rKOM8KHPgynPExxugku3I8=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection", + "version": "9.0.0", + "hash": "sha256-dAH52PPlTLn7X+1aI/7npdrDzMEFPMXRv4isV1a+14k=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection.Abstractions", + "version": "10.0.0", + "hash": "sha256-9iodXP39YqgxomnOPOxd/mzbG0JfOSXzFoNU3omT2Ps=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection.Abstractions", + "version": "10.0.1", + "hash": "sha256-zNUpau51ds7iQTaSUTFtyTHIUoinYc129W50CnufMdQ=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection.Abstractions", + "version": "9.0.0", + "hash": "sha256-CncVwkKZ5CsIG2O0+OM9qXuYXh3p6UGyueTHSLDVL+c=" + }, + { + "pname": "Microsoft.Extensions.DependencyModel", + "version": "10.0.1", + "hash": "sha256-XIj2jEURe25YA4RhBSuCqQpic0YP+TZaO/dbBPCjad8=" + }, + { + "pname": "Microsoft.Extensions.Diagnostics", + "version": "10.0.0", + "hash": "sha256-o7QkCisEcFIh227qBUfWFci2ns4cgEpLqpX7YvHGToQ=" + }, + { + "pname": "Microsoft.Extensions.Diagnostics.Abstractions", + "version": "10.0.0", + "hash": "sha256-cix7QxQ/g3sj6reXu3jn0cRv2RijzceaLLkchEGTt5E=" + }, + { + "pname": "Microsoft.Extensions.FileProviders.Abstractions", + "version": "10.0.0", + "hash": "sha256-CHDs2HCN8QcfuYQpgNVszZ5dfXFe4yS9K2GoQXecc20=" + }, + { + "pname": "Microsoft.Extensions.FileProviders.Physical", + "version": "10.0.0", + "hash": "sha256-2Rw/cwBO+/A3QY2IjN/c8Y0LhtC1qTBL7VdJiD1J2UQ=" + }, + { + "pname": "Microsoft.Extensions.FileSystemGlobbing", + "version": "10.0.0", + "hash": "sha256-ETfVTdsdBtp69EggLg/AARTQW4lLQYVdVldXIQrsjZA=" + }, + { + "pname": "Microsoft.Extensions.Hosting", + "version": "10.0.0", + "hash": "sha256-tY0g6lCy2yFprE+NmriiU6FGmwpzxV8LqE0ZFNKIwuM=" + }, + { + "pname": "Microsoft.Extensions.Hosting.Abstractions", + "version": "10.0.0", + "hash": "sha256-Sub3Thay/+eR84cEODk/nPh1oYIYtawvDX6r0duReqo=" + }, + { + "pname": "Microsoft.Extensions.Logging", + "version": "10.0.0", + "hash": "sha256-P+zPAadLL63k/GqK34/qChqQjY9aIRxZfxlB9lqsSrs=" + }, + { + "pname": "Microsoft.Extensions.Logging", + "version": "10.0.1", + "hash": "sha256-zuLP3SIpCToMOlIPOEv3Kq8y/minecd8k8GSkxFo13E=" + }, + { + "pname": "Microsoft.Extensions.Logging", + "version": "9.0.0", + "hash": "sha256-kR16c+N8nQrWeYLajqnXPg7RiXjZMSFLnKLEs4VfjcM=" + }, + { + "pname": "Microsoft.Extensions.Logging.Abstractions", + "version": "10.0.0", + "hash": "sha256-BnhgGZc01HwTSxogavq7Ueq4V7iMA3wPnbfRwQ4RhGk=" + }, + { + "pname": "Microsoft.Extensions.Logging.Abstractions", + "version": "10.0.1", + "hash": "sha256-NRk0feNE1fgi/hyO0AVDbSGJQRT+9yte6Lpm4Hz/2Bs=" + }, + { + "pname": "Microsoft.Extensions.Logging.Abstractions", + "version": "9.0.0", + "hash": "sha256-iBTs9twjWXFeERt4CErkIIcoJZU1jrd1RWCI8V5j7KU=" + }, + { + "pname": "Microsoft.Extensions.Logging.Configuration", + "version": "10.0.0", + "hash": "sha256-7/TWO1aq8hdgbcTEKDBWIjgSC9KpFN3kRnMX+12bOkU=" + }, + { + "pname": "Microsoft.Extensions.Logging.Console", + "version": "10.0.0", + "hash": "sha256-Rsblo7GSMTOr43876KkdvqS6wU9Typ1yoFK3tL50CBk=" + }, + { + "pname": "Microsoft.Extensions.Logging.Debug", + "version": "10.0.0", + "hash": "sha256-n/+KRVlsgKm17cJImaoAPHAObHpApW/hf6mMsQFGrvY=" + }, + { + "pname": "Microsoft.Extensions.Logging.EventLog", + "version": "10.0.0", + "hash": "sha256-4RJ2r80RtI3QUAhCAYbGnA0YcTmouqtZvQU9o3CrB38=" + }, + { + "pname": "Microsoft.Extensions.Logging.EventSource", + "version": "10.0.0", + "hash": "sha256-tqC13Qwkf4x14iGxOYlXTyeoN8KPVX+mupv2LdpzGHo=" + }, + { + "pname": "Microsoft.Extensions.Options", + "version": "10.0.0", + "hash": "sha256-j5MOqZSKeUtxxzmZjzZMGy0vELHdvPraqwTQQQNVsYA=" + }, + { + "pname": "Microsoft.Extensions.Options", + "version": "10.0.1", + "hash": "sha256-vBiSS1vqAC7eDrpJNT4H3A9qLikCSAepnNRbry0mKnk=" + }, + { + "pname": "Microsoft.Extensions.Options", + "version": "9.0.0", + "hash": "sha256-DT5euAQY/ItB5LPI8WIp6Dnd0lSvBRP35vFkOXC68ck=" + }, + { + "pname": "Microsoft.Extensions.Options.ConfigurationExtensions", + "version": "10.0.0", + "hash": "sha256-XGAs5DxMvWnmjX8dqRwKY0vsuS40SHvsfJqB1rO4L7k=" + }, + { + "pname": "Microsoft.Extensions.Primitives", + "version": "10.0.0", + "hash": "sha256-Dup08KcptLjlnpN5t5//+p4n8FUTgRAq4n/w1s6us+I=" + }, + { + "pname": "Microsoft.Extensions.Primitives", + "version": "10.0.1", + "hash": "sha256-EXmukq09erT4s+miQpBSYy3IY4HxxKlwEPL43/KoyEc=" + }, + { + "pname": "Microsoft.Extensions.Primitives", + "version": "9.0.0", + "hash": "sha256-ZNLusK1CRuq5BZYZMDqaz04PIKScE2Z7sS2tehU7EJs=" + }, + { + "pname": "Microsoft.NET.StringTools", + "version": "17.14.28", + "hash": "sha256-UzREyvDxkiOQ4cEOQ5UCjkwXGrldIDCcbefECTPGjXI=" + }, + { + "pname": "Microsoft.NET.StringTools", + "version": "17.7.2", + "hash": "sha256-hQE07TCgcQuyu9ZHVq2gPDb0+xe8ECJUdrgh17bJP4o=" + }, + { + "pname": "Mono.TextTemplating", + "version": "3.0.0", + "hash": "sha256-VlgGDvgNZb7MeBbIZ4DE2Nn/j2aD9k6XqNHnASUSDr0=" + }, + { + "pname": "Newtonsoft.Json", + "version": "13.0.3", + "hash": "sha256-hy/BieY4qxBWVVsDqqOPaLy1QobiIapkbrESm6v2PHc=" + }, + { + "pname": "Npgsql", + "version": "10.0.0", + "hash": "sha256-UVKz9dH/rVCCbMyFdqA31RYpht1XgDRLIqUy0Dp9ACQ=" + }, + { + "pname": "Npgsql.EntityFrameworkCore.PostgreSQL", + "version": "10.0.0", + "hash": "sha256-XIJxnTMektQVP1qtslEIGbmBGrIQsvjQjCMRTs9UIbg=" + }, + { + "pname": "System.CodeDom", + "version": "6.0.0", + "hash": "sha256-uPetUFZyHfxjScu5x4agjk9pIhbCkt5rG4Axj25npcQ=" + }, + { + "pname": "System.CodeDom", + "version": "7.0.0", + "hash": "sha256-7IPt39cY+0j0ZcRr/J45xPtEjnSXdUJ/5ai3ebaYQiE=" + }, + { + "pname": "System.CodeDom", + "version": "9.0.0", + "hash": "sha256-578lcBgswW0eM16r0EnJzfGodPx86RxxFoZHc2PSzsw=" + }, + { + "pname": "System.Composition", + "version": "9.0.0", + "hash": "sha256-FehOkQ2u1p8mQ0/wn3cZ+24HjhTLdck8VZYWA1CcgbM=" + }, + { + "pname": "System.Composition.AttributedModel", + "version": "9.0.0", + "hash": "sha256-a7y7H6zj+kmYkllNHA402DoVfY9IaqC3Ooys8Vzl24M=" + }, + { + "pname": "System.Composition.Convention", + "version": "9.0.0", + "hash": "sha256-tw4vE5JRQ60ubTZBbxoMPhtjOQCC3XoDFUH7NHO7o8U=" + }, + { + "pname": "System.Composition.Hosting", + "version": "9.0.0", + "hash": "sha256-oOxU+DPEEfMCuNLgW6wSkZp0JY5gYt44FJNnWt+967s=" + }, + { + "pname": "System.Composition.Runtime", + "version": "9.0.0", + "hash": "sha256-AyIe+di1TqwUBbSJ/sJ8Q8tzsnTN+VBdJw4K8xZz43s=" + }, + { + "pname": "System.Composition.TypedParts", + "version": "9.0.0", + "hash": "sha256-F5fpTUs3Rr7yP/NyIzr+Xn5NdTXXp8rrjBnF9UBBUog=" + }, + { + "pname": "System.Configuration.ConfigurationManager", + "version": "7.0.0", + "hash": "sha256-SgBexTTjRn23uuXvkzO0mz0qOfA23MiS4Wv+qepMLZE=" + }, + { + "pname": "System.Configuration.ConfigurationManager", + "version": "9.0.0", + "hash": "sha256-+pLnTC0YDP6Kjw5DVBiFrV/Q3x5is/+6N6vAtjvhVWk=" + }, + { + "pname": "System.Diagnostics.EventLog", + "version": "10.0.0", + "hash": "sha256-pN3tld926Fp0n5ZNjjzIJviUQrynlOAB0vhc1aoso6E=" + }, + { + "pname": "System.Diagnostics.EventLog", + "version": "9.0.0", + "hash": "sha256-tPvt6yoAp56sK/fe+/ei8M65eavY2UUhRnbrREj/Ems=" + }, + { + "pname": "System.Formats.Nrbf", + "version": "9.0.0", + "hash": "sha256-c4qf6CocQUZB0ySGQd8s15PXY7xfrjQqMGXxkwytKyw=" + }, + { + "pname": "System.Reflection.MetadataLoadContext", + "version": "7.0.0", + "hash": "sha256-VYl6SFD130K9Aw4eJH16ApJ9Sau4Xu0dcxEip2veuTI=" + }, + { + "pname": "System.Resources.Extensions", + "version": "9.0.0", + "hash": "sha256-y2gLEMuAy6QfEyNJxABC/ayMWGnwlpX735jsUQLktho=" + }, + { + "pname": "System.Security.Cryptography.Pkcs", + "version": "7.0.0", + "hash": "sha256-3J3vL9hcKSuZjT2GKappa2A9p2xJm1nH2asTNAl8ZCA=" + }, + { + "pname": "System.Security.Cryptography.Pkcs", + "version": "7.0.2", + "hash": "sha256-qS5Z/Yo8J+f3ExVX5Qkcpj1Z57oUZqz5rWa1h5bVpl8=" + }, + { + "pname": "System.Security.Cryptography.Pkcs", + "version": "9.0.0", + "hash": "sha256-AjG14mGeSc2Ka4QSelGBM1LrGBW3VJX60lnihKyJjGY=" + }, + { + "pname": "System.Security.Cryptography.ProtectedData", + "version": "9.0.0", + "hash": "sha256-gPgPU7k/InTqmXoRzQfUMEKL3QuTnOKowFqmXTnWaBQ=" + }, + { + "pname": "System.Security.Cryptography.Xml", + "version": "7.0.1", + "hash": "sha256-CH8+JVC8LyCSW75/6ZQ7ecMbSOAE1c16z4dG8JTp01w=" + }, + { + "pname": "System.Security.Cryptography.Xml", + "version": "9.0.0", + "hash": "sha256-SQJWwAFrJUddEU6JiZB52FM9tGjRlJAYH8oYVzG5IJU=" + }, + { + "pname": "System.Security.Permissions", + "version": "7.0.0", + "hash": "sha256-DOFoX+AKRmrkllykHheR8FfUXYx/Ph+I/HYuReQydXI=" + }, + { + "pname": "System.Security.Permissions", + "version": "9.0.0", + "hash": "sha256-BFrA9ottmQtLIAiKiGRbfSUpzNJwuaOCeFRDN4Z0ku0=" + }, + { + "pname": "System.Windows.Extensions", + "version": "9.0.0", + "hash": "sha256-RErD+Ju15qtnwdwB7E0SjjJGAnhXwJyC7UPcl24Z3Vs=" + } +] diff --git a/extra/admin-api/Spacebar.ConfigModel/Class1.cs b/extra/admin-api/Spacebar.ConfigModel/Class1.cs new file mode 100644
index 00000000..948ca91a --- /dev/null +++ b/extra/admin-api/Spacebar.ConfigModel/Class1.cs
@@ -0,0 +1,64 @@ +using System.Text.Json.Serialization; + +namespace Spacebar.ConfigModel; + +public class Config +{ + [JsonPropertyName("admin")] public EndpointConfig Admin { get; set; } = null!; + [JsonPropertyName("api")] public EndpointConfig Api { get; set; } = null!; + [JsonPropertyName("gateway")] public EndpointConfig Gateway { get; set; } = null!; + [JsonPropertyName("cdn")] public EndpointConfig Cdn { get; set; } = null!; + + public Config ReadFromKv(Dictionary<string, object?> kv) + { + // to object + + + foreach (var (key, value) in kv) + { + switch (key.Split('_', 2)[0]) + { + default: + Console.WriteLine($"Unrecognized config key prefix: {key}"); + continue; + } + } + + return this; + } +} + +public class EndpointConfig +{ + [JsonPropertyName("endpointPrivate")] public string? EndpointPrivate { get; set; } + [JsonPropertyName("endpointPublic")] public string? EndpointPublic { get; set; } + + public EndpointConfig ReadFromKv(Dictionary<string, object?> kv, string prefix) + { + foreach (var (key, value) in kv) + { + if (!key.StartsWith(prefix + "_")) continue; + var subKey = key[(prefix + "_").Length..]; + switch (subKey) + { + case "ENDPOINT_PRIVATE": + EndpointPrivate = value?.ToString(); + break; + case "ENDPOINT_PUBLIC": + EndpointPublic = value?.ToString(); + break; + default: + Console.WriteLine($"Unrecognized config key: {key}"); + break; + } + } + + return this; + } +} + +public class ApiConfig : EndpointConfig +{ + [JsonPropertyName("activeVersions")] public List<string> ActiveVersions { get; set; } = null!; + [JsonPropertyName("defaultVersion")] public string DefaultVersion { get; set; } = null!; +} \ No newline at end of file diff --git a/extra/admin-api/Spacebar.ConfigModel/Extensions/JsonExtensions.cs b/extra/admin-api/Spacebar.ConfigModel/Extensions/JsonExtensions.cs new file mode 100644
index 00000000..20ae7331 --- /dev/null +++ b/extra/admin-api/Spacebar.ConfigModel/Extensions/JsonExtensions.cs
@@ -0,0 +1,119 @@ +using System.Text.Json; +using System.Text.Json.Nodes; + +namespace Spacebar.ConfigModel.Extensions; + +public static class JsonExtensions +{ + extension(Dictionary<string, string?> kv) + { + public JsonObject ToNestedJsonObject(string path = "$") + { + JsonObject root = new(); + // group by prefix + var groups = kv.GroupBy(kvItem => kvItem.Key.Split('_', 2)[0]); + foreach (var group in groups) + { + var prefix = group.Key; + + if (group.Count() == 1 && !group.First().Key.Contains('_')) + { + root[prefix] = group.First().Value == null ? null : JsonNode.Parse(group.First().Value!); + Console.WriteLine("[CONFIG] Single Key: {0}.{1}, Value: {2}", path, prefix, root[prefix]?.ToJsonString()); + continue; + } + + var nestedValues = group.Where(x => x.Key.Contains('_')).ToDictionary(kvItem => kvItem.Key[(prefix.Length + 1)..], kvItem => kvItem.Value); + + if (nestedValues.All(x => int.TryParse(x.Key.Split('_')[0], out _))) + { + Console.WriteLine("[CONFIG] Array Key Detected: {0}.{1}", path, prefix); + var arr = new JsonArray(); + if (nestedValues.All(x => x.Key.Contains('_'))) + { + var objs = nestedValues.GroupBy(x => x.Key.Split('_', 2)[0]); + foreach (var objGroup in objs.OrderBy(x => int.Parse(x.Key))) + { + var i = objGroup.Key; + var objValues = objGroup.ToDictionary(kvItem => kvItem.Key[(i.Length + 1)..], kvItem => kvItem.Value); + var obj = objValues.ToNestedJsonObject($"{path}.{prefix}[{i}]"); + arr.Add(obj); + Console.WriteLine($" - ${path}.{prefix}[{i}]: {obj.ToJsonString()}"); + } + } + else + foreach (var (i, arrayItem) in nestedValues.OrderBy(x => int.Parse(x.Key))) + { + arr.Add(arrayItem == null ? null : JsonNode.Parse(arrayItem)); + Console.WriteLine($" - {path}.{prefix}[{i}]: {arrayItem}"); + } + + root[prefix] = arr; + } + else + { + root[prefix] = nestedValues.ToNestedJsonObject($"{path}.{prefix}"); + } + } + + return root; + } + } + + extension(JsonObject jo) + { + public Dictionary<string, string?> ToFlatKv(string path = "$") + { + var kv = new Dictionary<string, string?>(); + var jso = new JsonSerializerOptions() + { + Encoder = System.Text.Encodings.Web.JavaScriptEncoder.UnsafeRelaxedJsonEscaping + }; + + foreach (var (key, value) in jo) + { + var currentPath = path == "$" ? key : $"{path}_{key}"; + + switch (value) + { + case JsonObject nestedObj: + var nestedKv = nestedObj.ToFlatKv(currentPath); + foreach (var (nestedKey, nestedValue) in nestedKv) + { + kv[nestedKey] = nestedValue; + } + + break; + case JsonArray arr: + for (int i = 0; i < arr.Count; i++) + { + var item = arr[i]; + var itemPath = $"{currentPath}_{i}"; + switch (item) + { + case JsonObject arrObj: + var arrObjKv = arrObj.ToFlatKv(itemPath); + foreach (var (arrObjKey, arrObjValue) in arrObjKv) + { + kv[arrObjKey] = arrObjValue; + } + + break; + default: + kv[itemPath] = item?.ToJsonString(jso); + break; + } + } + + break; + default: + Console.WriteLine(value?.GetType()); + kv[currentPath] = value?.ToJsonString(jso); + break; + } + } + + return kv; + } + } +} \ No newline at end of file diff --git a/extra/admin-api/Spacebar.ConfigModel/Spacebar.ConfigModel.csproj b/extra/admin-api/Spacebar.ConfigModel/Spacebar.ConfigModel.csproj new file mode 100644
index 00000000..237d6616 --- /dev/null +++ b/extra/admin-api/Spacebar.ConfigModel/Spacebar.ConfigModel.csproj
@@ -0,0 +1,9 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <TargetFramework>net10.0</TargetFramework> + <ImplicitUsings>enable</ImplicitUsings> + <Nullable>enable</Nullable> + </PropertyGroup> + +</Project> diff --git a/extra/admin-api/Spacebar.Db/deps.json b/extra/admin-api/Spacebar.Db/deps.json new file mode 100644
index 00000000..c978dd1b --- /dev/null +++ b/extra/admin-api/Spacebar.Db/deps.json
@@ -0,0 +1,362 @@ +[ + { + "pname": "Humanizer.Core", + "version": "2.14.1", + "hash": "sha256-EXvojddPu+9JKgOG9NSQgUTfWq1RpOYw7adxDPKDJ6o=" + }, + { + "pname": "Microsoft.Build", + "version": "17.7.2", + "hash": "sha256-k35nFdPxC8t0zAltVSmAJtsepp/ubNIjPOsJ6k8jSqM=" + }, + { + "pname": "Microsoft.Build.Framework", + "version": "17.14.28", + "hash": "sha256-7RzEyIipumafwLW1xN1q23114NafG6PT0+RADElNsiM=" + }, + { + "pname": "Microsoft.Build.Framework", + "version": "17.7.2", + "hash": "sha256-fNWmVQYFTJDveAGmxEdNqJRAczV6+Ep8RA8clKBJFqw=" + }, + { + "pname": "Microsoft.Build.Tasks.Core", + "version": "17.14.28", + "hash": "sha256-M9zRXYijH2HtLlRXbrUK1a1LQ9zkT+DC9ZmMiiVZwv0=" + }, + { + "pname": "Microsoft.Build.Tasks.Core", + "version": "17.7.2", + "hash": "sha256-OrV/qWgZHzGlNUmaSfX5wDBcmg1aQeF3/OUHpSH+uZU=" + }, + { + "pname": "Microsoft.Build.Utilities.Core", + "version": "17.14.28", + "hash": "sha256-VFfO+UpyTpw2X/qiCCOCYzvMLuu7B+XVSSpJZQLkPzU=" + }, + { + "pname": "Microsoft.Build.Utilities.Core", + "version": "17.7.2", + "hash": "sha256-oatF0KfuP1nb4+OLNKg2/R/ZLO4EiACaO5leaxMEY4A=" + }, + { + "pname": "Microsoft.CodeAnalysis.Analyzers", + "version": "3.11.0", + "hash": "sha256-hQ2l6E6PO4m7i+ZsfFlEx+93UsLPo4IY3wDkNG11/Sw=" + }, + { + "pname": "Microsoft.CodeAnalysis.Common", + "version": "4.14.0", + "hash": "sha256-ne/zxH3GqoGB4OemnE8oJElG5mai+/67ASaKqwmL2BE=" + }, + { + "pname": "Microsoft.CodeAnalysis.CSharp", + "version": "4.14.0", + "hash": "sha256-5Mzj3XkYYLkwDWh17r1NEXSbXwwWYQPiOmkSMlgo1JY=" + }, + { + "pname": "Microsoft.CodeAnalysis.CSharp.Workspaces", + "version": "4.14.0", + "hash": "sha256-aNbV1a0yYBs0fpQawG6LXcbyoE8en+YFSpV5vcYE4J4=" + }, + { + "pname": "Microsoft.CodeAnalysis.Workspaces.Common", + "version": "4.14.0", + "hash": "sha256-0YfeaJe01WBUm9avy4a8FacQJXA1NkpnDpiXu4yz88I=" + }, + { + "pname": "Microsoft.CodeAnalysis.Workspaces.MSBuild", + "version": "4.14.0", + "hash": "sha256-5SJfpRqzqCK0UbkmAaJpA/r1XJb0YAriMMeQHYC4d+o=" + }, + { + "pname": "Microsoft.EntityFrameworkCore", + "version": "10.0.0", + "hash": "sha256-xfgrlxhtOkQwF5Q7j8gSm41URJiH8IuJ/T/Dh88++hE=" + }, + { + "pname": "Microsoft.EntityFrameworkCore", + "version": "10.0.1", + "hash": "sha256-IxA+/nDA6hZkUm9bDT6bRu8+9qeHA3gbTvIhR9Ncg4w=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Abstractions", + "version": "10.0.0", + "hash": "sha256-UDgZbRQcGPaKsE53EH6bvJiv+Q4KSxAbnsVhTVFGG4Q=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Abstractions", + "version": "10.0.1", + "hash": "sha256-FMGXhAAgcVSedV0/GmUVqAwoiRzFJil9mQYr6eNgowg=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Analyzers", + "version": "10.0.0", + "hash": "sha256-7Q0jYJO50cqGI+u6gLpootbB8GZvgsgtg0F9FZI1jig=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Analyzers", + "version": "10.0.1", + "hash": "sha256-O949vr98WoSRXtiIo0ZI6dz2cibIBKbiuC+mQOe9bV4=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Design", + "version": "10.0.1", + "hash": "sha256-GGNZIGNEMhSGaMRFkRN4bOuCUBs5YVnX8klXarm319U=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Relational", + "version": "10.0.0", + "hash": "sha256-vOP2CE5YA551BlpbOuIy6RuAiAEPEpCVS1cEE33/zN4=" + }, + { + "pname": "Microsoft.EntityFrameworkCore.Relational", + "version": "10.0.1", + "hash": "sha256-zLgxr/iW9HP8Fip1IDgr7X0Ar8OWKDvVmoEt65gG6VY=" + }, + { + "pname": "Microsoft.Extensions.Caching.Abstractions", + "version": "10.0.1", + "hash": "sha256-qVLAEqxPK/dNq+z1a6D9NqdcSg/18sfzZhlBWMkqV/A=" + }, + { + "pname": "Microsoft.Extensions.Caching.Memory", + "version": "10.0.0", + "hash": "sha256-AMgDSm1k6q0s17spGtyR5q8nAqUFDOxl/Fe38f9M+d4=" + }, + { + "pname": "Microsoft.Extensions.Caching.Memory", + "version": "10.0.1", + "hash": "sha256-Qb7xK6VEZDas0lJFaW1suKdFjtkSYwLHHxkQEfWIU2A=" + }, + { + "pname": "Microsoft.Extensions.Configuration.Abstractions", + "version": "10.0.1", + "hash": "sha256-s4PDp+vtzdxKIxnOT3+dDRoTDopyl8kqmmw4KDnkOtQ=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection", + "version": "10.0.1", + "hash": "sha256-RKOB+zPrtQNUbJY/1jR54rKOM8KHPgynPExxugku3I8=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection", + "version": "9.0.0", + "hash": "sha256-dAH52PPlTLn7X+1aI/7npdrDzMEFPMXRv4isV1a+14k=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection.Abstractions", + "version": "10.0.1", + "hash": "sha256-zNUpau51ds7iQTaSUTFtyTHIUoinYc129W50CnufMdQ=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection.Abstractions", + "version": "9.0.0", + "hash": "sha256-CncVwkKZ5CsIG2O0+OM9qXuYXh3p6UGyueTHSLDVL+c=" + }, + { + "pname": "Microsoft.Extensions.DependencyModel", + "version": "10.0.1", + "hash": "sha256-XIj2jEURe25YA4RhBSuCqQpic0YP+TZaO/dbBPCjad8=" + }, + { + "pname": "Microsoft.Extensions.Logging", + "version": "10.0.0", + "hash": "sha256-P+zPAadLL63k/GqK34/qChqQjY9aIRxZfxlB9lqsSrs=" + }, + { + "pname": "Microsoft.Extensions.Logging", + "version": "10.0.1", + "hash": "sha256-zuLP3SIpCToMOlIPOEv3Kq8y/minecd8k8GSkxFo13E=" + }, + { + "pname": "Microsoft.Extensions.Logging", + "version": "9.0.0", + "hash": "sha256-kR16c+N8nQrWeYLajqnXPg7RiXjZMSFLnKLEs4VfjcM=" + }, + { + "pname": "Microsoft.Extensions.Logging.Abstractions", + "version": "10.0.0", + "hash": "sha256-BnhgGZc01HwTSxogavq7Ueq4V7iMA3wPnbfRwQ4RhGk=" + }, + { + "pname": "Microsoft.Extensions.Logging.Abstractions", + "version": "10.0.1", + "hash": "sha256-NRk0feNE1fgi/hyO0AVDbSGJQRT+9yte6Lpm4Hz/2Bs=" + }, + { + "pname": "Microsoft.Extensions.Logging.Abstractions", + "version": "9.0.0", + "hash": "sha256-iBTs9twjWXFeERt4CErkIIcoJZU1jrd1RWCI8V5j7KU=" + }, + { + "pname": "Microsoft.Extensions.Options", + "version": "10.0.1", + "hash": "sha256-vBiSS1vqAC7eDrpJNT4H3A9qLikCSAepnNRbry0mKnk=" + }, + { + "pname": "Microsoft.Extensions.Options", + "version": "9.0.0", + "hash": "sha256-DT5euAQY/ItB5LPI8WIp6Dnd0lSvBRP35vFkOXC68ck=" + }, + { + "pname": "Microsoft.Extensions.Primitives", + "version": "10.0.1", + "hash": "sha256-EXmukq09erT4s+miQpBSYy3IY4HxxKlwEPL43/KoyEc=" + }, + { + "pname": "Microsoft.Extensions.Primitives", + "version": "9.0.0", + "hash": "sha256-ZNLusK1CRuq5BZYZMDqaz04PIKScE2Z7sS2tehU7EJs=" + }, + { + "pname": "Microsoft.NET.StringTools", + "version": "17.14.28", + "hash": "sha256-UzREyvDxkiOQ4cEOQ5UCjkwXGrldIDCcbefECTPGjXI=" + }, + { + "pname": "Microsoft.NET.StringTools", + "version": "17.7.2", + "hash": "sha256-hQE07TCgcQuyu9ZHVq2gPDb0+xe8ECJUdrgh17bJP4o=" + }, + { + "pname": "Mono.TextTemplating", + "version": "3.0.0", + "hash": "sha256-VlgGDvgNZb7MeBbIZ4DE2Nn/j2aD9k6XqNHnASUSDr0=" + }, + { + "pname": "Newtonsoft.Json", + "version": "13.0.3", + "hash": "sha256-hy/BieY4qxBWVVsDqqOPaLy1QobiIapkbrESm6v2PHc=" + }, + { + "pname": "Npgsql", + "version": "10.0.0", + "hash": "sha256-UVKz9dH/rVCCbMyFdqA31RYpht1XgDRLIqUy0Dp9ACQ=" + }, + { + "pname": "Npgsql.EntityFrameworkCore.PostgreSQL", + "version": "10.0.0", + "hash": "sha256-XIJxnTMektQVP1qtslEIGbmBGrIQsvjQjCMRTs9UIbg=" + }, + { + "pname": "System.CodeDom", + "version": "6.0.0", + "hash": "sha256-uPetUFZyHfxjScu5x4agjk9pIhbCkt5rG4Axj25npcQ=" + }, + { + "pname": "System.CodeDom", + "version": "7.0.0", + "hash": "sha256-7IPt39cY+0j0ZcRr/J45xPtEjnSXdUJ/5ai3ebaYQiE=" + }, + { + "pname": "System.CodeDom", + "version": "9.0.0", + "hash": "sha256-578lcBgswW0eM16r0EnJzfGodPx86RxxFoZHc2PSzsw=" + }, + { + "pname": "System.Composition", + "version": "9.0.0", + "hash": "sha256-FehOkQ2u1p8mQ0/wn3cZ+24HjhTLdck8VZYWA1CcgbM=" + }, + { + "pname": "System.Composition.AttributedModel", + "version": "9.0.0", + "hash": "sha256-a7y7H6zj+kmYkllNHA402DoVfY9IaqC3Ooys8Vzl24M=" + }, + { + "pname": "System.Composition.Convention", + "version": "9.0.0", + "hash": "sha256-tw4vE5JRQ60ubTZBbxoMPhtjOQCC3XoDFUH7NHO7o8U=" + }, + { + "pname": "System.Composition.Hosting", + "version": "9.0.0", + "hash": "sha256-oOxU+DPEEfMCuNLgW6wSkZp0JY5gYt44FJNnWt+967s=" + }, + { + "pname": "System.Composition.Runtime", + "version": "9.0.0", + "hash": "sha256-AyIe+di1TqwUBbSJ/sJ8Q8tzsnTN+VBdJw4K8xZz43s=" + }, + { + "pname": "System.Composition.TypedParts", + "version": "9.0.0", + "hash": "sha256-F5fpTUs3Rr7yP/NyIzr+Xn5NdTXXp8rrjBnF9UBBUog=" + }, + { + "pname": "System.Configuration.ConfigurationManager", + "version": "7.0.0", + "hash": "sha256-SgBexTTjRn23uuXvkzO0mz0qOfA23MiS4Wv+qepMLZE=" + }, + { + "pname": "System.Configuration.ConfigurationManager", + "version": "9.0.0", + "hash": "sha256-+pLnTC0YDP6Kjw5DVBiFrV/Q3x5is/+6N6vAtjvhVWk=" + }, + { + "pname": "System.Diagnostics.EventLog", + "version": "9.0.0", + "hash": "sha256-tPvt6yoAp56sK/fe+/ei8M65eavY2UUhRnbrREj/Ems=" + }, + { + "pname": "System.Formats.Nrbf", + "version": "9.0.0", + "hash": "sha256-c4qf6CocQUZB0ySGQd8s15PXY7xfrjQqMGXxkwytKyw=" + }, + { + "pname": "System.Reflection.MetadataLoadContext", + "version": "7.0.0", + "hash": "sha256-VYl6SFD130K9Aw4eJH16ApJ9Sau4Xu0dcxEip2veuTI=" + }, + { + "pname": "System.Resources.Extensions", + "version": "9.0.0", + "hash": "sha256-y2gLEMuAy6QfEyNJxABC/ayMWGnwlpX735jsUQLktho=" + }, + { + "pname": "System.Security.Cryptography.Pkcs", + "version": "7.0.0", + "hash": "sha256-3J3vL9hcKSuZjT2GKappa2A9p2xJm1nH2asTNAl8ZCA=" + }, + { + "pname": "System.Security.Cryptography.Pkcs", + "version": "7.0.2", + "hash": "sha256-qS5Z/Yo8J+f3ExVX5Qkcpj1Z57oUZqz5rWa1h5bVpl8=" + }, + { + "pname": "System.Security.Cryptography.Pkcs", + "version": "9.0.0", + "hash": "sha256-AjG14mGeSc2Ka4QSelGBM1LrGBW3VJX60lnihKyJjGY=" + }, + { + "pname": "System.Security.Cryptography.ProtectedData", + "version": "9.0.0", + "hash": "sha256-gPgPU7k/InTqmXoRzQfUMEKL3QuTnOKowFqmXTnWaBQ=" + }, + { + "pname": "System.Security.Cryptography.Xml", + "version": "7.0.1", + "hash": "sha256-CH8+JVC8LyCSW75/6ZQ7ecMbSOAE1c16z4dG8JTp01w=" + }, + { + "pname": "System.Security.Cryptography.Xml", + "version": "9.0.0", + "hash": "sha256-SQJWwAFrJUddEU6JiZB52FM9tGjRlJAYH8oYVzG5IJU=" + }, + { + "pname": "System.Security.Permissions", + "version": "7.0.0", + "hash": "sha256-DOFoX+AKRmrkllykHheR8FfUXYx/Ph+I/HYuReQydXI=" + }, + { + "pname": "System.Security.Permissions", + "version": "9.0.0", + "hash": "sha256-BFrA9ottmQtLIAiKiGRbfSUpzNJwuaOCeFRDN4Z0ku0=" + }, + { + "pname": "System.Windows.Extensions", + "version": "9.0.0", + "hash": "sha256-RErD+Ju15qtnwdwB7E0SjjJGAnhXwJyC7UPcl24Z3Vs=" + } +] diff --git a/extra/admin-api/SpacebarAdminAPI.sln b/extra/admin-api/SpacebarAdminAPI.sln
index 09e3a696..723939d0 100644 --- a/extra/admin-api/SpacebarAdminAPI.sln +++ b/extra/admin-api/SpacebarAdminAPI.sln
@@ -5,15 +5,15 @@ VisualStudioVersion = 17.0.31903.59 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spacebar.Db", "Spacebar.Db\Spacebar.Db.csproj", "{524849DF-93BC-4632-B6C2-D05552C13887}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spacebar.AdminAPI", "Spacebar.AdminAPI\Spacebar.AdminAPI.csproj", "{00E58C53-0AC1-4113-8CCF-D299861EA8D3}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spacebar.AdminApi", "Spacebar.AdminApi\Spacebar.AdminApi.csproj", "{00E58C53-0AC1-4113-8CCF-D299861EA8D3}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Utilities", "Utilities", "{04787943-EBB6-4DE4-96D5-4CFB4A2CEE99}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spacebar.RabbitMqUtilities", "Utilities\Spacebar.RabbitMqUtilities\Spacebar.RabbitMqUtilities.csproj", "{F4E179D1-A3EB-4A1D-9C11-E7019F4B1EE2}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spacebar.AdminAPITest", "Utilities\Spacebar.AdminAPITest\Spacebar.AdminAPITest.csproj", "{374314B2-7149-4316-8750-4E1E7BF6C3B4}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spacebar.AdminApiTest", "Utilities\Spacebar.AdminApiTest\Spacebar.AdminApiTest.csproj", "{374314B2-7149-4316-8750-4E1E7BF6C3B4}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spacebar.AdminAPI.TestClient", "Utilities\Spacebar.AdminAPI.TestClient\Spacebar.AdminAPI.TestClient.csproj", "{498DAD05-336E-4851-ABD8-4E7CCA8312B0}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spacebar.AdminApi.TestClient", "Utilities\Spacebar.AdminApi.TestClient\Spacebar.AdminApi.TestClient.csproj", "{498DAD05-336E-4851-ABD8-4E7CCA8312B0}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spacebar.AdminApi.Models", "Spacebar.AdminApi.Models\Spacebar.AdminApi.Models.csproj", "{5F138C70-EAFA-4C7C-8B90-EFB9624B235C}" EndProject @@ -21,6 +21,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spacebar.AdminApi.PrepareTe EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spacebar.CleanSettingsRows", "Spacebar.CleanSettingsRows\Spacebar.CleanSettingsRows.csproj", "{9B41FAC1-4427-487C-BF3F-69554848DEBF}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spacebar.ConfigModel", "Spacebar.ConfigModel\Spacebar.ConfigModel.csproj", "{EC5C6A71-458A-4A1D-BE96-CCB84FF4AF1B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConfigTest", "ConfigTest\ConfigTest.csproj", "{3BB51E17-8D3E-42FE-AAE6-C33DA5D8D323}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -62,6 +66,14 @@ Global {9B41FAC1-4427-487C-BF3F-69554848DEBF}.Debug|Any CPU.Build.0 = Debug|Any CPU {9B41FAC1-4427-487C-BF3F-69554848DEBF}.Release|Any CPU.ActiveCfg = Release|Any CPU {9B41FAC1-4427-487C-BF3F-69554848DEBF}.Release|Any CPU.Build.0 = Release|Any CPU + {EC5C6A71-458A-4A1D-BE96-CCB84FF4AF1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EC5C6A71-458A-4A1D-BE96-CCB84FF4AF1B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EC5C6A71-458A-4A1D-BE96-CCB84FF4AF1B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EC5C6A71-458A-4A1D-BE96-CCB84FF4AF1B}.Release|Any CPU.Build.0 = Release|Any CPU + {3BB51E17-8D3E-42FE-AAE6-C33DA5D8D323}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3BB51E17-8D3E-42FE-AAE6-C33DA5D8D323}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3BB51E17-8D3E-42FE-AAE6-C33DA5D8D323}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3BB51E17-8D3E-42FE-AAE6-C33DA5D8D323}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(NestedProjects) = preSolution {F4E179D1-A3EB-4A1D-9C11-E7019F4B1EE2} = {04787943-EBB6-4DE4-96D5-4CFB4A2CEE99} diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/App.razor b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/App.razor
index c7730d1c..c7730d1c 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/App.razor +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/App.razor
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Classes/OpenAPI/OpenAPISchema.cs b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Classes/OpenAPI/OpenAPISchema.cs
index 8e399302..8995dee5 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Classes/OpenAPI/OpenAPISchema.cs +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Classes/OpenAPI/OpenAPISchema.cs
@@ -2,7 +2,7 @@ using System.Collections.Frozen; using System.Text.Json; using System.Text.Json.Serialization; -namespace Spacebar.AdminAPI.TestClient.Classes.OpenAPI; +namespace Spacebar.AdminApi.TestClient.Classes.OpenAPI; public class OpenApiSchema { [JsonPropertyName("openapi")] diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Layout/MainLayout.razor b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Layout/MainLayout.razor
index e7554be8..e7554be8 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Layout/MainLayout.razor +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Layout/MainLayout.razor
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Layout/MainLayout.razor.css b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Layout/MainLayout.razor.css
index c538ac3b..c538ac3b 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Layout/MainLayout.razor.css +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Layout/MainLayout.razor.css
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Layout/NavMenu.razor b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Layout/NavMenu.razor
index c96fa30c..96deb070 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Layout/NavMenu.razor +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Layout/NavMenu.razor
@@ -1,6 +1,6 @@ <div class="top-row ps-3 navbar navbar-dark"> <div class="container-fluid"> - <a class="navbar-brand" href="">Spacebar.AdminAPI.TestClient</a> + <a class="navbar-brand" href="">Spacebar.AdminApi.TestClient</a> <button title="Navigation menu" class="navbar-toggler" @onclick="ToggleNavMenu"> <span class="navbar-toggler-icon"></span> </button> diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Layout/NavMenu.razor.css b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Layout/NavMenu.razor.css
index 617b89cc..617b89cc 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Layout/NavMenu.razor.css +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Layout/NavMenu.razor.css
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/Guilds.razor b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/Guilds.razor
index 454808b4..9a376d24 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/Guilds.razor +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/Guilds.razor
@@ -2,7 +2,7 @@ @using System.Net.Http.Headers @using System.Reflection @using Spacebar.AdminApi.Models -@using Spacebar.AdminAPI.TestClient.Services +@using Spacebar.AdminApi.TestClient.Services @using ArcaneLibs.Blazor.Components @using ArcaneLibs.Extensions @inject Config Config diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/Home.razor b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/Home.razor
index 812a6152..275ca146 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/Home.razor +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/Home.razor
@@ -1,6 +1,6 @@ @page "/" @using System.Net.Http.Headers -@using Spacebar.AdminAPI.TestClient.Services +@using Spacebar.AdminApi.TestClient.Services @inject Config Config @inject ILocalStorageService LocalStorage diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/HttpTestClient.razor b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/HttpTestClient.razor
index 0be77a99..b70f4efb 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/HttpTestClient.razor +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/HttpTestClient.razor
@@ -1,11 +1,10 @@ @page "/HttpTestClient" -@using System.Collections.Immutable @using System.Text.Json @using ArcaneLibs.Blazor.Components @using ArcaneLibs.Extensions -@using Spacebar.AdminAPI.TestClient.Classes.OpenAPI -@using Spacebar.AdminAPI.TestClient.Pages.HttpTestClientParts -@using Spacebar.AdminAPI.TestClient.Services +@using Spacebar.AdminApi.TestClient.Classes.OpenAPI +@using Spacebar.AdminApi.TestClient.Pages.HttpTestClientParts +@using Spacebar.AdminApi.TestClient.Services @inject Config Config <h3>HttpTestClient</h3> diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/HttpTestClientParts/OpenAPIParameterDescription.razor b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/HttpTestClientParts/OpenAPIParameterDescription.razor
index 89222453..8f0667d0 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/HttpTestClientParts/OpenAPIParameterDescription.razor +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/HttpTestClientParts/OpenAPIParameterDescription.razor
@@ -1,5 +1,5 @@ @using ArcaneLibs.Extensions -@using Spacebar.AdminAPI.TestClient.Classes.OpenAPI +@using Spacebar.AdminApi.TestClient.Classes.OpenAPI <span title="@Parameter.ToJson()">@Summary</span> @if (Parameter.Name != Parameter.Description && !string.IsNullOrWhiteSpace(Parameter.Description)) { <i> - @Parameter.Description</i> diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/Login.razor b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/Login.razor
index ca1205ed..196d7336 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/Login.razor +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/Login.razor
@@ -1,6 +1,6 @@ @page "/Login" @using System.Text.Json.Nodes -@using Spacebar.AdminAPI.TestClient.Services +@using Spacebar.AdminApi.TestClient.Services @inject ILocalStorageService LocalStorage @inject Config Config @inject NavigationManager Navigation diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/Media/Index.razor b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/Media/Index.razor
index 76621e74..76621e74 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/Media/Index.razor +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/Media/Index.razor
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/Media/Users.razor b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/Media/Users.razor
index 81008a25..f9b43942 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/Media/Users.razor +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/Media/Users.razor
@@ -2,7 +2,7 @@ @using System.Net.Http.Headers @using System.Reflection @using Spacebar.AdminApi.Models -@using Spacebar.AdminAPI.TestClient.Services +@using Spacebar.AdminApi.TestClient.Services @using ArcaneLibs.Blazor.Components @inject Config Config @inject ILocalStorageService LocalStorage diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/Users.razor b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/Users.razor
index c0e67867..b12a5c16 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/Users.razor +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/Users.razor
@@ -2,7 +2,7 @@ @using System.Net.Http.Headers @using System.Reflection @using Spacebar.AdminApi.Models -@using Spacebar.AdminAPI.TestClient.Services +@using Spacebar.AdminApi.TestClient.Services @using ArcaneLibs.Blazor.Components @using ArcaneLibs.Extensions @inject Config Config diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/UsersDelete.razor b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/UsersDelete.razor
index 98a3e0fc..9d527621 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/UsersDelete.razor +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/UsersDelete.razor
@@ -4,7 +4,7 @@ @using System.Text.Json.Nodes @using ArcaneLibs.Extensions @using Spacebar.AdminApi.Models -@using Spacebar.AdminAPI.TestClient.Services +@using Spacebar.AdminApi.TestClient.Services @inject Config Config <h3>UsersDelete - @Id</h3> diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Program.cs b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Program.cs
index 0e3035a2..d28066da 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Program.cs +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Program.cs
@@ -5,8 +5,8 @@ using System.Text.Json.Serialization; using Blazored.LocalStorage; using Microsoft.AspNetCore.Components.Web; using Microsoft.AspNetCore.Components.WebAssembly.Hosting; -using Spacebar.AdminAPI.TestClient; -using Spacebar.AdminAPI.TestClient.Services; +using Spacebar.AdminApi.TestClient; +using Spacebar.AdminApi.TestClient.Services; var builder = WebAssemblyHostBuilder.CreateDefault(args); builder.RootComponents.Add<App>("#app"); diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Properties/launchSettings.json b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Properties/launchSettings.json
index c346464e..c346464e 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Properties/launchSettings.json +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Properties/launchSettings.json
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Services/Config.cs b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Services/Config.cs
index 08fc1fb0..3b045a49 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Services/Config.cs +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Services/Config.cs
@@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace Spacebar.AdminAPI.TestClient.Services; +namespace Spacebar.AdminApi.TestClient.Services; public class Config { [JsonPropertyName("api_url")] diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Services/StreamingHttpClient.cs b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Services/StreamingHttpClient.cs
index 67dc673e..0f2ade71 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Services/StreamingHttpClient.cs +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Services/StreamingHttpClient.cs
@@ -11,7 +11,7 @@ using System.Text.Json.Serialization; using ArcaneLibs; using ArcaneLibs.Extensions; -namespace Spacebar.AdminAPI.TestClient.Services; +namespace Spacebar.AdminApi.TestClient.Services; #if SINGLE_HTTPCLIENT // TODO: Add URI wrapper for @@ -83,7 +83,7 @@ public class StreamingHttpClient { request.RequestUri = new Uri(BaseAddress ?? throw new InvalidOperationException("Relative URI passed, but no BaseAddress is specified!"), request.RequestUri); swWait.Stop(); var swExec = Stopwatch.StartNew(); - + foreach (var (key, value) in AdditionalQueryParameters) request.RequestUri = request.RequestUri.AddQuery(key, value); foreach (var (key, value) in DefaultRequestHeaders) { if (request.Headers.Contains(key)) continue; @@ -110,6 +110,7 @@ public class StreamingHttpClient { else if (!e.ToString().StartsWith("TypeError: NetworkError")) Console.WriteLine( $"Failed to send request {request.Method} {BaseAddress}{request.RequestUri} ({Util.BytesToString(request.Content?.Headers.ContentLength ?? 0)}):\n{e}"); + throw; } #if SYNC_HTTPCLIENT @@ -148,19 +149,19 @@ public class StreamingHttpClient { //retry on gateway timeout // if (responseMessage.StatusCode == HttpStatusCode.GatewayTimeout) { - // request.ResetSendStatus(); - // return await SendAsync(request, cancellationToken); + // request.ResetSendStatus(); + // return await SendAsync(request, cancellationToken); // } //error handling var content = await responseMessage.Content.ReadAsStringAsync(cancellationToken); if (content.Length == 0) throw new DataException("Content was empty"); - // throw new MatrixException() { - // ErrorCode = "M_UNKNOWN", - // Error = "Unknown error, server returned no content" - // }; - + // throw new MatrixException() { + // ErrorCode = "M_UNKNOWN", + // Error = "Unknown error, server returned no content" + // }; + // if (!content.StartsWith('{')) throw new InvalidDataException("Encountered invalid data:\n" + content); if (!content.TrimStart().StartsWith('{')) { responseMessage.EnsureSuccessStatusCode(); @@ -293,4 +294,4 @@ public class StreamingHttpClient { return await SendAsync(request); } } -#endif +#endif \ No newline at end of file diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Spacebar.AdminAPI.TestClient.csproj b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Spacebar.AdminApi.TestClient.csproj
index fcbd9d61..bc29a828 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Spacebar.AdminAPI.TestClient.csproj +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Spacebar.AdminApi.TestClient.csproj
@@ -14,6 +14,7 @@ <!-- <RunAOTCompilation>true</RunAOTCompilation>--> <BlazorEnableTimeZoneSupport>false</BlazorEnableTimeZoneSupport> <InvariantGlobalization>true</InvariantGlobalization> +<!-- <RuntimeFrameworkVersion>10.0.2-servicing.25570.103</RuntimeFrameworkVersion>--> </PropertyGroup> <ItemGroup> @@ -24,8 +25,7 @@ <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="10.0.0" PrivateAssets="all" /> <PackageReference Include="Microsoft.Extensions.Logging.Configuration" Version="10.0.0" /> </ItemGroup> - - + <ItemGroup> <Content Update="appsettings.Development.json"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/_Imports.razor b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/_Imports.razor
index 6cfe3191..17be595b 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/_Imports.razor +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/_Imports.razor
@@ -7,5 +7,5 @@ @using Microsoft.AspNetCore.Components.Web.Virtualization @using Microsoft.AspNetCore.Components.WebAssembly.Http @using Microsoft.JSInterop -@using Spacebar.AdminAPI.TestClient -@using Spacebar.AdminAPI.TestClient.Layout \ No newline at end of file +@using Spacebar.AdminApi.TestClient +@using Spacebar.AdminApi.TestClient.Layout \ No newline at end of file diff --git a/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/deps.json b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/deps.json new file mode 100644
index 00000000..c48eef78 --- /dev/null +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/deps.json
@@ -0,0 +1,217 @@ +[ + { + "pname": "ArcaneLibs", + "version": "1.0.0-preview.20251005-232225", + "hash": "sha256-EsYLSiyX5Nj+ZpFb6FOcAYqDsQFSbvgm9NKaarJjK/0=" + }, + { + "pname": "ArcaneLibs.Blazor.Components", + "version": "1.0.0-preview.20251005-232225", + "hash": "sha256-9rgq/bFNwZf+mpTldzhr7VPwlseLR21nDlJWGgIaGIQ=" + }, + { + "pname": "Blazored.LocalStorage", + "version": "4.5.0", + "hash": "sha256-0vklTFHEGgNG8V6ivQictuooyiXS2nMn/qLpfYhEBlE=" + }, + { + "pname": "Microsoft.AspNetCore.App.Internal.Assets", + "version": "10.0.0", + "hash": "sha256-IyY5Ymdkmf9S9qRwYXX9rWpzcU3fuDR+ITeaaeJQ/Dk=" + }, + { + "pname": "Microsoft.AspNetCore.Authorization", + "version": "10.0.0", + "hash": "sha256-g1MagKFkZF0LttdK5GLdHCXe4d1qOXv57ngz7XnhRrk=" + }, + { + "pname": "Microsoft.AspNetCore.Components", + "version": "10.0.0", + "hash": "sha256-nrCuCDRbvD5XQyn3ySW/CD4yKYD6coC71JH2ke6xtXI=" + }, + { + "pname": "Microsoft.AspNetCore.Components", + "version": "9.0.9", + "hash": "sha256-1+lIIRfIwHC3XWt2tMuQ3NxoqIsVRgAR+/l9vttQLd8=" + }, + { + "pname": "Microsoft.AspNetCore.Components.Analyzers", + "version": "10.0.0", + "hash": "sha256-2mbSRBB/2eT0fYouhDKM5OFRZGQ0Jv8HgcQLvufoHq4=" + }, + { + "pname": "Microsoft.AspNetCore.Components.Forms", + "version": "10.0.0", + "hash": "sha256-el2T9pvjNexq5lfJhp+7xZYa/1CS6RchIWKmtiKg+vI=" + }, + { + "pname": "Microsoft.AspNetCore.Components.Forms", + "version": "9.0.9", + "hash": "sha256-oUwcqvDLtychAdga+fAJp70wSEdVheYsV6l5Qnfdq6M=" + }, + { + "pname": "Microsoft.AspNetCore.Components.Web", + "version": "10.0.0", + "hash": "sha256-xDf1DBNBceAFKu4er2inn6gUKa1T1L8T3ewlFcuxddE=" + }, + { + "pname": "Microsoft.AspNetCore.Components.Web", + "version": "8.0.0", + "hash": "sha256-dsCb4B6r5iHPbEp8+uFzAfD1txGI5dEIWgwtT9+GgU8=" + }, + { + "pname": "Microsoft.AspNetCore.Components.Web", + "version": "9.0.9", + "hash": "sha256-mgohB7RwOzE5XPB0Lg3h9pUIBKPXaul2F39uxfU7GD8=" + }, + { + "pname": "Microsoft.AspNetCore.Components.WebAssembly", + "version": "10.0.0", + "hash": "sha256-YeHralkfEzLmlrBj0jER+ta9hsbXv5skP81178V1ppw=" + }, + { + "pname": "Microsoft.AspNetCore.Components.WebAssembly.DevServer", + "version": "10.0.0", + "hash": "sha256-akCQI6iHuKIyDmZh5du+hifzPzQoGeMX3Y7ST/TFxRU=" + }, + { + "pname": "Microsoft.AspNetCore.Metadata", + "version": "10.0.0", + "hash": "sha256-TxyiXUx8sWdWFWacBTWFaPeMa3z2+Zmc4VK/Qgq0YRw=" + }, + { + "pname": "Microsoft.DotNet.HotReload.WebAssembly.Browser", + "version": "10.0.100", + "hash": "sha256-ppwVl5tBHFFmMZ0EjpKn4OSBYNExf/S6ojeYdefX1+k=" + }, + { + "pname": "Microsoft.Extensions.Configuration", + "version": "10.0.0", + "hash": "sha256-MsLskVPpkCvov5+DWIaALCt1qfRRX4u228eHxvpE0dg=" + }, + { + "pname": "Microsoft.Extensions.Configuration.Abstractions", + "version": "10.0.0", + "hash": "sha256-GcgrnTAieCV7AVT13zyOjfwwL86e99iiO/MiMOxPGG0=" + }, + { + "pname": "Microsoft.Extensions.Configuration.Binder", + "version": "10.0.0", + "hash": "sha256-YSiWoA3VQR22k6+bSEAUqeG7UDzZlJfHWDTubUO5V8U=" + }, + { + "pname": "Microsoft.Extensions.Configuration.FileExtensions", + "version": "10.0.0", + "hash": "sha256-rN+3rqrHiTaBfHgP+E4dA8Qm2cFJPfbEcd93yKLsqlQ=" + }, + { + "pname": "Microsoft.Extensions.Configuration.Json", + "version": "10.0.0", + "hash": "sha256-VCFukgsxiQ2MFGE6RDMFTGopBHbcZL2t0ER7ENaFXRY=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection", + "version": "10.0.0", + "hash": "sha256-LYm9hVlo/R9c2aAKHsDYJ5vY9U0+3Jvclme3ou3BtvQ=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection", + "version": "9.0.9", + "hash": "sha256-UHG/uj9hjCRWmz2LZ4wR721ooZYGtBy4TT+lNeVzyrU=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection.Abstractions", + "version": "10.0.0", + "hash": "sha256-9iodXP39YqgxomnOPOxd/mzbG0JfOSXzFoNU3omT2Ps=" + }, + { + "pname": "Microsoft.Extensions.Diagnostics", + "version": "10.0.0", + "hash": "sha256-o7QkCisEcFIh227qBUfWFci2ns4cgEpLqpX7YvHGToQ=" + }, + { + "pname": "Microsoft.Extensions.Diagnostics.Abstractions", + "version": "10.0.0", + "hash": "sha256-cix7QxQ/g3sj6reXu3jn0cRv2RijzceaLLkchEGTt5E=" + }, + { + "pname": "Microsoft.Extensions.FileProviders.Abstractions", + "version": "10.0.0", + "hash": "sha256-CHDs2HCN8QcfuYQpgNVszZ5dfXFe4yS9K2GoQXecc20=" + }, + { + "pname": "Microsoft.Extensions.FileProviders.Physical", + "version": "10.0.0", + "hash": "sha256-2Rw/cwBO+/A3QY2IjN/c8Y0LhtC1qTBL7VdJiD1J2UQ=" + }, + { + "pname": "Microsoft.Extensions.FileSystemGlobbing", + "version": "10.0.0", + "hash": "sha256-ETfVTdsdBtp69EggLg/AARTQW4lLQYVdVldXIQrsjZA=" + }, + { + "pname": "Microsoft.Extensions.Logging", + "version": "10.0.0", + "hash": "sha256-P+zPAadLL63k/GqK34/qChqQjY9aIRxZfxlB9lqsSrs=" + }, + { + "pname": "Microsoft.Extensions.Logging.Abstractions", + "version": "10.0.0", + "hash": "sha256-BnhgGZc01HwTSxogavq7Ueq4V7iMA3wPnbfRwQ4RhGk=" + }, + { + "pname": "Microsoft.Extensions.Logging.Configuration", + "version": "10.0.0", + "hash": "sha256-7/TWO1aq8hdgbcTEKDBWIjgSC9KpFN3kRnMX+12bOkU=" + }, + { + "pname": "Microsoft.Extensions.Options", + "version": "10.0.0", + "hash": "sha256-j5MOqZSKeUtxxzmZjzZMGy0vELHdvPraqwTQQQNVsYA=" + }, + { + "pname": "Microsoft.Extensions.Options.ConfigurationExtensions", + "version": "10.0.0", + "hash": "sha256-XGAs5DxMvWnmjX8dqRwKY0vsuS40SHvsfJqB1rO4L7k=" + }, + { + "pname": "Microsoft.Extensions.Primitives", + "version": "10.0.0", + "hash": "sha256-Dup08KcptLjlnpN5t5//+p4n8FUTgRAq4n/w1s6us+I=" + }, + { + "pname": "Microsoft.Extensions.Primitives", + "version": "9.0.9", + "hash": "sha256-bCd4Bj5uP4kT0hCvs0LZS8IVqEtpOIyhSiay5ijJbBA=" + }, + { + "pname": "Microsoft.Extensions.Validation", + "version": "10.0.0", + "hash": "sha256-BbmNqKlqNd/37IU5X1wjc3VCxfrBTA1bkVqk1myU+H0=" + }, + { + "pname": "Microsoft.JSInterop", + "version": "10.0.0", + "hash": "sha256-/y6la0IzcE5N/thRGLDZYsvNEeWPlW2IwEJtIu3sdaE=" + }, + { + "pname": "Microsoft.JSInterop", + "version": "9.0.9", + "hash": "sha256-fCUkGYS6HKZ0NW1xfuI5aCD2yGqpeIjaWFcS0dBZMWE=" + }, + { + "pname": "Microsoft.JSInterop.WebAssembly", + "version": "10.0.0", + "hash": "sha256-dJdTHFh4lZOmXI+88mLdJOf6UsKq/80N59+COq/KPpg=" + }, + { + "pname": "Microsoft.NET.Sdk.WebAssembly.Pack", + "version": "10.0.0", + "hash": "sha256-AWqn+WUvMjdec4KX4RpTW1ZgT4K+fYhpkrcf706Zt/w=" + }, + { + "pname": "Microsoft.NETCore.App.Runtime.Mono.browser-wasm", + "version": "10.0.0", + "hash": "sha256-1CpAq/TBpFaZncLb+Z3xaq/J7/O8ZTEl3qBidCpQj9M=" + } +] diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/appsettings.json b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/appsettings.json
index 1ca99ed9..1ca99ed9 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/appsettings.json +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/appsettings.json
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/css/app.css b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/css/app.css
index 7b3eb5d9..7b3eb5d9 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/css/app.css +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/css/app.css
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/favicon.png b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/favicon.png
index 8422b596..8422b596 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/favicon.png +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/favicon.png
Binary files differdiff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/icon-192.png b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/icon-192.png
index 166f56da..166f56da 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/icon-192.png +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/icon-192.png
Binary files differdiff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/index.html b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/index.html
index 43c7e50b..5f8af7c9 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/index.html +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/index.html
@@ -9,7 +9,7 @@ <link rel="stylesheet" href="lib/jetbrains-mono/jetbrains-mono.css"/> <link rel="stylesheet" href="css/app.css"/> <link rel="icon" type="image/png" href="favicon.png"/> - <link href="Spacebar.AdminAPI.TestClient.styles.css" rel="stylesheet"/> + <link href="Spacebar.AdminApi.TestClient.styles.css" rel="stylesheet"/> </head> <body> diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css
index 3882a819..3882a819 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map
index ce99ec19..ce99ec19 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css
index 49b843b1..49b843b1 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map
index a0db8b57..a0db8b57 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css
index 1a5d6563..1a5d6563 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css.map b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css.map
index 8df43cfc..8df43cfc 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css.map +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css.map
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css
index 672cbc2e..672cbc2e 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map
index 1c926af5..1c926af5 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css
index 63054109..63054109 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map
index 5fe522b6..5fe522b6 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css
index aa803594..aa803594 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map
index e4774804..e4774804 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css
index 2103919f..2103919f 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css.map b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css.map
index 31c8d254..31c8d254 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css.map +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css.map
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css
index b1da1a5a..b1da1a5a 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map
index 689b5b6b..689b5b6b 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css
index aaa63792..aaa63792 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css.map b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css.map
index 5a3e2bae..5a3e2bae 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css.map +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css.map
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css
index 50d34056..50d34056 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css.map b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css.map
index 41d4357a..41d4357a 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css.map +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css.map
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css
index 2d714223..2d714223 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css.map b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css.map
index 3e4a515e..3e4a515e 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css.map +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css.map
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css
index 7641ef68..7641ef68 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map
index 9fd3e127..9fd3e127 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.css b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.css
index b7ab57f2..b7ab57f2 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.css +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.css
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map
index a1f9a189..a1f9a189 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css
index 39934146..39934146 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map
index 90ce7987..90ce7987 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css
index 753823c2..753823c2 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css.map b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css.map
index 34a6d2a1..34a6d2a1 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css.map +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css.map
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css
index 802b60d0..802b60d0 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css.map b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css.map
index a77bdfb0..a77bdfb0 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css.map +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css.map
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js
index 1876be09..1876be09 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map
index c88b707f..c88b707f 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js
index 04e9185b..04e9185b 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map
index 69af4203..69af4203 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js
index 45745c85..45745c85 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js.map b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js.map
index a3a69516..a3a69516 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js.map +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js.map
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js
index c573a344..c573a344 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js.map b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js.map
index 03527afe..03527afe 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js.map +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js.map
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.js b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.js
index a8f49edd..a8f49edd 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.js +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.js
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map
index d0ae645b..d0ae645b 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js
index d5dc5ea1..d5dc5ea1 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map
index 901fbef5..901fbef5 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/jetbrains-mono.css b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/jetbrains-mono.css
index 78aedd2b..78aedd2b 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/jetbrains-mono.css +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/jetbrains-mono.css
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Bold.woff2 b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Bold.woff2
index 4917f434..4917f434 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Bold.woff2 +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Bold.woff2
Binary files differdiff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-BoldItalic.woff2 b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-BoldItalic.woff2
index 536d3f71..536d3f71 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-BoldItalic.woff2 +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-BoldItalic.woff2
Binary files differdiff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-ExtraBold.woff2 b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-ExtraBold.woff2
index 8f88c546..8f88c546 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-ExtraBold.woff2 +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-ExtraBold.woff2
Binary files differdiff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-ExtraBoldItalic.woff2 b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-ExtraBoldItalic.woff2
index d1478bac..d1478bac 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-ExtraBoldItalic.woff2 +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-ExtraBoldItalic.woff2
Binary files differdiff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-ExtraLight.woff2 b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-ExtraLight.woff2
index b97239f3..b97239f3 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-ExtraLight.woff2 +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-ExtraLight.woff2
Binary files differdiff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-ExtraLightItalic.woff2 b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-ExtraLightItalic.woff2
index be01aaca..be01aaca 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-ExtraLightItalic.woff2 +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-ExtraLightItalic.woff2
Binary files differdiff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Italic.woff2 b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Italic.woff2
index d60c270e..d60c270e 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Italic.woff2 +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Italic.woff2
Binary files differdiff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Light.woff2 b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Light.woff2
index 65384987..65384987 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Light.woff2 +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Light.woff2
Binary files differdiff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-LightItalic.woff2 b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-LightItalic.woff2
index 66ca3d2b..66ca3d2b 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-LightItalic.woff2 +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-LightItalic.woff2
Binary files differdiff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Medium.woff2 b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Medium.woff2
index 669d04cd..669d04cd 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Medium.woff2 +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Medium.woff2
Binary files differdiff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-MediumItalic.woff2 b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-MediumItalic.woff2
index 80cfd15e..80cfd15e 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-MediumItalic.woff2 +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-MediumItalic.woff2
Binary files differdiff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Regular.woff2 b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Regular.woff2
index 40da4276..40da4276 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Regular.woff2 +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Regular.woff2
Binary files differdiff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-SemiBold.woff2 b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-SemiBold.woff2
index 5ead7b0d..5ead7b0d 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-SemiBold.woff2 +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-SemiBold.woff2
Binary files differdiff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-SemiBoldItalic.woff2 b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-SemiBoldItalic.woff2
index c5dd294b..c5dd294b 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-SemiBoldItalic.woff2 +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-SemiBoldItalic.woff2
Binary files differdiff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Thin.woff2 b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Thin.woff2
index 17270e45..17270e45 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Thin.woff2 +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-Thin.woff2
Binary files differdiff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-ThinItalic.woff2 b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-ThinItalic.woff2
index a6432151..a6432151 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-ThinItalic.woff2 +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/wwwroot/lib/jetbrains-mono/webfonts/JetBrainsMono-ThinItalic.woff2
Binary files differdiff --git a/extra/admin-api/Utilities/Spacebar.AdminAPITest/Program.cs b/extra/admin-api/Utilities/Spacebar.AdminApiTest/Program.cs
index 00900e0a..00900e0a 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPITest/Program.cs +++ b/extra/admin-api/Utilities/Spacebar.AdminApiTest/Program.cs
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPITest/Spacebar.AdminAPITest.csproj b/extra/admin-api/Utilities/Spacebar.AdminApiTest/Spacebar.AdminApiTest.csproj
index 5daabdd0..5daabdd0 100644 --- a/extra/admin-api/Utilities/Spacebar.AdminAPITest/Spacebar.AdminAPITest.csproj +++ b/extra/admin-api/Utilities/Spacebar.AdminApiTest/Spacebar.AdminApiTest.csproj
diff --git a/extra/admin-api/flake.lock b/extra/admin-api/flake.lock
index 664ccdaa..10a74143 100644 --- a/extra/admin-api/flake.lock +++ b/extra/admin-api/flake.lock
@@ -20,11 +20,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1759381078, - "narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=", + "lastModified": 1765472234, + "narHash": "sha256-9VvC20PJPsleGMewwcWYKGzDIyjckEz8uWmT0vCDYK0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7df7ff7d8e00218376575f0acdcc5d66741351ee", + "rev": "2fbfb1d73d239d2402a8fe03963e37aab15abe8b", "type": "github" }, "original": { diff --git a/extra/admin-api/flake.nix b/extra/admin-api/flake.nix
index 6cf35682..7626bf6c 100644 --- a/extra/admin-api/flake.nix +++ b/extra/admin-api/flake.nix
@@ -1,5 +1,5 @@ { - description = "Spacebar Admin API, written in C#."; + description = "Spacebar server, written in Typescript."; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; @@ -12,81 +12,7 @@ nixpkgs, flake-utils, }: - flake-utils.lib.eachSystem flake-utils.lib.allSystems ( - system: - let - pkgs = import nixpkgs { - inherit system; - }; - hashesFile = builtins.fromJSON (builtins.readFile ./hashes.json); - lib = pkgs.lib; - in - { - packages = { - default = pkgs.buildNpmPackage { - pname = "spacebar-server-ts"; - name = "spacebar-server-ts"; - - meta = with lib; { - description = "Spacebar server, a FOSS reimplementation of the Discord backend."; - homepage = "https://github.com/spacebarchat/server"; - license = licenses.agpl3Plus; - platforms = platforms.all; - mainProgram = "start-bundle"; - }; - - src = ./.; - nativeBuildInputs = with pkgs; [ python3 ]; - npmDepsHash = hashesFile.npmDepsHash; - makeCacheWritable = true; - postPatch = '' - substituteInPlace package.json --replace 'npx patch-package' '${pkgs.nodePackages.patch-package}/bin/patch-package' - ''; - installPhase = '' - runHook preInstall - set -x - #remove packages not needed for production, or at least try to... - npm prune --omit dev --no-save $npmInstallFlags "''${npmInstallFlagsArray[@]}" $npmFlags "''${npmFlagsArray[@]}" - find node_modules -maxdepth 1 -type d -empty -delete - - mkdir -p $out - cp -r assets dist node_modules package.json $out/ - for i in dist/**/start.js - do - makeWrapper ${pkgs.nodejs}/bin/node $out/bin/start-`dirname ''${i/dist\//}` --prefix NODE_PATH : $out/node_modules --add-flags $out/$i - done - - set +x - runHook postInstall - ''; - }; - - update-nix = pkgs.writeShellApplication { - name = "update-nix"; - runtimeInputs = with pkgs; [ - prefetch-npm-deps - nix - jq - ]; - text = '' - nix flake update --extra-experimental-features 'nix-command flakes' - DEPS_HASH=$(prefetch-npm-deps package-lock.json) - TMPFILE=$(mktemp) - jq '.npmDepsHash = "'"$DEPS_HASH"'"' hashes.json > "$TMPFILE" - mv -- "$TMPFILE" hashes.json - ''; - }; - }; - - devShell = pkgs.mkShell { - buildInputs = with pkgs; [ - nodejs - nodePackages.typescript - nodePackages.ts-node - nodePackages.patch-package - nodePackages.prettier - ]; - }; - } - ); + import ./outputs.nix { + inherit self nixpkgs flake-utils; + }; } diff --git a/extra/admin-api/nuget.config b/extra/admin-api/nuget.config new file mode 100644
index 00000000..aa87aca2 --- /dev/null +++ b/extra/admin-api/nuget.config
@@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<configuration> + <packageSources> + <!--To inherit the global NuGet package sources remove the <clear/> line below --> + <clear /> + <add key="nuget" value="https://api.nuget.org/v3/index.json" /> + <add key="dotnet10-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet10-transport/nuget/v3/index.json" /> + </packageSources> +</configuration> diff --git a/extra/admin-api/outputs.nix b/extra/admin-api/outputs.nix new file mode 100644
index 00000000..ccbed17d --- /dev/null +++ b/extra/admin-api/outputs.nix
@@ -0,0 +1,128 @@ +{ + self, + nixpkgs, + flake-utils, +}: +let + rVersion = + let + rev = self.sourceInfo.shortRev or self.sourceInfo.dirtyShortRev; + date = builtins.substring 0 8 self.sourceInfo.lastModifiedDate; + time = builtins.substring 8 6 self.sourceInfo.lastModifiedDate; + in + "preview.${date}-${time}"; #+${rev}"; +in +flake-utils.lib.eachSystem flake-utils.lib.allSystems ( + system: + let + pkgs = import nixpkgs { + inherit system; + }; + lib = pkgs.lib; + makeNupkg = + { + name, + nugetDeps ? null, + projectReferences ? [ ], + projectFile ? "${name}/${name}.csproj", + runtimeId ? null, + useAppHost ? null, + packNupkg ? true, + }@args: + pkgs.buildDotnetModule rec { + inherit + projectReferences + nugetDeps + projectFile + runtimeId + useAppHost + ; + + pname = "${name}"; + version = "1.0.0-" + rVersion; + dotnetPackFlags = [ + "--include-symbols" + "--include-source" + "--version-suffix ${rVersion}" + ]; + # dotnetFlags = [ "-v:diag" ]; + dotnet-sdk = pkgs.dotnet-sdk_10; + dotnet-runtime = pkgs.dotnet-aspnetcore_10; + src = pkgs.lib.cleanSource ./.; + packNupkg = true; + meta = with pkgs.lib; { + description = "Spacebar Server, Typescript Edition (C# extensions)"; + homepage = "https://github.com/spacebarchat/server"; + license = licenses.agpl3Plus; + maintainers = with maintainers; [ RorySys ]; + }; + }; + in + { + packages = + let + proj = self.packages.${system}; + in + { + Spacebar-Db = makeNupkg { + name = "Spacebar.Db"; + nugetDeps = Spacebar.Db/deps.json; + }; + Spacebar-AdminApi-Models = makeNupkg { + name = "Spacebar.AdminApi.Models"; + }; + Spacebar-ConfigModel = makeNupkg { + name = "Spacebar.ConfigModel"; + }; + Spacebar-CleanSettingsRows = makeNupkg { + name = "Spacebar.CleanSettingsRows"; + nugetDeps = Spacebar.CleanSettingsRows/deps.json; + packNupkg = false; + projectReferences = [ proj.Spacebar-Db ]; + }; + Spacebar-AdminApi = makeNupkg { + name = "Spacebar.AdminApi"; + nugetDeps = Spacebar.AdminApi/deps.json; + packNupkg = false; + projectReferences = [ + proj.Spacebar-AdminApi-Models + proj.Spacebar-Db + ]; + + }; +# Spacebar-AdminApi-TestClient = makeNupkg { +# name = "Spacebar.AdminApi.TestClient"; +# projectFile = "Utilities/Spacebar.AdminApi.TestClient/Spacebar.AdminApi.TestClient.csproj"; +# nugetDeps = Utilities/Spacebar.AdminApi.TestClient/deps.json; +# projectReferences = [ +# proj.Spacebar-AdminApi-Models +# ]; +## runtimeId = "browser-wasm"; +## useAppHost = false; +# }; + }; + + # containers.docker = pkgs.dockerTools.buildLayeredImage { + # name = "spacebar-server-ts"; + # tag = builtins.replaceStrings [ "+" ] [ "_" ] self.packages.${system}.default.version; + # contents = [ self.packages.${system}.default ]; + # config = { + # Cmd = [ "${self.outputs.packages.${system}.default}/bin/start-bundle" ]; + # Expose = [ "3001" ]; + # }; + # }; + } +) +// { + # nixosModules.default = import ./nix/modules/default self; + checks = + let + pkgs = import nixpkgs { system = "x86_64-linux"; }; + in + pkgs.lib.recursiveUpdate (pkgs.lib.attrsets.unionOfDisjoint { } self.packages) { + x86_64-linux = { + # spacebar-server-tests = self.packages.x86_64-linux.default.passthru.tests; + # docker-image = self.containers.x86_64-linux.docker; + }; + }; +} \ No newline at end of file diff --git a/flake.nix b/flake.nix
index c5affe66..a93f72ef 100644 --- a/flake.nix +++ b/flake.nix
@@ -12,146 +12,154 @@ nixpkgs, flake-utils, }: - let - hashesFile = builtins.fromJSON (builtins.readFile ./hashes.json); - rVersion = + nixpkgs.lib.mergeAttrs + ( let - rev = self.sourceInfo.shortRev or self.sourceInfo.dirtyShortRev; - date = builtins.substring 0 8 self.sourceInfo.lastModifiedDate; - time = builtins.substring 8 6 self.sourceInfo.lastModifiedDate; + hashesFile = builtins.fromJSON (builtins.readFile ./hashes.json); + rVersion = + let + rev = self.sourceInfo.shortRev or self.sourceInfo.dirtyShortRev; + date = builtins.substring 0 8 self.sourceInfo.lastModifiedDate; + time = builtins.substring 8 6 self.sourceInfo.lastModifiedDate; + in + "preview.${date}-${time}"; # +${rev}"; in - "preview.${date}-${time}+${rev}"; - in - flake-utils.lib.eachSystem flake-utils.lib.allSystems ( - system: - let - pkgs = import nixpkgs { - inherit system; - }; - lib = pkgs.lib; - in - { - packages = { - default = pkgs.buildNpmPackage { - pname = "spacebar-server-ts"; - nodejs = pkgs.nodejs_24; - version = "1.0.0-" + rVersion; - - meta = with lib; { - description = "Spacebar server, a FOSS reimplementation of the Discord backend."; - homepage = "https://github.com/spacebarchat/server"; - license = licenses.agpl3Plus; - platforms = platforms.all; - mainProgram = "start-bundle"; - maintainers = with maintainers; [ RorySys ]; # lol. + flake-utils.lib.eachSystem flake-utils.lib.allSystems ( + system: + let + pkgs = import nixpkgs { + inherit system; }; + lib = pkgs.lib; + in + { + packages = { + default = pkgs.buildNpmPackage { + pname = "spacebar-server-ts"; + nodejs = pkgs.nodejs_24; + version = "1.0.0-" + rVersion; - src = ./.; - npmDepsHash = hashesFile.npmDepsHash; - npmBuildScript = "build:src"; - makeCacheWritable = true; - nativeBuildInputs = with pkgs; [ - python3 - ]; - installPhase = - let - revsFile = pkgs.writeText "spacebar-server-rev.json" ( - builtins.toJSON { - rev = self.sourceInfo.rev or self.sourceInfo.dirtyRev; - shortRev = self.sourceInfo.shortRev or self.sourceInfo.dirtyShortRev; - lastModified = self.sourceInfo.lastModified; - } - ); - in - '' - runHook preInstall - # set -x + meta = with lib; { + description = "Spacebar server, a FOSS reimplementation of the Discord backend."; + homepage = "https://github.com/spacebarchat/server"; + license = licenses.agpl3Plus; + platforms = platforms.all; + mainProgram = "start-bundle"; + maintainers = with maintainers; [ RorySys ]; # lol. + }; - # remove packages not needed for production, or at least try to... - npm prune --omit dev --no-save $npmInstallFlags "''${npmInstallFlagsArray[@]}" $npmFlags "''${npmFlagsArray[@]}" - ${./nix/trimNodeModules.sh} + src = ./.; + npmDepsHash = hashesFile.npmDepsHash; + npmBuildScript = "build:src"; + makeCacheWritable = true; + nativeBuildInputs = with pkgs; [ + python3 + ]; + installPhase = + let + revsFile = pkgs.writeText "spacebar-server-rev.json" ( + builtins.toJSON { + rev = self.sourceInfo.rev or self.sourceInfo.dirtyRev; + shortRev = self.sourceInfo.shortRev or self.sourceInfo.dirtyShortRev; + lastModified = self.sourceInfo.lastModified; + } + ); + in + '' + runHook preInstall + # set -x - # Copy outputs - echo "Installing package into $out" - mkdir -p $out - cp -r assets dist node_modules package.json $out/ - cp ${revsFile} $out/.rev + # remove packages not needed for production, or at least try to... + npm prune --omit dev --no-save $npmInstallFlags "''${npmInstallFlagsArray[@]}" $npmFlags "''${npmFlagsArray[@]}" + ${./nix/trimNodeModules.sh} - # Create wrappers for start scripts - echo "Creating wrappers for start scripts" - for i in dist/**/start.js - do - makeWrapper ${pkgs.nodejs_24}/bin/node $out/bin/start-`dirname ''${i/dist\//}` --prefix NODE_PATH : $out/node_modules --add-flags --enable-source-maps --add-flags $out/$i - done + # Copy outputs + echo "Installing package into $out" + mkdir -p $out + cp -r assets dist node_modules package.json $out/ + cp ${revsFile} $out/.rev - # set +x - runHook postInstall - ''; + # Create wrappers for start scripts + echo "Creating wrappers for start scripts" + for i in dist/**/start.js + do + makeWrapper ${pkgs.nodejs_24}/bin/node $out/bin/start-`dirname ''${i/dist\//}` --prefix NODE_PATH : $out/node_modules --add-flags --enable-source-maps --add-flags $out/$i + done - passthru.tests = pkgs.testers.runNixOSTest (import ./nix/tests/test-bundle-starts.nix self); - }; + # set +x + runHook postInstall + ''; - update-nix-hashes = pkgs.writeShellApplication { - name = "update-nix"; - runtimeInputs = with pkgs; [ - prefetch-npm-deps - nix - jq - ]; - text = '' - rm -rf node_modules - ${pkgs.nodejs_24}/bin/npm install --save --no-audit --no-fund --prefer-offline - DEPS_HASH=$(prefetch-npm-deps package-lock.json) - TMPFILE=$(mktemp) - jq '.npmDepsHash = "'"$DEPS_HASH"'"' hashes.json > "$TMPFILE" - mv -- "$TMPFILE" hashes.json - ''; - }; + passthru.tests = pkgs.testers.runNixOSTest (import ./nix/tests/test-bundle-starts.nix self); + }; - update-nix-flake = pkgs.writeShellApplication { - name = "update-nix"; - runtimeInputs = with pkgs; [ - prefetch-npm-deps - nix - jq - ]; - text = '' - nix flake update --extra-experimental-features 'nix-command flakes' - ''; - }; - }; + update-nix-hashes = pkgs.writeShellApplication { + name = "update-nix"; + runtimeInputs = with pkgs; [ + prefetch-npm-deps + nix + jq + ]; + text = '' + rm -rf node_modules + ${pkgs.nodejs_24}/bin/npm install --save --no-audit --no-fund --prefer-offline + DEPS_HASH=$(prefetch-npm-deps package-lock.json) + TMPFILE=$(mktemp) + jq '.npmDepsHash = "'"$DEPS_HASH"'"' hashes.json > "$TMPFILE" + mv -- "$TMPFILE" hashes.json + ''; + }; - containers.docker = pkgs.dockerTools.buildLayeredImage { - name = "spacebar-server-ts"; - tag = builtins.replaceStrings [ "+" ] [ "_" ] self.packages.${system}.default.version; - contents = [ self.packages.${system}.default ]; - config = { - Cmd = [ "${self.outputs.packages.${system}.default}/bin/start-bundle" ]; - Expose = [ "3001" ]; - }; - }; + update-nix-flake = pkgs.writeShellApplication { + name = "update-nix"; + runtimeInputs = with pkgs; [ + prefetch-npm-deps + nix + jq + ]; + text = '' + nix flake update --extra-experimental-features 'nix-command flakes' + ''; + }; + }; - devShells.default = pkgs.mkShell { - buildInputs = with pkgs; [ - nodejs_24 - nodePackages.typescript - nodePackages.patch-package - nodePackages.prettier - ]; - }; - } - ) - // { - nixosModules.default = import ./nix/modules/default self; - checks = - let - pkgs = import nixpkgs { system = "x86_64-linux"; }; - in - pkgs.lib.recursiveUpdate (pkgs.lib.attrsets.unionOfDisjoint { } self.packages) { - x86_64-linux = { - spacebar-server-tests = self.packages.x86_64-linux.default.passthru.tests; - docker-image = self.containers.x86_64-linux.docker; - }; - }; - }; + containers.docker = pkgs.dockerTools.buildLayeredImage { + name = "spacebar-server-ts"; + tag = builtins.replaceStrings [ "+" ] [ "_" ] self.packages.${system}.default.version; + contents = [ self.packages.${system}.default ]; + config = { + Cmd = [ "${self.outputs.packages.${system}.default}/bin/start-bundle" ]; + Expose = [ "3001" ]; + }; + }; + + devShells.default = pkgs.mkShell { + buildInputs = with pkgs; [ + nodejs_24 + nodePackages.typescript + nodePackages.patch-package + nodePackages.prettier + ]; + }; + } + ) + // { + nixosModules.default = import ./nix/modules/default self; + checks = + let + pkgs = import nixpkgs { system = "x86_64-linux"; }; + in + pkgs.lib.recursiveUpdate (pkgs.lib.attrsets.unionOfDisjoint { } self.packages) { + x86_64-linux = { + spacebar-server-tests = self.packages.x86_64-linux.default.passthru.tests; + docker-image = self.containers.x86_64-linux.docker; + }; + }; + } + ) + ( + import ./extra/admin-api/outputs.nix { + inherit self nixpkgs flake-utils; + } + ); }