diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props
index 86a9a1904..07ea87c85 100644
--- a/src/Directory.Packages.props
+++ b/src/Directory.Packages.props
@@ -32,7 +32,7 @@
-
+
diff --git a/src/GZCTF/ClientApp/package.json b/src/GZCTF/ClientApp/package.json
index 1fea89f3f..377a3dbb6 100644
--- a/src/GZCTF/ClientApp/package.json
+++ b/src/GZCTF/ClientApp/package.json
@@ -37,7 +37,7 @@
"embla-carousel-autoplay": "^8.5.1",
"embla-carousel-react": "^8.5.1",
"fast-average-color": "^9.4.0",
- "i18next": "^24.0.2",
+ "i18next": "^24.0.5",
"i18next-browser-languagedetector": "^8.0.0",
"katex": "^0.16.11",
"lz-string": "^1.5.0",
@@ -71,7 +71,7 @@
"@typescript-eslint/eslint-plugin": "^8.17.0",
"@typescript-eslint/parser": "^8.17.0",
"@vitejs/plugin-react": "^4.3.4",
- "axios": "^1.7.8",
+ "axios": "^1.7.9",
"babel-plugin-prismjs": "^2.1.0",
"eslint": "^9.16.0",
"eslint-plugin-oxlint": "^0.14.0",
@@ -84,7 +84,7 @@
"postcss": "^8.4.49",
"postcss-preset-mantine": "^1.17.0",
"postcss-simple-vars": "^7.0.1",
- "prettier": "~3.4.1",
+ "prettier": "~3.4.2",
"prettier-plugin-sort-json": "^4.0.0",
"rollup": "^4.28.0",
"swagger-typescript-api": "^13.0.23",
diff --git a/src/GZCTF/ClientApp/pnpm-lock.yaml b/src/GZCTF/ClientApp/pnpm-lock.yaml
index 9aa732461..43e1d69e1 100644
--- a/src/GZCTF/ClientApp/pnpm-lock.yaml
+++ b/src/GZCTF/ClientApp/pnpm-lock.yaml
@@ -87,8 +87,8 @@ importers:
specifier: ^9.4.0
version: 9.4.0
i18next:
- specifier: ^24.0.2
- version: 24.0.2(typescript@5.7.2)
+ specifier: ^24.0.5
+ version: 24.0.5(typescript@5.7.2)
i18next-browser-languagedetector:
specifier: ^8.0.0
version: 8.0.0
@@ -124,7 +124,7 @@ importers:
version: 1.10.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react-i18next:
specifier: ^15.1.3
- version: 15.1.3(i18next@24.0.2(typescript@5.7.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 15.1.3(i18next@24.0.5(typescript@5.7.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react-pdf:
specifier: ^9.1.1
version: 9.1.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -155,7 +155,7 @@ importers:
version: 2.0.5(eslint@9.16.0)(vite@6.0.2(@types/node@22.10.1)(sass-embedded@1.81.0)(sugarss@4.0.1(postcss@8.4.49))(yaml@2.6.1))
'@trivago/prettier-plugin-sort-imports':
specifier: ^4.3.0
- version: 4.3.0(prettier@3.4.1)
+ version: 4.3.0(prettier@3.4.2)
'@types/chroma-js':
specifier: ^2.4.4
version: 2.4.4
@@ -184,8 +184,8 @@ importers:
specifier: ^4.3.4
version: 4.3.4(vite@6.0.2(@types/node@22.10.1)(sass-embedded@1.81.0)(sugarss@4.0.1(postcss@8.4.49))(yaml@2.6.1))
axios:
- specifier: ^1.7.8
- version: 1.7.8
+ specifier: ^1.7.9
+ version: 1.7.9
babel-plugin-prismjs:
specifier: ^2.1.0
version: 2.1.0(prismjs@1.29.0)
@@ -223,11 +223,11 @@ importers:
specifier: ^7.0.1
version: 7.0.1(postcss@8.4.49)
prettier:
- specifier: ~3.4.1
- version: 3.4.1
+ specifier: ~3.4.2
+ version: 3.4.2
prettier-plugin-sort-json:
specifier: ^4.0.0
- version: 4.0.0(prettier@3.4.1)
+ version: 4.0.0(prettier@3.4.2)
rollup:
specifier: ^4.28.0
version: 4.28.0
@@ -272,8 +272,8 @@ packages:
resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
engines: {node: '>=6.9.0'}
- '@babel/compat-data@7.26.2':
- resolution: {integrity: sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==}
+ '@babel/compat-data@7.26.3':
+ resolution: {integrity: sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==}
engines: {node: '>=6.9.0'}
'@babel/core@7.26.0':
@@ -291,8 +291,8 @@ packages:
resolution: {integrity: sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==}
engines: {node: '>=6.9.0'}
- '@babel/generator@7.26.2':
- resolution: {integrity: sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==}
+ '@babel/generator@7.26.3':
+ resolution: {integrity: sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==}
engines: {node: '>=6.9.0'}
'@babel/helper-compilation-targets@7.25.9':
@@ -345,8 +345,8 @@ packages:
resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==}
engines: {node: '>=6.9.0'}
- '@babel/parser@7.26.2':
- resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==}
+ '@babel/parser@7.26.3':
+ resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==}
engines: {node: '>=6.0.0'}
hasBin: true
@@ -374,16 +374,16 @@ packages:
resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==}
engines: {node: '>=6.9.0'}
- '@babel/traverse@7.25.9':
- resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==}
+ '@babel/traverse@7.26.3':
+ resolution: {integrity: sha512-yTmc8J+Sj8yLzwr4PD5Xb/WF3bOYu2C2OoSZPzbuqRm4n98XirsbzaX+GloeO376UnSYIYJ4NCanwV5/ugZkwA==}
engines: {node: '>=6.9.0'}
'@babel/types@7.17.0':
resolution: {integrity: sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==}
engines: {node: '>=6.9.0'}
- '@babel/types@7.26.0':
- resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==}
+ '@babel/types@7.26.3':
+ resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==}
engines: {node: '>=6.9.0'}
'@bufbuild/protobuf@2.2.2':
@@ -1135,8 +1135,8 @@ packages:
resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
engines: {node: '>= 0.4'}
- axios@1.7.8:
- resolution: {integrity: sha512-Uu0wb7KNqK2t5K+YQyVCLM76prD5sRFjKHbJYCP1J7JFGEQ6nN7HWn9+04LAeiJ3ji54lgS/gZCH1oxyrf1SPw==}
+ axios@1.7.9:
+ resolution: {integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==}
babel-plugin-macros@3.1.0:
resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==}
@@ -1192,8 +1192,8 @@ packages:
resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
engines: {node: '>= 6'}
- caniuse-lite@1.0.30001685:
- resolution: {integrity: sha512-e/kJN1EMyHQzgcMEEgoo+YTCO1NGCmIYHk5Qk8jT6AazWemS5QFKJ5ShCJlH3GZrNIdZofcNCEwZqbMjjKzmnA==}
+ caniuse-lite@1.0.30001686:
+ resolution: {integrity: sha512-Y7deg0Aergpa24M3qLC5xjNklnKnhsmSyR/V89dLZ1n0ucJIFNs7PgR2Yfa/Zf6W79SbBicgtGxZr2juHkEUIA==}
chalk@4.1.2:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
@@ -1713,14 +1713,14 @@ packages:
hookified@1.5.1:
resolution: {integrity: sha512-sZQQ5QgNVQUXffNd66qefqOMXA88CXIV0gW8I4bMAJYeu1ZCJsyy7sdchaoHzRyS4o0cXw3krNDXkljZr7uexw==}
- html-dom-parser@5.0.10:
- resolution: {integrity: sha512-GwArYL3V3V8yU/mLKoFF7HlLBv80BZ2Ey1BzfVNRpAci0cEKhFHI/Qh8o8oyt3qlAMLlK250wsxLdYX4viedvg==}
+ html-dom-parser@5.0.11:
+ resolution: {integrity: sha512-iORudm2K0c0DYeEj4AbrG9PFzgp1dpFGkJUAiBlVTkeyaNf2YYIs1b0dF7rQUPnDZimkLx+Jls+CvRIKO/++Tg==}
html-parse-stringify@3.0.1:
resolution: {integrity: sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==}
- html-react-parser@5.1.18:
- resolution: {integrity: sha512-65BwC0zzrdeW96jB2FRr5f1ovBhRMpLPJNvwkY5kA8Ay5xdL9t/RH2/uUTM7p+cl5iM88i6dDk4LXtfMnRmaJQ==}
+ html-react-parser@5.1.19:
+ resolution: {integrity: sha512-ecjQg5KDhM+Yv3tRRfdp0fYSdSYHI1FQEDqou0g8NO7mXuoK8ksbYGRjeslqWO6QWX3PKREVWnC8VS1FSZaFHA==}
peerDependencies:
'@types/react': 0.14 || 15 || 16 || 17 || 18
react: 0.14 || 15 || 16 || 17 || 18
@@ -1737,8 +1737,8 @@ packages:
i18next-browser-languagedetector@8.0.0:
resolution: {integrity: sha512-zhXdJXTTCoG39QsrOCiOabnWj2jecouOqbchu3EfhtSHxIB5Uugnm9JaizenOy39h7ne3+fLikIjeW88+rgszw==}
- i18next@24.0.2:
- resolution: {integrity: sha512-D88xyIGcWAKwBTAs4RSqASi8NXR/NhCVSTM4LDbdoU8qb/5dcEZjNCLDhtQBB7Epw/Cp1w2vH/3ujoTbqLSs5g==}
+ i18next@24.0.5:
+ resolution: {integrity: sha512-1jSdEzgFPGLZRsQwydoMFCBBaV+PmrVEO5WhANllZPX4y2JSGTxUjJ+xVklHIsiS95uR8gYc/y0hYZWevucNjg==}
peerDependencies:
typescript: ^5
peerDependenciesMeta:
@@ -2228,8 +2228,8 @@ packages:
engines: {node: '>=14'}
hasBin: true
- prettier@3.4.1:
- resolution: {integrity: sha512-G+YdqtITVZmOJje6QkXQWzl3fSfMxFwm1tjTyo9exhkmWSqC4Yhd1+lug++IlR2mvRVAxEDDWYkQdeSztajqgg==}
+ prettier@3.4.2:
+ resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==}
engines: {node: '>=14'}
hasBin: true
@@ -3056,20 +3056,20 @@ snapshots:
js-tokens: 4.0.0
picocolors: 1.1.1
- '@babel/compat-data@7.26.2': {}
+ '@babel/compat-data@7.26.3': {}
'@babel/core@7.26.0':
dependencies:
'@ampproject/remapping': 2.3.0
'@babel/code-frame': 7.26.2
- '@babel/generator': 7.26.2
+ '@babel/generator': 7.26.3
'@babel/helper-compilation-targets': 7.25.9
'@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0)
'@babel/helpers': 7.26.0
- '@babel/parser': 7.26.2
+ '@babel/parser': 7.26.3
'@babel/template': 7.25.9
- '@babel/traverse': 7.25.9
- '@babel/types': 7.26.0
+ '@babel/traverse': 7.26.3
+ '@babel/types': 7.26.3
convert-source-map: 2.0.0
debug: 4.3.7
gensync: 1.0.0-beta.2
@@ -3092,17 +3092,17 @@ snapshots:
jsesc: 2.5.2
source-map: 0.5.7
- '@babel/generator@7.26.2':
+ '@babel/generator@7.26.3':
dependencies:
- '@babel/parser': 7.26.2
- '@babel/types': 7.26.0
+ '@babel/parser': 7.26.3
+ '@babel/types': 7.26.3
'@jridgewell/gen-mapping': 0.3.5
'@jridgewell/trace-mapping': 0.3.25
jsesc: 3.0.2
'@babel/helper-compilation-targets@7.25.9':
dependencies:
- '@babel/compat-data': 7.26.2
+ '@babel/compat-data': 7.26.3
'@babel/helper-validator-option': 7.25.9
browserslist: 4.24.2
lru-cache: 5.1.1
@@ -3110,21 +3110,21 @@ snapshots:
'@babel/helper-environment-visitor@7.24.7':
dependencies:
- '@babel/types': 7.26.0
+ '@babel/types': 7.26.3
'@babel/helper-function-name@7.24.7':
dependencies:
'@babel/template': 7.25.9
- '@babel/types': 7.26.0
+ '@babel/types': 7.26.3
'@babel/helper-hoist-variables@7.24.7':
dependencies:
- '@babel/types': 7.26.0
+ '@babel/types': 7.26.3
'@babel/helper-module-imports@7.25.9':
dependencies:
- '@babel/traverse': 7.25.9
- '@babel/types': 7.26.0
+ '@babel/traverse': 7.26.3
+ '@babel/types': 7.26.3
transitivePeerDependencies:
- supports-color
@@ -3133,7 +3133,7 @@ snapshots:
'@babel/core': 7.26.0
'@babel/helper-module-imports': 7.25.9
'@babel/helper-validator-identifier': 7.25.9
- '@babel/traverse': 7.25.9
+ '@babel/traverse': 7.26.3
transitivePeerDependencies:
- supports-color
@@ -3141,7 +3141,7 @@ snapshots:
'@babel/helper-split-export-declaration@7.24.7':
dependencies:
- '@babel/types': 7.26.0
+ '@babel/types': 7.26.3
'@babel/helper-string-parser@7.25.9': {}
@@ -3152,11 +3152,11 @@ snapshots:
'@babel/helpers@7.26.0':
dependencies:
'@babel/template': 7.25.9
- '@babel/types': 7.26.0
+ '@babel/types': 7.26.3
- '@babel/parser@7.26.2':
+ '@babel/parser@7.26.3':
dependencies:
- '@babel/types': 7.26.0
+ '@babel/types': 7.26.3
'@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.0)':
dependencies:
@@ -3175,31 +3175,31 @@ snapshots:
'@babel/template@7.25.9':
dependencies:
'@babel/code-frame': 7.26.2
- '@babel/parser': 7.26.2
- '@babel/types': 7.26.0
+ '@babel/parser': 7.26.3
+ '@babel/types': 7.26.3
'@babel/traverse@7.23.2':
dependencies:
'@babel/code-frame': 7.26.2
- '@babel/generator': 7.26.2
+ '@babel/generator': 7.26.3
'@babel/helper-environment-visitor': 7.24.7
'@babel/helper-function-name': 7.24.7
'@babel/helper-hoist-variables': 7.24.7
'@babel/helper-split-export-declaration': 7.24.7
- '@babel/parser': 7.26.2
- '@babel/types': 7.26.0
+ '@babel/parser': 7.26.3
+ '@babel/types': 7.26.3
debug: 4.3.7
globals: 11.12.0
transitivePeerDependencies:
- supports-color
- '@babel/traverse@7.25.9':
+ '@babel/traverse@7.26.3':
dependencies:
'@babel/code-frame': 7.26.2
- '@babel/generator': 7.26.2
- '@babel/parser': 7.26.2
+ '@babel/generator': 7.26.3
+ '@babel/parser': 7.26.3
'@babel/template': 7.25.9
- '@babel/types': 7.26.0
+ '@babel/types': 7.26.3
debug: 4.3.7
globals: 11.12.0
transitivePeerDependencies:
@@ -3210,7 +3210,7 @@ snapshots:
'@babel/helper-validator-identifier': 7.25.9
to-fast-properties: 2.0.0
- '@babel/types@7.26.0':
+ '@babel/types@7.26.3':
dependencies:
'@babel/helper-string-parser': 7.25.9
'@babel/helper-validator-identifier': 7.25.9
@@ -3516,7 +3516,7 @@ snapshots:
'@emotion/utils': 1.4.2
'@mantine/core': 7.14.3(@mantine/hooks@7.14.3(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@mantine/hooks': 7.14.3(react@18.3.1)
- html-react-parser: 5.1.18(@types/react@18.3.12)(react@18.3.1)
+ html-react-parser: 5.1.19(@types/react@18.3.12)(react@18.3.1)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
transitivePeerDependencies:
@@ -3681,38 +3681,38 @@ snapshots:
'@sindresorhus/merge-streams@2.3.0': {}
- '@trivago/prettier-plugin-sort-imports@4.3.0(prettier@3.4.1)':
+ '@trivago/prettier-plugin-sort-imports@4.3.0(prettier@3.4.2)':
dependencies:
'@babel/generator': 7.17.7
- '@babel/parser': 7.26.2
+ '@babel/parser': 7.26.3
'@babel/traverse': 7.23.2
'@babel/types': 7.17.0
javascript-natural-sort: 0.7.1
lodash: 4.17.21
- prettier: 3.4.1
+ prettier: 3.4.2
transitivePeerDependencies:
- supports-color
'@types/babel__core@7.20.5':
dependencies:
- '@babel/parser': 7.26.2
- '@babel/types': 7.26.0
+ '@babel/parser': 7.26.3
+ '@babel/types': 7.26.3
'@types/babel__generator': 7.6.8
'@types/babel__template': 7.4.4
'@types/babel__traverse': 7.20.6
'@types/babel__generator@7.6.8':
dependencies:
- '@babel/types': 7.26.0
+ '@babel/types': 7.26.3
'@types/babel__template@7.4.4':
dependencies:
- '@babel/parser': 7.26.2
- '@babel/types': 7.26.0
+ '@babel/parser': 7.26.3
+ '@babel/types': 7.26.3
'@types/babel__traverse@7.20.6':
dependencies:
- '@babel/types': 7.26.0
+ '@babel/types': 7.26.3
'@types/chroma-js@2.4.4': {}
@@ -3936,7 +3936,7 @@ snapshots:
dependencies:
possible-typed-array-names: 1.0.0
- axios@1.7.8:
+ axios@1.7.9:
dependencies:
follow-redirects: 1.15.9
form-data: 4.0.1
@@ -3973,7 +3973,7 @@ snapshots:
browserslist@4.24.2:
dependencies:
- caniuse-lite: 1.0.30001685
+ caniuse-lite: 1.0.30001686
electron-to-chromium: 1.5.68
node-releases: 2.0.18
update-browserslist-db: 1.1.1(browserslist@4.24.2)
@@ -4005,7 +4005,7 @@ snapshots:
camelcase-css@2.0.1: {}
- caniuse-lite@1.0.30001685: {}
+ caniuse-lite@1.0.30001686: {}
chalk@4.1.2:
dependencies:
@@ -4615,7 +4615,7 @@ snapshots:
hookified@1.5.1: {}
- html-dom-parser@5.0.10:
+ html-dom-parser@5.0.11:
dependencies:
domhandler: 5.0.3
htmlparser2: 9.1.0
@@ -4624,10 +4624,10 @@ snapshots:
dependencies:
void-elements: 3.1.0
- html-react-parser@5.1.18(@types/react@18.3.12)(react@18.3.1):
+ html-react-parser@5.1.19(@types/react@18.3.12)(react@18.3.1):
dependencies:
domhandler: 5.0.3
- html-dom-parser: 5.0.10
+ html-dom-parser: 5.0.11
react: 18.3.1
react-property: 2.0.2
style-to-js: 1.1.16
@@ -4647,7 +4647,7 @@ snapshots:
dependencies:
'@babel/runtime': 7.26.0
- i18next@24.0.2(typescript@5.7.2):
+ i18next@24.0.5(typescript@5.7.2):
dependencies:
'@babel/runtime': 7.26.0
optionalDependencies:
@@ -5105,13 +5105,13 @@ snapshots:
prelude-ls@1.2.1: {}
- prettier-plugin-sort-json@4.0.0(prettier@3.4.1):
+ prettier-plugin-sort-json@4.0.0(prettier@3.4.2):
dependencies:
- prettier: 3.4.1
+ prettier: 3.4.2
prettier@3.3.3: {}
- prettier@3.4.1: {}
+ prettier@3.4.2: {}
prismjs@1.29.0: {}
@@ -5155,11 +5155,11 @@ snapshots:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- react-i18next@15.1.3(i18next@24.0.2(typescript@5.7.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ react-i18next@15.1.3(i18next@24.0.5(typescript@5.7.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
'@babel/runtime': 7.26.0
html-parse-stringify: 3.0.1
- i18next: 24.0.2(typescript@5.7.2)
+ i18next: 24.0.5(typescript@5.7.2)
react: 18.3.1
optionalDependencies:
react-dom: 18.3.1(react@18.3.1)
@@ -5812,7 +5812,7 @@ snapshots:
vite-plugin-webfont-dl@3.10.2(vite@6.0.2(@types/node@22.10.1)(sass-embedded@1.81.0)(sugarss@4.0.1(postcss@8.4.49))(yaml@2.6.1)):
dependencies:
- axios: 1.7.8
+ axios: 1.7.9
clean-css: 5.3.3
flat-cache: 6.1.3
picocolors: 1.1.1
diff --git a/src/GZCTF/ClientApp/src/utils/I18n.tsx b/src/GZCTF/ClientApp/src/utils/I18n.tsx
index 995b3aae5..d7ab1785e 100644
--- a/src/GZCTF/ClientApp/src/utils/I18n.tsx
+++ b/src/GZCTF/ClientApp/src/utils/I18n.tsx
@@ -25,7 +25,7 @@ export const LanguageMap = {
'id-ID': '🇮🇩 Bahasa',
'ko-KR': '🇰🇷 한국어',
'ru-RU': '🇷🇺 Русский',
- 'vi-VN': '🇻🇳 Tiếng việt (WIP)',
+ 'vi-VN': '🇻🇳 Tiếng việt',
'de-DE': '🇩🇪 Deutsch (MT)',
'fr-FR': '🇫🇷 Français (MT)',
'es-ES': '🇪🇸 Español (MT)',
diff --git a/src/GZCTF/Controllers/GameController.cs b/src/GZCTF/Controllers/GameController.cs
index 76ebdb455..a35ce732d 100644
--- a/src/GZCTF/Controllers/GameController.cs
+++ b/src/GZCTF/Controllers/GameController.cs
@@ -705,7 +705,7 @@ public async Task ScoreboardSheet([FromRoute] int id, [FromServic
return File(stream,
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
- $"{game.Title}_Scoreboard_{DateTimeOffset.Now:yyyyMMddHHmmss}.xlsx");
+ $"{game.Title}-Scoreboard-{DateTimeOffset.Now:yyyyMMdd-HH.mm.ssZ}.xlsx");
}
catch (Exception ex)
{