diff --git a/build/prepare.js b/build/prepare.js index 913f7efc5..3d7402f8e 100644 --- a/build/prepare.js +++ b/build/prepare.js @@ -54,6 +54,11 @@ const configFlat = (name) => ({ ...compilerOptionsBase, outDir: path.join(baseOutDir, name), rootDir: '.', + paths: { + 'vj/*': [ + '../../packages/ui-default/*', + ], + }, }, include: ['**/*.ts'], exclude: ['public', 'frontend'], @@ -130,8 +135,8 @@ for (const package of modules) { if (!fs.statSync(path.resolve(basedir, 'src', file)).isFile()) continue; const name = file.split('.')[0]; const filePath = path.resolve(basedir, `${name}.js`); - if (['handler', 'service', 'lib', 'model', 'script', 'index'].includes(name)) { - if (!fs.existsSync(filePath)) fs.writeFileSync(filePath, `module.exports = require('./src/${name}');\n`); + if (name === 'index' && !fs.existsSync(filePath)) { + fs.writeFileSync(filePath, 'module.exports = require("./src/index");\n'); } } } diff --git a/package.json b/package.json index 5d04431d5..6d41c9ec1 100644 --- a/package.json +++ b/package.json @@ -37,11 +37,11 @@ "@types/chai": "^4.3.11", "@types/cross-spawn": "^6.0.6", "@types/node": "20.10.6", - "@types/semver": "^7.5.6", - "autocannon": "^7.14.0", + "@types/semver": "^7.5.7", + "autocannon": "^7.15.0", "cac": "^6.7.14", - "chai": "^5.0.3", - "chokidar": "^3.5.3", + "chai": "^5.1.0", + "chokidar": "^3.6.0", "cross-env": "^7.0.3", "cross-spawn": "^7.0.3", "esbuild": "0.18.20", @@ -49,13 +49,13 @@ "eslint-import-resolver-typescript": "^3.6.1", "eslint-import-resolver-webpack": "^0.13.8", "fs-extra": "^11.2.0", - "globby": "14.0.0", + "globby": "^14.0.1", "inspectpack": "^4.7.1", "mongodb-memory-server": "^9.1.6", "nyc": "^15.1.0", "ora": "^8.0.1", "package-json": "^9.0.0", - "semver": "^7.5.4", + "semver": "^7.6.0", "simple-git": "^3.22.0", "supertest": "^6.3.4", "typescript": "^5.3.3", diff --git a/packages/center/package.json b/packages/center/package.json index 51b99cd8a..45deaae1a 100644 --- a/packages/center/package.json +++ b/packages/center/package.json @@ -11,6 +11,6 @@ }, "dependencies": { "crypto-js": "^4.2.0", - "semver": "^7.5.4" + "semver": "^7.6.0" } } diff --git a/packages/elastic/package.json b/packages/elastic/package.json index af0304ae7..f1a666bc9 100644 --- a/packages/elastic/package.json +++ b/packages/elastic/package.json @@ -6,6 +6,6 @@ "author": "undefined ", "license": "AGPL-3.0-or-later", "dependencies": { - "@elastic/elasticsearch": "^8.11.0" + "@elastic/elasticsearch": "^8.12.1" } } diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json index 169f29d7b..be306bf3e 100644 --- a/packages/eslint-config/package.json +++ b/packages/eslint-config/package.json @@ -4,9 +4,9 @@ "license": "MIT", "main": "react.yaml", "dependencies": { - "@stylistic/eslint-plugin": "^1.5.4", - "@typescript-eslint/eslint-plugin": "^6.19.1", - "@typescript-eslint/parser": "^6.19.1", + "@stylistic/eslint-plugin": "^1.6.2", + "@typescript-eslint/eslint-plugin": "^7.0.2", + "@typescript-eslint/parser": "^7.0.2", "eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb-typescript": "^17.1.0", "eslint-plugin-github": "^4.10.1", @@ -14,7 +14,7 @@ "eslint-plugin-jsx-a11y": "^6.8.0", "eslint-plugin-react": "^7.33.2", "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-simple-import-sort": "10.0.0" + "eslint-plugin-simple-import-sort": "^12.0.0" }, "peerDependencies": { "eslint": ">= 8" diff --git a/packages/hydrojudge/package.json b/packages/hydrojudge/package.json index 8cde950a4..e5932d207 100644 --- a/packages/hydrojudge/package.json +++ b/packages/hydrojudge/package.json @@ -2,7 +2,7 @@ "name": "@hydrooj/hydrojudge", "bin": "bin/hydrojudge.js", "version": "3.3.2", - "main": "package.json", + "main": "./src/index.ts", "author": "undefined ", "repository": "https://github.com/hydro-dev/Hydro.git", "dependencies": { @@ -10,7 +10,7 @@ "cac": "^6.7.14", "p-queue": "^8.0.1", "schemastery": "^3.14.3", - "semver": "^7.5.4", + "semver": "^7.6.0", "shell-quote": "^1.8.1", "superagent": "^8.1.2", "ws": "^8.16.0" diff --git a/packages/hydrojudge/service.js b/packages/hydrojudge/service.js deleted file mode 100644 index 169e65b6e..000000000 --- a/packages/hydrojudge/service.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./src/service'); diff --git a/packages/hydrojudge/src/service.ts b/packages/hydrojudge/src/index.ts similarity index 100% rename from packages/hydrojudge/src/service.ts rename to packages/hydrojudge/src/index.ts diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 16922fe09..7bf8fdfb1 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -12,10 +12,10 @@ }, "preferUnplugged": true, "dependencies": { - "@aws-sdk/client-s3": "3.501.0", - "@aws-sdk/lib-storage": "3.501.0", - "@aws-sdk/s3-presigned-post": "3.501.0", - "@aws-sdk/s3-request-presigner": "3.501.0", + "@aws-sdk/client-s3": "3.515.0", + "@aws-sdk/lib-storage": "3.515.0", + "@aws-sdk/s3-presigned-post": "3.515.0", + "@aws-sdk/s3-request-presigner": "3.515.0", "@graphql-tools/schema": "^10.0.2", "@hydrooj/utils": "workspace:*", "@simplewebauthn/server": "7.4.0", @@ -39,17 +39,17 @@ "lodash": "^4.17.21", "lru-cache": "^10.2.0", "mime-types": "^2.1.35", - "moment-timezone": "^0.5.44", + "moment-timezone": "^0.5.45", "mongodb": "^5.9.2", - "nanoid": "^5.0.4", - "nodemailer": "^6.9.8", + "nanoid": "^5.0.6", + "nodemailer": "^6.9.10", "notp": "^2.0.3", "p-queue": "^8.0.1", "path-to-regexp": "^6.2.1", "sanitize-filename": "^1.6.3", "saslprep": "^1.0.3", "schemastery": "^3.14.3", - "semver": "^7.5.4", + "semver": "^7.6.0", "shorty.js": "^1.0.1", "superagent": "^8.1.2", "tar": "^6.2.0", @@ -69,7 +69,7 @@ "@types/nodemailer": "^6.4.14", "@types/notp": "^2.0.5", "@types/saslprep": "^1.0.3", - "@types/semver": "^7.5.6", + "@types/semver": "^7.5.7", "@types/superagent": "^8.1.3", "@types/tar": "^6.1.11", "moment": "^2.30.1" diff --git a/packages/ui-default/build/main.ts b/packages/ui-default/build/main.ts index 70fdd8d0e..78976e13d 100644 --- a/packages/ui-default/build/main.ts +++ b/packages/ui-default/build/main.ts @@ -27,11 +27,11 @@ async function runWebpack({ hot: true, server: https ? 'https' : 'http', allowedHosts: 'all', - proxy: { + proxy: [{ context: (p) => p !== '/ws', target: 'http://localhost:2333', ws: true, - }, + }], client: { webSocketURL: 'auto://0.0.0.0:0/ws', }, diff --git a/packages/ui-default/components/DOMAttachedObject.ts b/packages/ui-default/components/DOMAttachedObject.ts index 5c7a9d9ca..05707afa7 100644 --- a/packages/ui-default/components/DOMAttachedObject.ts +++ b/packages/ui-default/components/DOMAttachedObject.ts @@ -23,7 +23,7 @@ function monitorResource(resource) { } } -class DOMAttachedObject { +export default class DOMAttachedObject { static uniqueIdCounter = 0; static DOMAttachKey: string; static DOMAttachSelector: string; @@ -127,5 +127,3 @@ class DOMAttachedObject { if (monitorDetach) monitorResource(this); } } - -export default DOMAttachedObject as typeof DOMAttachedObject & DOMAttachedObject; diff --git a/packages/ui-default/components/react/IconComponent.jsx b/packages/ui-default/components/react/IconComponent.tsx similarity index 69% rename from packages/ui-default/components/react/IconComponent.jsx rename to packages/ui-default/components/react/IconComponent.tsx index c14ac53ec..1d30d31f2 100644 --- a/packages/ui-default/components/react/IconComponent.jsx +++ b/packages/ui-default/components/react/IconComponent.tsx @@ -1,7 +1,8 @@ import classNames from 'classnames'; import PropTypes from 'prop-types'; +import React from 'react'; -export default function IconComponent(props) { +export default function IconComponent(props: { name: string, className?: string } & React.HTMLAttributes) { const { name, className, diff --git a/packages/ui-default/jsconfig.json b/packages/ui-default/jsconfig.json deleted file mode 100644 index 363466453..000000000 --- a/packages/ui-default/jsconfig.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "exclude": [ - "./public", - ], - "compilerOptions": { - "resolveJsonModule": true, - "jsx": "react", - "allowSyntheticDefaultImports": true, - "target": "ESNext", - "experimentalDecorators": true, - "baseUrl": ".", - "module": "ESNext", - "lib": [ - "ES2020" - ], - "moduleResolution": "node", - "paths": { - "vj/*": [ - "./*" - ] - } - } -} \ No newline at end of file diff --git a/packages/ui-default/package.json b/packages/ui-default/package.json index 5414d869f..bcba69d56 100644 --- a/packages/ui-default/package.json +++ b/packages/ui-default/package.json @@ -14,7 +14,7 @@ "cli": false }, "devDependencies": { - "@blueprintjs/core": "^5.8.2", + "@blueprintjs/core": "^5.9.1", "@fontsource/dm-mono": "^5.0.18", "@fontsource/fira-code": "^5.0.16", "@fontsource/inconsolata": "^5.0.16", @@ -34,8 +34,8 @@ "@types/nunjucks": "^3.2.6", "@types/pickadate": "^3.5.35", "@types/qrcode": "^1.5.5", - "@types/react": "^18.2.48", - "@types/react-dom": "^18.2.18", + "@types/react": "^18.2.57", + "@types/react-dom": "^18.2.19", "@types/redux-logger": "^3.0.13", "@types/webpack-env": "^1.18.4", "@vscode/codicons": "^0.0.35", @@ -49,10 +49,10 @@ "clipboard": "^2.0.11", "copy-webpack-plugin": "^12.0.2", "cordis": "2.8.8", - "css-loader": "^6.9.1", - "diff": "^5.1.0", + "css-loader": "^6.10.0", + "diff": "^5.2.0", "diff-dom": "^5.1.2", - "echarts": "^5.4.3", + "echarts": "^5.5.0", "emojis-keywords": "2.0.0", "emojis-list": "2.1.0", "esbuild-loader": "^2.21.0", @@ -69,14 +69,14 @@ "jquery.easing": "^1.4.1", "jquery.transit": "^0.9.12", "matchmedia-polyfill": "^0.3.2", - "mini-css-extract-plugin": "^2.7.7", + "mini-css-extract-plugin": "^2.8.0", "moment": "^2.30.1", - "monaco-editor": "0.45.0", + "monaco-editor": "0.46.0", "monaco-editor-nls": "^3.1.0", "monaco-editor-webpack-plugin": "^7.1.0", "monaco-themes": "^0.4.4", "monaco-yaml": "^5.1.1", - "nanoid": "^5.0.4", + "nanoid": "^5.0.6", "normalize.css": "^8.0.1", "nprogress": "^0.2.0", "p-queue": "^8.0.1", @@ -115,14 +115,14 @@ "timeago-react": "^3.0.6", "timeago.js": "^4.0.2", "ts-loader": "^9.5.1", - "vditor": "^3.9.8", + "vditor": "^3.9.9", "vinyl-buffer": "^1.0.1", - "web-streams-polyfill": "^3.3.2", - "webpack": "^5.90.0", + "web-streams-polyfill": "^3.3.3", + "webpack": "^5.90.3", "webpack-bundle-analyzer": "^4.10.1", - "webpack-dev-server": "^4.15.1", + "webpack-dev-server": "^5.0.2", "webpack-manifest-plugin": "^5.0.0", - "webpackbar": "^6.0.0" + "webpackbar": "^6.0.1" }, "dependencies": { "ansi_up": "^6.0.2", diff --git a/packages/utils/package.json b/packages/utils/package.json index 6021f49be..7be764575 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -12,11 +12,11 @@ "cac": "^6.7.14", "fs-extra": "^11.2.0", "js-yaml": "^4.1.0", - "moment-timezone": "^0.5.44", + "moment-timezone": "^0.5.45", "mongodb": "^5.9.2", "reggol": "^1.6.3", "search-query-parser": "^1.6.0", - "systeminformation": "^5.21.24" + "systeminformation": "^5.22.0" }, "devDependencies": { "@types/fs-extra": "^11.0.4" diff --git a/packages/vjudge/package.json b/packages/vjudge/package.json index fc8d049da..a62037b60 100644 --- a/packages/vjudge/package.json +++ b/packages/vjudge/package.json @@ -2,7 +2,7 @@ "name": "@hydrooj/vjudge", "version": "1.9.3", "description": "Submit problems to remote oj", - "main": "src/model.ts", + "main": "./src/index.ts", "repository": "https://github.com/hydro-dev/Hydro.git", "author": "undefined", "license": "AGPL-3.0-or-later", diff --git a/packages/vjudge/src/model.ts b/packages/vjudge/src/index.ts similarity index 100% rename from packages/vjudge/src/model.ts rename to packages/vjudge/src/index.ts