workspace: upgrade deps

pull/431/head
undefined 2 years ago
parent 1c3dc161b6
commit 8cffe19609

@ -30,39 +30,39 @@
"version": "1.0.0",
"license": "AGPL-3.0-only",
"devDependencies": {
"@types/autocannon": "^7.6.1",
"@types/autocannon": "^7.9.0",
"@types/cross-spawn": "^6.0.2",
"@types/mocha": "^9.1.1",
"@types/node": "^18.7.14",
"@types/node": "^18.8.1",
"@types/semver": "^7.3.12",
"@types/supertest": "^2.0.12",
"@typescript-eslint/eslint-plugin": "^5.36.1",
"@typescript-eslint/parser": "^5.36.1",
"autocannon": "^7.9.0",
"@typescript-eslint/eslint-plugin": "^5.39.0",
"@typescript-eslint/parser": "^5.39.0",
"autocannon": "^7.10.0",
"cac": "^6.7.14",
"cross-env": "^7.0.3",
"cross-spawn": "^7.0.3",
"esbuild": "0.15.2",
"eslint": "^8.23.0",
"eslint": "^8.24.0",
"eslint-config-airbnb": "^19.0.4",
"eslint-config-airbnb-typescript": "^17.0.0",
"eslint-import-resolver-typescript": "^3.5.0",
"eslint-import-resolver-typescript": "^3.5.1",
"eslint-import-resolver-webpack": "^0.13.2",
"eslint-plugin-import": "2.26.0",
"eslint-plugin-jsx-a11y": "^6.6.1",
"eslint-plugin-react": "^7.31.2",
"eslint-plugin-react": "^7.31.8",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-simple-import-sort": "7.0.0",
"eslint-plugin-simple-import-sort": "8.0.0",
"fs-extra": "^10.1.0",
"globby": "11.1.0",
"latest-version": "7.0.0",
"mocha": "^10.0.0",
"mongodb": "^3.7.3",
"mongodb-memory-server": "^8.9.1",
"mongodb-memory-server": "^8.9.3",
"nyc": "^15.1.0",
"ora": "^6.1.2",
"semver": "^7.3.7",
"supertest": "^6.2.4",
"supertest": "^6.3.0",
"typescript": "4.7.4"
},
"packageManager": "yarn@3.2.3"

