Skip to content

Commit 2a0e931

Browse files
committed
chore(deps): update
NOTE: not update Docker.DotNet.Enhanced due to API break changes, but Testcontainers.* not update yet
1 parent e9300a5 commit 2a0e931

File tree

7 files changed

+459
-466
lines changed

7 files changed

+459
-466
lines changed

src/Directory.Packages.props

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@
44
</PropertyGroup>
55
<ItemGroup>
66
<PackageVersion Include="Aigamo.ResXGenerator" Version="4.3.0" />
7-
<PackageVersion Include="Aspire.Hosting.AppHost" Version="13.0.1" />
8-
<PackageVersion Include="Aspire.Hosting.PostgreSQL" Version="13.0.1" />
9-
<PackageVersion Include="Aspire.Hosting.Redis" Version="13.0.1" />
10-
<PackageVersion Include="AWSSDK.S3" Version="4.0.13.1" />
7+
<PackageVersion Include="Aspire.Hosting.AppHost" Version="13.0.2" />
8+
<PackageVersion Include="Aspire.Hosting.PostgreSQL" Version="13.0.2" />
9+
<PackageVersion Include="Aspire.Hosting.Redis" Version="13.0.2" />
10+
<PackageVersion Include="AWSSDK.S3" Version="4.0.14" />
1111
<PackageVersion Include="Azure.Monitor.OpenTelemetry.AspNetCore" Version="1.4.0" />
1212
<PackageVersion Include="BouncyCastle.Cryptography" Version="2.6.2" />
1313
<PackageVersion Include="Cronos" Version="0.11.1" />
1414
<PackageVersion Include="Docker.DotNet.Enhanced" Version="3.130.0" />
1515
<PackageVersion Include="Docker.DotNet.Enhanced.BasicAuth" Version="3.130.0" />
16-
<PackageVersion Include="KubernetesClient" Version="18.0.5" />
16+
<PackageVersion Include="KubernetesClient" Version="18.0.13" />
1717
<PackageVersion Include="MailKit" Version="4.14.1" />
1818
<PackageVersion Include="MemoryPack" Version="1.21.4" />
1919
<PackageVersion Include="Microsoft.AspNetCore.DataProtection.EntityFrameworkCore" Version="10.0.0" />
@@ -71,4 +71,4 @@
7171
<PackageVersion Include="coverlet.msbuild" Version="6.0.4" />
7272
<PackageVersion Include="ZstdSharp.Port" Version="0.8.6" />
7373
</ItemGroup>
74-
</Project>
74+
</Project>

