fix: eslint type style

This commit is contained in:
Innei
2022-04-17 21:26:24 +08:00
parent 5f458224a4
commit a9a8c3ad90
129 changed files with 471 additions and 459 deletions

View File

@@ -13,12 +13,11 @@ import { InjectModel } from '~/transformers/model.transformer'
import PKG from '../package.json'
import { Auth } from './common/decorator/auth.decorator'
import { HttpCache } from './common/decorator/cache.decorator'
import type { IpRecord } from './common/decorator/ip.decorator'
import { IpLocation } from './common/decorator/ip.decorator'
import { IpLocation, IpRecord } from './common/decorator/ip.decorator'
import { AllowAllCorsInterceptor } from './common/interceptors/allow-all-cors.interceptor'
import { RedisKeys } from './constants/cache.constant'
import { OptionModel } from './modules/configs/configs.model'
import type { CacheService } from './processors/cache/cache.service'
import { CacheService } from './processors/cache/cache.service'
import { getRedisKey } from './utils/redis.util'
@Controller()

View File

@@ -1,5 +1,4 @@
import type { MiddlewareConsumer, NestModule, Type } from '@nestjs/common'
import { Module } from '@nestjs/common'
import { MiddlewareConsumer, Module, NestModule, Type } from '@nestjs/common'
import { APP_FILTER, APP_GUARD, APP_INTERCEPTOR } from '@nestjs/core'
import { AppController } from './app.controller'

View File

@@ -1,10 +1,9 @@
import cluster from 'cluster'
import { performance } from 'perf_hooks'
import type { LogLevel } from '@nestjs/common'
import { Logger, RequestMethod, ValidationPipe } from '@nestjs/common'
import { LogLevel, Logger, RequestMethod, ValidationPipe } from '@nestjs/common'
import { NestFactory } from '@nestjs/core'
import type { NestFastifyApplication } from '@nestjs/platform-fastify'
import { NestFastifyApplication } from '@nestjs/platform-fastify'
import { API_VERSION, CROSS_DOMAIN, PORT, isMainProcess } from './app.config'
import { AppModule } from './app.module'

View File

@@ -1,4 +1,4 @@
import type { FastifyRequest } from 'fastify'
import { FastifyRequest } from 'fastify'
import fastifyCookie from 'fastify-cookie'
import FastifyMultipart from 'fastify-multipart'

View File

