diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 9a63e8b74..1f2e6db71 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -63,7 +63,6 @@ "@types/koa-router": "^7.4.4", "@types/koa-static-cache": "^5.1.1", "@types/lodash": "^4.14.184", - "@types/lru-cache": "^7.10.10", "@types/mime-types": "^2.1.1", "@types/minio": "^7.0.13", "@types/mongodb": "^3.6.20", diff --git a/packages/hydrooj/src/context.ts b/packages/hydrooj/src/context.ts index 2f67cd6cc..20462eccf 100644 --- a/packages/hydrooj/src/context.ts +++ b/packages/hydrooj/src/context.ts @@ -21,7 +21,6 @@ function provideModule(type: T, id: string, mo export interface Context { [Context.events]: Events; - options: Context.Config; loader: Loader; Route: typeof import('./service/server').Route; Connection: typeof import('./service/server').Connection; diff --git a/packages/hydrooj/src/interface.ts b/packages/hydrooj/src/interface.ts index 994cf0389..ca132dbfe 100644 --- a/packages/hydrooj/src/interface.ts +++ b/packages/hydrooj/src/interface.ts @@ -246,7 +246,7 @@ declare module './model/problem' { export type { ProblemDoc } from './model/problem'; export type ProblemDict = NumericDictionary; -export interface StatusDoc { +export interface StatusDocBase { _id: ObjectID, docId: any, docType: number, @@ -254,7 +254,7 @@ export interface StatusDoc { uid: number, } -export interface ProblemStatusDoc extends StatusDoc { +export interface ProblemStatusDoc extends StatusDocBase { docId: number; docType: 10; rid?: ObjectID; @@ -609,14 +609,12 @@ export interface OauthMap { export interface Collections { 'blacklist': BlacklistDoc; - 'contest': Tdoc; 'domain': DomainDoc; 'domain.user': any; 'domain.union': DomainUnion; 'record': RecordDoc; 'document': any; - 'document.status': any; - 'problem': ProblemDoc; + 'document.status': StatusDocBase; 'user': Udoc; 'user.preference': UserPreferenceDoc; 'vuser': VUdoc; @@ -632,9 +630,6 @@ export interface Collections { 'oplog': OplogDoc; 'event': EventDoc; 'opcount': OpCountDoc; - 'log': any; - 'fs.chunks': any; - 'fs.files': any; } export interface Model { diff --git a/packages/hydrooj/src/model/contest.ts b/packages/hydrooj/src/model/contest.ts index ce4fc29af..31885eba1 100644 --- a/packages/hydrooj/src/model/contest.ts +++ b/packages/hydrooj/src/model/contest.ts @@ -179,7 +179,7 @@ const acm = buildContestRule({ { $match: { 'detail.status': STATUS.STATUS_ACCEPTED } }, { $sort: { 'detail.rid': 1 } }, { $group: { _id: '$detail.pid', first: { $first: '$detail.rid' } } }, - ]).toArray(); + ]).toArray() as any[]; for (const t of data) first[t._id] = t.first.generationTime; const columns = await this.scoreboardHeader(isExport, _, tdoc, pdict); diff --git a/packages/hydrooj/src/model/document.ts b/packages/hydrooj/src/model/document.ts index 07dd0a2d1..0de018e4f 100644 --- a/packages/hydrooj/src/model/document.ts +++ b/packages/hydrooj/src/model/document.ts @@ -306,7 +306,7 @@ export async function setIfNotStatus, ): Promise { - const current = await collStatus.findOne({ domainId, docType, docId, uid }) || {}; + const current: Partial = await collStatus.findOne({ domainId, docType, docId, uid }) || {}; if (typeof key === 'string' && key.includes('.')) { const acc = key.split('.'); let c = current; diff --git a/packages/hydrooj/src/model/user.ts b/packages/hydrooj/src/model/user.ts index b650c5710..f2a9484b4 100644 --- a/packages/hydrooj/src/model/user.ts +++ b/packages/hydrooj/src/model/user.ts @@ -1,6 +1,6 @@ import { escapeRegExp, pick, uniq } from 'lodash'; import LRU from 'lru-cache'; -import { Collection, ObjectID } from 'mongodb'; +import { Collection, FilterQuery, ObjectID } from 'mongodb'; import { LoginError, UserAlreadyExistError, UserNotFoundError } from '../error'; import { FileInfo, GDoc, ownerInfo, @@ -336,7 +336,7 @@ class UserModel { return uid; } - static getMulti(params: any = {}) { + static getMulti(params: FilterQuery = {}) { return coll.find(params); }