src/GZCTF.Integration.Test/Base/GZCTFApplicationFactory.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ namespace GZCTF.Integration.Test.Base;
2828
public class GZCTFApplicationFactory : WebApplicationFactory<Program>, IAsyncLifetime
2929
{
3030
private readonly PostgreSqlContainer _postgresContainer = new PostgreSqlBuilder()
31-
.WithImage("postgres:17-alpine")
31+
.WithImage("postgres:alpine")
3232
.WithDatabase("gzctf_test")
3333
.WithUsername("postgres")
3434
.WithPassword("postgres")
@@ -73,7 +73,7 @@ public GZCTFApplicationFactory()
7373
Console.WriteLine(@"[GZCTFApplicationFactory] Creating K3s container...");
7474

7575
var builder = new K3sBuilder()
76-
.WithImage("rancher/k3s:v1.34.1-k3s1")
76+
.WithImage("rancher/k3s:v1.33.6+k3s1")
7777
.WithCleanUp(true);
7878

7979
_k3sContainer = builder.Build();

src/GZCTF.Integration.Test/Base/TestDataSeeder.cs

Lines changed: 43 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -13,38 +13,38 @@ namespace GZCTF.Integration.Test.Base;
1313
public static class TestDataSeeder
1414
{
1515
// Shared game instances for test reuse
16-
private static int _sharedBasicGameId;
17-
private static int _sharedInviteGameId;
18-
private static int _sharedPracticeModeGameId;
19-
private static int _sharedWithReviewGameId;
16+
private static int SharedBasicGameId;
17+
private static int SharedInviteGameId;
18+
private static int SharedPracticeModeGameId;
19+
private static int SharedWithReviewGameId;
2020

21-
private static readonly SemaphoreSlim _basicGameLock = new(1, 1);
22-
private static readonly SemaphoreSlim _inviteGameLock = new(1, 1);
23-
private static readonly SemaphoreSlim _practiceModeGameLock = new(1, 1);
24-
private static readonly SemaphoreSlim _withReviewGameLock = new(1, 1);
21+
private static readonly SemaphoreSlim BasicGameLock = new(1, 1);
22+
private static readonly SemaphoreSlim InviteGameLock = new(1, 1);
23+
private static readonly SemaphoreSlim PracticeModeGameLock = new(1, 1);
24+
private static readonly SemaphoreSlim WithReviewGameLock = new(1, 1);
2525

2626
/// <summary>
2727
/// Get or create a shared basic game (no special configuration)
2828
/// Suitable for: basic join, permission tests, multi-user scenarios
2929
/// </summary>
3030
public static async Task<int> GetOrCreateBasicGameAsync(IServiceProvider services)
3131
{
32-
if (_sharedBasicGameId > 0)
33-
return _sharedBasicGameId;
32+
if (SharedBasicGameId > 0)
33+
return SharedBasicGameId;
3434

35-
await _basicGameLock.WaitAsync();
35+
await BasicGameLock.WaitAsync();
3636
try
3737
{
38-
if (_sharedBasicGameId > 0)
39-
return _sharedBasicGameId;
38+
if (SharedBasicGameId > 0)
39+
return SharedBasicGameId;
4040

4141
var game = await CreateGameAsync(services, "Shared Basic Game");
42-
_sharedBasicGameId = game.Id;
43-
return _sharedBasicGameId;
42+
SharedBasicGameId = game.Id;
43+
return SharedBasicGameId;
4444
}
4545
finally
4646
{
47-
_basicGameLock.Release();
47+
BasicGameLock.Release();
4848
}
4949
}
5050

@@ -54,33 +54,33 @@ public static async Task<int> GetOrCreateBasicGameAsync(IServiceProvider service
5454
/// </summary>
5555
public static async Task<int> GetOrCreateInviteGameAsync(IServiceProvider services)
5656
{
57-
if (_sharedInviteGameId > 0)
58-
return _sharedInviteGameId;
57+
if (SharedInviteGameId > 0)
58+
return SharedInviteGameId;
5959

60-
await _inviteGameLock.WaitAsync();
60+
await InviteGameLock.WaitAsync();
6161
try
6262
{
63-
if (_sharedInviteGameId > 0)
64-
return _sharedInviteGameId;
63+
if (SharedInviteGameId > 0)
64+
return SharedInviteGameId;
6565

6666
var game = await CreateGameAsync(services, "Shared Invite Game");
6767

6868
// Set game invite code
6969
using var scope = services.CreateScope();
7070
var gameRepo = scope.ServiceProvider.GetRequiredService<IGameRepository>();
71-
var gameEntity = await gameRepo.GetGameById(game.Id, default);
71+
var gameEntity = await gameRepo.GetGameById(game.Id, CancellationToken.None);
7272
if (gameEntity != null)
7373
{
7474
gameEntity.InviteCode = "SHARED_INVITE_2025";
75-
await gameRepo.SaveAsync(default);
75+
await gameRepo.SaveAsync(CancellationToken.None);
7676
}
7777

78-
_sharedInviteGameId = game.Id;
79-
return _sharedInviteGameId;
78+
SharedInviteGameId = game.Id;
79+
return SharedInviteGameId;
8080
}
8181
finally
8282
{
83-
_inviteGameLock.Release();
83+
InviteGameLock.Release();
8484
}
8585
}
8686

@@ -90,23 +90,23 @@ public static async Task<int> GetOrCreateInviteGameAsync(IServiceProvider servic
9090
/// </summary>
9191
public static async Task<int> GetOrCreatePracticeModeGameAsync(IServiceProvider services)
9292
{
93-
if (_sharedPracticeModeGameId > 0)
94-
return _sharedPracticeModeGameId;
93+
if (SharedPracticeModeGameId > 0)
94+
return SharedPracticeModeGameId;
9595

96-
await _practiceModeGameLock.WaitAsync();
96+
await PracticeModeGameLock.WaitAsync();
9797
try
9898
{
99-
if (_sharedPracticeModeGameId > 0)
100-
return _sharedPracticeModeGameId;
99+
if (SharedPracticeModeGameId > 0)
100+
return SharedPracticeModeGameId;
101101

102102
var game = await CreateGameAsync(services, "Shared Practice Mode Game",
103103
practiceMode: true);
104-
_sharedPracticeModeGameId = game.Id;
105-
return _sharedPracticeModeGameId;
104+
SharedPracticeModeGameId = game.Id;
105+
return SharedPracticeModeGameId;
106106
}
107107
finally
108108
{
109-
_practiceModeGameLock.Release();
109+
PracticeModeGameLock.Release();
110110
}
111111
}
112112

@@ -116,23 +116,23 @@ public static async Task<int> GetOrCreatePracticeModeGameAsync(IServiceProvider
116116
/// </summary>
117117
public static async Task<int> GetOrCreateWithReviewGameAsync(IServiceProvider services)
118118
{
119-
if (_sharedWithReviewGameId > 0)
120-
return _sharedWithReviewGameId;
119+
if (SharedWithReviewGameId > 0)
120+
return SharedWithReviewGameId;
121121

122-
await _withReviewGameLock.WaitAsync();
122+
await WithReviewGameLock.WaitAsync();
123123
try
124124
{
125-
if (_sharedWithReviewGameId > 0)
126-
return _sharedWithReviewGameId;
125+
if (SharedWithReviewGameId > 0)
126+
return SharedWithReviewGameId;
127127

128128
var game = await CreateGameAsync(services, "Shared With Review Game",
129129
acceptWithoutReview: false);
130-
_sharedWithReviewGameId = game.Id;
131-
return _sharedWithReviewGameId;
130+
SharedWithReviewGameId = game.Id;
131+
return SharedWithReviewGameId;
132132
}
133133
finally
134134
{
135-
_withReviewGameLock.Release();
135+
WithReviewGameLock.Release();
136136
}
137137
}
138138

@@ -297,7 +297,7 @@ public static async Task<SeededParticipation> JoinGameAsync(IServiceProvider ser
297297
if (existingPart is not null)
298298
{
299299
// Add user to participation if not already a member
300-
if (!existingPart.Members.Any(m => m.UserId == userId))
300+
if (existingPart.Members.All(m => m.UserId != userId))
301301
{
302302
existingPart.Members.Add(new UserParticipation
303303
{

src/GZCTF/ClientApp/package.json

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@
2929
"@mdi/js": "^7.4.47",
3030
"@mdi/react": "^1.6.1",
3131
"@microsoft/signalr": "^10.0.0",
32-
"@shikijs/colorized-brackets": "^3.17.0",
33-
"@shikijs/langs": "^3.17.0",
34-
"@shikijs/themes": "^3.17.0",
35-
"@shikijs/transformers": "^3.17.0",
32+
"@shikijs/colorized-brackets": "^3.19.0",
33+
"@shikijs/langs": "^3.19.0",
34+
"@shikijs/themes": "^3.19.0",
35+
"@shikijs/transformers": "^3.19.0",
3636
"@xdsec/wsrx": "^0.5.5",
3737
"axios": "^1.13.2",
3838
"chroma-js": "^3.2.0",
@@ -43,21 +43,21 @@
4343
"embla-carousel-autoplay": "^8.6.0",
4444
"embla-carousel-react": "^8.6.0",
4545
"fast-average-color": "^9.5.0",
46-
"i18next": "^25.6.3",
46+
"i18next": "^25.7.1",
4747
"i18next-browser-languagedetector": "^8.2.0",
4848
"i18next-resources-to-backend": "^1.2.1",
4949
"katex": "^0.16.25",
5050
"lz-string": "^1.5.0",
5151
"marked": "^17.0.1",
5252
"pako": "^2.1.0",
5353
"pdfjs-dist": "5.4.296",
54-
"react": "^19.2.0",
55-
"react-dom": "^19.2.0",
54+
"react": "^19.2.1",
55+
"react-dom": "^19.2.1",
5656
"react-error-boundary": "^6.0.0",
5757
"react-i18next": "^16.3.5",
5858
"react-pdf": "^10.2.0",
59-
"react-router": "^7.9.6",
60-
"shiki": "^3.17.0",
59+
"react-router": "^7.10.0",
60+
"shiki": "^3.19.0",
6161
"swr": "^2.3.7"
6262
},
6363
"devDependencies": {
@@ -71,26 +71,26 @@
7171
"@types/react-dom": "^19.2.3",
7272
"@vitejs/plugin-react": "^5.1.1",
7373
"babel-plugin-prismjs": "^2.1.0",
74-
"oxlint": "^1.30.0",
74+
"oxlint": "^1.31.0",
7575
"postcss": "^8.5.6",
7676
"postcss-preset-mantine": "^1.18.0",
7777
"postcss-simple-vars": "^7.0.1",
78-
"prettier": "^3.7.2",
78+
"prettier": "^3.7.4",
7979
"prettier-plugin-sort-json": "^4.1.1",
8080
"swagger-typescript-api": "^13.2.16",
8181
"tslib": "^2.8.1",
8282
"typescript": "5.9.3",
83-
"vite": "npm:rolldown-vite@7.2.2",
83+
"vite": "npm:rolldown-vite@^7.2.10",
8484
"vite-plugin-banner": "^0.8.1",
8585
"vite-plugin-optimize-css-modules": "^1.2.0",
86-
"vite-plugin-pages": "^0.33.1",
86+
"vite-plugin-pages": "^0.33.2",
8787
"vite-plugin-webfont-dl": "^3.11.1",
8888
"vite-tsconfig-paths": "^5.1.4"
8989
},
9090
"pnpm": {
9191
"overrides": {
9292
"canvas": "npm:dry-uninstall",
93-
"vite": "npm:rolldown-vite@7.2.2"
93+
"vite": "npm:rolldown-vite@latest"
9494
}
9595
},
9696
"onlyBuiltDependencies": [

0 commit comments

Comments
 (0)