fix(security): update dependencies to avoid RCE and other exploits

Обновлены зависимости Node.js, которые были уязвимы с разной степенью критичности.
Обновлен Next.js, так как его предыдущая используемая версия привнесла в production-среду постоянную борьбу с майнерами.
К сожалению, в этом коммите парсер расписания сломан.
This commit is contained in:
kilyabin
2026-02-11 02:45:44 +04:00
parent 47b8bc7dad
commit b9ae52681e
13 changed files with 607 additions and 1354 deletions

View File

@@ -364,8 +364,8 @@ export default function AdminPage({ groups: initialGroups, settings: initialSett
try {
const res = await fetch('/api/admin/logs')
const data = await res.json()
if (data.success && data.logs) {
setLogs(data.logs)
if (data.success) {
setLogs(data.logs ?? '')
} else {
setLogs(data.error || 'Не удалось загрузить логи')
}
@@ -533,6 +533,19 @@ export default function AdminPage({ groups: initialGroups, settings: initialSett
disabled={loading}
/>
</div>
<div className="flex items-center justify-between p-4 border rounded-lg">
<div>
<div className="font-semibold">Кнопка "Преподаватели"</div>
<div className="text-sm text-muted-foreground">
Отображать кнопку перехода к расписанию преподавателей на главной странице
</div>
</div>
<ToggleSwitch
checked={settings.showTeachersButton ?? true}
onChange={(checked) => handleUpdateSettings({ ...settings, showTeachersButton: checked })}
disabled={loading}
/>
</div>
<div className="p-4 border rounded-lg">
<div className="flex items-center justify-between mb-3">
<div>
@@ -892,7 +905,7 @@ export default function AdminPage({ groups: initialGroups, settings: initialSett
<DialogHeader>
<DialogTitle>Логи ошибок</DialogTitle>
<DialogDescription>
Содержимое файла error.log
Ошибки парсинга записываются в error.log. Если записей пока нет здесь будет пусто.
</DialogDescription>
</DialogHeader>
<div className="mt-4">