diff --git a/framework/eslint-config/package.json b/framework/eslint-config/package.json index 5ee475655..ac53bc15b 100644 --- a/framework/eslint-config/package.json +++ b/framework/eslint-config/package.json @@ -5,16 +5,16 @@ "main": "base.mjs", "repository": "https://github.com/hydro-dev/Hydro", "dependencies": { - "@antfu/eslint-config": "^7.2.0", - "@eslint-react/eslint-plugin": "^2.7.4", - "@typescript-eslint/eslint-plugin": "^8.53.1", - "@typescript-eslint/parser": "^8.53.1", + "@antfu/eslint-config": "^7.4.3", + "@eslint-react/eslint-plugin": "^2.13.0", + "@typescript-eslint/eslint-plugin": "^8.56.0", + "@typescript-eslint/parser": "^8.56.0", "eslint-plugin-de-morgan": "^2.0.0", "eslint-plugin-github": "^6.0.0", "eslint-plugin-react-hooks": "^7.0.1", - "eslint-plugin-react-refresh": "^0.4.26", + "eslint-plugin-react-refresh": "^0.5.0", "eslint-plugin-simple-import-sort": "^12.1.1", - "globals": "^16.5.0" + "globals": "^17.3.0" }, "peerDependencies": { "eslint": ">= 9" diff --git a/framework/framework/package.json b/framework/framework/package.json index 5a4b61f43..4a14c6cc0 100644 --- a/framework/framework/package.json +++ b/framework/framework/package.json @@ -10,12 +10,12 @@ "dependencies": { "@hydrooj/utils": "workspace:^", "@koa/router": "^15.3.0", - "@mongodb-js/saslprep": "^1.4.5", + "@mongodb-js/saslprep": "^1.4.6", "emoji-regex": "^10.6.0", "fs-extra": "^11.3.3", "koa": "^3.1.1", "koa-body": "^7.0.1", - "koa-compress": "^5.1.1", + "koa-compress": "5.1.1", "path-to-regexp": "^8.3.0", "sanitize-filename": "^1.6.3", "schemastery": "^3.17.2", diff --git a/framework/utils/package.json b/framework/utils/package.json index a81931b13..b5c1d901e 100644 --- a/framework/utils/package.json +++ b/framework/utils/package.json @@ -18,7 +18,7 @@ "js-yaml": "^4.1.1", "reggol": "^2.1.0", "search-query-parser": "^1.6.0", - "systeminformation": "^5.30.6" + "systeminformation": "^5.31.1" }, "devDependencies": { "@types/fs-extra": "^11.0.4" diff --git a/package.json b/package.json index a8f3d3002..137b32cfa 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "@types/autocannon": "^7.12.7", "@types/chai": "^5.2.3", "@types/cross-spawn": "^6.0.6", - "@types/node": "24.10.7", + "@types/node": "24.10.13", "@types/semver": "^7.7.1", "autocannon": "^8.0.0", "cac": "^6.7.14", @@ -47,16 +47,16 @@ "eslint-import-resolver-typescript": "^4.4.4", "eslint-import-resolver-webpack": "^0.13.10", "fs-extra": "^11.3.3", - "globals": "^16.5.0", + "globals": "^17.3.0", "globby": "~14.0.2", "inspectpack": "^4.7.1", "mongodb-memory-server": "11.0.1", "nyc": "^17.1.0", - "ora": "^9.1.0", - "oxlint": "^1.41.0", + "ora": "^9.3.0", + "oxlint": "^1.48.0", "package-json": "^10.0.1", - "semver": "^7.7.3", - "simple-git": "^3.30.0", + "semver": "^7.7.4", + "simple-git": "^3.31.1", "supertest": "^7.2.2", "supports-hyperlinks": "^4.4.0", "typescript": "5.8.3", diff --git a/packages/center/package.json b/packages/center/package.json index 9f3055571..58035e1e3 100644 --- a/packages/center/package.json +++ b/packages/center/package.json @@ -11,6 +11,6 @@ }, "dependencies": { "crypto-js": "^4.2.0", - "semver": "^7.7.3" + "semver": "^7.7.4" } } diff --git a/packages/elastic/package.json b/packages/elastic/package.json index 0a4ae9c3d..f7c8956e2 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.2.0" + "@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 0bc2902f1..6511b3f93 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.3" + "maxmind": "^5.0.5" }, "preferUnplugged": true } diff --git a/packages/hydrojudge/package.json b/packages/hydrojudge/package.json index df285219b..4360ce431 100644 --- a/packages/hydrojudge/package.json +++ b/packages/hydrojudge/package.json @@ -9,13 +9,13 @@ "@hydrooj/common": "workspace:^", "@hydrooj/utils": "workspace:^", "@opentelemetry/api": "^1.9.0", - "@opentelemetry/exporter-trace-otlp-http": "^0.211.0", - "@opentelemetry/sdk-node": "^0.211.0", - "@zip.js/zip.js": "^2.8.15", + "@opentelemetry/exporter-trace-otlp-http": "^0.212.0", + "@opentelemetry/sdk-node": "^0.212.0", + "@zip.js/zip.js": "^2.8.21", "cac": "^6.7.14", "p-queue": "^9.1.0", "schemastery": "^3.17.2", - "semver": "^7.7.3", + "semver": "^7.7.4", "shell-quote": "^1.8.3", "superagent": "^10.3.0", "ws": "^8.19.0" diff --git a/packages/hydrojudge/vendor/testlib b/packages/hydrojudge/vendor/testlib index 9ecb11126..2d2012398 160000 --- a/packages/hydrojudge/vendor/testlib +++ b/packages/hydrojudge/vendor/testlib @@ -1 +1 @@ -Subproject commit 9ecb11126c16caeda2ba375e0084b3ddd03d4ace +Subproject commit 2d20123984e9479b8a56ebe0d6a51e23ad7c35b3 diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index ecbb78980..94cd13182 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -16,15 +16,15 @@ "@aws-sdk/lib-storage": "3.726.1", "@aws-sdk/s3-presigned-post": "3.726.1", "@aws-sdk/s3-request-presigner": "3.726.1", - "@babel/code-frame": "^7.28.6", + "@babel/code-frame": "^7.29.0", "@cordisjs/plugin-timer": "1.1.1", "@hydrooj/common": "workspace:^", "@hydrooj/framework": "workspace:^", "@hydrooj/utils": "workspace:^", - "@mongodb-js/saslprep": "^1.4.5", + "@mongodb-js/saslprep": "^1.4.6", "@simplewebauthn/server": "13.2.2", "@undefined-moe/require-resolve-hook": "^1.1.0", - "@zip.js/zip.js": "^2.8.15", + "@zip.js/zip.js": "^2.8.21", "adm-zip": "0.5.16", "cac": "^6.7.14", "cordis": "4.0.0-beta.5", @@ -36,18 +36,18 @@ "koa-proxies": "^0.12.4", "koa-static-cache": "^5.1.4", "lodash": "^4.17.23", - "lru-cache": "^11.2.4", + "lru-cache": "^11.2.6", "mime-types": "^3.0.2", "moment-timezone": "^0.6.0", - "mongodb": "^7.0.0", + "mongodb": "^7.1.0", "mongodb-uri": "^0.9.7", "nanoid": "^5.1.6", - "nodemailer": "^7.0.12", + "nodemailer": "^8.0.1", "notp": "^2.0.3", "p-queue": "^9.1.0", "sanitize-filename": "^1.6.3", "schemastery": "^3.17.2", - "semver": "^7.7.3", + "semver": "^7.7.4", "shorty.js": "^1.0.1", "superagent": "^10.3.0", "tar": "6.2.1", @@ -63,7 +63,7 @@ "@types/lodash": "^4.17.23", "@types/mime-types": "^3.0.1", "@types/mongodb-uri": "^0.9.4", - "@types/nodemailer": "^7.0.5", + "@types/nodemailer": "^7.0.10", "@types/notp": "^2.0.5", "@types/semver": "^7.7.1", "@types/superagent": "^8.1.9", diff --git a/packages/migrate/package.json b/packages/migrate/package.json index 9a18a1f83..bca03414b 100644 --- a/packages/migrate/package.json +++ b/packages/migrate/package.json @@ -7,8 +7,8 @@ "license": "AGPL-3.0-or-later", "dependencies": { "bcryptjs": "^3.0.3", - "mariadb": "^3.4.5", - "mongodb": "^7.0.0", + "mariadb": "3.4.5", + "mongodb": "^7.1.0", "turndown": "^7.2.2", "xml2js": "^0.6.2" }, diff --git a/packages/onsite-toolkit/package.json b/packages/onsite-toolkit/package.json index fb10a60b6..0523a53bc 100644 --- a/packages/onsite-toolkit/package.json +++ b/packages/onsite-toolkit/package.json @@ -4,7 +4,7 @@ "repository": "https://github.com/hydro-dev/Hydro", "dependencies": { "@react-spring/web": "^10.0.3", - "lru-cache": "^11.2.4", + "lru-cache": "^11.2.6", "react-use": "^17.6.0" } } diff --git a/packages/ui-default/components/messagepad/MessagePadDialogueContentContainer.jsx b/packages/ui-default/components/messagepad/MessagePadDialogueContentContainer.jsx index 8fb7368c1..4077dd76f 100644 --- a/packages/ui-default/components/messagepad/MessagePadDialogueContentContainer.jsx +++ b/packages/ui-default/components/messagepad/MessagePadDialogueContentContainer.jsx @@ -1,4 +1,3 @@ -import 'jquery-scroll-lock'; import 'jquery.easing'; import $ from 'jquery'; @@ -16,7 +15,6 @@ const mapStateToProps = (state) => ({ : null, }); -// eslint-disable-next-line react-refresh/only-export-components export default connect(mapStateToProps)(class MessagePadDialogueContentContainer extends React.PureComponent { componentDidUpdate(prevProps) { const node = this.state.ref; @@ -24,13 +22,12 @@ export default connect(mapStateToProps)(class MessagePadDialogueContentContainer if (this.props.activeId !== prevProps.activeId) { this.scrollToBottom = true; this.scrollWithAnimation = false; - } else if (node.scrollTop + node.offsetHeight === node.scrollHeight) { + } else if (Math.abs(node.scrollTop + node.offsetHeight - node.scrollHeight) < 200) { this.scrollToBottom = true; this.scrollWithAnimation = true; } else this.scrollToBottom = false; if (!node) return; - $(this.state.ref).scrollLock({ strict: true }); if (this.scrollToBottom) { const targetScrollTop = node.scrollHeight - node.offsetHeight; if (this.scrollWithAnimation) { @@ -98,7 +95,7 @@ export default connect(mapStateToProps)(class MessagePadDialogueContentContainer )} -
    { this.setState({ ...this.state, ref }); }}> +
      { this.setState({ ...this.state, ref }); }}> {this.renderInner()}
    diff --git a/packages/ui-default/components/messagepad/MessagePadDialogueListContainer.jsx b/packages/ui-default/components/messagepad/MessagePadDialogueListContainer.jsx index 416a9b0c2..4ecc206a9 100644 --- a/packages/ui-default/components/messagepad/MessagePadDialogueListContainer.jsx +++ b/packages/ui-default/components/messagepad/MessagePadDialogueListContainer.jsx @@ -1,5 +1,3 @@ -import 'jquery-scroll-lock'; - import $ from 'jquery'; import _ from 'lodash'; import React from 'react'; @@ -21,7 +19,6 @@ const mapDispatchToProps = (dispatch) => ({ }, }); -// eslint-disable-next-line react-refresh/only-export-components export default connect(mapStateToProps, mapDispatchToProps)(class MessagePadDialogueListContainer extends React.PureComponent { render() { const orderedDialogues = _.orderBy( diff --git a/packages/ui-default/components/messagepad/MessagePadInputContainer.jsx b/packages/ui-default/components/messagepad/MessagePadInputContainer.jsx index 6029c0e8b..03eece5e9 100644 --- a/packages/ui-default/components/messagepad/MessagePadInputContainer.jsx +++ b/packages/ui-default/components/messagepad/MessagePadInputContainer.jsx @@ -42,7 +42,6 @@ const mapDispatchToProps = (dispatch) => ({ }, }); -// eslint-disable-next-line react-refresh/only-export-components export default connect(mapStateToProps, mapDispatchToProps)(class MessagePadInputContainer extends React.PureComponent { static contextTypes = { store: PropTypes.object, diff --git a/packages/ui-default/components/messagepad/index.jsx b/packages/ui-default/components/messagepad/index.jsx index e41badeb2..d3b0b176f 100644 --- a/packages/ui-default/components/messagepad/index.jsx +++ b/packages/ui-default/components/messagepad/index.jsx @@ -16,7 +16,6 @@ const mapDispatchToProps = (dispatch) => ({ }, }); -// eslint-disable-next-line react-refresh/only-export-components export default connect(null, mapDispatchToProps)(class MessagePadContainer extends React.PureComponent { static propTypes = { onAdd: PropTypes.func.isRequired, diff --git a/packages/ui-default/components/problemconfig/ProblemConfigEditor.tsx b/packages/ui-default/components/problemconfig/ProblemConfigEditor.tsx index d419aaef4..c6f91a65b 100644 --- a/packages/ui-default/components/problemconfig/ProblemConfigEditor.tsx +++ b/packages/ui-default/components/problemconfig/ProblemConfigEditor.tsx @@ -1,4 +1,3 @@ -/* eslint-disable react-refresh/only-export-components */ import type { ProblemConfigFile, TestCaseConfig } from 'hydrooj/src/interface'; import { diffLines } from 'diff'; import $ from 'jquery'; diff --git a/packages/ui-default/components/problemconfig/tree/SelectionManager.tsx b/packages/ui-default/components/problemconfig/tree/SelectionManager.tsx index 198f43360..cd3ea0656 100644 --- a/packages/ui-default/components/problemconfig/tree/SelectionManager.tsx +++ b/packages/ui-default/components/problemconfig/tree/SelectionManager.tsx @@ -68,6 +68,7 @@ export function SelectionManager(props: SelectionManagerProps) { const cleanupSelection = React.useCallback(() => { selecting.current = false; document.body.removeEventListener('mousemove', handleMouseMove); + // eslint-disable-next-line ts/no-use-before-define document.body.removeEventListener('mouseup', handleMouseUp); $('#divSelectArea').remove(); $('body').css('cursor', 'default'); diff --git a/packages/ui-default/components/scratchpad/ScratchpadEditorContainer.tsx b/packages/ui-default/components/scratchpad/ScratchpadEditorContainer.tsx index e6e6e8563..6e2256092 100644 --- a/packages/ui-default/components/scratchpad/ScratchpadEditorContainer.tsx +++ b/packages/ui-default/components/scratchpad/ScratchpadEditorContainer.tsx @@ -13,7 +13,6 @@ interface ScratchpadOptions { commandDone?: () => void; } -// eslint-disable-next-line react-refresh/only-export-components export default connect((state: any) => ({ value: state.editor.code, language: window.LANGS[state.editor.lang]?.monaco, diff --git a/packages/ui-default/components/scratchpad/ScratchpadPretestContainer.jsx b/packages/ui-default/components/scratchpad/ScratchpadPretestContainer.jsx index 04bd22857..34ff8aa5b 100644 --- a/packages/ui-default/components/scratchpad/ScratchpadPretestContainer.jsx +++ b/packages/ui-default/components/scratchpad/ScratchpadPretestContainer.jsx @@ -27,7 +27,6 @@ const mapDispatchToProps = (dispatch) => ({ }, }); -// eslint-disable-next-line react-refresh/only-export-components export default connect(mapStateToProps, mapDispatchToProps)(class ScratchpadPretestContainer extends React.PureComponent { render() { return ( diff --git a/packages/ui-default/components/scratchpad/ScratchpadRecordsContainer.jsx b/packages/ui-default/components/scratchpad/ScratchpadRecordsContainer.jsx index aed7d9f86..1f21cbfbe 100644 --- a/packages/ui-default/components/scratchpad/ScratchpadRecordsContainer.jsx +++ b/packages/ui-default/components/scratchpad/ScratchpadRecordsContainer.jsx @@ -11,7 +11,6 @@ const mapStateToProps = (state) => ({ isLoading: state.ui.records.isLoading, }); -// eslint-disable-next-line react-refresh/only-export-components export default connect(mapStateToProps)(class ScratchpadRecordsContainer extends React.PureComponent { render() { const cn = classNames('data-table is--full-row scratchpad__records__table', { diff --git a/packages/ui-default/components/scratchpad/ScratchpadRecordsRowContainer.jsx b/packages/ui-default/components/scratchpad/ScratchpadRecordsRowContainer.jsx index 2cd42c39b..b97155f4c 100644 --- a/packages/ui-default/components/scratchpad/ScratchpadRecordsRowContainer.jsx +++ b/packages/ui-default/components/scratchpad/ScratchpadRecordsRowContainer.jsx @@ -46,7 +46,6 @@ const mergeProps = (stateProps, dispatchProps, ownProps) => ({ data: stateProps.items[ownProps.id], }); -// eslint-disable-next-line react-refresh/only-export-components export default connect(mapStateToProps, null, mergeProps)(class ScratchpadRecordsRowContainer extends React.PureComponent { handleRowClick(ev, id) { const url = substitute( diff --git a/packages/ui-default/components/scratchpad/ScratchpadToolbarContainer.jsx b/packages/ui-default/components/scratchpad/ScratchpadToolbarContainer.jsx index 6316b5ab4..e276e3239 100644 --- a/packages/ui-default/components/scratchpad/ScratchpadToolbarContainer.jsx +++ b/packages/ui-default/components/scratchpad/ScratchpadToolbarContainer.jsx @@ -73,7 +73,6 @@ const mapDispatchToProps = (dispatch) => ({ const availableLangs = getAvailableLangs(UiContext.pdoc.config.langs); const keys = Object.keys(availableLangs); -// eslint-disable-next-line react-refresh/only-export-components export default connect(mapStateToProps, mapDispatchToProps)(class ScratchpadToolbarContainer extends React.PureComponent { static contextTypes = { store: PropTypes.object, diff --git a/packages/ui-default/package.json b/packages/ui-default/package.json index d4fe807d0..8020b678b 100644 --- a/packages/ui-default/package.json +++ b/packages/ui-default/package.json @@ -20,11 +20,11 @@ "@fontsource/source-code-pro": "^5.2.7", "@fontsource/ubuntu-mono": "^5.2.8", "@hydrooj/utils": "workspace:^", - "@mantine/core": "^8.3.13", - "@mantine/hooks": "^8.3.13", - "@mantine/notifications": "^8.3.13", - "@sentry/browser": "^10.36.0", - "@sentry/webpack-plugin": "^4.7.0", + "@mantine/core": "^8.3.15", + "@mantine/hooks": "^8.3.15", + "@mantine/notifications": "^8.3.15", + "@sentry/browser": "^10.39.0", + "@sentry/webpack-plugin": "^4.9.1", "@simplewebauthn/browser": "13.2.2", "@svgr/webpack": "^8.1.0", "@types/html-to-text": "^9.0.4", @@ -36,15 +36,15 @@ "@types/nunjucks": "^3.2.6", "@types/pickadate": "^3.5.35", "@types/qrcode": "^1.5.6", - "@types/react": "^19.2.9", + "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "@types/redux-logger": "^3.0.13", "@types/uuid": "^11.0.0", "@types/webpack-env": "^1.18.8", "@vscode/codicons": "^0.0.44", - "ajv": "^8.17.1", + "ajv": "^8.18.0", "allotment": "^1.20.5", - "autoprefixer": "^10.4.23", + "autoprefixer": "^10.4.24", "browser-update": "^3.3.63", "chalk": "^5.6.2", "classnames": "^2.5.1", @@ -54,7 +54,7 @@ "cordis": "4.0.0-beta.5", "core-js": "^3.48.0", "core-js-compat": "^3.48.0", - "css-loader": "^7.1.2", + "css-loader": "^7.1.4", "diff": "^8.0.3", "diff-dom": "^5.2.1", "echarts": "^6.0.0", @@ -63,8 +63,7 @@ "esbuild-loader": "^4.4.2", "flatpickr": "^4.6.13", "idb": "^8.0.3", - "jquery": "^4.0.0", - "jquery-scroll-lock": "^3.1.3", + "jquery": "^3.7.1", "jquery.easing": "^1.4.1", "jquery.transit": "^0.9.12", "mantine-contextmenu": "^8.3.13", @@ -89,11 +88,11 @@ "prop-types": "^15.8.1", "qface": "^1.4.1", "qrcode": "^1.5.4", - "react": "^19.2.3", + "react": "^19.2.4", "react-colorful": "^5.6.1", "react-dnd": "^16.0.1", "react-dnd-html5-backend": "^16.0.1", - "react-dom": "^19.2.3", + "react-dom": "^19.2.4", "react-redux": "^9.2.0", "reconnecting-websocket": "^4.4.0", "redux": "^5.0.1", @@ -102,7 +101,7 @@ "redux-thunk": "^3.1.0", "rupture": "^0.7.1", "sass": "^1.97.3", - "sass-loader": "^16.0.6", + "sass-loader": "^16.0.7", "schemastery": "^3.17.2", "shorty.js": "^1.0.1", "slideout": "^1.0.1", @@ -117,7 +116,7 @@ "timeago.js": "^4.0.2", "ts-loader": "^9.5.4", "web-streams-polyfill": "^4.2.0", - "webpack": "^5.104.1", + "webpack": "^5.105.2", "webpack-bundle-analyzer": "^5.2.0", "webpack-dev-server": "^5.2.3", "webpack-manifest-plugin": "^6.0.1", @@ -132,9 +131,9 @@ "html-to-text": "^9.0.5", "js-yaml": "^4.1.1", "jsesc": "^3.1.0", - "katex": "^0.16.27", + "katex": "^0.16.28", "lodash": "^4.17.23", - "markdown-it": "^14.1.0", + "markdown-it": "^14.1.1", "markdown-it-anchor": "^9.2.0", "markdown-it-attrs": "^4.3.1", "markdown-it-footnote": "^4.0.0", diff --git a/packages/ui-next/package.json b/packages/ui-next/package.json index 05e286c99..ffa528794 100644 --- a/packages/ui-next/package.json +++ b/packages/ui-next/package.json @@ -8,14 +8,14 @@ "preview": "vite preview" }, "dependencies": { - "@vitejs/plugin-react": "^5.1.2", - "react": "^19.2.3", - "react-dom": "^19.2.3" + "@vitejs/plugin-react": "^5.1.4", + "react": "^19.2.4", + "react-dom": "^19.2.4" }, "devDependencies": { - "@types/react": "^19.2.9", + "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", - "@vitejs/plugin-react-swc": "^4.2.2", - "vite": "^8.0.0-beta.10" + "@vitejs/plugin-react-swc": "^4.2.3", + "vite": "^8.0.0-beta.15" } } diff --git a/packages/vjudge/package.json b/packages/vjudge/package.json index d4564dba4..54c9b6153 100644 --- a/packages/vjudge/package.json +++ b/packages/vjudge/package.json @@ -9,7 +9,7 @@ "preferUnplugged": true, "dependencies": { "@hydrooj/utils": "workspace:^", - "jsdom": "^27.4.0", + "jsdom": "^28.1.0", "superagent-charset": "^1.2.0", "superagent-proxy": "^3.0.0" },