Reformat UserName to Username, Added DAL with admin login method

This commit is contained in:
Martin Berg Alstad 2023-07-19 23:25:54 +02:00
parent 8f4e8ed481
commit 745f292eee
18 changed files with 277 additions and 232 deletions

View File

@ -174,7 +174,7 @@ public class ActionServiceTests
// If selected the state is changed to InGame
_whitePlayer.State = State.InGame;
var players = result.GetType().GetProperty("Players")?.GetValue(result) as IEnumerable<IPlayer>;
Assert.That(players?.First().UserName, Is.EqualTo(_whitePlayer.UserName));
Assert.That(players?.First().Username, Is.EqualTo(_whitePlayer.Username));
}
[Test]
@ -194,7 +194,7 @@ public class ActionServiceTests
result = _service.Ready();
var players = result.GetType().GetProperty("Players")?.GetValue(result) as IEnumerable<IPlayer>;
Assert.That(players?.First().UserName, Is.EqualTo(_blackPlayer.UserName).Or.EqualTo(_whitePlayer.UserName));
Assert.That(players?.First().Username, Is.EqualTo(_blackPlayer.Username).Or.EqualTo(_whitePlayer.Username));
}
#endregion
@ -217,7 +217,7 @@ public class ActionServiceTests
{ Players = { _whitePlayer } };
var name = _service.FindNextPlayer();
Assert.That(name, Is.EqualTo(_whitePlayer.UserName));
Assert.That(name, Is.EqualTo(_whitePlayer.Username));
}
[Test]
@ -231,9 +231,9 @@ public class ActionServiceTests
})) { Players = { _whitePlayer, _blackPlayer } };
var first = _service.FindNextPlayer();
Assert.That(first, Is.EqualTo(_blackPlayer.UserName));
Assert.That(first, Is.EqualTo(_blackPlayer.Username));
var second = _service.FindNextPlayer();
Assert.That(second, Is.EqualTo(_whitePlayer.UserName));
Assert.That(second, Is.EqualTo(_whitePlayer.Username));
}
#endregion

View File

@ -8,7 +8,7 @@ internal static class Players
internal static IPlayer Create(string colour) =>
new Player
{
UserName = colour,
Username = colour,
Colour = colour,
PacMan = CreatePacMan(colour),
Box = CreateBox(colour)
@ -33,7 +33,7 @@ internal static class Players
{
Box = player.Box,
Colour = player.Colour,
UserName = player.UserName,
Username = player.Username,
PacMan = player.PacMan
};
}

View File

@ -0,0 +1,14 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>DAL</RootNamespace>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\pac-man-board-game\pac-man-board-game.csproj" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,26 @@
using pacMan.GameStuff;
using pacMan.GameStuff.Items;
namespace DAL.Database.Service;
public class UserService
{
private readonly List<Player> _users = new()
{
new Player
{
Username = "admin",
Colour = "red",
PacMan = new Character
{
Colour = "red",
Type = CharacterType.PacMan
}
}
};
public async Task<IPlayer?> Login(string username, string password)
{
return await Task.Run(() => _users.FirstOrDefault(x => x.Username == username && password == "admin"));
}
}

View File