@@ -1,7 +1,6 @@
import type { FastifyRequest } from 'fastify'
import { FastifyRequest } from 'fastify'
import type { ExecutionContext } from '@nestjs/common'
import { createParamDecorator } from '@nestjs/common'
import { ExecutionContext, createParamDecorator } from '@nestjs/common'
export const Cookies = createParamDecorator(
(data: string, ctx: ExecutionContext) => {

View File

@@ -1,5 +1,4 @@
import type { ExecutionContext } from '@nestjs/common'
import { createParamDecorator } from '@nestjs/common'
import { ExecutionContext, createParamDecorator } from '@nestjs/common'
import { getNestExecutionContextRequest } from '~/transformers/get-req.transformer'

View File

@@ -6,10 +6,9 @@
* @FilePath: /mx-server/src/core/decorators/ip.decorator.ts
* @Coding with Love
*/
import type { FastifyRequest } from 'fastify'
import { FastifyRequest } from 'fastify'
import type { ExecutionContext } from '@nestjs/common'
import { createParamDecorator } from '@nestjs/common'
import { ExecutionContext, createParamDecorator } from '@nestjs/common'
import { getIp } from '~/utils/ip.util'

View File

@@ -1,5 +1,4 @@
import type { ExecutionContext } from '@nestjs/common'
import { createParamDecorator } from '@nestjs/common'
import { ExecutionContext, createParamDecorator } from '@nestjs/common'
import { getNestExecutionContextRequest } from '~/transformers/get-req.transformer'

View File

@@ -1,6 +1,6 @@
import { SetMetadata } from '@nestjs/common'
import type { ArticleType } from '~/constants/article.constant'
import { ArticleType } from '~/constants/article.constant'
import { HTTP_RES_UPDATE_DOC_COUNT_TYPE } from '~/constants/meta.constant'
export const VisitDocument: (

View File

@@ -1,7 +1,6 @@
import { HttpException } from '@nestjs/common'
import type { ErrorCodeEnum } from '~/constants/error-code.constant'
import { ErrorCode } from '~/constants/error-code.constant'
import { ErrorCode, ErrorCodeEnum } from '~/constants/error-code.constant'
export class BusinessException extends HttpException {
constructor(code: ErrorCodeEnum) {

View File

@@ -1,16 +1,17 @@
import type { FastifyReply, FastifyRequest } from 'fastify'
import type { WriteStream } from 'fs'
import { FastifyReply, FastifyRequest } from 'fastify'
import { WriteStream } from 'fs'
import { resolve } from 'path'
import type { ArgumentsHost, ExceptionFilter } from '@nestjs/common'
import {
ArgumentsHost,
Catch,
ExceptionFilter,
HttpException,
HttpStatus,
Inject,
Logger,
} from '@nestjs/common'
import type { Reflector } from '@nestjs/core'
import { Reflector } from '@nestjs/core'
import { HTTP_REQUEST_TIME } from '~/constants/meta.constant'
import { LOG_DIR } from '~/constants/path.constant'

View File

@@ -1,5 +1,4 @@
import type { CanActivate, ExecutionContext } from '@nestjs/common'
import { Injectable } from '@nestjs/common'
import { CanActivate, ExecutionContext, Injectable } from '@nestjs/common'
import { AuthGuard as _AuthGuard } from '@nestjs/passport'
import { isTest } from '~/global/env.global'

View File

@@ -6,12 +6,12 @@
* @FilePath: /server/apps/server/src/auth/roles.guard.ts
* Mark: Coding with Love
*/
import type { CanActivate, ExecutionContext } from '@nestjs/common'
import { CanActivate, ExecutionContext } from '@nestjs/common'
import { Injectable } from '@nestjs/common'
import { AuthGuard } from '@nestjs/passport'
import { isTest } from '~/global/env.global'
import type { AuthService } from '~/modules/auth/auth.service'
import { AuthService } from '~/modules/auth/auth.service'
import { getNestExecutionContextRequest } from '~/transformers/get-req.transformer'
/**

View File

@@ -3,10 +3,14 @@
* @description 禁止爬虫的守卫
* @author Innei <https://innei.ren>
*/
import type { Observable } from 'rxjs'
import { Observable } from 'rxjs'
import type { CanActivate, ExecutionContext } from '@nestjs/common'
import { ForbiddenException, Injectable } from '@nestjs/common'
import {
CanActivate,
ExecutionContext,
ForbiddenException,
Injectable,
} from '@nestjs/common'
import { isDev } from '~/global/env.global'
import { getNestExecutionContextRequest } from '~/transformers/get-req.transformer'

View File

@@ -1,11 +1,11 @@
import type { FastifyReply } from 'fastify'
import { FastifyReply } from 'fastify'
import type {
import {
CallHandler,
ExecutionContext,
NestInterceptor,
RequestMethod,
} from '@nestjs/common'
import { RequestMethod } from '@nestjs/common'
export class AllowAllCorsInterceptor implements NestInterceptor {
intercept(context: ExecutionContext, next: CallHandler<any>) {

View File

@@ -5,22 +5,22 @@
* @author Innei <https://github.com/Innei>
*/
import isbot from 'isbot'
import type { Observable } from 'rxjs'
import { Observable } from 'rxjs'
import UAParser from 'ua-parser-js'
import { URL } from 'url'
import type {
import {
CallHandler,
ExecutionContext,
Injectable,
NestInterceptor,
} from '@nestjs/common'
import { Injectable } from '@nestjs/common'
import type { ReturnModelType } from '@typegoose/typegoose'
import { ReturnModelType } from '@typegoose/typegoose'
import { RedisKeys } from '~/constants/cache.constant'
import { AnalyzeModel } from '~/modules/analyze/analyze.model'
import { OptionModel } from '~/modules/configs/configs.model'
import type { CacheService } from '~/processors/cache/cache.service'
import { CacheService } from '~/processors/cache/cache.service'
import { getNestExecutionContextRequest } from '~/transformers/get-req.transformer'
import { InjectModel } from '~/transformers/model.transformer'
import { getIp } from '~/utils/ip.util'

View File

@@ -5,23 +5,25 @@
* @author Surmon <https://github.com/surmon-china>
* @author Innei <https://innei.ren>
*/
import type { Observable } from 'rxjs'
import { Observable } from 'rxjs'
import { of } from 'rxjs'
import { tap } from 'rxjs/operators'
import type {
import {
CallHandler,
ExecutionContext,
HttpAdapterHost,
Inject,
Injectable,
NestInterceptor,
RequestMethod,
} from '@nestjs/common'
import { Inject, Injectable, RequestMethod } from '@nestjs/common'
import type { Reflector } from '@nestjs/core'
import { Reflector } from '@nestjs/core'
import { REDIS } from '~/app.config'
import * as META from '~/constants/meta.constant'
import * as SYSTEM from '~/constants/system.constant'
import type { CacheService } from '~/processors/cache/cache.service'
import { CacheService } from '~/processors/cache/cache.service'
import { getNestExecutionContextRequest } from '~/transformers/get-req.transformer'
/**

View File

@@ -4,16 +4,16 @@
*/
import { map } from 'rxjs'
import type {
import {
CallHandler,
ExecutionContext,
Injectable,
NestInterceptor,
} from '@nestjs/common'
import { Injectable } from '@nestjs/common'
import type { Reflector } from '@nestjs/core'
import { Reflector } from '@nestjs/core'
import { HTTP_RES_UPDATE_DOC_COUNT_TYPE } from '~/constants/meta.constant'
import type { CountingService } from '~/processors/helper/helper.counting.service'
import { CountingService } from '~/processors/helper/helper.counting.service'
import { getNestExecutionContextRequest } from '~/transformers/get-req.transformer'
import { getIp } from '~/utils/ip.util'

View File

@@ -3,17 +3,16 @@
* @author Innei
*/
import { isArrayLike, isObjectLike } from 'lodash'
import type { Observable } from 'rxjs'
import { map } from 'rxjs'
import { Observable, map } from 'rxjs'
import snakecaseKeys from 'snakecase-keys'
import type {
import {
CallHandler,
ExecutionContext,
Injectable,
NestInterceptor,
} from '@nestjs/common'
import { Injectable } from '@nestjs/common'
import type { Reflector } from '@nestjs/core'
import { Reflector } from '@nestjs/core'
import { RESPONSE_PASSTHROUGH_METADATA } from '~/constants/system.constant'

View File

@@ -5,15 +5,17 @@
* @author Surmon <https://github.com/surmon-china>
* @author Innei <https://github.com/Innei>
*/
import type { Observable } from 'rxjs'
import { Observable } from 'rxjs'
import { tap } from 'rxjs/operators'
import type {
import {
CallHandler,
ExecutionContext,
Injectable,
Logger,
NestInterceptor,
SetMetadata,
} from '@nestjs/common'
import { Injectable, Logger, SetMetadata } from '@nestjs/common'
import { HTTP_REQUEST_TIME } from '~/constants/meta.constant'
import { getNestExecutionContextRequest } from '~/transformers/get-req.transformer'

View File

@@ -1,12 +1,12 @@
import qs from 'qs'
import type { Observable } from 'rxjs'
import { Observable } from 'rxjs'
import type {
import {
CallHandler,
ExecutionContext,
Injectable,
NestInterceptor,
} from '@nestjs/common'
import { Injectable } from '@nestjs/common'
import { getNestExecutionContextRequest } from '~/transformers/get-req.transformer'

View File

@@ -3,16 +3,16 @@
* @author Innei
*/
import { isArrayLike } from 'lodash'
import type { Observable } from 'rxjs'
import { Observable } from 'rxjs'
import { map } from 'rxjs/operators'
import type {
import {
CallHandler,
ExecutionContext,
Injectable,
NestInterceptor,
} from '@nestjs/common'
import { Injectable } from '@nestjs/common'
import type { Reflector } from '@nestjs/core'
import { Reflector } from '@nestjs/core'
import { HTTP_RES_TRANSFORM_PAGINATE } from '~/constants/meta.constant'
import * as SYSTEM from '~/constants/system.constant'

View File

@@ -2,10 +2,9 @@
* 把 URL Search 上的 `token` 附加到 Header Authorization 上
* @author Innei <https://innei.ren>
*/
import type { IncomingMessage, ServerResponse } from 'http'
import { IncomingMessage, ServerResponse } from 'http'
import type { NestMiddleware } from '@nestjs/common'
import { Injectable } from '@nestjs/common'
import { Injectable, NestMiddleware } from '@nestjs/common'
import { parseRelativeUrl } from '~/utils/ip.util'

View File

@@ -1,4 +1,4 @@
import type { UserModel } from '~/modules/user/user.model'
import { UserModel } from '~/modules/user/user.model'
export const mockUser1: UserModel = {
id: '1',

View File

@@ -8,10 +8,10 @@ import { ApiName } from '~/common/decorator/openapi.decorator'
import { IsMaster } from '~/common/decorator/role.decorator'
import { CacheKeys } from '~/constants/cache.constant'
import type { AnalyzeService } from '../analyze/analyze.service'
import type { ConfigsService } from '../configs/configs.service'
import type { TimelineQueryDto, TopQueryDto } from './aggregate.dto'
import type { AggregateService } from './aggregate.service'
import { AnalyzeService } from '../analyze/analyze.service'
import { ConfigsService } from '../configs/configs.service'
import { TimelineQueryDto, TopQueryDto } from './aggregate.dto'
import { AggregateService } from './aggregate.service'
@Controller('aggregate')
@ApiName

View File

@@ -1,36 +1,36 @@
import dayjs from 'dayjs'
import { pick } from 'lodash'
import type { FilterQuery } from 'mongoose'
import { FilterQuery } from 'mongoose'
import { URL } from 'url'
import { Inject, Injectable, forwardRef } from '@nestjs/common'
import { OnEvent } from '@nestjs/event-emitter'
import type { DocumentType, ReturnModelType } from '@typegoose/typegoose'
import type { AnyParamConstructor } from '@typegoose/typegoose/lib/types'
import { DocumentType, ReturnModelType } from '@typegoose/typegoose'
import { AnyParamConstructor } from '@typegoose/typegoose/lib/types'
import { CacheKeys, RedisKeys } from '~/constants/cache.constant'
import { EventBusEvents } from '~/constants/event-bus.constant'
import type { CacheService } from '~/processors/cache/cache.service'
import type { WebEventsGateway } from '~/processors/gateway/web/events.gateway'
import { CacheService } from '~/processors/cache/cache.service'
import { WebEventsGateway } from '~/processors/gateway/web/events.gateway'
import { addYearCondition } from '~/transformers/db-query.transformer'
import { getRedisKey } from '~/utils/redis.util'
import { getShortDate } from '~/utils/time.util'
import type { CategoryModel } from '../category/category.model'
import { CategoryModel } from '../category/category.model'
import { CategoryService } from '../category/category.service'
import { CommentState } from '../comment/comment.model'
import { CommentService } from '../comment/comment.service'
import type { ConfigsService } from '../configs/configs.service'
import { ConfigsService } from '../configs/configs.service'
import { LinkState } from '../link/link.model'
import { LinkService } from '../link/link.service'
import type { NoteModel } from '../note/note.model'
import { NoteModel } from '../note/note.model'
import { NoteService } from '../note/note.service'
import { PageService } from '../page/page.service'
import { PostService } from '../post/post.service'
import { RecentlyService } from '../recently/recently.service'
import { SayService } from '../say/say.service'
import { TimelineType } from './aggregate.dto'
import type { RSSProps } from './aggregate.interface'
import { RSSProps } from './aggregate.interface'
@Injectable()
export class AggregateService {

View File

@@ -6,13 +6,13 @@ import { Auth } from '~/common/decorator/auth.decorator'
import { Paginator } from '~/common/decorator/http.decorator'
import { ApiName } from '~/common/decorator/openapi.decorator'
import { RedisKeys } from '~/constants/cache.constant'
import type { CacheService } from '~/processors/cache/cache.service'
import type { PagerDto } from '~/shared/dto/pager.dto'
import { CacheService } from '~/processors/cache/cache.service'
import { PagerDto } from '~/shared/dto/pager.dto'
import { getRedisKey } from '~/utils/redis.util'
import { getTodayEarly, getWeekStart } from '~/utils/time.util'
import type { AnalyzeDto } from './analyze.dto'
import type { AnalyzeService } from './analyze.service'
import { AnalyzeDto } from './analyze.dto'
import { AnalyzeService } from './analyze.service'
@Controller({ path: 'analyze', scope: Scope.REQUEST })
@ApiName

View File

@@ -1,5 +1,5 @@
import { SchemaTypes } from 'mongoose'
import type { UAParser } from 'ua-parser-js'
import { UAParser } from 'ua-parser-js'
import { ApiHideProperty } from '@nestjs/swagger'
import { Severity, index, modelOptions, prop } from '@typegoose/typegoose'

View File

@@ -1,12 +1,12 @@
import dayjs from 'dayjs'
import { merge } from 'lodash'
import type { PipelineStage } from 'mongoose'
import { PipelineStage } from 'mongoose'
import { Injectable } from '@nestjs/common'
import type { ReturnModelType } from '@typegoose/typegoose'
import { ReturnModelType } from '@typegoose/typegoose'
import { RedisKeys } from '~/constants/cache.constant'
import type { CacheService } from '~/processors/cache/cache.service'
import { CacheService } from '~/processors/cache/cache.service'
import { InjectModel } from '~/transformers/model.transformer'
import { getRedisKey } from '~/utils/redis.util'

View File

@@ -17,16 +17,16 @@ import {
Query,
Scope,
} from '@nestjs/common'
import type { EventEmitter2 } from '@nestjs/event-emitter'
import { EventEmitter2 } from '@nestjs/event-emitter'
import { ApiBearerAuth, ApiOperation } from '@nestjs/swagger'
import { Auth } from '~/common/decorator/auth.decorator'
import { ApiName } from '~/common/decorator/openapi.decorator'
import { IsMaster as Master } from '~/common/decorator/role.decorator'
import { EventBusEvents } from '~/constants/event-bus.constant'
import type { MongoIdDto } from '~/shared/dto/id.dto'
import { MongoIdDto } from '~/shared/dto/id.dto'
import type { AuthService } from './auth.service'
import { AuthService } from './auth.service'
export class TokenDto {
@IsDate()

View File

@@ -3,20 +3,20 @@ import { isDate, omit } from 'lodash'
import { customAlphabet } from 'nanoid/async'
import { Injectable } from '@nestjs/common'
import type { JwtService } from '@nestjs/jwt'
import type { ReturnModelType } from '@typegoose/typegoose'
import { JwtService } from '@nestjs/jwt'
import { ReturnModelType } from '@typegoose/typegoose'
import { MasterLostException } from '~/common/exceptions/master-lost.exception'
import type {
import {
TokenModel,
UserModel as User,
UserDocument,
UserModel,
} from '~/modules/user/user.model'
import { UserModel as User } from '~/modules/user/user.model'
import { InjectModel } from '~/transformers/model.transformer'
import type { TokenDto } from './auth.controller'
import type { JwtPayload } from './interfaces/jwt-payload.interface'
import { TokenDto } from './auth.controller'
import { JwtPayload } from './interfaces/jwt-payload.interface'
@Injectable()
export class AuthService {

View File

@@ -6,15 +6,15 @@
* @FilePath: /mx-server/src/auth/jwt.strategy.ts
* @Coding with Love
*/
import type { StrategyOptions } from 'passport-jwt'
import { StrategyOptions } from 'passport-jwt'
import { ExtractJwt, Strategy } from 'passport-jwt'
import { Injectable, UnauthorizedException } from '@nestjs/common'
import { PassportStrategy } from '@nestjs/passport'
import { __secret } from './auth.module'
import type { AuthService } from './auth.service'
import type { JwtPayload } from './interfaces/jwt-payload.interface'
import { AuthService } from './auth.service'
import { JwtPayload } from './interfaces/jwt-payload.interface'
@Injectable()
export class JwtStrategy extends PassportStrategy(Strategy) {

View File

@@ -1,4 +1,4 @@
import type { FastifyRequest } from 'fastify'
import { FastifyRequest } from 'fastify'
import { Readable } from 'stream'
import {
@@ -20,10 +20,10 @@ import { ApiProperty, ApiResponseProperty } from '@nestjs/swagger'
import { Auth } from '~/common/decorator/auth.decorator'
import { HTTPDecorators } from '~/common/decorator/http.decorator'
import { ApiName } from '~/common/decorator/openapi.decorator'
import type { UploadService } from '~/processors/helper/helper.upload.service'
import { UploadService } from '~/processors/helper/helper.upload.service'
import { getMediumDateTime } from '~/utils'
import type { BackupService } from './backup.service'
import { BackupService } from './backup.service'
@Controller({ path: 'backups', scope: Scope.REQUEST })
@ApiName

View File

@@ -15,12 +15,12 @@ import {
import { MONGO_DB } from '~/app.config'
import { BusinessEvents, EventScope } from '~/constants/business-event.constant'
import { BACKUP_DIR, DATA_DIR } from '~/constants/path.constant'
import type { CacheService } from '~/processors/cache/cache.service'
import type { EventManagerService } from '~/processors/helper/helper.event.service'
import { CacheService } from '~/processors/cache/cache.service'
import { EventManagerService } from '~/processors/helper/helper.event.service'
import { getMediumDateTime } from '~/utils'
import { getFolderSize } from '~/utils/system.util'
import type { ConfigsService } from '../configs/configs.service'
import { ConfigsService } from '../configs/configs.service'
@Injectable()
export class BackupService {

View File

@@ -21,17 +21,20 @@ import { Auth } from '~/common/decorator/auth.decorator'
import { ApiName } from '~/common/decorator/openapi.decorator'
import { IsMaster } from '~/common/decorator/role.decorator'
import { CannotFindException } from '~/common/exceptions/cant-find.exception'
import type { MongoIdDto } from '~/shared/dto/id.dto'
import { MongoIdDto } from '~/shared/dto/id.dto'
import { PostService } from '../post/post.service'
import type {
import {
MultiCategoriesQueryDto,
MultiQueryTagAndCategoryDto,
SlugOrIdDto,
} from './category.dto'
import type { CategoryModel, PartialCategoryModel } from './category.model'
import { CategoryType } from './category.model'
import type { CategoryService } from './category.service'
import {
CategoryModel,
CategoryType,
PartialCategoryModel,
} from './category.model'
import { CategoryService } from './category.service'
@Controller({ path: 'categories' })
@ApiName

View File

@@ -1,8 +1,7 @@
import { IsEnum, IsNotEmpty, IsOptional, IsString } from 'class-validator'
import { PartialType } from '@nestjs/mapped-types'
import type { DocumentType } from '@typegoose/typegoose'
import { index, modelOptions, prop } from '@typegoose/typegoose'
import { DocumentType, index, modelOptions, prop } from '@typegoose/typegoose'
import { BaseModel } from '~/shared/model/base.model'

View File

@@ -1,13 +1,13 @@
import { omit } from 'lodash'
import type { FilterQuery } from 'mongoose'
import { FilterQuery } from 'mongoose'
import { Inject, Injectable, forwardRef } from '@nestjs/common'
import type { DocumentType, ReturnModelType } from '@typegoose/typegoose'
import { DocumentType, ReturnModelType } from '@typegoose/typegoose'
import { CannotFindException } from '~/common/exceptions/cant-find.exception'
import { InjectModel } from '~/transformers/model.transformer'
import type { PostModel } from '../post/post.model'
import { PostModel } from '../post/post.model'
import { PostService } from '../post/post.service'
import { CategoryModel, CategoryType } from './category.model'

View File

@@ -13,33 +13,31 @@ import {
UseInterceptors,
} from '@nestjs/common'
import { ApiOperation, ApiParam } from '@nestjs/swagger'
import type { DocumentType } from '@typegoose/typegoose'
import { DocumentType } from '@typegoose/typegoose'
import { Auth } from '~/common/decorator/auth.decorator'
import { CurrentUser } from '~/common/decorator/current-user.decorator'
import type { IpRecord } from '~/common/decorator/ip.decorator'
import { IpLocation } from '~/common/decorator/ip.decorator'
import { IpLocation, IpRecord } from '~/common/decorator/ip.decorator'
import { ApiName } from '~/common/decorator/openapi.decorator'
import { IsMaster } from '~/common/decorator/role.decorator'
import { CannotFindException } from '~/common/exceptions/cant-find.exception'
import { BusinessEvents, EventScope } from '~/constants/business-event.constant'
import { ReplyMailType } from '~/processors/helper/helper.email.service'
import type { EventManagerService } from '~/processors/helper/helper.event.service'
import type { MongoIdDto } from '~/shared/dto/id.dto'
import type { PagerDto } from '~/shared/dto/pager.dto'
import { EventManagerService } from '~/processors/helper/helper.event.service'
import { MongoIdDto } from '~/shared/dto/id.dto'
import { PagerDto } from '~/shared/dto/pager.dto'
import { transformDataToPaginate } from '~/transformers/paginate.transformer'
import type { UserModel } from '../user/user.model'
import type {
import { UserModel } from '../user/user.model'
import {
CommentDto,
CommentRefTypesDto,
StateDto,
TextOnlyDto,
} from './comment.dto'
import { CommentFilterEmailInterceptor } from './comment.interceptor'
import type { CommentModel } from './comment.model'
import { CommentState } from './comment.model'
import type { CommentService } from './comment.service'
import { CommentModel, CommentState } from './comment.model'
import { CommentService } from './comment.service'
@Controller({ path: 'comments' })
@UseInterceptors(CommentFilterEmailInterceptor)

View File

@@ -2,12 +2,12 @@ import { isDefined } from 'class-validator'
import { cloneDeep, isArrayLike, isObjectLike } from 'lodash'
import { map } from 'rxjs'
import type {
import {
CallHandler,
ExecutionContext,
Injectable,
NestInterceptor,
} from '@nestjs/common'
import { Injectable } from '@nestjs/common'
import { getNestExecutionContextRequest } from '~/transformers/get-req.transformer'
import { getAvatar } from '~/utils'

View File

@@ -1,10 +1,14 @@
import type { Query } from 'mongoose'
import { Types } from 'mongoose'
import { Query, Types } from 'mongoose'
import { URL } from 'url'
import type { DocumentType, Ref } from '@typegoose/typegoose'
import { modelOptions, pre, prop } from '@typegoose/typegoose'
import type { BeAnObject } from '@typegoose/typegoose/lib/types'
import {
DocumentType,
Ref,
modelOptions,
pre,
prop,
} from '@typegoose/typegoose'
import { BeAnObject } from '@typegoose/typegoose/lib/types'
import { BaseModel } from '~/shared/model/base.model'
import { getAvatar } from '~/utils'

View File

@@ -1,28 +1,26 @@
import type { LeanDocument } from 'mongoose'
import { Types } from 'mongoose'
import { LeanDocument, Types } from 'mongoose'
import { URL } from 'url'
import { BadRequestException, Injectable, Logger } from '@nestjs/common'
import type { DocumentType } from '@typegoose/typegoose'
import type {
BeAnObject,
ReturnModelType,
} from '@typegoose/typegoose/lib/types'
import { DocumentType } from '@typegoose/typegoose'
import { BeAnObject, ReturnModelType } from '@typegoose/typegoose/lib/types'
import { CannotFindException } from '~/common/exceptions/cant-find.exception'
import { MasterLostException } from '~/common/exceptions/master-lost.exception'
import type { DatabaseService } from '~/processors/database/database.service'
import type { EmailService } from '~/processors/helper/helper.email.service'
import { ReplyMailType } from '~/processors/helper/helper.email.service'
import type { WriteBaseModel } from '~/shared/model/base.model'
import { DatabaseService } from '~/processors/database/database.service'
import {
EmailService,
ReplyMailType,
} from '~/processors/helper/helper.email.service'
import { WriteBaseModel } from '~/shared/model/base.model'
import { InjectModel } from '~/transformers/model.transformer'
import { hasChinese } from '~/utils'
import type { ConfigsService } from '../configs/configs.service'
import type { NoteModel } from '../note/note.model'
import type { PageModel } from '../page/page.model'
import type { PostModel } from '../post/post.model'
import type { UserService } from '../user/user.service'
import { ConfigsService } from '../configs/configs.service'
import { NoteModel } from '../note/note.model'
import { PageModel } from '../page/page.model'
import { PostModel } from '../post/post.model'
import { UserService } from '../user/user.service'
import BlockedKeywords from './block-keywords.json'
import { CommentModel, CommentRefTypes } from './comment.model'

View File

@@ -1,5 +1,5 @@
import { JSONSchema } from 'class-validator-jsonschema'
import type { DecoratorSchema } from 'class-validator-jsonschema/build/decorators'
import { DecoratorSchema } from 'class-validator-jsonschema/build/decorators'
export const JSONSchemaPasswordField = (
title: string,

View File

@@ -1,11 +1,9 @@
import camelcaseKeys from 'camelcase-keys'
import type { ClassConstructor } from 'class-transformer'
import { plainToInstance } from 'class-transformer'
import type { ValidatorOptions } from 'class-validator'
import { validateSync } from 'class-validator'
import { ClassConstructor, plainToInstance } from 'class-transformer'
import { ValidatorOptions, validateSync } from 'class-validator'
import cluster from 'cluster'
import { cloneDeep, mergeWith } from 'lodash'
import type { LeanDocument } from 'mongoose'
import { LeanDocument } from 'mongoose'
import {
BadRequestException,
@@ -13,24 +11,26 @@ import {
Logger,
ValidationPipe,
} from '@nestjs/common'
import type { EventEmitter2 } from '@nestjs/event-emitter'
import type { DocumentType, ReturnModelType } from '@typegoose/typegoose'
import type { BeAnObject } from '@typegoose/typegoose/lib/types'
import { EventEmitter2 } from '@nestjs/event-emitter'
import { DocumentType, ReturnModelType } from '@typegoose/typegoose'
import { BeAnObject } from '@typegoose/typegoose/lib/types'
import { RedisKeys } from '~/constants/cache.constant'
import { EventBusEvents } from '~/constants/event-bus.constant'
import type { CacheService } from '~/processors/cache/cache.service'
import { CacheService } from '~/processors/cache/cache.service'
import { InjectModel } from '~/transformers/model.transformer'
import { sleep } from '~/utils'
import { getRedisKey } from '~/utils/redis.util'
import * as optionDtos from '../configs/configs.dto'
import type { UserModel } from '../user/user.model'
import type { UserService } from '../user/user.service'
import type { BackupOptionsDto } from './configs.dto'
import { AlgoliaSearchOptionsDto, MailOptionsDto } from './configs.dto'
import type { IConfigKeys } from './configs.interface'
import { IConfig } from './configs.interface'
import { UserModel } from '../user/user.model'
import { UserService } from '../user/user.service'
import {
AlgoliaSearchOptionsDto,
BackupOptionsDto,
MailOptionsDto,
} from './configs.dto'
import { IConfig, IConfigKeys } from './configs.interface'
import { OptionModel } from './configs.model'
const allOptionKeys: Set<IConfigKeys> = new Set()

View File

@@ -9,13 +9,12 @@ import {
} from '@nestjs/common'
import { HTTPDecorators } from '~/common/decorator/http.decorator'
import type { BusinessEvents } from '~/constants/business-event.constant'
import { EventScope } from '~/constants/business-event.constant'
import type { EventManagerService } from '~/processors/helper/helper.event.service'
import type { PagerDto } from '~/shared/dto/pager.dto'
import { BusinessEvents, EventScope } from '~/constants/business-event.constant'
import { EventManagerService } from '~/processors/helper/helper.event.service'
import { PagerDto } from '~/shared/dto/pager.dto'
import { createMockedContextResponse } from '../serverless/mock-response.util'
import type { ServerlessService } from '../serverless/serverless.service'
import { ServerlessService } from '../serverless/serverless.service'
import { SnippetModel, SnippetType } from '../snippet/snippet.model'
@Controller('debug')

View File

@@ -6,9 +6,9 @@ import { HTTPDecorators } from '~/common/decorator/http.decorator'
import { ApiName } from '~/common/decorator/openapi.decorator'
import { CacheKeys } from '~/constants/cache.constant'
import type { AggregateService } from '../aggregate/aggregate.service'
import type { ConfigsService } from '../configs/configs.service'
import type { MarkdownService } from '../markdown/markdown.service'
import { AggregateService } from '../aggregate/aggregate.service'
import { ConfigsService } from '../configs/configs.service'
import { MarkdownService } from '../markdown/markdown.service'
@Controller('feed')
@ApiName

View File

@@ -1,7 +1,7 @@
import type { FastifyReply } from 'fastify'
import { FastifyReply } from 'fastify'
import { isFunction, isString } from 'lodash'
import { resolve } from 'path'
import type { Readable } from 'stream'
import { Readable } from 'stream'
import {
BadRequestException,
@@ -15,8 +15,8 @@ import {
Scope,
UnprocessableEntityException,
} from '@nestjs/common'
import type { Reflector } from '@nestjs/core'
import type { SchedulerRegistry } from '@nestjs/schedule'
import { Reflector } from '@nestjs/core'
import { SchedulerRegistry } from '@nestjs/schedule'
import { Auth } from '~/common/decorator/auth.decorator'
import { HTTPDecorators } from '~/common/decorator/http.decorator'
@@ -25,11 +25,11 @@ import { CRON_DESCRIPTION } from '~/constants/meta.constant'
import { LOG_DIR } from '~/constants/path.constant'
import { SCHEDULE_CRON_OPTIONS } from '~/constants/system.constant'
import { getTodayLogFilePath } from '~/global/consola.global'
import type { CronService } from '~/processors/helper/helper.cron.service'
import type { TaskQueueService } from '~/processors/helper/helper.tq.service'
import { CronService } from '~/processors/helper/helper.cron.service'
import { TaskQueueService } from '~/processors/helper/helper.tq.service'
import { formatByteSize } from '~/utils'
import type { LogQueryDto, LogTypeDto } from './health.dto'
import { LogQueryDto, LogTypeDto } from './health.dto'
@Controller({
path: 'health',

View File

@@ -12,9 +12,9 @@ import {
import { ApiName } from '~/common/decorator/openapi.decorator'
import type { ConfigsService } from '../configs/configs.service'
import type { ConfigKeyDto } from '../option/dtos/config.dto'
import type { InitService } from './init.service'
import { ConfigsService } from '../configs/configs.service'
import { ConfigKeyDto } from '../option/dtos/config.dto'
import { InitService } from './init.service'
@Controller({
path: '/init',

View File

@@ -2,7 +2,7 @@ import { Injectable, Logger } from '@nestjs/common'
import { DATA_DIR, TEMP_DIR } from '~/constants/path.constant'
import type { UserService } from '../user/user.service'
import { UserService } from '../user/user.service'
@Injectable()
export class InitService {

View File

@@ -1,4 +1,4 @@
import type mongoose from 'mongoose'
import mongoose from 'mongoose'
import {
Body,
@@ -16,13 +16,15 @@ import { Auth } from '~/common/decorator/auth.decorator'
import { Paginator } from '~/common/decorator/http.decorator'
import { ApiName } from '~/common/decorator/openapi.decorator'
import { IsMaster } from '~/common/decorator/role.decorator'
import type { PagerDto } from '~/shared/dto/pager.dto'
import type { BaseCrudModuleType } from '~/transformers/crud-factor.transformer'
import { BaseCrudFactory } from '~/transformers/crud-factor.transformer'
import { PagerDto } from '~/shared/dto/pager.dto'
import {
BaseCrudFactory,
BaseCrudModuleType,
} from '~/transformers/crud-factor.transformer'
import type { LinkDto } from './link.dto'
import { LinkDto } from './link.dto'
import { LinkModel, LinkState } from './link.model'
import type { LinkService } from './link.service'
import { LinkService } from './link.service'
const paths = ['links', 'friends']
@Controller(paths)

View File

@@ -7,13 +7,15 @@ import {
import { BusinessEvents, EventScope } from '~/constants/business-event.constant'
import { isDev } from '~/global/env.global'
import type { EmailService } from '~/processors/helper/helper.email.service'
import { LinkApplyEmailType } from '~/processors/helper/helper.email.service'
import type { EventManagerService } from '~/processors/helper/helper.event.service'
import type { HttpService } from '~/processors/helper/helper.http.service'
import {
EmailService,
LinkApplyEmailType,
} from '~/processors/helper/helper.email.service'
import { EventManagerService } from '~/processors/helper/helper.event.service'
import { HttpService } from '~/processors/helper/helper.http.service'
import { InjectModel } from '~/transformers/model.transformer'
import type { ConfigsService } from '../configs/configs.service'
import { ConfigsService } from '../configs/configs.service'
import { LinkModel, LinkState, LinkType } from './link.model'
@Injectable()

View File

@@ -28,21 +28,21 @@ import { HTTPDecorators } from '~/common/decorator/http.decorator'
import { ApiName } from '~/common/decorator/openapi.decorator'
import { IsMaster } from '~/common/decorator/role.decorator'
import { ArticleTypeEnum } from '~/constants/article.constant'
import type { MongoIdDto } from '~/shared/dto/id.dto'
import { MongoIdDto } from '~/shared/dto/id.dto'
import { getShortDateTime } from '~/utils'
import type { CategoryModel } from '../category/category.model'
import type { ConfigsService } from '../configs/configs.service'
import type { NoteModel } from '../note/note.model'
import type { PageModel } from '../page/page.model'
import type { PostModel } from '../post/post.model'
import type {
import { CategoryModel } from '../category/category.model'
import { ConfigsService } from '../configs/configs.service'
import { NoteModel } from '../note/note.model'
import { PageModel } from '../page/page.model'
import { PostModel } from '../post/post.model'
import {
DataListDto,
ExportMarkdownQueryDto,
MarkdownPreviewDto,
} from './markdown.dto'
import type { MarkdownYAMLProperty } from './markdown.interface'
import type { MarkdownService } from './markdown.service'
import { MarkdownYAMLProperty } from './markdown.interface'
import { MarkdownService } from './markdown.service'
@Controller('markdown')
@ApiName

View File

@@ -11,18 +11,18 @@ import {
InternalServerErrorException,
Logger,
} from '@nestjs/common'
import type { ReturnModelType } from '@typegoose/typegoose'
import { ReturnModelType } from '@typegoose/typegoose'
import type { DatabaseService } from '~/processors/database/database.service'
import type { AssetService } from '~/processors/helper/helper.asset.service'
import { DatabaseService } from '~/processors/database/database.service'
import { AssetService } from '~/processors/helper/helper.asset.service'
import { InjectModel } from '~/transformers/model.transformer'
import { CategoryModel } from '../category/category.model'
import { NoteModel } from '../note/note.model'
import { PageModel } from '../page/page.model'
import { PostModel } from '../post/post.model'
import type { DatatypeDto } from './markdown.dto'
import type { MarkdownYAMLProperty } from './markdown.interface'
import { DatatypeDto } from './markdown.dto'
import { MarkdownYAMLProperty } from './markdown.interface'
@Injectable()
export class MarkdownService {

View File

@@ -16,27 +16,26 @@ import { ApiOperation } from '@nestjs/swagger'
import { Auth } from '~/common/decorator/auth.decorator'
import { Paginator } from '~/common/decorator/http.decorator'
import type { IpRecord } from '~/common/decorator/ip.decorator'
import { IpLocation } from '~/common/decorator/ip.decorator'
import { IpLocation, IpRecord } from '~/common/decorator/ip.decorator'
import { ApiName } from '~/common/decorator/openapi.decorator'
import { IsMaster } from '~/common/decorator/role.decorator'
import { VisitDocument } from '~/common/decorator/update-count.decorator'
import { CannotFindException } from '~/common/exceptions/cant-find.exception'
import type { CountingService } from '~/processors/helper/helper.counting.service'
import type { IntIdOrMongoIdDto, MongoIdDto } from '~/shared/dto/id.dto'
import { CountingService } from '~/processors/helper/helper.counting.service'
import { IntIdOrMongoIdDto, MongoIdDto } from '~/shared/dto/id.dto'
import {
addHidePasswordAndHideCondition,
addYearCondition,
} from '~/transformers/db-query.transformer'
import type {
import {
ListQueryDto,
NidType,
NoteQueryDto,
PasswordQueryDto,
} from './note.dto'
import type { NoteModel, PartialNoteModel } from './note.model'
import type { NoteService } from './note.service'
import { NoteModel, PartialNoteModel } from './note.model'
import { NoteService } from './note.service'
@ApiName
@Controller({ path: 'notes' })

View File

@@ -13,7 +13,7 @@ import { PartialType } from '@nestjs/mapped-types'
import { AutoIncrementID } from '@typegoose/auto-increment'
import { index, modelOptions, plugin, prop } from '@typegoose/typegoose'
import type { Paginator } from '~/shared/interface/paginator.interface'
import { Paginator } from '~/shared/interface/paginator.interface'
import { CountMixed, WriteBaseModel } from '~/shared/model/base.model'
@modelOptions({ schemaOptions: { id: false, _id: false } })

View File

@@ -1,15 +1,14 @@
import { isDefined, isMongoId } from 'class-validator'
import type { FilterQuery } from 'mongoose'
import { FilterQuery } from 'mongoose'
import { Injectable } from '@nestjs/common'
import type { EventEmitter2 } from '@nestjs/event-emitter'
import type { DocumentType } from '@typegoose/typegoose'
import { DocumentType } from '@typegoose/typegoose'
import { CannotFindException } from '~/common/exceptions/cant-find.exception'
import { BusinessEvents, EventScope } from '~/constants/business-event.constant'
import { EventBusEvents } from '~/constants/event-bus.constant'
import type { EventManagerService } from '~/processors/helper/helper.event.service'
import type { ImageService } from '~/processors/helper/helper.image.service'
import { EventManagerService } from '~/processors/helper/helper.event.service'
import { ImageService } from '~/processors/helper/helper.image.service'
import { InjectModel } from '~/transformers/model.transformer'
import { deleteKeys } from '~/utils'
@@ -22,7 +21,6 @@ export class NoteService {
private readonly noteModel: MongooseModel<NoteModel>,
private readonly imageService: ImageService,
private readonly eventManager: EventManagerService,
private readonly eventEmitter: EventEmitter2,
) {
this.needCreateDefult()
}

View File

@@ -11,10 +11,10 @@ import {
import { HTTPDecorators } from '~/common/decorator/http.decorator'
import { IConfig } from '~/modules/configs/configs.interface'
import type { ConfigsService } from '~/modules/configs/configs.service'
import { ConfigsService } from '~/modules/configs/configs.service'
import { classToJsonSchema } from '~/utils/jsonschema.util'
import type { ConfigKeyDto } from '../dtos/config.dto'
import { ConfigKeyDto } from '../dtos/config.dto'
import { OptionController } from '../option.decorator'
@OptionController()

View File

@@ -1,12 +1,12 @@
import { Body, Delete, Get, Put, Query } from '@nestjs/common'
import type {
import {
EmailService,
EmailTemplateRenderProps,
ReplyMailType,
} from '~/processors/helper/helper.email.service'
import { ReplyMailType } from '~/processors/helper/helper.email.service'
import type { ReplyEmailBodyDto, ReplyEmailTypeDto } from '../dtos/email.dto'
import { ReplyEmailBodyDto, ReplyEmailTypeDto } from '../dtos/email.dto'
import { OptionController } from '../option.decorator'
@OptionController('Email', 'email')

View File

@@ -1,6 +1,6 @@
import { IsNotEmpty, IsString } from 'class-validator'
import type { IConfig } from '~/modules/configs/configs.interface'
import { IConfig } from '~/modules/configs/configs.interface'
export class ConfigKeyDto {
@IsString()

View File

@@ -16,11 +16,11 @@ import { Auth } from '~/common/decorator/auth.decorator'
import { Paginator } from '~/common/decorator/http.decorator'
import { ApiName } from '~/common/decorator/openapi.decorator'
import { CannotFindException } from '~/common/exceptions/cant-find.exception'
import type { MongoIdDto } from '~/shared/dto/id.dto'
import { MongoIdDto } from '~/shared/dto/id.dto'
import type { PageQueryDto } from './page.dto'
import type { PageModel, PartialPageModel } from './page.model'
import type { PageService } from './page.service'
import { PageQueryDto } from './page.dto'
import { PageModel, PartialPageModel } from './page.model'
import { PageService } from './page.service'
@Controller('pages')
@ApiName

View File

@@ -5,8 +5,8 @@ import slugify from 'slugify'
import { Injectable } from '@nestjs/common'
import { BusinessEvents, EventScope } from '~/constants/business-event.constant'
import type { EventManagerService } from '~/processors/helper/helper.event.service'
import type { ImageService } from '~/processors/helper/helper.image.service'
import { EventManagerService } from '~/processors/helper/helper.event.service'
import { ImageService } from '~/processors/helper/helper.image.service'
import { InjectModel } from '~/transformers/model.transformer'
import { PageModel } from './page.model'

View File

@@ -1,4 +1,4 @@
import type { FastifyReply, FastifyRequest } from 'fastify'
import { FastifyReply, FastifyRequest } from 'fastify'
import { createReadStream, existsSync, statSync } from 'fs'
import fs from 'fs/promises'
import { isNull } from 'lodash'
@@ -19,12 +19,12 @@ import { HTTPDecorators } from '~/common/decorator/http.decorator'
import { ApiName } from '~/common/decorator/openapi.decorator'
import { RedisKeys } from '~/constants/cache.constant'
import { LOCAL_ADMIN_ASSET_PATH } from '~/constants/path.constant'
import type { CacheService } from '~/processors/cache/cache.service'
import { CacheService } from '~/processors/cache/cache.service'
import { getRedisKey } from '~/utils/redis.util'
import { dashboard } from '../../../package.json'
import type { PageProxyDebugDto } from './pageproxy.dto'
import type { PageProxyService } from './pageproxy.service'
import { PageProxyDebugDto } from './pageproxy.dto'
import { PageProxyService } from './pageproxy.service'
@Controller('/')
@ApiName

View File

@@ -6,8 +6,8 @@ import { Injectable, InternalServerErrorException } from '@nestjs/common'
import PKG from '~/../package.json'
import { API_VERSION } from '~/app.config'
import type { ConfigsService } from '../configs/configs.service'
import type { InitService } from '../init/init.service'
import { ConfigsService } from '../configs/configs.service'
import { InitService } from '../init/init.service'
@Injectable()
export class PageProxyService {

View File

@@ -18,19 +18,18 @@ import { ApiOperation } from '@nestjs/swagger'
import { Auth } from '~/common/decorator/auth.decorator'
import { Paginator } from '~/common/decorator/http.decorator'
import type { IpRecord } from '~/common/decorator/ip.decorator'
import { IpLocation } from '~/common/decorator/ip.decorator'
import { IpLocation, IpRecord } from '~/common/decorator/ip.decorator'
import { ApiName } from '~/common/decorator/openapi.decorator'
import { IsMaster } from '~/common/decorator/role.decorator'
import { VisitDocument } from '~/common/decorator/update-count.decorator'
import { CannotFindException } from '~/common/exceptions/cant-find.exception'
import type { CountingService } from '~/processors/helper/helper.counting.service'
import type { MongoIdDto } from '~/shared/dto/id.dto'
import { CountingService } from '~/processors/helper/helper.counting.service'
import { MongoIdDto } from '~/shared/dto/id.dto'
import { addYearCondition } from '~/transformers/db-query.transformer'
import type { CategoryAndSlugDto, PostQueryDto } from './post.dto'
import type { PartialPostModel, PostModel } from './post.model'
import type { PostService } from './post.service'
import { CategoryAndSlugDto, PostQueryDto } from './post.dto'
import { PartialPostModel, PostModel } from './post.model'
import { PostService } from './post.service'
@Controller('posts')
@ApiName

View File

@@ -6,15 +6,22 @@ import {
IsOptional,
IsString,
} from 'class-validator'
import type { Query } from 'mongoose'
import { Query } from 'mongoose'
import { PartialType } from '@nestjs/mapped-types'
import { ApiHideProperty, ApiProperty } from '@nestjs/swagger'
import type { DocumentType, Ref } from '@typegoose/typegoose'
import { Severity, index, modelOptions, pre, prop } from '@typegoose/typegoose'
import type { BeAnObject } from '@typegoose/typegoose/lib/types'
import {
DocumentType,
Ref,
Severity,
index,
modelOptions,
pre,
prop,
} from '@typegoose/typegoose'
import { BeAnObject } from '@typegoose/typegoose/lib/types'
import type { Paginator } from '~/shared/interface/paginator.interface'
import { Paginator } from '~/shared/interface/paginator.interface'
import { CountMixed as Count, WriteBaseModel } from '~/shared/model/base.model'
import { CategoryModel as Category } from '../category/category.model'

View File

@@ -1,6 +1,6 @@
import { isDefined } from 'class-validator'
import { omit } from 'lodash'
import type { FilterQuery, PaginateOptions } from 'mongoose'
import { FilterQuery, PaginateOptions } from 'mongoose'
import slugify from 'slugify'
import {
@@ -14,8 +14,8 @@ import { BusinessException } from '~/common/exceptions/business.exception'
import { BusinessEvents, EventScope } from '~/constants/business-event.constant'
import { ErrorCodeEnum } from '~/constants/error-code.constant'
import { EventBusEvents } from '~/constants/event-bus.constant'
import type { EventManagerService } from '~/processors/helper/helper.event.service'
import type { ImageService } from '~/processors/helper/helper.image.service'
import { EventManagerService } from '~/processors/helper/helper.event.service'
import { ImageService } from '~/processors/helper/helper.image.service'
import { InjectModel } from '~/transformers/model.transformer'
import { CategoryService } from '../category/category.service'

View File

@@ -2,7 +2,7 @@ import { Controller, Get, Scope } from '@nestjs/common'
import { Auth } from '~/common/decorator/auth.decorator'
import type { PTYService } from './pty.service'
import { PTYService } from './pty.service'
@Auth()
@Controller({ path: 'pty', scope: Scope.REQUEST })

View File

@@ -1,23 +1,23 @@
import { isNil } from 'lodash'
import { nanoid } from 'nanoid'
import type { IPty } from 'node-pty'
import { spawn } from 'node-pty'
import type { Socket } from 'socket.io'
import { IPty, spawn } from 'node-pty'
import { Socket } from 'socket.io'
import type { JwtService } from '@nestjs/jwt'
import type {
import { JwtService } from '@nestjs/jwt'
import {
GatewayMetadata,
OnGatewayConnection,
OnGatewayDisconnect,
SubscribeMessage,
WebSocketGateway,
} from '@nestjs/websockets'
import { SubscribeMessage, WebSocketGateway } from '@nestjs/websockets'
import { BusinessEvents } from '~/constants/business-event.constant'
import { RedisKeys } from '~/constants/cache.constant'
import { DATA_DIR } from '~/constants/path.constant'
import type { AuthService } from '~/modules/auth/auth.service'
import type { ConfigsService } from '~/modules/configs/configs.service'
import type { CacheService } from '~/processors/cache/cache.service'
import { AuthService } from '~/modules/auth/auth.service'
import { ConfigsService } from '~/modules/configs/configs.service'
import { CacheService } from '~/processors/cache/cache.service'
import { createAuthGateway } from '~/processors/gateway/shared/auth.gateway'
import { getIp, getRedisKey } from '~/utils'

View File

@@ -1,7 +1,7 @@
import { Injectable } from '@nestjs/common'
import { RedisKeys } from '~/constants/cache.constant'
import type { CacheService } from '~/processors/cache/cache.service'
import { CacheService } from '~/processors/cache/cache.service'
import { getRedisKey } from '~/utils'
@Injectable()

View File

@@ -11,11 +11,11 @@ import {
import { Auth } from '~/common/decorator/auth.decorator'
import { ApiName } from '~/common/decorator/openapi.decorator'
import type { MongoIdDto } from '~/shared/dto/id.dto'
import type { OffsetDto } from '~/shared/dto/pager.dto'
import { MongoIdDto } from '~/shared/dto/id.dto'
import { OffsetDto } from '~/shared/dto/pager.dto'
import type { RecentlyModel } from './recently.model'
import type { RecentlyService } from './recently.service'
import { RecentlyModel } from './recently.model'
import { RecentlyService } from './recently.service'
@Controller(['recently', 'shorthand'])
@ApiName

View File

@@ -1,7 +1,7 @@
import { Injectable } from '@nestjs/common'
import { BusinessEvents, EventScope } from '~/constants/business-event.constant'
import type { EventManagerService } from '~/processors/helper/helper.event.service'
import { EventManagerService } from '~/processors/helper/helper.event.service'
import { InjectModel } from '~/transformers/model.transformer'
import { RecentlyModel } from './recently.model'

View File

@@ -9,9 +9,9 @@ import {
import { HttpCache } from '~/common/decorator/cache.decorator'
import { ApiName } from '~/common/decorator/openapi.decorator'
import { IsMaster } from '~/common/decorator/role.decorator'
import type { SearchDto } from '~/modules/search/search.dto'
import { SearchDto } from '~/modules/search/search.dto'
import type { SearchService } from './search.service'
import { SearchService } from './search.service'
@Controller('search')
@ApiName

View File

@@ -1,6 +1,6 @@
import algoliasearch from 'algoliasearch'
import type { SearchResponse } from '@algolia/client-search'
import { SearchResponse } from '@algolia/client-search'
import {
BadRequestException,
Inject,
@@ -8,12 +8,12 @@ import {
forwardRef,
} from '@nestjs/common'
import type { SearchDto } from '~/modules/search/search.dto'
import type { DatabaseService } from '~/processors/database/database.service'
import type { Pagination } from '~/shared/interface/paginator.interface'
import { SearchDto } from '~/modules/search/search.dto'
import { DatabaseService } from '~/processors/database/database.service'
import { Pagination } from '~/shared/interface/paginator.interface'
import { transformDataToPaginate } from '~/transformers/paginate.transformer'
import type { ConfigsService } from '../configs/configs.service'
import { ConfigsService } from '../configs/configs.service'
import { NoteService } from '../note/note.service'
import { PostService } from '../post/post.service'

View File

@@ -1,5 +1,5 @@
/* eslint-disable @typescript-eslint/no-empty-interface */
import type { FastifyRequest } from 'fastify'
import { FastifyRequest } from 'fastify'
export interface FunctionContextRequest extends FastifyRequest {}

View File

@@ -1,8 +1,8 @@
import type { FastifyReply } from 'fastify'
import { FastifyReply } from 'fastify'
import { HttpException } from '@nestjs/common'
import type { FunctionContextResponse } from './function.types'
import { FunctionContextResponse } from './function.types'
export const createMockedContextResponse = (
reply: FastifyReply,

View File

@@ -1,4 +1,4 @@
import type { FastifyReply, FastifyRequest } from 'fastify'
import { FastifyReply, FastifyRequest } from 'fastify'
import {
CacheTTL,
@@ -19,8 +19,8 @@ import { IsMaster } from '~/common/decorator/role.decorator'
import { SnippetType } from '../snippet/snippet.model'
import { createMockedContextResponse } from './mock-response.util'
import type { ServerlessReferenceDto } from './serverless.dto'
import type { ServerlessService } from './serverless.service'
import { ServerlessReferenceDto } from './serverless.dto'
import { ServerlessService } from './serverless.service'
@ApiName
@Controller('serverless')

View File

@@ -4,10 +4,9 @@ import { cloneDeep } from 'lodash'
import path from 'path'
import { nextTick } from 'process'
import type { TransformOptions } from '@babel/core'
import { parseAsync, transformAsync } from '@babel/core'
import { TransformOptions, parseAsync, transformAsync } from '@babel/core'
import * as t from '@babel/types'
import type { VariableDeclaration } from '@babel/types'
import { VariableDeclaration } from '@babel/types'
import {
Injectable,
InternalServerErrorException,
@@ -17,19 +16,19 @@ import { Interval } from '@nestjs/schedule'
import { RedisKeys } from '~/constants/cache.constant'
import { DATA_DIR, NODE_REQUIRE_PATH } from '~/constants/path.constant'
import type { CacheService } from '~/processors/cache/cache.service'
import type { DatabaseService } from '~/processors/database/database.service'
import type { AssetService } from '~/processors/helper/helper.asset.service'
import type { HttpService } from '~/processors/helper/helper.http.service'
import { CacheService } from '~/processors/cache/cache.service'
import { DatabaseService } from '~/processors/database/database.service'
import { AssetService } from '~/processors/helper/helper.asset.service'
import { HttpService } from '~/processors/helper/helper.http.service'
import { InjectModel } from '~/transformers/model.transformer'
import type { UniqueArray } from '~/ts-hepler/unique'
import { UniqueArray } from '~/ts-hepler/unique'
import { getRedisKey, safePathJoin } from '~/utils'
import { safeEval } from '~/utils/safe-eval.util'
import { isBuiltinModule } from '~/utils/system.util'
import PKG from '../../../package.json'
import { SnippetModel } from '../snippet/snippet.model'
import type {
import {
FunctionContextRequest,
FunctionContextResponse,
} from './function.types'

View File

@@ -4,7 +4,7 @@ import { HTTPDecorators } from '~/common/decorator/http.decorator'
import { ApiName } from '~/common/decorator/openapi.decorator'
import { CacheKeys } from '~/constants/cache.constant'
import type { AggregateService } from '../aggregate/aggregate.service'
import { AggregateService } from '../aggregate/aggregate.service'
@Controller('sitemap')
@ApiName

View File

@@ -15,15 +15,14 @@ import { HTTPDecorators } from '~/common/decorator/http.decorator'
import { ApiName } from '~/common/decorator/openapi.decorator'
import { IsMaster } from '~/common/decorator/role.decorator'
import { DATA_DIR } from '~/constants/path.constant'
import type { MongoIdDto } from '~/shared/dto/id.dto'
import type { PagerDto } from '~/shared/dto/pager.dto'
import { MongoIdDto } from '~/shared/dto/id.dto'
import { PagerDto } from '~/shared/dto/pager.dto'
import { transformDataToPaginate } from '~/transformers/paginate.transformer'
import { installPKG } from '~/utils'
import type { SnippetMoreDto } from './snippet.dto'
import type { SnippetModel } from './snippet.model'
import { SnippetType } from './snippet.model'
import type { SnippetService } from './snippet.service'
import { SnippetMoreDto } from './snippet.dto'
import { SnippetModel, SnippetType } from './snippet.model'
import { SnippetService } from './snippet.service'
@ApiName
@Controller('snippets')

View File

@@ -9,7 +9,7 @@ import {
} from '@nestjs/common'
import { RedisKeys } from '~/constants/cache.constant'
import type { CacheService } from '~/processors/cache/cache.service'
import { CacheService } from '~/processors/cache/cache.service'
import { InjectModel } from '~/transformers/model.transformer'
import { getRedisKey } from '~/utils'

View File

@@ -4,12 +4,12 @@ import { Auth } from '~/common/decorator/auth.decorator'
import { HttpCache } from '~/common/decorator/cache.decorator'
import { ApiName } from '~/common/decorator/openapi.decorator'
import { RedisKeys } from '~/constants/cache.constant'
import type { CacheService } from '~/processors/cache/cache.service'
import { CacheService } from '~/processors/cache/cache.service'
import { getRedisKey } from '~/utils/redis.util'
import type { ConfigsService } from '../configs/configs.service'
import type { GaodeMapLocationDto, GaodeMapSearchDto, IpDto } from './tool.dto'
import type { ToolService } from './tool.service'
import { ConfigsService } from '../configs/configs.service'
import { GaodeMapLocationDto, GaodeMapSearchDto, IpDto } from './tool.dto'
import { ToolService } from './tool.service'
@Controller('tools')
@ApiName

View File

@@ -8,10 +8,10 @@ import {
UnprocessableEntityException,
} from '@nestjs/common'
import type { HttpService } from '~/processors/helper/helper.http.service'
import { HttpService } from '~/processors/helper/helper.http.service'
import type { ConfigsService } from '../configs/configs.service'
import type { IP } from './tool.interface'
import { ConfigsService } from '../configs/configs.service'
import { IP } from './tool.interface'
@Injectable()
export class ToolService {

View File

@@ -4,16 +4,15 @@ import { ApiOperation } from '@nestjs/swagger'
import { Auth } from '~/common/decorator/auth.decorator'
import { HttpCache } from '~/common/decorator/cache.decorator'
import { CurrentUser } from '~/common/decorator/current-user.decorator'
import type { IpRecord } from '~/common/decorator/ip.decorator'
import { IpLocation } from '~/common/decorator/ip.decorator'
import { IpLocation, IpRecord } from '~/common/decorator/ip.decorator'
import { ApiName } from '~/common/decorator/openapi.decorator'
import { IsMaster } from '~/common/decorator/role.decorator'
import { getAvatar } from '~/utils'
import type { AuthService } from '../auth/auth.service'
import type { LoginDto, UserDto, UserPatchDto } from './user.dto'
import type { UserDocument, UserModel } from './user.model'
import type { UserService } from './user.service'
import { AuthService } from '../auth/auth.service'
import { LoginDto, UserDto, UserPatchDto } from './user.dto'
import { UserDocument, UserModel } from './user.model'
import { UserService } from './user.service'
@ApiName
@Controller(['master', 'user'])

View File

@@ -1,8 +1,12 @@
import { hashSync } from 'bcrypt'
import { Schema } from 'mongoose'
import type { DocumentType } from '@typegoose/typegoose'
import { Severity, modelOptions, prop } from '@typegoose/typegoose'
import {
DocumentType,
Severity,
modelOptions,
prop,
} from '@typegoose/typegoose'
import { BaseModel } from '~/shared/model/base.model'

View File

@@ -9,18 +9,17 @@ import {
Logger,
UnprocessableEntityException,
} from '@nestjs/common'
import type { ReturnModelType } from '@typegoose/typegoose'
import { ReturnModelType } from '@typegoose/typegoose'
import { MasterLostException } from '~/common/exceptions/master-lost.exception'
import { RedisKeys } from '~/constants/cache.constant'
import type { CacheService } from '~/processors/cache/cache.service'
import { CacheService } from '~/processors/cache/cache.service'
import { InjectModel } from '~/transformers/model.transformer'
import { getAvatar, sleep } from '~/utils'
import { getRedisKey } from '~/utils/redis.util'
import type { AuthService } from '../auth/auth.service'
import type { UserDocument } from './user.model'
import { UserModel } from './user.model'
import { AuthService } from '../auth/auth.service'
import { UserDocument, UserModel } from './user.model'
@Injectable()
export class UserService {

View File

@@ -5,10 +5,13 @@
* @author Surmon <https://github.com/surmon-china>
*/
import redisStore from 'cache-manager-ioredis'
import type { RedisOptions } from 'ioredis'
import { RedisOptions } from 'ioredis'
import type { CacheModuleOptions, CacheOptionsFactory } from '@nestjs/common'
import { Injectable } from '@nestjs/common'
import {
CacheModuleOptions,
CacheOptionsFactory,
Injectable,
} from '@nestjs/common'
import { REDIS } from '~/app.config'

View File

@@ -1,11 +1,11 @@
import type { Cache } from 'cache-manager'
import type { Redis } from 'ioredis'
import { Cache } from 'cache-manager'
import { Redis } from 'ioredis'
import { CACHE_MANAGER, Inject, Injectable, Logger } from '@nestjs/common'
import { getRedisKey } from '~/utils/redis.util'
import type { RedisSubPub } from '../../utils/redis-subpub.util'
import { RedisSubPub } from '../../utils/redis-subpub.util'
// Cache 客户端管理器

View File

@@ -1,5 +1,5 @@
import { Inject, Injectable } from '@nestjs/common'
import type { ReturnModelType, mongoose } from '@typegoose/typegoose'
import { ReturnModelType, mongoose } from '@typegoose/typegoose'
import { DB_CONNECTION_TOKEN } from '~/constants/system.constant'
import { NoteModel } from '~/modules/note/note.model'

View File

@@ -1,21 +1,21 @@
import { resolve } from 'path'
import type { Socket } from 'socket.io'
import type SocketIO from 'socket.io'
import SocketIO, { Socket } from 'socket.io'
import type { JwtService } from '@nestjs/jwt'
import type {
import { JwtService } from '@nestjs/jwt'
import {
GatewayMetadata,
OnGatewayConnection,
OnGatewayDisconnect,
SubscribeMessage,
WebSocketGateway,
} from '@nestjs/websockets'
import { SubscribeMessage, WebSocketGateway } from '@nestjs/websockets'
import { LOG_DIR } from '~/constants/path.constant'
import { getTodayLogFilePath } from '~/global/consola.global'
import type { CacheService } from '~/processors/cache/cache.service'
import { CacheService } from '~/processors/cache/cache.service'
import { BusinessEvents } from '../../../constants/business-event.constant'
import type { AuthService } from '../../../modules/auth/auth.service'
import { AuthService } from '../../../modules/auth/auth.service'
import { createAuthGateway } from '../shared/auth.gateway'
const AuthGateway = createAuthGateway({ namespace: 'admin', authway: 'jwt' })

View File

@@ -1,4 +1,4 @@
import type { Socket } from 'socket.io'
import { Socket } from 'socket.io'
import { BusinessEvents } from '~/constants/business-event.constant'

View File

@@ -1,17 +1,17 @@
import type { Namespace, Socket } from 'socket.io'
import { Namespace, Socket } from 'socket.io'
import { OnEvent } from '@nestjs/event-emitter'
import type { JwtService } from '@nestjs/jwt'
import type {
import { JwtService } from '@nestjs/jwt'
import {
OnGatewayConnection,
OnGatewayDisconnect,
WebSocketServer,
} from '@nestjs/websockets'
import { WebSocketServer } from '@nestjs/websockets'
import { Emitter } from '@socket.io/redis-emitter'
import { EventBusEvents } from '~/constants/event-bus.constant'
import type { AuthService } from '~/modules/auth/auth.service'
import type { CacheService } from '~/processors/cache/cache.service'
import { AuthService } from '~/modules/auth/auth.service'
import { CacheService } from '~/processors/cache/cache.service'
import { BusinessEvents } from '../../../constants/business-event.constant'
import { BoardcastBaseGateway } from '../base.gateway'

View File

@@ -1,9 +1,9 @@
import { Injectable } from '@nestjs/common'
import type { BusinessEvents } from '~/constants/business-event.constant'
import { BusinessEvents } from '~/constants/business-event.constant'
import type { AdminEventsGateway } from '../admin/events.gateway'
import type { WebEventsGateway } from '../web/events.gateway'
import { AdminEventsGateway } from '../admin/events.gateway'
import { WebEventsGateway } from '../web/events.gateway'
@Injectable()
export class SharedGateway {

View File

@@ -1,14 +1,14 @@
import type { JwtService } from '@nestjs/jwt'
import type {
import { JwtService } from '@nestjs/jwt'
import {
GatewayMetadata,
OnGatewayConnection,
OnGatewayDisconnect,
WebSocketGateway,
} from '@nestjs/websockets'
import { WebSocketGateway } from '@nestjs/websockets'
import type { CacheService } from '~/processors/cache/cache.service'
import { CacheService } from '~/processors/cache/cache.service'
import type { AuthService } from '../../../modules/auth/auth.service'
import { AuthService } from '../../../modules/auth/auth.service'
import { createAuthGateway } from '../shared/auth.gateway'
const AuthGateway = createAuthGateway({

View File

@@ -1,16 +1,14 @@
/* eslint-disable @typescript-eslint/no-non-null-assertion */
import { plainToClass } from 'class-transformer'
import { validate } from 'class-validator'
import type SocketIO from 'socket.io'
import SocketIO from 'socket.io'
import type {
GatewayMetadata,
OnGatewayConnection,
OnGatewayDisconnect,
} from '@nestjs/websockets'
import {
ConnectedSocket,
GatewayMetadata,
MessageBody,
OnGatewayConnection,
OnGatewayDisconnect,
SubscribeMessage,
WebSocketGateway,
WebSocketServer,
@@ -19,7 +17,7 @@ import { Emitter } from '@socket.io/redis-emitter'
import { BusinessEvents } from '~/constants/business-event.constant'
import { RedisKeys } from '~/constants/cache.constant'
import type { CacheService } from '~/processors/cache/cache.service'
import { CacheService } from '~/processors/cache/cache.service'
import { getRedisKey } from '~/utils/redis.util'
import { getShortDate } from '~/utils/time.util'

View File

@@ -11,7 +11,7 @@ import { Injectable, Logger } from '@nestjs/common'
import { USER_ASSET_DIR } from '~/constants/path.constant'
import type { HttpService } from './helper.http.service'
import { HttpService } from './helper.http.service'
// 先从 ASSET_DIR 找用户自定义的资源, 没有就从默认的 ASSET_DIR 找, 没有就从网上拉取, 存到默认的 ASSET_DIR
@Injectable()

View File

@@ -1,14 +1,14 @@
import { Injectable, Logger } from '@nestjs/common'
import type { ArticleType } from '~/constants/article.constant'
import { ArticleType } from '~/constants/article.constant'
import { RedisKeys } from '~/constants/cache.constant'
import { NoteModel } from '~/modules/note/note.model'
import { PostModel } from '~/modules/post/post.model'
import { InjectModel } from '~/transformers/model.transformer'
import { getRedisKey } from '~/utils/redis.util'
import type { CacheService } from '../cache/cache.service'
import type { DatabaseService } from '../database/database.service'
import { CacheService } from '../cache/cache.service'
import { DatabaseService } from '../database/database.service'
@Injectable()
export class CountingService {

View File

@@ -18,7 +18,7 @@ import { LOG_DIR, TEMP_DIR } from '~/constants/path.constant'
import { AggregateService } from '~/modules/aggregate/aggregate.service'
import { AnalyzeModel } from '~/modules/analyze/analyze.model'
import { BackupService } from '~/modules/backup/backup.service'
import type { ConfigsService } from '~/modules/configs/configs.service'
import { ConfigsService } from '~/modules/configs/configs.service'
import { NoteService } from '~/modules/note/note.service'
import { PageService } from '~/modules/page/page.service'
import { PostService } from '~/modules/post/post.service'
@@ -26,8 +26,8 @@ import { SearchService } from '~/modules/search/search.service'
import { InjectModel } from '~/transformers/model.transformer'
import { getRedisKey } from '~/utils/redis.util'
import type { CacheService } from '../cache/cache.service'
import type { HttpService } from './helper.http.service'
import { CacheService } from '../cache/cache.service'
import { HttpService } from './helper.http.service'
@Injectable()
export class CronService {

View File

@@ -7,10 +7,10 @@ import { Injectable, Logger } from '@nestjs/common'
import { OnEvent } from '@nestjs/event-emitter'
import { EventBusEvents } from '~/constants/event-bus.constant'
import type { ConfigsService } from '~/modules/configs/configs.service'
import { ConfigsService } from '~/modules/configs/configs.service'
import type { CacheService } from '../cache/cache.service'
import type { AssetService } from './helper.asset.service'
import { CacheService } from '../cache/cache.service'
import { AssetService } from './helper.asset.service'
export enum ReplyMailType {
Owner = 'owner',

View File

@@ -3,14 +3,13 @@ import { merge } from 'lodash'
import { Injectable, Logger } from '@nestjs/common'
import { EventEmitter2 } from '@nestjs/event-emitter'
import type { BusinessEvents } from '~/constants/business-event.constant'
import { EventScope } from '~/constants/business-event.constant'
import type { EventBusEvents } from '~/constants/event-bus.constant'
import { BusinessEvents, EventScope } from '~/constants/business-event.constant'
import { EventBusEvents } from '~/constants/event-bus.constant'
import type { AdminEventsGateway } from '../gateway/admin/events.gateway'
import { AdminEventsGateway } from '../gateway/admin/events.gateway'
import { BoardcastBaseGateway } from '../gateway/base.gateway'
import type { SystemEventsGateway } from '../gateway/system/events.gateway'
import type { WebEventsGateway } from '../gateway/web/events.gateway'
import { SystemEventsGateway } from '../gateway/system/events.gateway'
import { WebEventsGateway } from '../gateway/web/events.gateway'
export type EventManagerOptions = {
scope?: EventScope

View File

@@ -1,5 +1,4 @@
import type { AxiosInstance } from 'axios'
import axios from 'axios'
import axios, { AxiosInstance } from 'axios'
import axiosRetry from 'axios-retry'
import { Injectable, Logger } from '@nestjs/common'
@@ -9,7 +8,7 @@ import { RedisKeys } from '~/constants/cache.constant'
import { getRedisKey } from '~/utils'
import { version } from '../../../package.json'
import type { CacheService } from '../cache/cache.service'
import { CacheService } from '../cache/cache.service'
@Injectable()
export class HttpService {

View File

@@ -5,16 +5,13 @@ import {
InternalServerErrorException,
Logger,
} from '@nestjs/common'
import type { ReturnModelType } from '@typegoose/typegoose'
import { ReturnModelType } from '@typegoose/typegoose'
import type { ConfigsService } from '~/modules/configs/configs.service'
import type {
TextImageRecordType,
WriteBaseModel,
} from '~/shared/model/base.model'
import { ConfigsService } from '~/modules/configs/configs.service'
import { TextImageRecordType, WriteBaseModel } from '~/shared/model/base.model'
import { getAverageRGB, pickImagesFromMarkdown } from '~/utils/pic.util'
import type { HttpService } from './helper.http.service'
import { HttpService } from './helper.http.service'
@Injectable()
export class ImageService {

Some files were not shown because too many files have changed in this diff Show More