@ -1,7 +1,7 @@
import assert from 'assert';
import crypto from 'crypto';
import {
Context, db, Handler, post, Types, yaml,
Context, db, ForbiddenError, Handler, post, Types, yaml,
} from 'hydrooj';
function decrypt(encrypted: string) {
@ -16,6 +16,9 @@ declare module 'hydrooj' {
interface Collections {
dataReport: any;
}
interface EventMap {
'center/report': (thisArg: DataReportHandler, installId: string, old: any, payload: any) => void;
}
}
const coll = db.collection('dataReport');
@ -32,7 +35,11 @@ class DataReportHandler extends Handler {
} catch (e) {
payload = yaml.load(_payload);
}
assert(payload.url);
try {
assert(typeof payload.url === 'string');
} catch (e) {
throw new ForbiddenError();
}
const old = await coll.findOne({ _id: installId });
await coll.updateOne({ _id: installId }, {
$set: {

@ -1,7 +1,6 @@
import { Client } from '@elastic/elasticsearch';
import { omit } from 'lodash';
import {
Context, DomainModel, iterateAllProblem, iterateAllProblemInDomain,
_, Context, DomainModel, iterateAllProblem, iterateAllProblemInDomain,
ProblemDoc, ProblemModel, Schema, SystemModel,
} from 'hydrooj';
@ -19,7 +18,7 @@ const processDocument = (doc: Partial<ProblemDoc>) => {
if (doc.pid) {
doc.pid = doc.pid.replace(/([a-zA-Z]{2,})(\d+)/, '$1$2 $1 $2');
}
return omit(doc, indexOmit);
return _.omit(doc, indexOmit);
};
global.Hydro.lib.problemSearch = async (domainId, q, opts) => {

@ -1,9 +1,8 @@
/* eslint-disable no-await-in-loop */
import decodeHTML from 'decode-html';
import { filter } from 'lodash';
import xml2js from 'xml2js';
import {
AdmZip, buildContent, ContentNode, Context, FileTooLargeError, fs,
_, AdmZip, buildContent, ContentNode, Context, FileTooLargeError, fs,
Handler, PERM, ProblemConfigFile, ProblemModel, SolutionModel, ValidationError,
} from 'hydrooj';
@ -59,7 +58,7 @@ class FpsProblemImportHandler extends Handler {
memory: p.memory_limit[0]._ + p.memory_limit[0].$.unit,
};
const title = decodeHTML(p.title.join(' '));
const tags = filter(p.source, (i: string) => i.trim());
const tags = _.filter(p.source, (i: string) => i.trim());
const pid = await ProblemModel.add(domainId, null, title, buildContent(content, 'html'), this.user._id, tags);
await ProblemModel.addTestdata(domainId, pid, 'config.yaml', Buffer.from(`time: ${config.time}\nmemory: ${config.memory}`));
if (p.test_output) {

@ -6,7 +6,7 @@
"author": "undefined <i@undefined.moe>",
"license": "AGPL-3.0-or-later",
"dependencies": {
"maxmind": "^4.3.6"
"maxmind": "^4.3.7"
},
"preferUnplugged": true,
"scripts": {

@ -11,18 +11,19 @@
"fs-extra": "^10.1.0",
"js-yaml": "^4.1.0",
"lodash": "^4.17.21",
"mongodb": "^3.7.3",
"p-queue": "^7.3.0",
"schemastery": "^3.5.3",
"schemastery": "^3.5.4",
"shell-quote": "^1.7.3",
"superagent": "^8.0.0",
"ws": "^8.8.1"
"superagent": "^8.0.2",
"ws": "^8.9.0"
},
"preferUnplugged": true,
"license": "AGPL-3.0-or-later",
"devDependencies": {
"@types/fs-extra": "^9.0.13",
"@types/js-yaml": "^4.0.5",
"@types/lodash": "^4.14.184",
"@types/lodash": "^4.14.186",
"@types/shell-quote": "^1.7.1",
"@types/ws": "^8.5.3"
}

@ -1,7 +1,7 @@
/* eslint-disable no-await-in-loop */
import path from 'path';
import { ObjectID } from 'bson';
import fs from 'fs-extra';
import { ObjectID } from 'mongodb';
import PQueue from 'p-queue';
import superagent from 'superagent';
import WebSocket from 'ws';

@ -12,21 +12,21 @@
},
"preferUnplugged": true,
"dependencies": {
"@aws-sdk/client-s3": "^3.178.0",
"@aws-sdk/middleware-endpoint": "^3.178.0",
"@aws-sdk/s3-presigned-post": "^3.178.0",
"@aws-sdk/s3-request-presigner": "^3.178.0",
"@aws-sdk/client-s3": "^3.183.0",
"@aws-sdk/middleware-endpoint": "^3.183.0",
"@aws-sdk/s3-presigned-post": "^3.183.0",
"@aws-sdk/s3-request-presigner": "^3.183.0",
"@graphql-tools/schema": "^8.5.1",
"@hydrooj/utils": "workspace:*",
"adm-zip": "0.5.5",
"cac": "^6.7.14",
"cordis": "^2.2.0",
"cordis": "^2.3.8",
"detect-browser": "^5.3.0",
"emoji-regex": "^10.1.0",
"emoji-regex": "^10.2.1",
"emojis-list": "2.1.0",
"fs-extra": "^10.1.0",
"graphql": "^16.5.0",
"graphql-scalars": "1.17.0",
"graphql": "^16.6.0",
"graphql-scalars": "1.18.0",
"isbinaryfile": "^5.0.0",
"js-yaml": "^4.1.0",
"koa": "^2.13.4",
@ -41,7 +41,7 @@
"moment-timezone": "^0.5.37",
"mongodb": "^3.7.3",
"nanoid": "^4.0.0",
"nodemailer": "^6.7.8",
"nodemailer": "^6.8.0",
"notp": "^2.0.3",
"p-queue": "^7.3.0",
"path-to-regexp": "^6.2.1",
@ -50,7 +50,7 @@
"schemastery": "^3.5.4",
"semver": "^7.3.7",
"serialize-javascript": "^6.0.0",
"superagent": "^8.0.0",
"superagent": "^8.0.2",
"thirty-two": "^1.0.2",
"ws": "^8.9.0"
},
@ -62,11 +62,11 @@
"@types/koa-compress": "^4.0.3",
"@types/koa-router": "^7.4.4",
"@types/koa-static-cache": "^5.1.1",
"@types/lodash": "^4.14.184",
"@types/lodash": "^4.14.186",
"@types/mime-types": "^2.1.1",
"@types/minio": "^7.0.13",
"@types/mongodb": "^3.6.20",
"@types/nodemailer": "^6.4.5",
"@types/nodemailer": "^6.4.6",
"@types/notp": "^2.0.2",
"@types/saslprep": "^1.0.1",
"@types/semver": "^7.3.12",

@ -594,28 +594,30 @@ export interface OauthMap {
uid: number;
}
export interface Collections {
'blacklist': BlacklistDoc;
'domain': DomainDoc;
'domain.user': any;
'record': RecordDoc;
'document': any;
'document.status': StatusDocBase;
'user': Udoc;
'user.preference': UserPreferenceDoc;
'vuser': VUdoc;
'user.group': GDoc;
'check': System;
'message': MessageDoc;
'token': TokenDoc;
'status': any;
'oauth': OauthMap;
'system': System;
'task': Task;
'storage': FileNode;
'oplog': OplogDoc;
'event': EventDoc;
'opcount': OpCountDoc;
declare module './service/db' {
interface Collections {
'blacklist': BlacklistDoc;
'domain': DomainDoc;
'domain.user': any;
'record': RecordDoc;
'document': any;
'document.status': StatusDocBase;
'user': Udoc;
'user.preference': UserPreferenceDoc;
'vuser': VUdoc;
'user.group': GDoc;
'check': System;
'message': MessageDoc;
'token': TokenDoc;
'status': any;
'oauth': OauthMap;
'system': System;
'task': Task;
'storage': FileNode;
'oplog': OplogDoc;
'event': EventDoc;
'opcount': OpCountDoc;
}
}
export interface Model {
@ -646,7 +648,7 @@ export interface Model {
export interface HydroService {
/** @deprecated */
bus: Context,
db: typeof import('./service/db'),
db: typeof import('./service/db').default,
monitor: typeof import('./service/monitor'),
server: typeof import('./service/server'),
storage: typeof import('./service/storage').default,
@ -726,7 +728,7 @@ declare global {
addons: string[],
}
}
var bus: any; // eslint-disable-line
var bus: typeof import('./service/bus'); // eslint-disable-line
var app: Context; // eslint-disable-line
var Hydro: HydroGlobal; // eslint-disable-line
var addons: string[]; // eslint-disable-line

@ -5,7 +5,7 @@ import _ from 'lodash';
import moment from 'moment-timezone';
import Schema from 'schemastery';
import superagent from 'superagent';
import * as db from './service/db';
import db from './service/db';
export { ObjectID, ObjectId, FilterQuery } from 'mongodb';
export * from './utils';
export * from './interface';
@ -37,6 +37,8 @@ export { default as TaskModel } from './model/task';
export * from './model/builtin';
export * as JudgeHandler from './handler/judge';
export { postJudge } from './handler/judge';
export { Collections } from './service/db';
// export { Collections } from './interface';
export { Service, Context } from './context';
export { buildContent } from './lib/content';
export * as validator from './lib/validator';

@ -4,11 +4,10 @@ import {
} from 'mongodb';
import { Logger } from '../logger';
import options from '../options';
// Note: this might be re-declared so we have to use Collections here
import type { Collections } from '../plugin-api';
import * as bus from './bus';
const logger = new Logger('mongo');
export interface Collections { }
interface MongoConfig {
protocol?: string,
@ -92,4 +91,5 @@ class MongoService {
const service = new MongoService();
global.Hydro.service.db = service;
export = service;
export default service;
export const collection = service.collection.bind(service);

@ -13,7 +13,7 @@ import { join, resolve } from 'path';
import convert from 'schemastery-jsonschema';
import markdown from './backendlib/markdown';
declare module 'hydrooj/src/interface' {
declare module 'hydrooj' {
interface UI {
esbuildPlugins?: esbuild.Plugin[]
}

@ -10,18 +10,18 @@
"lint": "eslint"
},
"devDependencies": {
"@blueprintjs/core": "^4.9.3",
"@blueprintjs/select": "^4.6.3",
"@fontsource/dm-mono": "^4.5.9",
"@fontsource/fira-code": "^4.5.11",
"@fontsource/inconsolata": "^4.5.7",
"@fontsource/jetbrains-mono": "^4.5.10",
"@fontsource/pt-mono": "^4.5.10",
"@blueprintjs/core": "^4.10.2",
"@blueprintjs/select": "^4.7.0",
"@fontsource/dm-mono": "^4.5.10",
"@fontsource/fira-code": "^4.5.12",
"@fontsource/inconsolata": "^4.5.8",
"@fontsource/jetbrains-mono": "^4.5.11",
"@fontsource/pt-mono": "^4.5.11",
"@fontsource/roboto-mono": "^4.5.8",
"@fontsource/source-code-pro": "^4.5.12",
"@fontsource/ubuntu-mono": "^4.5.11",
"@hydrooj/utils": "workspace:*",
"@svgr/webpack": "^6.3.1",
"@svgr/webpack": "^6.4.0",
"@types/gulp-if": "^0.0.34",
"@types/jquery": "^3.5.14",
"@types/json-schema": "^7.0.11",
@ -31,25 +31,25 @@
"@types/qrcode": "^1.5.0",
"@types/react-dom": "^18.0.6",
"@types/redux-logger": "^3.0.9",
"@types/serviceworker": "^0.0.51",
"@types/sharedworker": "^0.0.80",
"@types/serviceworker": "^0.0.53",
"@types/sharedworker": "^0.0.82",
"@types/webpack-env": "^1.18.0",
"@vscode/codicons": "^0.0.32",
"autoprefixer": "^10.4.8",
"autoprefixer": "^10.4.12",
"browser-update": "^3.3.40",
"chalk": "^5.0.1",
"chunk-progress-webpack-plugin": "^2.0.1",
"classnames": "^2.3.1",
"classnames": "^2.3.2",
"clean-webpack-plugin": "^4.0.0",
"clipboard": "^2.0.11",
"copy-webpack-plugin": "^11.0.0",
"css-loader": "^6.7.1",
"diff": "^5.1.0",
"diff-dom": "^4.2.5",
"echarts": "^5.3.3",
"diff-dom": "^4.2.7",
"echarts": "^5.4.0",
"emojis-keywords": "2.0.0",
"emojis-list": "2.1.0",
"esbuild-loader": "^2.19.0",
"esbuild-loader": "^2.20.0",
"fancy-log": "^2.0.0",
"flatpickr": "^4.6.13",
"friendly-errors-webpack-plugin": "^1.7.0",
@ -70,9 +70,9 @@
"monaco-editor": "^0.33.0",
"monaco-editor-nls": "^2.0.0",
"monaco-editor-webpack-plugin": "^7.0.1",
"monaco-graphql": "^1.1.3",
"monaco-graphql": "^1.1.2",
"monaco-themes": "^0.4.2",
"monaco-yaml": "^4.0.0",
"monaco-yaml": "^4.0.2",
"nanoid": "^4.0.0",
"normalize.css": "^8.0.1",
"nprogress": "^0.2.0",
@ -88,12 +88,12 @@
"react-dnd": "^16.0.1",
"react-dnd-html5-backend": "^16.0.1",
"react-dom": "^18.2.0",
"react-redux": "^8.0.2",
"react-redux": "^8.0.4",
"react-split-pane": "^0.1.92",
"reconnecting-websocket": "^4.4.0",
"redux": "^4.2.0",
"redux-logger": "^3.0.6",
"redux-promise-middleware": "^6.1.2",
"redux-promise-middleware": "^6.1.3",
"redux-thunk": "^2.4.1",
"rupture": "^0.7.1",
"slideout": "^1.0.1",
@ -106,13 +106,13 @@
"through2": "^4.0.2",
"timeago-react": "^3.0.5",
"timeago.js": "^4.0.2",
"ts-loader": "^9.3.1",
"ts-loader": "^9.4.1",
"vditor": "^3.8.17",
"vinyl-buffer": "^1.0.1",
"web-streams-polyfill": "^3.2.1",
"webpack": "^5.74.0",
"webpack-bundle-analyzer": "^4.6.1",
"webpack-dev-server": "^4.10.1",
"webpack-dev-server": "^4.11.1",
"webpackbar": "^5.0.2"
},
"dependencies": {
@ -124,7 +124,7 @@
"katex": "^0.16.2",
"lodash": "^4.17.21",
"markdown-it": "^13.0.1",
"markdown-it-anchor": "^8.6.4",
"markdown-it-anchor": "^8.6.5",
"markdown-it-attrs": "^4.1.4",
"markdown-it-footnote": "^3.0.3",
"markdown-it-imsize": "^2.0.1",

@ -4,12 +4,17 @@ import path from 'path';
import { Duplex } from 'stream';
import { inspect } from 'util';
import fs from 'fs-extra';
import type { Moment } from 'moment-timezone';
import { isMoment } from 'moment-timezone';
import { isMoment, Moment } from 'moment-timezone';
import { ObjectID } from 'mongodb';
import Logger from 'reggol';
Logger.levels.base = process.env.DEV ? 3 : 2;
Logger.targets[0].showTime = 'MM/dd hh:mm:ss';
Logger.targets[0].label = {
align: 'right',
width: 10,
margin: 2,
};
export { Logger };

@ -14,7 +14,7 @@
"js-yaml": "^4.1.0",
"moment-timezone": "^0.5.37",
"mongodb": "^3.7.3",
"reggol": "^1.1.0",
"reggol": "^1.2.1",
"source-map-support": "^0.5.21",
"systeminformation": "^5.12.6"
},

@ -10,18 +10,16 @@
"dependencies": {
"@hydrooj/utils": "workspace:*",
"chrome-finder": "^1.0.7",
"jsdom": "^20.0.0",
"lodash": "^4.17.21",
"jsdom": "^20.0.1",
"puppeteer-core": "^15.5.0",
"puppeteer-extra": "3.3.0",
"puppeteer-extra-plugin-portal": "3.1.0",
"puppeteer-extra-plugin-stealth": "2.10.1",
"superagent": "^8.0.0",
"superagent": "^8.0.2",
"superagent-proxy": "^3.0.0"
},
"devDependencies": {
"@types/jsdom": "^20.0.0",
"@types/lodash": "^4.14.184",
"@types/superagent": "^4.1.15",
"@types/superagent-proxy": "^3.0.0"
}

@ -1,10 +1,9 @@
/* eslint-disable no-await-in-loop */
import { JSDOM } from 'jsdom';
import { flattenDeep } from 'lodash';
import superagent from 'superagent';
import proxy from 'superagent-proxy';
import {
Logger, SettingModel, sleep, STATUS,
_, Logger, SettingModel, sleep, STATUS,
} from 'hydrooj';
import { IBasicProvider, RemoteAccount } from '../interface';
@ -151,7 +150,7 @@ export default class LuoguProvider implements IBasicProvider {
});
}
logger.info('Fetched with length', JSON.stringify(body).length);
const total = flattenDeep(body.currentData.testCaseGroup).length;
const total = _.flattenDeep(body.currentData.testCaseGroup).length;
// TODO sorted
if (!data.detail.judgeResult?.subtasks) continue;
for (const key in data.detail.judgeResult.subtasks) {

Loading…
Cancel
Save