diff --git a/package.json b/package.json index 994263c84..6c8cfc5f8 100644 --- a/package.json +++ b/package.json @@ -25,16 +25,16 @@ "@typescript-eslint/eslint-plugin": "^3.9.1", "@typescript-eslint/parser": "^3.9.1", "cross-spawn": "^7.0.3", - "eslint": "^7.9.0", + "eslint": "^7.10.0", "eslint-config-airbnb-base": "^14.2.0", "eslint-import-resolver-typescript": "^2.3.0", - "eslint-plugin-import": "^2.22.0", + "eslint-plugin-import": "^2.22.1", "globby": "^11.0.1", "jest": "^26.4.2", "latest-version": "^5.1.0", "ora": "^5.1.0", "semver": "^7.3.2", - "ts-jest": "^26.4.0", + "ts-jest": "^26.4.1", "typescript": "^4.0.3" }, "dependencies": { diff --git a/packages/geoip/package.json b/packages/geoip/package.json index 971da46ca..bba4af184 100644 --- a/packages/geoip/package.json +++ b/packages/geoip/package.json @@ -6,7 +6,7 @@ "author": "undefined ", "license": "MIT", "dependencies": { - "maxmind": "^4.1.3" + "maxmind": "^4.2.0" }, "scripts": { "prepublish": "./prepublish.sh" diff --git a/packages/hydrojudge/package.json b/packages/hydrojudge/package.json index cb7d201ad..640c8cc2e 100644 --- a/packages/hydrojudge/package.json +++ b/packages/hydrojudge/package.json @@ -14,7 +14,7 @@ "lodash": "^4.17.20", "p-queue": "^6.6.1", "shell-quote": "^1.7.2", - "systeminformation": "^4.27.5" + "systeminformation": "^4.27.6" }, "peerDependencies": { "hydrooj": "^2.13.3" diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 869bdcd35..55f4695a6 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.13.22", + "version": "2.13.23", "bin": "bin/hydrooj.js", "main": "dist/loader.js", "typings": "dist/loader.d.ts", @@ -25,13 +25,13 @@ "lru-cache": "^6.0.0", "moment-timezone": "^0.5.31", "mongodb": "^3.6.2", - "nodemailer": "^6.4.10", + "nodemailer": "^6.4.13", "ps-list": "^7.2.0", "serialize-javascript": "^5.0.1", "sockjs": "^0.3.20", "superagent": "^6.1.0", "supports-color": "^7.2.0", - "systeminformation": "^4.27.5", + "systeminformation": "^4.27.6", "yargs": "^16.0.3" }, "devDependencies": { diff --git a/packages/hydrooj/src/interface.ts b/packages/hydrooj/src/interface.ts index fdcd54bbe..a2f0cf319 100644 --- a/packages/hydrooj/src/interface.ts +++ b/packages/hydrooj/src/interface.ts @@ -1,6 +1,6 @@ // eslint-disable-next-line @typescript-eslint/no-unused-vars import { Readable, Writable } from 'stream'; -import { ObjectID, GridFSBucket } from 'mongodb'; +import { ObjectID } from 'mongodb'; import fs from 'fs'; import { Dictionary, NumericDictionary } from 'lodash'; @@ -532,9 +532,11 @@ export interface UI { nodes: { nav: any[], problem_add: any[], + user_dropdown: any[], }, Nav: typeof import('./lib/ui').Nav, ProblemAdd: typeof import('./lib/ui').ProblemAdd, + UserDropdown: typeof import('./lib/ui').UserDropdown, } declare global { diff --git a/packages/hydrooj/src/lib/ui.ts b/packages/hydrooj/src/lib/ui.ts index ac5b4d29e..1bbe8c11a 100644 --- a/packages/hydrooj/src/lib/ui.ts +++ b/packages/hydrooj/src/lib/ui.ts @@ -56,6 +56,14 @@ export const ProblemAdd = ( }); }; +export const UserDropdown = ( + name: string, args: Dictionary = {}, ...permPrivChecker: Array +) => { + global.Hydro.ui.nodes.user_dropdown.push({ + name, args: args || {}, checker: buildChecker(...permPrivChecker), + }); +}; + Nav('homepage', {}, 'homepage'); Nav('problem_main', {}, 'problem', PERM.PERM_VIEW_PROBLEM); Nav('training_main', {}, 'training', PERM.PERM_VIEW_TRAINING); @@ -71,3 +79,4 @@ ProblemAdd('problem_import_syzoj', {}, 'copy', 'Import From SYZOJ'); global.Hydro.ui.Nav = Nav; global.Hydro.ui.ProblemAdd = ProblemAdd; +global.Hydro.ui.UserDropdown = UserDropdown; diff --git a/packages/hydrooj/src/loader.ts b/packages/hydrooj/src/loader.ts index 69d06da30..3d5286dea 100644 --- a/packages/hydrooj/src/loader.ts +++ b/packages/hydrooj/src/loader.ts @@ -30,6 +30,7 @@ if (!global.Hydro) { nodes: { nav: [], problem_add: [], + user_dropdown: [], }, template: {}, }, diff --git a/packages/hydrooj/test/lib.crypto.spec.ts b/packages/hydrooj/test/lib.crypto.spec.ts index cec6a2cef..1db0ae1fa 100644 --- a/packages/hydrooj/test/lib.crypto.spec.ts +++ b/packages/hydrooj/test/lib.crypto.spec.ts @@ -1,7 +1,6 @@ import 'hydrooj'; import 'hydrooj/src/utils'; -import md5 from 'hydrooj/src/lib/md5'; -import sha1 from 'hydrooj/src/lib/sha1'; +import { md5, sha1 } from 'hydrooj/src/lib/crypto'; import pwhash from 'hydrooj/src/lib/hash.hydro'; describe('crypto', () => { diff --git a/packages/login-with-qq/package.json b/packages/login-with-qq/package.json index 027046646..d82d3281e 100644 --- a/packages/login-with-qq/package.json +++ b/packages/login-with-qq/package.json @@ -16,6 +16,6 @@ "ws": "^7.3.1" }, "devDependencies": { - "@types/ws": "^7.2.6" + "@types/ws": "^7.2.7" } } \ No newline at end of file