From ae43ee16de0c62b201c26224480e3f4d5bb91b16 Mon Sep 17 00:00:00 2001 From: undefined Date: Wed, 12 Nov 2025 05:10:49 +0800 Subject: [PATCH] bump version --- ...ve-static-core-npm-4.19.6-cc0017aaf4.patch | 14 ++++++++++ README.md | 21 ++++++++++++++- framework/eslint-config/package.json | 8 +++--- framework/framework/package.json | 4 +-- framework/utils/package.json | 4 +-- package.json | 24 ++++++++++------- packages/common/package.json | 2 +- packages/components/package.json | 4 +-- packages/elastic/package.json | 2 +- packages/geoip/package.json | 2 +- packages/hydrojudge/package.json | 6 ++--- packages/hydrooj/package.json | 8 +++--- packages/hydrooj/src/context.ts | 1 + packages/hydrooj/src/handler/problem.ts | 2 +- packages/hydrooj/src/loader.ts | 27 ++++++++++++++----- packages/hydrooj/src/settings.ts | 21 ++++++++------- packages/hydrooj/src/upgrade.ts | 2 +- packages/migrate/package.json | 8 +++--- packages/scoreboard-xcpcio/package.json | 6 ++--- .../templates/xcpcio_board.html | 2 +- packages/ui-default/api.ts | 1 + packages/ui-default/package.json | 26 +++++++++--------- .../partials/problem_sidebar_contest.html | 2 +- .../partials/problem_sidebar_homework.html | 2 +- packages/ui-next/package.json | 14 +++++----- packages/vjudge/package.json | 4 +-- 26 files changed, 136 insertions(+), 81 deletions(-) create mode 100644 .yarn/patches/@types-express-serve-static-core-npm-4.19.6-cc0017aaf4.patch diff --git a/.yarn/patches/@types-express-serve-static-core-npm-4.19.6-cc0017aaf4.patch b/.yarn/patches/@types-express-serve-static-core-npm-4.19.6-cc0017aaf4.patch new file mode 100644 index 000000000..870d94fa1 --- /dev/null +++ b/.yarn/patches/@types-express-serve-static-core-npm-4.19.6-cc0017aaf4.patch @@ -0,0 +1,14 @@ +diff --git a/index.d.ts b/index.d.ts +index aee3041de0bc2a46df7bcfca387152bf2cc01e30..61ef705e926961f89e67f1bf79ba0325c7e4f12b 100644 +--- a/index.d.ts ++++ b/index.d.ts +@@ -648,7 +648,8 @@ export interface Request< + readonly xhr: boolean; + + // body: { username: string; password: string; remember: boolean; title: string; }; +- body: ReqBody; ++ // This conflicts with koa-body dts ++ // body: ReqBody; + + // cookies: { string; remember: boolean; }; + cookies: any; diff --git a/README.md b/README.md index 947d9cf7f..2eab5af26 100644 --- a/README.md +++ b/README.md @@ -111,7 +111,26 @@ Hydro 用户群:1085853538

更新日志(点击展开)

