mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-20 01:38:19 +08:00
workspace: upgrade deps
This commit is contained in:
1 parent
1c3dc161b6
commit
8cffe19609
17 files changed
+89
-77
No files matched your search
+11
-11
@@ -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,7 +594,8 @@ export interface OauthMap {
|
||||
uid: number;
|
||||
}
|
||||
|
||||
export interface Collections {
|
||||
declare module './service/db' {
|
||||
interface Collections {
|
||||
'blacklist': BlacklistDoc;
|
||||
'domain': DomainDoc;
|
||||
'domain.user': any;
|
||||
@@ -617,6 +618,7 @@ export interface Collections {
|
||||
'event': EventDoc;
|
||||
'opcount': OpCountDoc;
|
||||
}
|
||||
}
|
||||
|
||||
export interface Model {
|
||||
blacklist: typeof import('./model/blacklist').default,
|
||||
@@ -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) {
|
||||
|
||||
Reference in new issue
Block a user