@ -4,6 +4,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "pac-man-board-game", "pac-m
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BackendTests", "BackendTests\BackendTests.csproj", "{35336347-32EB-4764-A28E-3F8FF6CA54C4}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataAccessLayer", "DataAccessLayer\DataAccessLayer.csproj", "{D426C483-CCBE-43FE-B712-E8002879D0A6}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -18,5 +20,9 @@ Global
{35336347-32EB-4764-A28E-3F8FF6CA54C4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{35336347-32EB-4764-A28E-3F8FF6CA54C4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{35336347-32EB-4764-A28E-3F8FF6CA54C4}.Release|Any CPU.Build.0 = Release|Any CPU
{D426C483-CCBE-43FE-B712-E8002879D0A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D426C483-CCBE-43FE-B712-E8002879D0A6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D426C483-CCBE-43FE-B712-E8002879D0A6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D426C483-CCBE-43FE-B712-E8002879D0A6}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal

View File

@ -71,35 +71,35 @@
}
},
"node_modules/@babel/compat-data": {
"version": "7.22.6",
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.6.tgz",
"integrity": "sha512-29tfsWTq2Ftu7MXmimyC0C5FDZv5DYxOZkh3XD3+QW4V/BYuv/LyEsjj3c0hqedEaDt6DBfDvexMKU8YevdqFg==",
"version": "7.22.9",
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz",
"integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/core": {
"version": "7.22.8",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.8.tgz",
"integrity": "sha512-75+KxFB4CZqYRXjx4NlR4J7yGvKumBuZTmV4NV6v09dVXXkuYVYLT68N6HCzLvfJ+fWCxQsntNzKwwIXL4bHnw==",
"version": "7.22.9",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.9.tgz",
"integrity": "sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==",
"dev": true,
"dependencies": {
"@ampproject/remapping": "^2.2.0",
"@babel/code-frame": "^7.22.5",
"@babel/generator": "^7.22.7",
"@babel/helper-compilation-targets": "^7.22.6",
"@babel/helper-module-transforms": "^7.22.5",
"@babel/generator": "^7.22.9",
"@babel/helper-compilation-targets": "^7.22.9",
"@babel/helper-module-transforms": "^7.22.9",
"@babel/helpers": "^7.22.6",
"@babel/parser": "^7.22.7",
"@babel/template": "^7.22.5",
"@babel/traverse": "^7.22.8",
"@babel/types": "^7.22.5",
"@nicolo-ribaudo/semver-v6": "^6.3.3",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
"json5": "^2.2.2"
"json5": "^2.2.2",
"semver": "^6.3.1"
},
"engines": {
"node": ">=6.9.0"
@ -110,9 +110,9 @@
}
},
"node_modules/@babel/generator": {
"version": "7.22.7",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.7.tgz",
"integrity": "sha512-p+jPjMG+SI8yvIaxGgeW24u7q9+5+TGpZh8/CuB7RhBKd7RCy8FayNEFNNKrNK/eUcY/4ExQqLmyrvBXKsIcwQ==",
"version": "7.22.9",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.9.tgz",
"integrity": "sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==",
"dev": true,
"dependencies": {
"@babel/types": "^7.22.5",
@ -125,16 +125,16 @@
}
},
"node_modules/@babel/helper-compilation-targets": {
"version": "7.22.6",
"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.6.tgz",
"integrity": "sha512-534sYEqWD9VfUm3IPn2SLcH4Q3P86XL+QvqdC7ZsFrzyyPF3T4XGiVghF6PTYNdWg6pXuoqXxNQAhbYeEInTzA==",
"version": "7.22.9",
"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz",
"integrity": "sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==",
"dev": true,
"dependencies": {
"@babel/compat-data": "^7.22.6",
"@babel/compat-data": "^7.22.9",
"@babel/helper-validator-option": "^7.22.5",
"@nicolo-ribaudo/semver-v6": "^6.3.3",
"browserslist": "^4.21.9",
"lru-cache": "^5.1.1"
"lru-cache": "^5.1.1",
"semver": "^6.3.1"
},
"engines": {
"node": ">=6.9.0"
@ -190,22 +190,22 @@
}
},
"node_modules/@babel/helper-module-transforms": {
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz",
"integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==",
"version": "7.22.9",
"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz",
"integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==",
"dev": true,
"dependencies": {
"@babel/helper-environment-visitor": "^7.22.5",
"@babel/helper-module-imports": "^7.22.5",
"@babel/helper-simple-access": "^7.22.5",
"@babel/helper-split-export-declaration": "^7.22.5",
"@babel/helper-validator-identifier": "^7.22.5",
"@babel/template": "^7.22.5",
"@babel/traverse": "^7.22.5",
"@babel/types": "^7.22.5"
"@babel/helper-split-export-declaration": "^7.22.6",
"@babel/helper-validator-identifier": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0"
}
},
"node_modules/@babel/helper-plugin-utils": {
@ -388,9 +388,9 @@
}
},
"node_modules/@esbuild/android-arm": {
"version": "0.18.11",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.11.tgz",
"integrity": "sha512-q4qlUf5ucwbUJZXF5tEQ8LF7y0Nk4P58hOsGk3ucY0oCwgQqAnqXVbUuahCddVHfrxmpyewRpiTHwVHIETYu7Q==",
"version": "0.18.14",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.14.tgz",
"integrity": "sha512-blODaaL+lngG5bdK/t4qZcQvq2BBqrABmYwqPPcS5VRxrCSGHb9R/rA3fqxh7R18I7WU4KKv+NYkt22FDfalcg==",
"cpu": [
"arm"
],
@ -404,9 +404,9 @@
}
},
"node_modules/@esbuild/android-arm64": {
"version": "0.18.11",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.11.tgz",
"integrity": "sha512-snieiq75Z1z5LJX9cduSAjUr7vEI1OdlzFPMw0HH5YI7qQHDd3qs+WZoMrWYDsfRJSq36lIA6mfZBkvL46KoIw==",
"version": "0.18.14",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.14.tgz",
"integrity": "sha512-rZ2v+Luba5/3D6l8kofWgTnqE+qsC/L5MleKIKFyllHTKHrNBMqeRCnZI1BtRx8B24xMYxeU32iIddRQqMsOsg==",
"cpu": [
"arm64"
],
@ -420,9 +420,9 @@
}
},
"node_modules/@esbuild/android-x64": {
"version": "0.18.11",
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.11.tgz",
"integrity": "sha512-iPuoxQEV34+hTF6FT7om+Qwziv1U519lEOvekXO9zaMMlT9+XneAhKL32DW3H7okrCOBQ44BMihE8dclbZtTuw==",
"version": "0.18.14",
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.14.tgz",
"integrity": "sha512-qSwh8y38QKl+1Iqg+YhvCVYlSk3dVLk9N88VO71U4FUjtiSFylMWK3Ugr8GC6eTkkP4Tc83dVppt2n8vIdlSGg==",
"cpu": [
"x64"
],
@ -436,9 +436,9 @@
}
},
"node_modules/@esbuild/darwin-arm64": {
"version": "0.18.11",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.11.tgz",
"integrity": "sha512-Gm0QkI3k402OpfMKyQEEMG0RuW2LQsSmI6OeO4El2ojJMoF5NLYb3qMIjvbG/lbMeLOGiW6ooU8xqc+S0fgz2w==",
"version": "0.18.14",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.14.tgz",
"integrity": "sha512-9Hl2D2PBeDYZiNbnRKRWuxwHa9v5ssWBBjisXFkVcSP5cZqzZRFBUWEQuqBHO4+PKx4q4wgHoWtfQ1S7rUqJ2Q==",
"cpu": [
"arm64"
],
@ -452,9 +452,9 @@
}
},
"node_modules/@esbuild/darwin-x64": {
"version": "0.18.11",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.11.tgz",
"integrity": "sha512-N15Vzy0YNHu6cfyDOjiyfJlRJCB/ngKOAvoBf1qybG3eOq0SL2Lutzz9N7DYUbb7Q23XtHPn6lMDF6uWbGv9Fw==",
"version": "0.18.14",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.14.tgz",
"integrity": "sha512-ZnI3Dg4ElQ6tlv82qLc/UNHtFsgZSKZ7KjsUNAo1BF1SoYDjkGKHJyCrYyWjFecmXpvvG/KJ9A/oe0H12odPLQ==",
"cpu": [
"x64"
],
@ -468,9 +468,9 @@
}
},
"node_modules/@esbuild/freebsd-arm64": {
"version": "0.18.11",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.11.tgz",
"integrity": "sha512-atEyuq6a3omEY5qAh5jIORWk8MzFnCpSTUruBgeyN9jZq1K/QI9uke0ATi3MHu4L8c59CnIi4+1jDKMuqmR71A==",
"version": "0.18.14",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.14.tgz",
"integrity": "sha512-h3OqR80Da4oQCIa37zl8tU5MwHQ7qgPV0oVScPfKJK21fSRZEhLE4IIVpmcOxfAVmqjU6NDxcxhYaM8aDIGRLw==",
"cpu": [
"arm64"
],
@ -484,9 +484,9 @@
}
},
"node_modules/@esbuild/freebsd-x64": {
"version": "0.18.11",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.11.tgz",
"integrity": "sha512-XtuPrEfBj/YYYnAAB7KcorzzpGTvOr/dTtXPGesRfmflqhA4LMF0Gh/n5+a9JBzPuJ+CGk17CA++Hmr1F/gI0Q==",
"version": "0.18.14",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.14.tgz",
"integrity": "sha512-ha4BX+S6CZG4BoH9tOZTrFIYC1DH13UTCRHzFc3GWX74nz3h/N6MPF3tuR3XlsNjMFUazGgm35MPW5tHkn2lzQ==",
"cpu": [
"x64"
],
@ -500,9 +500,9 @@
}
},
"node_modules/@esbuild/linux-arm": {
"version": "0.18.11",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.11.tgz",
"integrity": "sha512-Idipz+Taso/toi2ETugShXjQ3S59b6m62KmLHkJlSq/cBejixmIydqrtM2XTvNCywFl3VC7SreSf6NV0i6sRyg==",
"version": "0.18.14",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.14.tgz",
"integrity": "sha512-5+7vehI1iqru5WRtJyU2XvTOvTGURw3OZxe3YTdE9muNNIdmKAVmSHpB3Vw2LazJk2ifEdIMt/wTWnVe5V98Kg==",
"cpu": [
"arm"
],
@ -516,9 +516,9 @@
}
},
"node_modules/@esbuild/linux-arm64": {
"version": "0.18.11",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.11.tgz",
"integrity": "sha512-c6Vh2WS9VFKxKZ2TvJdA7gdy0n6eSy+yunBvv4aqNCEhSWVor1TU43wNRp2YLO9Vng2G+W94aRz+ILDSwAiYog==",
"version": "0.18.14",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.14.tgz",
"integrity": "sha512-IXORRe22In7U65NZCzjwAUc03nn8SDIzWCnfzJ6t/8AvGx5zBkcLfknI+0P+hhuftufJBmIXxdSTbzWc8X/V4w==",
"cpu": [
"arm64"
],
@ -532,9 +532,9 @@
}
},
"node_modules/@esbuild/linux-ia32": {
"version": "0.18.11",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.11.tgz",
"integrity": "sha512-S3hkIF6KUqRh9n1Q0dSyYcWmcVa9Cg+mSoZEfFuzoYXXsk6196qndrM+ZiHNwpZKi3XOXpShZZ+9dfN5ykqjjw==",
"version": "0.18.14",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.14.tgz",
"integrity": "sha512-BfHlMa0nibwpjG+VXbOoqJDmFde4UK2gnW351SQ2Zd4t1N3zNdmUEqRkw/srC1Sa1DRBE88Dbwg4JgWCbNz/FQ==",
"cpu": [
"ia32"
],
@ -548,9 +548,9 @@
}
},
"node_modules/@esbuild/linux-loong64": {
"version": "0.18.11",
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.11.tgz",
"integrity": "sha512-MRESANOoObQINBA+RMZW+Z0TJWpibtE7cPFnahzyQHDCA9X9LOmGh68MVimZlM9J8n5Ia8lU773te6O3ILW8kw==",
"version": "0.18.14",
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.14.tgz",
"integrity": "sha512-j2/Ex++DRUWIAaUDprXd3JevzGtZ4/d7VKz+AYDoHZ3HjJzCyYBub9CU1wwIXN+viOP0b4VR3RhGClsvyt/xSw==",
"cpu": [
"loong64"
],
@ -564,9 +564,9 @@
}
},
"node_modules/@esbuild/linux-mips64el": {
"version": "0.18.11",
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.11.tgz",
"integrity": "sha512-qVyPIZrXNMOLYegtD1u8EBccCrBVshxMrn5MkuFc3mEVsw7CCQHaqZ4jm9hbn4gWY95XFnb7i4SsT3eflxZsUg==",
"version": "0.18.14",
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.14.tgz",
"integrity": "sha512-qn2+nc+ZCrJmiicoAnJXJJkZWt8Nwswgu1crY7N+PBR8ChBHh89XRxj38UU6Dkthl2yCVO9jWuafZ24muzDC/A==",
"cpu": [
"mips64el"
],
@ -580,9 +580,9 @@
}
},
"node_modules/@esbuild/linux-ppc64": {
"version": "0.18.11",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.11.tgz",
"integrity": "sha512-T3yd8vJXfPirZaUOoA9D2ZjxZX4Gr3QuC3GztBJA6PklLotc/7sXTOuuRkhE9W/5JvJP/K9b99ayPNAD+R+4qQ==",
"version": "0.18.14",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.14.tgz",
"integrity": "sha512-aGzXzd+djqeEC5IRkDKt3kWzvXoXC6K6GyYKxd+wsFJ2VQYnOWE954qV2tvy5/aaNrmgPTb52cSCHFE+Z7Z0yg==",
"cpu": [
"ppc64"
],
@ -596,9 +596,9 @@
}
},
"node_modules/@esbuild/linux-riscv64": {
"version": "0.18.11",
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.11.tgz",
"integrity": "sha512-evUoRPWiwuFk++snjH9e2cAjF5VVSTj+Dnf+rkO/Q20tRqv+644279TZlPK8nUGunjPAtQRCj1jQkDAvL6rm2w==",
"version": "0.18.14",
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.14.tgz",
"integrity": "sha512-8C6vWbfr0ygbAiMFLS6OPz0BHvApkT2gCboOGV76YrYw+sD/MQJzyITNsjZWDXJwPu9tjrFQOVG7zijRzBCnLw==",
"cpu": [
"riscv64"
],
@ -612,9 +612,9 @@
}
},
"node_modules/@esbuild/linux-s390x": {
"version": "0.18.11",
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.11.tgz",
"integrity": "sha512-/SlRJ15XR6i93gRWquRxYCfhTeC5PdqEapKoLbX63PLCmAkXZHY2uQm2l9bN0oPHBsOw2IswRZctMYS0MijFcg==",
"version": "0.18.14",
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.14.tgz",
"integrity": "sha512-G/Lf9iu8sRMM60OVGOh94ZW2nIStksEcITkXdkD09/T6QFD/o+g0+9WVyR/jajIb3A0LvBJ670tBnGe1GgXMgw==",
"cpu": [
"s390x"
],
@ -628,9 +628,9 @@
}
},
"node_modules/@esbuild/linux-x64": {
"version": "0.18.11",
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.11.tgz",
"integrity": "sha512-xcncej+wF16WEmIwPtCHi0qmx1FweBqgsRtEL1mSHLFR6/mb3GEZfLQnx+pUDfRDEM4DQF8dpXIW7eDOZl1IbA==",
"version": "0.18.14",
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.14.tgz",
"integrity": "sha512-TBgStYBQaa3EGhgqIDM+ECnkreb0wkcKqL7H6m+XPcGUoU4dO7dqewfbm0mWEQYH3kzFHrzjOFNpSAVzDZRSJw==",
"cpu": [
"x64"
],
@ -644,9 +644,9 @@
}
},
"node_modules/@esbuild/netbsd-x64": {
"version": "0.18.11",
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.11.tgz",
"integrity": "sha512-aSjMHj/F7BuS1CptSXNg6S3M4F3bLp5wfFPIJM+Km2NfIVfFKhdmfHF9frhiCLIGVzDziggqWll0B+9AUbud/Q==",
"version": "0.18.14",
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.14.tgz",
"integrity": "sha512-stvCcjyCQR2lMTroqNhAbvROqRjxPEq0oQ380YdXxA81TaRJEucH/PzJ/qsEtsHgXlWFW6Ryr/X15vxQiyRXVg==",
"cpu": [
"x64"
],
@ -660,9 +660,9 @@
}
},
"node_modules/@esbuild/openbsd-x64": {
"version": "0.18.11",
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.11.tgz",
"integrity": "sha512-tNBq+6XIBZtht0xJGv7IBB5XaSyvYPCm1PxJ33zLQONdZoLVM0bgGqUrXnJyiEguD9LU4AHiu+GCXy/Hm9LsdQ==",
"version": "0.18.14",
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.14.tgz",
"integrity": "sha512-apAOJF14CIsN5ht1PA57PboEMsNV70j3FUdxLmA2liZ20gEQnfTG5QU0FhENo5nwbTqCB2O3WDsXAihfODjHYw==",
"cpu": [
"x64"
],
@ -676,9 +676,9 @@
}
},
"node_modules/@esbuild/sunos-x64": {
"version": "0.18.11",
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.11.tgz",
"integrity": "sha512-kxfbDOrH4dHuAAOhr7D7EqaYf+W45LsAOOhAet99EyuxxQmjbk8M9N4ezHcEiCYPaiW8Dj3K26Z2V17Gt6p3ng==",
"version": "0.18.14",
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.14.tgz",
"integrity": "sha512-fYRaaS8mDgZcGybPn2MQbn1ZNZx+UXFSUoS5Hd2oEnlsyUcr/l3c6RnXf1bLDRKKdLRSabTmyCy7VLQ7VhGdOQ==",
"cpu": [
"x64"
],
@ -692,9 +692,9 @@
}
},
"node_modules/@esbuild/win32-arm64": {
"version": "0.18.11",
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.11.tgz",
"integrity": "sha512-Sh0dDRyk1Xi348idbal7lZyfSkjhJsdFeuC13zqdipsvMetlGiFQNdO+Yfp6f6B4FbyQm7qsk16yaZk25LChzg==",
"version": "0.18.14",
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.14.tgz",
"integrity": "sha512-1c44RcxKEJPrVj62XdmYhxXaU/V7auELCmnD+Ri+UCt+AGxTvzxl9uauQhrFso8gj6ZV1DaORV0sT9XSHOAk8Q==",
"cpu": [
"arm64"
],
@ -708,9 +708,9 @@
}
},
"node_modules/@esbuild/win32-ia32": {
"version": "0.18.11",
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.11.tgz",
"integrity": "sha512-o9JUIKF1j0rqJTFbIoF4bXj6rvrTZYOrfRcGyL0Vm5uJ/j5CkBD/51tpdxe9lXEDouhRgdr/BYzUrDOvrWwJpg==",
"version": "0.18.14",
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.14.tgz",
"integrity": "sha512-EXAFttrdAxZkFQmpvcAQ2bywlWUsONp/9c2lcfvPUhu8vXBBenCXpoq9YkUvVP639ld3YGiYx0YUQ6/VQz3Maw==",
"cpu": [
"ia32"
],
@ -724,9 +724,9 @@
}
},
"node_modules/@esbuild/win32-x64": {
"version": "0.18.11",
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.11.tgz",
"integrity": "sha512-rQI4cjLHd2hGsM1LqgDI7oOCYbQ6IBOVsX9ejuRMSze0GqXUG2ekwiKkiBU1pRGSeCqFFHxTrcEydB2Hyoz9CA==",
"version": "0.18.14",
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.14.tgz",
"integrity": "sha512-K0QjGbcskx+gY+qp3v4/940qg8JitpXbdxFhRDA1aYoNaPff88+aEwoq45aqJ+ogpxQxmU0ZTjgnrQD/w8iiUg==",
"cpu": [
"x64"
],
@ -816,15 +816,6 @@
"integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
"dev": true
},
"node_modules/@nicolo-ribaudo/semver-v6": {
"version": "6.3.3",
"resolved": "https://registry.npmjs.org/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz",
"integrity": "sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg==",
"dev": true,
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@nodelib/fs.scandir": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@ -861,9 +852,9 @@
}
},
"node_modules/@remix-run/router": {
"version": "1.7.1",
"resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.7.1.tgz",
"integrity": "sha512-bgVQM4ZJ2u2CM8k1ey70o1ePFXsEzYVZoWghh6WjM8p59jQ7HxzbHW4SbnWFG7V9ig9chLawQxDTZ3xzOF8MkQ==",
"version": "1.7.2",
"resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.7.2.tgz",
"integrity": "sha512-7Lcn7IqGMV+vizMPoEl5F0XDshcdDYtMI6uJLQdQz5CfZAwy3vvGKYSUk789qndt5dEC4HfSjviSYlSoHGL2+A==",
"engines": {
"node": ">=14"
}
@ -1121,9 +1112,9 @@
"dev": true
},
"node_modules/@types/node": {
"version": "20.4.1",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.1.tgz",
"integrity": "sha512-JIzsAvJeA/5iY6Y/OxZbv1lUcc8dNSE77lb2gnBH+/PJ3lFR1Ccvgwl5JWnHAkNHcRsT0TbpVOsiMKZ1F/yyJg==",
"version": "20.4.2",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.2.tgz",
"integrity": "sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw==",
"dev": true
},
"node_modules/@types/prop-types": {
@ -1133,9 +1124,9 @@
"dev": true
},
"node_modules/@types/react": {
"version": "18.2.14",
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.14.tgz",
"integrity": "sha512-A0zjq+QN/O0Kpe30hA1GidzyFjatVvrpIvWLxD+xv67Vt91TWWgco9IvrJBkeyHm1trGaFS/FSGqPlhyeZRm0g==",
"version": "18.2.15",
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.15.tgz",
"integrity": "sha512-oEjE7TQt1fFTFSbf8kkNuc798ahTUzn3Le67/PWjE8MAfYAD/qB7O8hSTcromLFqHCt9bcdOg5GXMokzTjJ5SA==",
"dev": true,
"dependencies": {
"@types/prop-types": "*",
@ -1144,9 +1135,9 @@
}
},
"node_modules/@types/react-dom": {
"version": "18.2.6",
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.6.tgz",
"integrity": "sha512-2et4PDvg6PVCyS7fuTc4gPoksV58bW0RwSxWKcPRcHZf0PRUGq03TKcD/rUHe3azfV6/5/biUBJw+HhCQjaP0A==",
"version": "18.2.7",
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.7.tgz",
"integrity": "sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==",
"dev": true,
"dependencies": {
"@types/react": "*"
@ -1159,9 +1150,9 @@
"dev": true
},
"node_modules/@vitejs/plugin-react": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.0.2.tgz",
"integrity": "sha512-zbnVp3Esfg33zDaoLrjxG+p/dPiOtpvJA+1oOEQwSxMMTRL9zi1eghIcd2WtLjkcKnPsa3S15LzS/OzDn2BOCA==",
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.0.3.tgz",
"integrity": "sha512-pwXDog5nwwvSIzwrvYYmA2Ljcd/ZNlcsSG2Q9CNDBwnsd55UGAyr2doXtB5j+2uymRCnCfExlznzzSFbBRcoCg==",
"dev": true,
"dependencies": {
"@babel/core": "^7.22.5",
@ -1493,9 +1484,9 @@
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001514",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001514.tgz",
"integrity": "sha512-ENcIpYBmwAAOm/V2cXgM7rZUrKKaqisZl4ZAI520FIkqGXUxJjmaIssbRW5HVVR5tyV6ygTLIm15aU8LUmQSaQ==",
"version": "1.0.30001517",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001517.tgz",
"integrity": "sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==",
"dev": true,
"funding": [
{
@ -1646,6 +1637,39 @@
"node": ">=10.18.0 <11 || >=12.14.0 <13 || >=14"
}
},
"node_modules/concordance/node_modules/lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dev": true,
"dependencies": {
"yallist": "^4.0.0"
},
"engines": {
"node": ">=10"
}
},
"node_modules/concordance/node_modules/semver": {
"version": "7.5.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
"dev": true,
"dependencies": {
"lru-cache": "^6.0.0"
},
"bin": {
"semver": "bin/semver.js"
},
"engines": {
"node": ">=10"
}
},
"node_modules/concordance/node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true
},
"node_modules/convert-source-map": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
@ -1795,9 +1819,9 @@
"dev": true
},
"node_modules/electron-to-chromium": {
"version": "1.4.454",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.454.tgz",
"integrity": "sha512-pmf1rbAStw8UEQ0sr2cdJtWl48ZMuPD9Sto8HVQOq9vx9j2WgDEN6lYoaqFvqEHYOmGA9oRGn7LqWI9ta0YugQ==",
"version": "1.4.465",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.465.tgz",
"integrity": "sha512-XQcuHvEJRMU97UJ75e170mgcITZoz0lIyiaVjk6R+NMTJ8KBIvUHYd1779swgOppUlzxR+JsLpq59PumaXS1jQ==",
"dev": true
},
"node_modules/entities": {
@ -1822,9 +1846,9 @@
}
},
"node_modules/esbuild": {
"version": "0.18.11",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.11.tgz",
"integrity": "sha512-i8u6mQF0JKJUlGR3OdFLKldJQMMs8OqM9Cc3UCi9XXziJ9WERM5bfkHaEAy0YAvPRMgqSW55W7xYn84XtEFTtA==",
"version": "0.18.14",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.14.tgz",
"integrity": "sha512-uNPj5oHPYmj+ZhSQeYQVFZ+hAlJZbAGOmmILWIqrGvPVlNLbyOvU5Bu6Woi8G8nskcx0vwY0iFoMPrzT86Ko+w==",
"dev": true,
"hasInstallScript": true,
"bin": {
@ -1834,28 +1858,28 @@
"node": ">=12"
},
"optionalDependencies": {
"@esbuild/android-arm": "0.18.11",
"@esbuild/android-arm64": "0.18.11",
"@esbuild/android-x64": "0.18.11",
"@esbuild/darwin-arm64": "0.18.11",
"@esbuild/darwin-x64": "0.18.11",
"@esbuild/freebsd-arm64": "0.18.11",
"@esbuild/freebsd-x64": "0.18.11",
"@esbuild/linux-arm": "0.18.11",
"@esbuild/linux-arm64": "0.18.11",
"@esbuild/linux-ia32": "0.18.11",
"@esbuild/linux-loong64": "0.18.11",
"@esbuild/linux-mips64el": "0.18.11",
"@esbuild/linux-ppc64": "0.18.11",
"@esbuild/linux-riscv64": "0.18.11",
"@esbuild/linux-s390x": "0.18.11",
"@esbuild/linux-x64": "0.18.11",
"@esbuild/netbsd-x64": "0.18.11",
"@esbuild/openbsd-x64": "0.18.11",
"@esbuild/sunos-x64": "0.18.11",
"@esbuild/win32-arm64": "0.18.11",
"@esbuild/win32-ia32": "0.18.11",
"@esbuild/win32-x64": "0.18.11"
"@esbuild/android-arm": "0.18.14",
"@esbuild/android-arm64": "0.18.14",
"@esbuild/android-x64": "0.18.14",
"@esbuild/darwin-arm64": "0.18.14",
"@esbuild/darwin-x64": "0.18.14",
"@esbuild/freebsd-arm64": "0.18.14",
"@esbuild/freebsd-x64": "0.18.14",
"@esbuild/linux-arm": "0.18.14",
"@esbuild/linux-arm64": "0.18.14",
"@esbuild/linux-ia32": "0.18.14",
"@esbuild/linux-loong64": "0.18.14",
"@esbuild/linux-mips64el": "0.18.14",
"@esbuild/linux-ppc64": "0.18.14",
"@esbuild/linux-riscv64": "0.18.14",
"@esbuild/linux-s390x": "0.18.14",
"@esbuild/linux-x64": "0.18.14",
"@esbuild/netbsd-x64": "0.18.14",
"@esbuild/openbsd-x64": "0.18.14",
"@esbuild/sunos-x64": "0.18.14",
"@esbuild/win32-arm64": "0.18.14",
"@esbuild/win32-ia32": "0.18.14",
"@esbuild/win32-x64": "0.18.14"
}
},
"node_modules/escalade": {
@ -2665,9 +2689,9 @@
}
},
"node_modules/postcss": {
"version": "8.4.25",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.25.tgz",
"integrity": "sha512-7taJ/8t2av0Z+sQEvNzCkpDynl0tX3uJMCODi6nT3PfASC7dYCWV9aQ+uiCf+KBD4SEFcu+GvJdGdwzQ6OSjCw==",
"version": "8.4.26",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.26.tgz",
"integrity": "sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw==",
"dev": true,
"funding": [
{
@ -2888,11 +2912,11 @@
}
},
"node_modules/react-router": {
"version": "6.14.1",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-6.14.1.tgz",
"integrity": "sha512-U4PfgvG55LdvbQjg5Y9QRWyVxIdO1LlpYT7x+tMAxd9/vmiPuJhIwdxZuIQLN/9e3O4KFDHYfR9gzGeYMasW8g==",
"version": "6.14.2",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-6.14.2.tgz",
"integrity": "sha512-09Zss2dE2z+T1D03IheqAFtK4UzQyX8nFPWx6jkwdYzGLXd5ie06A6ezS2fO6zJfEb/SpG6UocN2O1hfD+2urQ==",
"dependencies": {
"@remix-run/router": "1.7.1"
"@remix-run/router": "1.7.2"
},
"engines": {
"node": ">=14"
@ -2902,12 +2926,12 @@
}
},
"node_modules/react-router-dom": {
"version": "6.14.1",
"resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.14.1.tgz",
"integrity": "sha512-ssF6M5UkQjHK70fgukCJyjlda0Dgono2QGwqGvuk7D+EDGHdacEN3Yke2LTMjkrpHuFwBfDFsEjGVXBDmL+bWw==",
"version": "6.14.2",
"resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.14.2.tgz",
"integrity": "sha512-5pWX0jdKR48XFZBuJqHosX3AAHjRAzygouMTyimnBPOLdY3WjzUSKhus2FVMihUFWzeLebDgr4r8UeQFAct7Bg==",
"dependencies": {
"@remix-run/router": "1.7.1",
"react-router": "6.14.1"
"@remix-run/router": "1.7.2",
"react-router": "6.14.2"
},
"engines": {
"node": ">=14"
@ -2975,9 +2999,9 @@
}
},
"node_modules/rollup": {
"version": "3.26.2",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-3.26.2.tgz",
"integrity": "sha512-6umBIGVz93er97pMgQO08LuH3m6PUb3jlDUUGFsNJB6VgTCUaDFpupf5JfU30529m/UKOgmiX+uY6Sx8cOYpLA==",
"version": "3.26.3",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-3.26.3.tgz",
"integrity": "sha512-7Tin0C8l86TkpcMtXvQu6saWH93nhG3dGQ1/+l5V2TDMceTxO7kDiK6GzbfLWNNxqJXm591PcEZUozZm51ogwQ==",
"dev": true,
"bin": {
"rollup": "dist/bin/rollup"
@ -3047,38 +3071,14 @@
}
},
"node_modules/semver": {
"version": "7.5.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
"dependencies": {
"lru-cache": "^6.0.0"
},
"bin": {
"semver": "bin/semver.js"
},
"engines": {
"node": ">=10"
}
},
"node_modules/semver/node_modules/lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dev": true,
"dependencies": {
"yallist": "^4.0.0"
},
"engines": {
"node": ">=10"
}
},
"node_modules/semver/node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true
},
"node_modules/serialize-javascript": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
@ -3160,9 +3160,9 @@
}
},
"node_modules/sucrase": {
"version": "3.32.0",
"resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.32.0.tgz",
"integrity": "sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==",
"version": "3.34.0",
"resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz",
"integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==",
"dev": true,
"dependencies": {
"@jridgewell/gen-mapping": "^0.3.2",
@ -3212,9 +3212,9 @@
"dev": true
},
"node_modules/tailwindcss": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.2.tgz",
"integrity": "sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==",
"version": "3.3.3",
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz",
"integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==",
"dev": true,
"dependencies": {
"@alloc/quick-lru": "^5.2.0",
@ -3237,7 +3237,6 @@
"postcss-load-config": "^4.0.1",
"postcss-nested": "^6.0.1",
"postcss-selector-parser": "^6.0.11",
"postcss-value-parser": "^4.2.0",
"resolve": "^1.22.2",
"sucrase": "^3.32.0"
},
@ -3331,9 +3330,9 @@
"dev": true
},
"node_modules/tsconfck": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-2.1.1.tgz",
"integrity": "sha512-ZPCkJBKASZBmBUNqGHmRhdhM8pJYDdOXp4nRgj/O0JwUwsMq50lCDRQP/M5GBNAA0elPrq4gAeu4dkaVCuKWww==",
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-2.1.2.tgz",
"integrity": "sha512-ghqN1b0puy3MhhviwO2kGF8SeMDNhEbnKxjK7h6+fvY9JAxqvXi8y5NAHSQv687OVboS2uZIByzGd45/YxrRHg==",
"dev": true,
"bin": {
"tsconfck": "bin/tsconfck.js"
@ -3415,13 +3414,13 @@
"dev": true
},
"node_modules/vite": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/vite/-/vite-4.4.2.tgz",
"integrity": "sha512-zUcsJN+UvdSyHhYa277UHhiJ3iq4hUBwHavOpsNUGsTgjBeoBlK8eDt+iT09pBq0h9/knhG/SPrZiM7cGmg7NA==",
"version": "4.4.4",
"resolved": "https://registry.npmjs.org/vite/-/vite-4.4.4.tgz",
"integrity": "sha512-4mvsTxjkveWrKDJI70QmelfVqTm+ihFAb6+xf4sjEU2TmUCTlVX87tmg/QooPEMQb/lM9qGHT99ebqPziEd3wg==",
"dev": true,
"dependencies": {
"esbuild": "^0.18.10",
"postcss": "^8.4.24",
"postcss": "^8.4.25",
"rollup": "^3.25.2"
},
"bin": {

View File

@ -181,8 +181,8 @@ const SelectPlayerModal: FC = () => {
{
allPlayers.map(player =>
<div key={player.UserName} className={"border-b pb-1"}>
<span className={"mx-2"}>{player.UserName} has {player.Box.count} pellets</span>
<div key={player.Username} className={"border-b pb-1"}>
<span className={"mx-2"}>{player.Username} has {player.Box.count} pellets</span>
<button className={"text-blue-500 enabled:cursor-pointer disabled:text-gray-500"}
style={{background: "none"}}
disabled={player.Box.count === 0}

View File

@ -93,7 +93,7 @@ export const GameComponent: FC<{ player: Player, map: GameMap }> = ({player, map
return (
<>
<div className={"flex justify-center"}>
{players?.map(p => <PlayerStats key={p.UserName} player={p}/>)}
{players?.map(p => <PlayerStats key={p.Username} player={p}/>)}
</div>
<div className={"flex-center"}>
<GameButton onReadyClick={sendReady} onRollDiceClick={rollDice}/>

View File

@ -13,7 +13,7 @@ const PlayerStats: FC<{ player: Player } & ComponentProps> = (
return (
<div key={player.Colour}
className={`w-fit m-2 ${player.State === State.disconnected ? "text-gray-500" : ""} ${className}`} id={id}>
<p className={player.UserName === currentPlayerName ? "underline" : ""}>Player: {player.UserName}</p>
<p className={player.Username === currentPlayerName ? "underline" : ""}>Player: {player.Username}</p>
<p>Colour: {player.Colour}</p>
{player.State === State.inGame || player.State === State.disconnected ?
<>

View File

@ -14,14 +14,14 @@ export enum State {
}
export default class Player {
public readonly UserName: string;
public readonly Username: string;
public readonly PacMan: Character;
public readonly Colour: Colour;
public readonly Box: Box;
public State: State;
constructor(props: PlayerProps) {
this.UserName = props.UserName;
this.Username = props.Username;
this.Colour = props.Colour;
this.Box = new Box(props.Box ?? {Colour: props.Colour});
this.PacMan = new Character(props.PacMan ?? {
@ -33,7 +33,7 @@ export default class Player {
public isTurn(): boolean {
const store = getDefaultStore();
return store.get(currentPlayerNameAtom) === this.UserName;
return store.get(currentPlayerNameAtom) === this.Username;
}
public addPellet(pellet: Pellet): void {

View File

@ -17,7 +17,7 @@ const Home: FC = () => {
function formHandler(): void {
if (!input.current || !dropdown.current) return;
const player = new Player({
UserName: input.current.value,
Username: input.current.value,
Colour: dropdown.current.value as Colour,
});
setPlayer(player);

View File

@ -37,7 +37,7 @@ interface BoxProps {
}
interface PlayerProps {
readonly UserName: string,
readonly Username: string,
readonly PacMan?: CharacterProps,
readonly Colour: import("../game/colour").Colour,
readonly Box?: BoxProps,

View File

@ -104,7 +104,7 @@ function ready(data?: ReadyData): void {
const players = data.Players.map(p => new Player(p));
store.set(playersAtom, players);
if (data.AllReady) {
store.set(currentPlayerNameAtom, data.Players[0].UserName);
store.set(currentPlayerNameAtom, data.Players[0].Username);
}
} else {
console.error("Error:", data);

View File

@ -47,7 +47,7 @@ export const currentPlayerNameAtom = atom<string | undefined>(undefined);
*/
export const currentPlayerAtom = atom<Player | undefined>(get => {
const currentPlayerName = get(currentPlayerNameAtom);
return get(playersAtom).find(player => player.UserName === currentPlayerName);
return get(playersAtom).find(player => player.Username === currentPlayerName);
});
/**
* Whether the roll dice button should be enabled.

View File

@ -2,7 +2,7 @@ namespace pacMan.GameStuff.Items;
public interface IPlayer
{
string UserName { get; init; }
string Username { get; init; }
Character PacMan { get; init; }
string Colour { get; init; }
Box? Box { get; init; }
@ -23,10 +23,10 @@ public class Player : IPlayer, IEquatable<Player>
{
if (ReferenceEquals(null, other)) return false;
if (ReferenceEquals(this, other)) return true;
return UserName == other.UserName;
return Username == other.Username;
}
public required string UserName { get; init; }
public required string Username { get; init; }
public required Character PacMan { get; init; }
public required string Colour { get; init; }
public Box? Box { get; init; }
@ -39,5 +39,5 @@ public class Player : IPlayer, IEquatable<Player>
return obj.GetType() == GetType() && Equals((Player)obj);
}
public override int GetHashCode() => UserName.GetHashCode();
public override int GetHashCode() => Username.GetHashCode();
}

View File

@ -62,8 +62,8 @@ public class ActionService : IActionService
Game? group;
IPlayer? player;
if ((group = _gameService.FindGameByUsername(Player.UserName)) != null &&
(player = group.Players.Find(p => p.UserName == Player.UserName))?.State == State.Disconnected)
if ((group = _gameService.FindGameByUsername(Player.Username)) != null &&
(player = group.Players.Find(p => p.Username == Player.Username))?.State == State.Disconnected)
{
player.State = group.IsGameStarted ? State.InGame : State.WaitingForPlayers;
Player = player;
@ -98,7 +98,7 @@ public class ActionService : IActionService
return data;
}
public string FindNextPlayer() => Game?.NextPlayer().UserName ?? "Error: No group found";
public string FindNextPlayer() => Game?.NextPlayer().Username ?? "Error: No group found";
public void Disconnect()
{

View File

@ -56,7 +56,7 @@ public class Game // TODO handle disconnects and reconnects
*/
player.State = State.WaitingForPlayers;
if (Players.Exists(p => p.UserName == player.UserName)) return true; // TODO change to false
if (Players.Exists(p => p.Username == player.Username)) return true; // TODO change to false
Players.Add(player);
if (player.PacMan.SpawnPosition is null) SetSpawn(player);
return true;

View File

@ -83,6 +83,6 @@ public class GameService : WebSocketService
public Game? FindGameByUsername(string username)
{
return Games.FirstOrDefault(game => game.Players.Exists(player => player.UserName == username));
return Games.FirstOrDefault(game => game.Players.Exists(player => player.Username == username));
}
}