-## Hydro 5.0.0-beta.10 / UI 4.58.0-beta.10 +## Hydro 5.0.0-beta.12 / UI 4.58.0-beta.11 + +- framework: 修复 SSE 模式参数识别 +- ui: 记忆比赛计分板筛选状态 +- ui: 修复封榜后提交记录动态更新 +- scoreboard-xcpcio: 实验性榜单缓存支持 +- ui: 添加比赛一血提示 +- core: 添加 hydrooj diag 快速诊断工具 +- ui: 禁用链接自动折叠,复制链接自动转义括号 +- ui: 优化资源缓存 +- ui: 优化超长公式显示 +- core&ui: 支持题目排序 + +*Breaking API Changes* +- 升级到 React 19 +- 升级到 MongoDB Driver 7 +- 移除 blueprint.js, react-query 内置,优化资源大小 +- 使用 @mongodb-js/saslprep 替代 saslprep + +## Hydro 5.0.0-beta.11 / UI 4.58.0-beta.10 - core&ui: 优化新设置页面 - core: 修复乐多榜单尝试数为负 diff --git a/framework/eslint-config/package.json b/framework/eslint-config/package.json index c322b6a06..e747bdaa8 100644 --- a/framework/eslint-config/package.json +++ b/framework/eslint-config/package.json @@ -1,14 +1,14 @@ { "name": "@hydrooj/eslint-config", - "version": "3.0.2", + "version": "3.0.4", "license": "MIT", "main": "base.mjs", "repository": "https://github.com/hydro-dev/Hydro", "dependencies": { "@antfu/eslint-config": "^6.2.0", - "@eslint-react/eslint-plugin": "^2.3.1", - "@typescript-eslint/eslint-plugin": "^8.46.2", - "@typescript-eslint/parser": "^8.46.2", + "@eslint-react/eslint-plugin": "^2.3.4", + "@typescript-eslint/eslint-plugin": "^8.46.4", + "@typescript-eslint/parser": "^8.46.4", "eslint-plugin-de-morgan": "^2.0.0", "eslint-plugin-github": "^6.0.0", "eslint-plugin-react-hooks": "^7.0.1", diff --git a/framework/framework/package.json b/framework/framework/package.json index b24c44d34..85316d6f1 100644 --- a/framework/framework/package.json +++ b/framework/framework/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/framework", - "version": "0.2.5", + "version": "0.2.6", "main": "index.ts", "license": "MIT", "repository": "https://github.com/hydro-dev/Hydro", @@ -18,7 +18,7 @@ "koa-compress": "^5.1.1", "path-to-regexp": "^8.3.0", "sanitize-filename": "^1.6.3", - "schemastery": "^3.17.1", + "schemastery": "^3.17.2", "shorty.js": "^1.0.1", "ws": "^8.18.3" }, diff --git a/framework/utils/package.json b/framework/utils/package.json index 0744780dc..fa42f29d7 100644 --- a/framework/utils/package.json +++ b/framework/utils/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/utils", - "version": "1.4.37", + "version": "1.5.0", "description": "hydrooj utils", "main": "lib/utils.ts", "repository": "https://github.com/hydro-dev/Hydro.git", @@ -8,7 +8,7 @@ "license": "AGPL-3.0-or-later", "preferUnplugged": true, "optionalPeerDependencies": { - "bson": "^6.17.0", + "bson": "^7.0.0", "moment-timezone": "^0.5.48" }, "dependencies": { diff --git a/package.json b/package.json index b19464936..60418bae3 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "oxlint": "cd framework/eslint-config && node -r @hydrooj/register build.ts && cd ../../ && oxlint --config framework/eslint-config/.oxlintrc.json", "lint": "eslint --flag v10_config_lookup_from_file packages plugins modules framework --ext .ts,.tsx,.jsx,.vue,.yaml,.yml --fix", "lint:ci": "eslint --flag v10_config_lookup_from_file packages plugins modules framework --ext .ts,.tsx,.jsx,.vue,.yaml,.yml --max-warnings=0", - "debug": "node --trace-warnings --inspect=192.168.99.234:1111 --async-stack-traces --trace-deprecation packages/hydrooj/bin/hydrooj --debug --template", + "debug": "node --trace-warnings --async-stack-traces --trace-deprecation packages/hydrooj/bin/hydrooj --debug --template", "start": "packages/hydrooj/bin/hydrooj.js", "postinstall": "node build/prepare.js", "gen-patch": "node -r @hydrooj/register build/gen-patch.ts", @@ -33,34 +33,40 @@ "license": "AGPL-3.0-only", "devDependencies": { "@types/autocannon": "^7.12.7", - "@types/chai": "^5.2.2", + "@types/chai": "^5.2.3", "@types/cross-spawn": "^6.0.6", - "@types/node": "24.7.0", + "@types/node": "24.10.0", "@types/semver": "^7.7.1", "autocannon": "^8.0.0", "cac": "^6.7.14", - "chai": "^6.2.0", + "chai": "^6.2.1", "cross-env": "^10.1.0", "cross-spawn": "^7.0.6", "esbuild": "0.25.2", - "eslint": "^9.38.0", + "eslint": "^9.39.1", "eslint-import-resolver-typescript": "^4.4.4", "eslint-import-resolver-webpack": "^0.13.10", "fs-extra": "^11.3.2", - "globals": "^16.4.0", + "globals": "^16.5.0", "globby": "~14.0.2", "inspectpack": "^4.7.1", - "mongodb-memory-server": "10.2.3", + "mongodb-memory-server": "10.3.0", "nyc": "^17.1.0", "ora": "^9.0.0", - "oxlint": "^1.23.0", + "oxlint": "^1.28.0", "package-json": "^10.0.1", "semver": "^7.7.3", - "simple-git": "^3.28.0", + "simple-git": "^3.30.0", "supertest": "^7.1.4", "supports-hyperlinks": "^4.3.0", "typescript": "5.8.3", "wtfnode": "^0.10.1" }, + "resolutions": { + "mongodb": "^7.0.0", + "@types/express-serve-static-core@npm:^4.17.21": "patch:@types/express-serve-static-core@npm%3A4.19.6#~/.yarn/patches/@types-express-serve-static-core-npm-4.19.6-cc0017aaf4.patch", + "@types/express-serve-static-core@npm:*": "patch:@types/express-serve-static-core@npm%3A4.19.6#~/.yarn/patches/@types-express-serve-static-core-npm-4.19.6-cc0017aaf4.patch", + "@types/express-serve-static-core@npm:^4.17.33": "patch:@types/express-serve-static-core@npm%3A4.19.6#~/.yarn/patches/@types-express-serve-static-core-npm-4.19.6-cc0017aaf4.patch" + }, "packageManager": "yarn@4.10.3" } diff --git a/packages/common/package.json b/packages/common/package.json index b9d77bde8..10a595bcb 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -1,7 +1,7 @@ { "name": "@hydrooj/common", "main": "./index.ts", - "version": "0.0.5", + "version": "0.0.6", "repository": "https://github.com/hydro-dev/Hydro", "sideEffects": false, "dependencies": { diff --git a/packages/components/package.json b/packages/components/package.json index 923e2c48a..0c9e5653a 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/components", - "version": "1.0.0-beta.7", + "version": "1.0.0-beta.8", "main": "./frontend/index.ts", "repository": "https://github.com/hydro-dev/Hydro", "sideEffects": [ @@ -21,7 +21,7 @@ "@types/diff": "^8.0.0", "@types/js-yaml": "^4.0.9", "@types/lodash": "^4.17.20", - "sass": "^1.93.2" + "sass": "^1.94.0" }, "peerDependencies": { "react": "*", diff --git a/packages/elastic/package.json b/packages/elastic/package.json index 21e86ef97..0a4ae9c3d 100644 --- a/packages/elastic/package.json +++ b/packages/elastic/package.json @@ -6,7 +6,7 @@ "author": "undefined ", "license": "AGPL-3.0-or-later", "dependencies": { - "@elastic/elasticsearch": "^9.1.1" + "@elastic/elasticsearch": "^9.2.0" }, "engines": { "hydrooj": ">=5.0.0-alpha.1" diff --git a/packages/geoip/package.json b/packages/geoip/package.json index 190dd2162..0aa78d0ce 100644 --- a/packages/geoip/package.json +++ b/packages/geoip/package.json @@ -6,7 +6,7 @@ "author": "undefined ", "license": "AGPL-3.0-or-later", "dependencies": { - "maxmind": "^5.0.0" + "maxmind": "^5.0.1" }, "preferUnplugged": true } diff --git a/packages/hydrojudge/package.json b/packages/hydrojudge/package.json index ffb845025..cd688006e 100644 --- a/packages/hydrojudge/package.json +++ b/packages/hydrojudge/package.json @@ -1,17 +1,17 @@ { "name": "@hydrooj/hydrojudge", "bin": "bin/hydrojudge.js", - "version": "3.5.0-beta.9", + "version": "3.5.0-beta.10", "main": "./src/index.ts", "author": "undefined ", "repository": "https://github.com/hydro-dev/Hydro.git", "dependencies": { "@hydrooj/common": "workspace:^", "@hydrooj/utils": "workspace:^", - "@zip.js/zip.js": "^2.8.8", + "@zip.js/zip.js": "^2.8.10", "cac": "^6.7.14", "p-queue": "^9.0.0", - "schemastery": "^3.17.1", + "schemastery": "^3.17.2", "semver": "^7.7.3", "shell-quote": "^1.8.3", "superagent": "^10.2.3", diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 51f4f70a7..f7ca80f2b 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "5.0.0-beta.11", + "version": "5.0.0-beta.12", "bin": "bin/hydrooj.js", "main": "src/plugin-api", "module": "src/plugin-api", @@ -24,7 +24,7 @@ "@mongodb-js/saslprep": "^1.3.2", "@simplewebauthn/server": "13.2.2", "@undefined-moe/require-resolve-hook": "^1.1.0", - "@zip.js/zip.js": "^2.8.8", + "@zip.js/zip.js": "^2.8.10", "adm-zip": "0.5.16", "cac": "^6.7.14", "cordis": "4.0.0-beta.5", @@ -39,14 +39,14 @@ "lru-cache": "^11.2.2", "mime-types": "^3.0.1", "moment-timezone": "^0.6.0", - "mongodb": "^6.20.0", + "mongodb": "^7.0.0", "mongodb-uri": "^0.9.7", "nanoid": "^5.1.6", "nodemailer": "^7.0.10", "notp": "^2.0.3", "p-queue": "^9.0.0", "sanitize-filename": "^1.6.3", - "schemastery": "^3.17.1", + "schemastery": "^3.17.2", "semver": "^7.7.3", "shorty.js": "^1.0.1", "superagent": "^10.2.3", diff --git a/packages/hydrooj/src/context.ts b/packages/hydrooj/src/context.ts index 6a50d1256..54f674e12 100644 --- a/packages/hydrooj/src/context.ts +++ b/packages/hydrooj/src/context.ts @@ -25,6 +25,7 @@ function provideModule(type: T, id: string, mo } export type Fiber = cordis.Fiber; +export const Fiber = cordis.Fiber; export { Disposable, FiberState, Plugin } from 'cordis'; diff --git a/packages/hydrooj/src/handler/problem.ts b/packages/hydrooj/src/handler/problem.ts index ac9d1271a..bc1e79c6b 100644 --- a/packages/hydrooj/src/handler/problem.ts +++ b/packages/hydrooj/src/handler/problem.ts @@ -124,7 +124,7 @@ export class ProblemMainHandler extends Handler { const category = parsed.category || []; const text = (parsed.text || []).join(' '); if (parsed.difficulty?.every((i) => Number.isSafeInteger(+i))) { - query.difficulty = { $in: parsed.difficulty.map(Number) }; + query.difficulty = { $in: parsed.difficulty.flatMap((i) => +i === 0 ? [0, undefined] : [+i]) }; } if (category.length) query.$and = category.map((tag) => ({ tag })); if (parsed.namespace?.length) { diff --git a/packages/hydrooj/src/loader.ts b/packages/hydrooj/src/loader.ts index c868b55a9..2a4071ab9 100644 --- a/packages/hydrooj/src/loader.ts +++ b/packages/hydrooj/src/loader.ts @@ -19,6 +19,7 @@ import { sleep, unwrapExports } from './utils'; import { PRIV } from './model/builtin'; import { getAddons } from './options'; import Schema from 'schemastery'; +import { isEqual } from 'lodash'; const argv = cac().parse(); const logger = new Logger('loader'); @@ -93,35 +94,47 @@ export class Loader extends Service { } } - async resolveConfig(plugin: any, configScope: string) { + async resolveConfig(plugin: any, configScope: string, dynamic = true) { const schema = plugin['Config'] || plugin['schema']; - if (!schema) return {}; + if (!schema) return Object.freeze({}); const schemaRequest = configScope ? Schema.object({ [configScope]: schema, }) : schema; await this.ctx.setting._tryMigrateConfig(schemaRequest); - const res = this.ctx.setting.requestConfig(schemaRequest); + const res = this.ctx.setting.requestConfig(schemaRequest, dynamic); return configScope ? res[configScope] : res; } async reloadPlugin(key: string, configScope: string) { const plugin = this.resolvePlugin(key); if (!plugin) return; - const config = await this.resolveConfig(plugin, configScope); + // currently cordis validates config and converts proxy to plain object + // must do a full reload once config changed + const config = await this.resolveConfig(plugin, configScope, false); let fork = this.state[key]; const displayPath = key.includes('node_modules') ? key.split('node_modules').pop() : path.relative(process.cwd(), key); logger.info( `%s plugin %c${configScope ? ' with scope %c' : ''}`, - fork ? 'reload' : 'apply', displayPath, configScope, + fork ? 'update' : 'apply', displayPath, configScope, ); if (fork) { - fork.update(config); + fork.update(config, true); } else { fork = this.ctx.plugin(plugin, config); if (!fork) return; - this.state[key] = fork; + const inner = Object.getPrototypeOf(fork) !== Fiber.prototype + ? Object.getPrototypeOf(fork) : fork; + this.state[key] = inner; + } + if (!Object.isFrozen(config)) { + fork.ctx.on('system/setting', async () => { + if (!fork.uid || !this.state[key]) return; + const resolved = await this.resolveConfig(plugin, configScope, false); + if (isEqual(this.state[key].config, resolved)) return; + this.reloadPlugin(key, configScope); + }); } return fork; } diff --git a/packages/hydrooj/src/settings.ts b/packages/hydrooj/src/settings.ts index 31e02f96b..e8f2496b8 100644 --- a/packages/hydrooj/src/settings.ts +++ b/packages/hydrooj/src/settings.ts @@ -150,16 +150,16 @@ export class SettingService extends Service { } requestConfig(s: Schema, dynamic = true): S { - if (dynamic) { - this.ctx.effect(() => { - this.settings.push(s); + this.ctx.effect(() => { + logger.debug('Loading config', s); + this.settings.push(s); + this._applySchema(); + return () => { + logger.debug('Unloading config', s); + this.settings = this.settings.filter((v) => v !== s); this._applySchema(); - return () => { - this.settings = this.settings.filter((v) => v !== s); - this._applySchema(); - }; - }); - } + }; + }); let curValue = s(this.systemConfig); if (!dynamic) return curValue; this.ctx.on('system/setting', () => { @@ -175,7 +175,8 @@ export class SettingService extends Service { if (path.some((p) => SettingService.blacklist.includes(p.toString()))) throw new Error(`Invalid path: ${path.join('.')}`); let currentValue = curValue; for (const p of path) currentValue = currentValue[p]; - if (typeof currentValue !== 'object' || !currentValue || Array.isArray(currentValue)) return currentValue; + if ((typeof currentValue !== 'object') || !currentValue || Array.isArray(currentValue)) return currentValue; + if (path.some((p) => typeof p === 'symbol')) return currentValue; return new Proxy(currentValue, { get(self, key: string) { return getAccess(path.concat(key)); diff --git a/packages/hydrooj/src/upgrade.ts b/packages/hydrooj/src/upgrade.ts index 0992d9399..3da95d86f 100644 --- a/packages/hydrooj/src/upgrade.ts +++ b/packages/hydrooj/src/upgrade.ts @@ -458,7 +458,7 @@ export const coreScripts: MigrationScript[] = [ return await iterateAllDomain(async ({ _id }) => { const cursor = discussion.getMulti(_id, { parentType: document.TYPE_CONTEST }); for await (const ddoc of cursor) { - const parentId = new ObjectId(ddoc.parentId); + const parentId = new ObjectId(ddoc.parentId as string); await discussion.edit(_id, ddoc.docId, { parentId }); try { await contest.get(_id, parentId); diff --git a/packages/migrate/package.json b/packages/migrate/package.json index efd5a9212..4a90c1071 100644 --- a/packages/migrate/package.json +++ b/packages/migrate/package.json @@ -1,18 +1,18 @@ { "name": "@hydrooj/migrate", - "version": "0.5.0-beta.5", + "version": "0.5.0-beta.6", "main": "index.ts", "repository": "git@github.com:hydro-dev/Hydro.git", "author": "undefined ", "license": "AGPL-3.0-or-later", "dependencies": { "mariadb": "^3.4.5", - "mongodb": "^6.20.0", - "turndown": "^7.2.1", + "mongodb": "^7.0.0", + "turndown": "^7.2.2", "xml2js": "^0.6.2" }, "devDependencies": { - "@types/turndown": "^5.0.5", + "@types/turndown": "^5.0.6", "@types/xml2js": "^0.4.14" } } diff --git a/packages/scoreboard-xcpcio/package.json b/packages/scoreboard-xcpcio/package.json index 5cce13bc8..c9b0ff1be 100644 --- a/packages/scoreboard-xcpcio/package.json +++ b/packages/scoreboard-xcpcio/package.json @@ -1,16 +1,16 @@ { "name": "@hydrooj/scoreboard-xcpcio", "license": "AGPL-3.0-or-later", - "version": "0.0.5-beta.4", + "version": "0.0.5-beta.5", "main": "index.ts", "repository": "https://github.com/hydro-dev/Hydro.git", "scripts": { "postinstall": "node -r @hydrooj/register install.ts" }, "dependencies": { - "@xcpcio/board-app": "^0.74.1" + "@xcpcio/board-app": "^0.75.1" }, "devDependencies": { - "@xcpcio/types": "^0.74.1" + "@xcpcio/types": "^0.75.1" } } diff --git a/packages/scoreboard-xcpcio/templates/xcpcio_board.html b/packages/scoreboard-xcpcio/templates/xcpcio_board.html index 8a93649e8..847cf32cd 100644 --- a/packages/scoreboard-xcpcio/templates/xcpcio_board.html +++ b/packages/scoreboard-xcpcio/templates/xcpcio_board.html @@ -11,7 +11,7 @@ window.DATA_HOST = "/"; window.DATA_REGION = "Hydro"; window.DEFAULT_LANG = "{{ 'zh-CN' if _('__id').startsWith('zh') else 'en' }}"; - window.DATA_SOURCE = "{{ dataSource }}"; + window.DATA_SOURCE = "{{ dataSource|safe }}"; if (document.documentElement.classList.contains("theme--dark")) document.documentElement.classList.toggle("dark", !0); setInterval(() => { const location = window.location.href; diff --git a/packages/ui-default/api.ts b/packages/ui-default/api.ts index f4bc3e2ed..23fc82f55 100644 --- a/packages/ui-default/api.ts +++ b/packages/ui-default/api.ts @@ -18,6 +18,7 @@ export { default as _ } from 'lodash'; export { default as React } from 'react'; export { default as ReactDOM } from 'react-dom/client'; export * as redux from 'react-redux'; +export { default as jsxRuntime } from 'react/jsx-runtime'; import { load } from './lazyload'; export default load; diff --git a/packages/ui-default/package.json b/packages/ui-default/package.json index b83b76431..fe0c553a7 100644 --- a/packages/ui-default/package.json +++ b/packages/ui-default/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/ui-default", - "version": "4.58.0-beta.10", + "version": "4.58.0-beta.11", "author": "undefined ", "license": "AGPL-3.0", "main": "index.ts", @@ -20,10 +20,10 @@ "@fontsource/source-code-pro": "^5.2.7", "@fontsource/ubuntu-mono": "^5.2.8", "@hydrooj/utils": "workspace:^", - "@mantine/core": "^8.3.6", - "@mantine/hooks": "^8.3.6", - "@mantine/notifications": "^8.3.6", - "@sentry/browser": "^10.22.0", + "@mantine/core": "^8.3.7", + "@mantine/hooks": "^8.3.7", + "@mantine/notifications": "^8.3.7", + "@sentry/browser": "^10.25.0", "@sentry/webpack-plugin": "^4.6.0", "@simplewebauthn/browser": "13.2.2", "@svgr/webpack": "^8.1.0", @@ -36,15 +36,15 @@ "@types/nunjucks": "^3.2.6", "@types/pickadate": "^3.5.35", "@types/qrcode": "^1.5.6", - "@types/react": "^19.2.2", + "@types/react": "^19.2.3", "@types/react-dom": "^19.2.2", "@types/redux-logger": "^3.0.13", "@types/uuid": "^11.0.0", "@types/webpack-env": "^1.18.8", - "@vscode/codicons": "^0.0.41", + "@vscode/codicons": "^0.0.42", "ajv": "^8.17.1", "allotment": "^1.20.4", - "autoprefixer": "^10.4.21", + "autoprefixer": "^10.4.22", "browser-update": "^3.3.63", "chalk": "^5.6.2", "classnames": "^2.5.1", @@ -67,9 +67,9 @@ "jquery-scroll-lock": "^3.1.3", "jquery.easing": "^1.4.1", "jquery.transit": "^0.9.12", - "mantine-contextmenu": "^8.2.0", + "mantine-contextmenu": "^8.3.7", "matchmedia-polyfill": "^0.3.2", - "md-editor-rt": "^6.1.0", + "md-editor-rt": "^6.1.1", "mini-css-extract-plugin": "^2.9.4", "moment": "^2.30.1", "monaco-editor": "0.52.2", @@ -101,16 +101,16 @@ "redux-promise-middleware": "^6.2.0", "redux-thunk": "^3.1.0", "rupture": "^0.7.1", - "sass": "^1.93.3", + "sass": "^1.94.0", "sass-loader": "^16.0.6", - "schemastery": "^3.17.1", + "schemastery": "^3.17.2", "shorty.js": "^1.0.1", "slideout": "^1.0.1", "sticky-kit": "^1.1.3", "style-loader": "^4.0.0", "stylus": "^0.64.0", "stylus-loader": "7.1.2", - "svgtofont": "^6.4.1", + "svgtofont": "^6.5.0", "tether": "1.4.7", "tether-drop": "^1.4.2", "timeago-react": "^3.0.7", diff --git a/packages/ui-default/templates/partials/problem_sidebar_contest.html b/packages/ui-default/templates/partials/problem_sidebar_contest.html index 1200aa2d8..9786c63e8 100644 --- a/packages/ui-default/templates/partials/problem_sidebar_contest.html +++ b/packages/ui-default/templates/partials/problem_sidebar_contest.html @@ -8,7 +8,7 @@