diff --git a/GZCTF.Test/CTFServer.Test.csproj b/GZCTF.Test/CTFServer.Test.csproj
index aade80654..af4f8e18f 100644
--- a/GZCTF.Test/CTFServer.Test.csproj
+++ b/GZCTF.Test/CTFServer.Test.csproj
@@ -14,8 +14,8 @@
4
-
-
+
+
diff --git a/GZCTF/CTFServer.csproj b/GZCTF/CTFServer.csproj
index ff12548e9..fa803cc46 100644
--- a/GZCTF/CTFServer.csproj
+++ b/GZCTF/CTFServer.csproj
@@ -28,11 +28,11 @@
-
-
-
-
-
+
+
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
@@ -53,10 +53,10 @@
-
-
-
-
+
+
+
+
diff --git a/GZCTF/ClientApp/package.json b/GZCTF/ClientApp/package.json
index be5a7604d..11770953f 100644
--- a/GZCTF/ClientApp/package.json
+++ b/GZCTF/ClientApp/package.json
@@ -22,7 +22,7 @@
"@mantine/notifications": "^6.0.7",
"@mdi/js": "^7.2.96",
"@mdi/react": "^1.6.1",
- "@microsoft/signalr": "^7.0.4",
+ "@microsoft/signalr": "^7.0.5",
"dayjs": "^1.11.7",
"echarts": "^5.4.2",
"echarts-for-react": "^3.0.2",
@@ -39,7 +39,7 @@
"react-router": "^6.10.0",
"react-router-dom": "^6.10.0",
"swr": "^2.1.3",
- "vite-tsconfig-paths": "^4.1.0"
+ "vite-tsconfig-paths": "^4.2.0"
},
"devDependencies": {
"@babel/eslint-parser": "^7.21.3",
@@ -49,7 +49,7 @@
"@types/marked": "^4.0.8",
"@types/node": "18.15.11",
"@types/prismjs": "^1.26.0",
- "@types/react": "^18.0.34",
+ "@types/react": "^18.0.35",
"@types/react-dom": "^18.0.11",
"@types/react-pdf": "^6.2.0",
"@typescript-eslint/eslint-plugin": "^5.58.0",
diff --git a/GZCTF/ClientApp/pnpm-lock.yaml b/GZCTF/ClientApp/pnpm-lock.yaml
index 8a6dd6812..70116afdb 100644
--- a/GZCTF/ClientApp/pnpm-lock.yaml
+++ b/GZCTF/ClientApp/pnpm-lock.yaml
@@ -6,13 +6,13 @@ dependencies:
version: 7.21.4
'@emotion/react':
specifier: ^11.10.6
- version: 11.10.6(@types/react@18.0.34)(react@18.2.0)
+ version: 11.10.6(@types/react@18.0.35)(react@18.2.0)
'@mantine/carousel':
specifier: ^6.0.7
version: 6.0.7(@mantine/core@6.0.7)(@mantine/hooks@6.0.7)(embla-carousel-react@7.1.0)(react@18.2.0)
'@mantine/core':
specifier: ^6.0.7
- version: 6.0.7(@emotion/react@11.10.6)(@mantine/hooks@6.0.7)(@types/react@18.0.34)(react-dom@18.2.0)(react@18.2.0)
+ version: 6.0.7(@emotion/react@11.10.6)(@mantine/hooks@6.0.7)(@types/react@18.0.35)(react-dom@18.2.0)(react@18.2.0)
'@mantine/dates':
specifier: ^6.0.7
version: 6.0.7(@mantine/core@6.0.7)(@mantine/hooks@6.0.7)(dayjs@1.11.7)(react@18.2.0)
@@ -38,8 +38,8 @@ dependencies:
specifier: ^1.6.1
version: 1.6.1
'@microsoft/signalr':
- specifier: ^7.0.4
- version: 7.0.4
+ specifier: ^7.0.5
+ version: 7.0.5
dayjs:
specifier: ^1.11.7
version: 1.11.7
@@ -89,8 +89,8 @@ dependencies:
specifier: ^2.1.3
version: 2.1.3(react@18.2.0)
vite-tsconfig-paths:
- specifier: ^4.1.0
- version: 4.1.0(typescript@5.0.3)(vite@4.2.1)
+ specifier: ^4.2.0
+ version: 4.2.0(typescript@5.0.3)(vite@4.2.1)
devDependencies:
'@babel/eslint-parser':
@@ -115,8 +115,8 @@ devDependencies:
specifier: ^1.26.0
version: 1.26.0
'@types/react':
- specifier: ^18.0.34
- version: 18.0.34
+ specifier: ^18.0.35
+ version: 18.0.35
'@types/react-dom':
specifier: ^18.0.11
version: 18.0.11
@@ -472,7 +472,7 @@ packages:
resolution: {integrity: sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==}
dev: false
- /@emotion/react@11.10.6(@types/react@18.0.34)(react@18.2.0):
+ /@emotion/react@11.10.6(@types/react@18.0.35)(react@18.2.0):
resolution: {integrity: sha512-6HT8jBmcSkfzO7mc+N1L9uwvOnlcGoix8Zn7srt+9ga0MjREo6lRpuVX0kzo6Jp6oTqDhREOFsygN6Ew4fEQbw==}
peerDependencies:
'@types/react': '*'
@@ -488,7 +488,7 @@ packages:
'@emotion/use-insertion-effect-with-fallbacks': 1.0.0(react@18.2.0)
'@emotion/utils': 1.2.0
'@emotion/weak-memoize': 0.3.0
- '@types/react': 18.0.34
+ '@types/react': 18.0.35
hoist-non-react-statics: 3.3.2
react: 18.2.0
dev: false
@@ -834,14 +834,14 @@ packages:
embla-carousel-react: ^7.0.0
react: '>=16.8.0'
dependencies:
- '@mantine/core': 6.0.7(@emotion/react@11.10.6)(@mantine/hooks@6.0.7)(@types/react@18.0.34)(react-dom@18.2.0)(react@18.2.0)
+ '@mantine/core': 6.0.7(@emotion/react@11.10.6)(@mantine/hooks@6.0.7)(@types/react@18.0.35)(react-dom@18.2.0)(react@18.2.0)
'@mantine/hooks': 6.0.7(react@18.2.0)
'@mantine/utils': 6.0.7(react@18.2.0)
embla-carousel-react: 7.1.0(react@18.2.0)
react: 18.2.0
dev: false
- /@mantine/core@6.0.7(@emotion/react@11.10.6)(@mantine/hooks@6.0.7)(@types/react@18.0.34)(react-dom@18.2.0)(react@18.2.0):
+ /@mantine/core@6.0.7(@emotion/react@11.10.6)(@mantine/hooks@6.0.7)(@types/react@18.0.35)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-yk2ojsfdADte55T5nQTGRdwLttPYC98k7D9eMn9vLWnoSB3OPjlJhIcNstqL3jXSklZhlDLYjCeZyrOb7+HRaA==}
peerDependencies:
'@mantine/hooks': 6.0.7
@@ -855,8 +855,8 @@ packages:
'@radix-ui/react-scroll-area': 1.0.2(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
- react-remove-scroll: 2.5.5(@types/react@18.0.34)(react@18.2.0)
- react-textarea-autosize: 8.3.4(@types/react@18.0.34)(react@18.2.0)
+ react-remove-scroll: 2.5.5(@types/react@18.0.35)(react@18.2.0)
+ react-textarea-autosize: 8.3.4(@types/react@18.0.35)(react@18.2.0)
transitivePeerDependencies:
- '@emotion/react'
- '@types/react'
@@ -870,7 +870,7 @@ packages:
dayjs: '>=1.0.0'
react: '>=16.8.0'
dependencies:
- '@mantine/core': 6.0.7(@emotion/react@11.10.6)(@mantine/hooks@6.0.7)(@types/react@18.0.34)(react-dom@18.2.0)(react@18.2.0)
+ '@mantine/core': 6.0.7(@emotion/react@11.10.6)(@mantine/hooks@6.0.7)(@types/react@18.0.35)(react-dom@18.2.0)(react@18.2.0)
'@mantine/hooks': 6.0.7(react@18.2.0)
'@mantine/utils': 6.0.7(react@18.2.0)
dayjs: 1.11.7
@@ -885,7 +885,7 @@ packages:
react: '>=16.8.0'
react-dom: '>=16.8.0'
dependencies:
- '@mantine/core': 6.0.7(@emotion/react@11.10.6)(@mantine/hooks@6.0.7)(@types/react@18.0.34)(react-dom@18.2.0)(react@18.2.0)
+ '@mantine/core': 6.0.7(@emotion/react@11.10.6)(@mantine/hooks@6.0.7)(@types/react@18.0.35)(react-dom@18.2.0)(react@18.2.0)
'@mantine/hooks': 6.0.7(react@18.2.0)
'@mantine/utils': 6.0.7(react@18.2.0)
react: 18.2.0
@@ -919,7 +919,7 @@ packages:
react: '>=16.8.0'
react-dom: '>=16.8.0'
dependencies:
- '@mantine/core': 6.0.7(@emotion/react@11.10.6)(@mantine/hooks@6.0.7)(@types/react@18.0.34)(react-dom@18.2.0)(react@18.2.0)
+ '@mantine/core': 6.0.7(@emotion/react@11.10.6)(@mantine/hooks@6.0.7)(@types/react@18.0.35)(react-dom@18.2.0)(react@18.2.0)
'@mantine/hooks': 6.0.7(react@18.2.0)
'@mantine/utils': 6.0.7(react@18.2.0)
react: 18.2.0
@@ -934,7 +934,7 @@ packages:
react: '>=16.8.0'
react-dom: '>=16.8.0'
dependencies:
- '@mantine/core': 6.0.7(@emotion/react@11.10.6)(@mantine/hooks@6.0.7)(@types/react@18.0.34)(react-dom@18.2.0)(react@18.2.0)
+ '@mantine/core': 6.0.7(@emotion/react@11.10.6)(@mantine/hooks@6.0.7)(@types/react@18.0.35)(react-dom@18.2.0)(react@18.2.0)
'@mantine/hooks': 6.0.7(react@18.2.0)
'@mantine/utils': 6.0.7(react@18.2.0)
react: 18.2.0
@@ -949,7 +949,7 @@ packages:
react: '>=16.8.0'
react-dom: '>=16.8.0'
dependencies:
- '@emotion/react': 11.10.6(@types/react@18.0.34)(react@18.2.0)
+ '@emotion/react': 11.10.6(@types/react@18.0.35)(react@18.2.0)
clsx: 1.1.1
csstype: 3.0.9
react: 18.2.0
@@ -974,8 +974,8 @@ packages:
prop-types: 15.8.1
dev: false
- /@microsoft/signalr@7.0.4:
- resolution: {integrity: sha512-K+I0MXvawTph0D2pwmuGXBIQbyZ+zDSw39Iqgy+D9aewLfQR4TIRFvz4kFNRhvlHIcSKrUFL2w3uiHnMPSQs4g==}
+ /@microsoft/signalr@7.0.5:
+ resolution: {integrity: sha512-j84syCKlXkQAOQhyrzRmW7w/M2UXQ6OKcXXFIVNjmiiZbEGIvSvJDRAuyMFjArdQOXz+etJgd58H/prTbyTCrA==}
dependencies:
abort-controller: 3.0.0
eventsource: 2.0.2
@@ -1213,20 +1213,20 @@ packages:
/@types/react-dom@18.0.11:
resolution: {integrity: sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==}
dependencies:
- '@types/react': 18.0.34
+ '@types/react': 18.0.35
dev: true
/@types/react-pdf@6.2.0:
resolution: {integrity: sha512-OSCYmrfaJvpXkM5V4seUMAhUDOAOqbGQf9kwv14INyTf7AjDs2ukfkkQrLWRQ8OjWrDklbXYWh5l7pT7l0N76g==}
dependencies:
- '@types/react': 18.0.34
+ '@types/react': 18.0.35
pdfjs-dist: 2.16.105
transitivePeerDependencies:
- worker-loader
dev: true
- /@types/react@18.0.34:
- resolution: {integrity: sha512-NO1UO8941541CJl1BeOXi8a9dNKFK09Gnru5ZJqkm4Q3/WoQJtHvmwt0VX0SB9YCEwe7TfSSxDuaNmx6H2BAIQ==}
+ /@types/react@18.0.35:
+ resolution: {integrity: sha512-6Laome31HpetaIUGFWl1VQ3mdSImwxtFZ39rh059a1MNnKGqBpC88J6NJ8n/Is3Qx7CefDGLgf/KhN/sYCf7ag==}
dependencies:
'@types/prop-types': 15.7.5
'@types/scheduler': 0.16.3
@@ -1517,8 +1517,8 @@ packages:
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
dependencies:
- caniuse-lite: 1.0.30001477
- electron-to-chromium: 1.4.357
+ caniuse-lite: 1.0.30001478
+ electron-to-chromium: 1.4.361
node-releases: 2.0.10
update-browserslist-db: 1.0.10(browserslist@4.21.5)
@@ -1537,8 +1537,8 @@ packages:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'}
- /caniuse-lite@1.0.30001477:
- resolution: {integrity: sha512-lZim4iUHhGcy5p+Ri/G7m84hJwncj+Kz7S5aD4hoQfslKZJgt0tHc/hafVbqHC5bbhHb+mrW2JOUHkI5KH7toQ==}
+ /caniuse-lite@1.0.30001478:
+ resolution: {integrity: sha512-gMhDyXGItTHipJj2ApIvR+iVB5hd0KP3svMWWXDvZOmjzJJassGLMfxRkQCSYgGd2gtdL/ReeiyvMSFD1Ss6Mw==}
/chalk@2.4.2:
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
@@ -1769,8 +1769,8 @@ packages:
zrender: 5.4.3
dev: false
- /electron-to-chromium@1.4.357:
- resolution: {integrity: sha512-UTkCbNTAcGXABmEnQrGcW4m3cG6fcyBfD4KDF0iyEAlbrGZiY9dmslyDAGOD1Kr5biN2F743Y30aRCOtau35Vw==}
+ /electron-to-chromium@1.4.361:
+ resolution: {integrity: sha512-VocVwjPp05HUXzf3xmL0boRn5b0iyqC7amtDww84Jb1QJNPBc7F69gJyEeXRoriLBC4a5pSyckdllrXAg4mmRA==}
/embla-carousel-autoplay@7.1.0(embla-carousel@7.1.0):
resolution: {integrity: sha512-nYfgSGn3ek44OzwO0t/Ptuxq4PNPD5l7Y9X7JjLYI/DN1uGjqxz9L73YYqR6YCRDnTYJ88s9fep48dzBnSG4vQ==}
@@ -2608,7 +2608,7 @@ packages:
/merge-refs@1.1.3:
resolution: {integrity: sha512-di/iXo7YUDHs38KoIROE2BQvL6xmqiKYpNQSM0NG2jdvikvhJOeihXXyOXXMKkoMxdCXF2SvyxTJ92NuRA5wfA==}
dependencies:
- '@types/react': 18.0.34
+ '@types/react': 18.0.35
dev: false
/merge2@1.4.1:
@@ -2991,7 +2991,7 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
- /react-remove-scroll-bar@2.3.4(@types/react@18.0.34)(react@18.2.0):
+ /react-remove-scroll-bar@2.3.4(@types/react@18.0.35)(react@18.2.0):
resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==}
engines: {node: '>=10'}
peerDependencies:
@@ -3001,13 +3001,13 @@ packages:
'@types/react':
optional: true
dependencies:
- '@types/react': 18.0.34
+ '@types/react': 18.0.35
react: 18.2.0
- react-style-singleton: 2.2.1(@types/react@18.0.34)(react@18.2.0)
+ react-style-singleton: 2.2.1(@types/react@18.0.35)(react@18.2.0)
tslib: 2.5.0
dev: false
- /react-remove-scroll@2.5.5(@types/react@18.0.34)(react@18.2.0):
+ /react-remove-scroll@2.5.5(@types/react@18.0.35)(react@18.2.0):
resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==}
engines: {node: '>=10'}
peerDependencies:
@@ -3017,13 +3017,13 @@ packages:
'@types/react':
optional: true
dependencies:
- '@types/react': 18.0.34
+ '@types/react': 18.0.35
react: 18.2.0
- react-remove-scroll-bar: 2.3.4(@types/react@18.0.34)(react@18.2.0)
- react-style-singleton: 2.2.1(@types/react@18.0.34)(react@18.2.0)
+ react-remove-scroll-bar: 2.3.4(@types/react@18.0.35)(react@18.2.0)
+ react-style-singleton: 2.2.1(@types/react@18.0.35)(react@18.2.0)
tslib: 2.5.0
- use-callback-ref: 1.3.0(@types/react@18.0.34)(react@18.2.0)
- use-sidecar: 1.1.2(@types/react@18.0.34)(react@18.2.0)
+ use-callback-ref: 1.3.0(@types/react@18.0.35)(react@18.2.0)
+ use-sidecar: 1.1.2(@types/react@18.0.35)(react@18.2.0)
dev: false
/react-router-dom@6.10.0(react-dom@18.2.0)(react@18.2.0):
@@ -3049,7 +3049,7 @@ packages:
react: 18.2.0
dev: false
- /react-style-singleton@2.2.1(@types/react@18.0.34)(react@18.2.0):
+ /react-style-singleton@2.2.1(@types/react@18.0.35)(react@18.2.0):
resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==}
engines: {node: '>=10'}
peerDependencies:
@@ -3059,14 +3059,14 @@ packages:
'@types/react':
optional: true
dependencies:
- '@types/react': 18.0.34
+ '@types/react': 18.0.35
get-nonce: 1.0.1
invariant: 2.2.4
react: 18.2.0
tslib: 2.5.0
dev: false
- /react-textarea-autosize@8.3.4(@types/react@18.0.34)(react@18.2.0):
+ /react-textarea-autosize@8.3.4(@types/react@18.0.35)(react@18.2.0):
resolution: {integrity: sha512-CdtmP8Dc19xL8/R6sWvtknD/eCXkQr30dtvC4VmGInhRsfF8X/ihXCq6+9l9qbxmKRiq407/7z5fxE7cVWQNgQ==}
engines: {node: '>=10'}
peerDependencies:
@@ -3075,7 +3075,7 @@ packages:
'@babel/runtime': 7.21.0
react: 18.2.0
use-composed-ref: 1.3.0(react@18.2.0)
- use-latest: 1.2.1(@types/react@18.0.34)(react@18.2.0)
+ use-latest: 1.2.1(@types/react@18.0.35)(react@18.2.0)
transitivePeerDependencies:
- '@types/react'
dev: false
@@ -3494,7 +3494,7 @@ packages:
requires-port: 1.0.0
dev: false
- /use-callback-ref@1.3.0(@types/react@18.0.34)(react@18.2.0):
+ /use-callback-ref@1.3.0(@types/react@18.0.35)(react@18.2.0):
resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==}
engines: {node: '>=10'}
peerDependencies:
@@ -3504,7 +3504,7 @@ packages:
'@types/react':
optional: true
dependencies:
- '@types/react': 18.0.34
+ '@types/react': 18.0.35
react: 18.2.0
tslib: 2.5.0
dev: false
@@ -3517,7 +3517,7 @@ packages:
react: 18.2.0
dev: false
- /use-isomorphic-layout-effect@1.1.2(@types/react@18.0.34)(react@18.2.0):
+ /use-isomorphic-layout-effect@1.1.2(@types/react@18.0.35)(react@18.2.0):
resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==}
peerDependencies:
'@types/react': '*'
@@ -3526,11 +3526,11 @@ packages:
'@types/react':
optional: true
dependencies:
- '@types/react': 18.0.34
+ '@types/react': 18.0.35
react: 18.2.0
dev: false
- /use-latest@1.2.1(@types/react@18.0.34)(react@18.2.0):
+ /use-latest@1.2.1(@types/react@18.0.35)(react@18.2.0):
resolution: {integrity: sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==}
peerDependencies:
'@types/react': '*'
@@ -3539,12 +3539,12 @@ packages:
'@types/react':
optional: true
dependencies:
- '@types/react': 18.0.34
+ '@types/react': 18.0.35
react: 18.2.0
- use-isomorphic-layout-effect: 1.1.2(@types/react@18.0.34)(react@18.2.0)
+ use-isomorphic-layout-effect: 1.1.2(@types/react@18.0.35)(react@18.2.0)
dev: false
- /use-sidecar@1.1.2(@types/react@18.0.34)(react@18.2.0):
+ /use-sidecar@1.1.2(@types/react@18.0.35)(react@18.2.0):
resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==}
engines: {node: '>=10'}
peerDependencies:
@@ -3554,7 +3554,7 @@ packages:
'@types/react':
optional: true
dependencies:
- '@types/react': 18.0.34
+ '@types/react': 18.0.35
detect-node-es: 1.1.0
react: 18.2.0
tslib: 2.5.0
@@ -3616,8 +3616,8 @@ packages:
- debug
dev: true
- /vite-tsconfig-paths@4.1.0(typescript@5.0.3)(vite@4.2.1):
- resolution: {integrity: sha512-Ps275He1fF6Wpm/3tvyokIfXd3lcmk4KsdCG4yduSTRVt+htaxIoEor88M1h3soOeXg5fn77ZiupVRwGeB/XNQ==}
+ /vite-tsconfig-paths@4.2.0(typescript@5.0.3)(vite@4.2.1):
+ resolution: {integrity: sha512-jGpus0eUy5qbbMVGiTxCL1iB9ZGN6Bd37VGLJU39kTDD6ZfULTTb1bcc5IeTWqWJKiWV5YihCaibeASPiGi8kw==}
peerDependencies:
vite: '*'
peerDependenciesMeta:
diff --git a/GZCTF/Services/K8sService.cs b/GZCTF/Services/K8sService.cs
index 630803dcf..ee3acc67a 100644
--- a/GZCTF/Services/K8sService.cs
+++ b/GZCTF/Services/K8sService.cs
@@ -83,6 +83,7 @@ public K8sService(IOptions _registry, IOptions