From d4eefa48a89b42ef65a96fa58b29b65bd42dbef7 Mon Sep 17 00:00:00 2001 From: Philipinho <16838612+Philipinho@users.noreply.github.com> Date: Sun, 9 Jun 2024 15:57:52 +0100 Subject: [PATCH] restructure directories * set log level based on env --- .../collaboration/collaboration.gateway.ts | 6 +- .../extensions/authentication.extension.ts | 2 +- .../extensions/persistence.extension.ts | 1 + .../decorators/auth-user.decorator.ts | 0 .../decorators/auth-workspace.decorator.ts | 0 .../decorators/public.decorator.ts | 0 .../src/{ => common}/guards/jwt-auth.guard.ts | 0 .../src/{ => common}/helpers/constants.ts | 0 .../src/{ => common}/helpers/file.helper.ts | 0 apps/server/src/{ => common}/helpers/index.ts | 0 .../src/{ => common}/helpers/nanoid.utils.ts | 0 .../{ => common}/helpers/types/permission.ts | 0 apps/server/src/{ => common}/helpers/utils.ts | 0 .../interceptors/http-response.interceptor.ts | 0 .../src/common/logger/internal-log-filter.ts | 58 +++++++++++++++++++ .../middlewares/domain.middleware.ts | 2 +- .../core/attachment/attachment.controller.ts | 8 +-- apps/server/src/core/auth/auth.controller.ts | 6 +- .../src/core/auth/services/auth.service.ts | 2 +- .../src/core/auth/services/signup.service.ts | 2 +- .../casl/abilities/space-ability.factory.ts | 2 +- .../abilities/workspace-ability.factory.ts | 2 +- .../src/core/comment/comment.controller.ts | 6 +- apps/server/src/core/core.module.ts | 2 +- .../server/src/core/group/group.controller.ts | 6 +- apps/server/src/core/page/page.controller.ts | 6 +- .../src/core/page/services/page.service.ts | 2 +- .../src/core/search/search.controller.ts | 6 +- .../core/space/dto/add-space-members.dto.ts | 9 +-- .../space/dto/update-space-member-role.dto.ts | 2 +- .../space/services/space-member.service.ts | 2 +- .../server/src/core/space/space.controller.ts | 6 +- apps/server/src/core/user/user.controller.ts | 6 +- .../controllers/workspace.controller.ts | 8 +-- .../src/core/workspace/dto/invitation.dto.ts | 2 +- .../services/workspace-invitation.service.ts | 4 +- .../workspace/services/workspace.service.ts | 2 +- apps/server/src/database/migrate.ts | 2 +- .../migrations/20240324T085500-workspaces.ts | 2 +- .../migrations/20240324T085900-spaces.ts | 5 +- apps/server/src/database/repos/space/utils.ts | 2 +- .../src/database/repos/user/user.repo.ts | 2 +- .../environment/environment.module.ts | 2 +- .../logger/internal-log-filter.ts | 19 ------ .../src/integrations/queue/queue.module.ts | 2 +- .../integrations/storage/drivers/s3.driver.ts | 2 +- .../storage/providers/storage.provider.ts | 2 +- apps/server/src/main.ts | 4 +- .../server/src/ws/adapter/ws-redis.adapter.ts | 2 +- 49 files changed, 124 insertions(+), 82 deletions(-) rename apps/server/src/{ => common}/decorators/auth-user.decorator.ts (100%) rename apps/server/src/{ => common}/decorators/auth-workspace.decorator.ts (100%) rename apps/server/src/{ => common}/decorators/public.decorator.ts (100%) rename apps/server/src/{ => common}/guards/jwt-auth.guard.ts (100%) rename apps/server/src/{ => common}/helpers/constants.ts (100%) rename apps/server/src/{ => common}/helpers/file.helper.ts (100%) rename apps/server/src/{ => common}/helpers/index.ts (100%) rename apps/server/src/{ => common}/helpers/nanoid.utils.ts (100%) rename apps/server/src/{ => common}/helpers/types/permission.ts (100%) rename apps/server/src/{ => common}/helpers/utils.ts (100%) rename apps/server/src/{ => common}/interceptors/http-response.interceptor.ts (100%) create mode 100644 apps/server/src/common/logger/internal-log-filter.ts rename apps/server/src/{ => common}/middlewares/domain.middleware.ts (93%) delete mode 100644 apps/server/src/integrations/logger/internal-log-filter.ts diff --git a/apps/server/src/collaboration/collaboration.gateway.ts b/apps/server/src/collaboration/collaboration.gateway.ts index dddb60d3..d92ebd7e 100644 --- a/apps/server/src/collaboration/collaboration.gateway.ts +++ b/apps/server/src/collaboration/collaboration.gateway.ts @@ -6,7 +6,11 @@ import { PersistenceExtension } from './extensions/persistence.extension'; import { Injectable } from '@nestjs/common'; import { Redis } from '@hocuspocus/extension-redis'; import { EnvironmentService } from '../integrations/environment/environment.service'; -import { createRetryStrategy, parseRedisUrl, RedisConfig } from '../helpers'; +import { + createRetryStrategy, + parseRedisUrl, + RedisConfig, +} from '../common/helpers'; @Injectable() export class CollaborationGateway { diff --git a/apps/server/src/collaboration/extensions/authentication.extension.ts b/apps/server/src/collaboration/extensions/authentication.extension.ts index 835a08cd..fac72a08 100644 --- a/apps/server/src/collaboration/extensions/authentication.extension.ts +++ b/apps/server/src/collaboration/extensions/authentication.extension.ts @@ -10,7 +10,7 @@ import { UserRepo } from '@docmost/db/repos/user/user.repo'; import { PageRepo } from '@docmost/db/repos/page/page.repo'; import { SpaceMemberRepo } from '@docmost/db/repos/space/space-member.repo'; import { findHighestUserSpaceRole } from '@docmost/db/repos/space/utils'; -import { SpaceRole } from '../../helpers/types/permission'; +import { SpaceRole } from '../../common/helpers/types/permission'; import { getPageId } from '../collaboration.util'; @Injectable() diff --git a/apps/server/src/collaboration/extensions/persistence.extension.ts b/apps/server/src/collaboration/extensions/persistence.extension.ts index f901243d..6e5cb272 100644 --- a/apps/server/src/collaboration/extensions/persistence.extension.ts +++ b/apps/server/src/collaboration/extensions/persistence.extension.ts @@ -110,6 +110,7 @@ export class PersistenceExtension implements Extension { ...page, lastUpdatedById: context.user.id, content: tiptapJson, + textContent: textContent, }, }); } catch (err) { diff --git a/apps/server/src/decorators/auth-user.decorator.ts b/apps/server/src/common/decorators/auth-user.decorator.ts similarity index 100% rename from apps/server/src/decorators/auth-user.decorator.ts rename to apps/server/src/common/decorators/auth-user.decorator.ts diff --git a/apps/server/src/decorators/auth-workspace.decorator.ts b/apps/server/src/common/decorators/auth-workspace.decorator.ts similarity index 100% rename from apps/server/src/decorators/auth-workspace.decorator.ts rename to apps/server/src/common/decorators/auth-workspace.decorator.ts diff --git a/apps/server/src/decorators/public.decorator.ts b/apps/server/src/common/decorators/public.decorator.ts similarity index 100% rename from apps/server/src/decorators/public.decorator.ts rename to apps/server/src/common/decorators/public.decorator.ts diff --git a/apps/server/src/guards/jwt-auth.guard.ts b/apps/server/src/common/guards/jwt-auth.guard.ts similarity index 100% rename from apps/server/src/guards/jwt-auth.guard.ts rename to apps/server/src/common/guards/jwt-auth.guard.ts diff --git a/apps/server/src/helpers/constants.ts b/apps/server/src/common/helpers/constants.ts similarity index 100% rename from apps/server/src/helpers/constants.ts rename to apps/server/src/common/helpers/constants.ts diff --git a/apps/server/src/helpers/file.helper.ts b/apps/server/src/common/helpers/file.helper.ts similarity index 100% rename from apps/server/src/helpers/file.helper.ts rename to apps/server/src/common/helpers/file.helper.ts diff --git a/apps/server/src/helpers/index.ts b/apps/server/src/common/helpers/index.ts similarity index 100% rename from apps/server/src/helpers/index.ts rename to apps/server/src/common/helpers/index.ts diff --git a/apps/server/src/helpers/nanoid.utils.ts b/apps/server/src/common/helpers/nanoid.utils.ts similarity index 100% rename from apps/server/src/helpers/nanoid.utils.ts rename to apps/server/src/common/helpers/nanoid.utils.ts diff --git a/apps/server/src/helpers/types/permission.ts b/apps/server/src/common/helpers/types/permission.ts similarity index 100% rename from apps/server/src/helpers/types/permission.ts rename to apps/server/src/common/helpers/types/permission.ts diff --git a/apps/server/src/helpers/utils.ts b/apps/server/src/common/helpers/utils.ts similarity index 100% rename from apps/server/src/helpers/utils.ts rename to apps/server/src/common/helpers/utils.ts diff --git a/apps/server/src/interceptors/http-response.interceptor.ts b/apps/server/src/common/interceptors/http-response.interceptor.ts similarity index 100% rename from apps/server/src/interceptors/http-response.interceptor.ts rename to apps/server/src/common/interceptors/http-response.interceptor.ts diff --git a/apps/server/src/common/logger/internal-log-filter.ts b/apps/server/src/common/logger/internal-log-filter.ts new file mode 100644 index 00000000..f56d3fce --- /dev/null +++ b/apps/server/src/common/logger/internal-log-filter.ts @@ -0,0 +1,58 @@ +import { ConsoleLogger } from '@nestjs/common'; + +export class InternalLogFilter extends ConsoleLogger { + static contextsToIgnore = [ + 'InstanceLoader', + 'RoutesResolver', + 'RouterExplorer', + 'WebSocketsController', + ]; + + private allowedLogLevels: string[]; + + constructor() { + super(); + this.allowedLogLevels = + process.env.NODE_ENV === 'production' + ? ['log', 'error', 'fatal'] + : ['log', 'debug', 'verbose', 'warn', 'error', 'fatal']; + } + + private isLogLevelAllowed(level: string): boolean { + return this.allowedLogLevels.includes(level); + } + + log(_: any, context?: string): void { + if ( + this.isLogLevelAllowed('log') && + (process.env.NODE_ENV !== 'production' || + !InternalLogFilter.contextsToIgnore.includes(context)) + ) { + super.log.apply(this, arguments); + } + } + + warn(_: any, context?: string): void { + if (this.isLogLevelAllowed('warn')) { + super.warn.apply(this, arguments); + } + } + + error(_: any, stack?: string, context?: string): void { + if (this.isLogLevelAllowed('error')) { + super.error.apply(this, arguments); + } + } + + debug(_: any, context?: string): void { + if (this.isLogLevelAllowed('debug')) { + super.debug.apply(this, arguments); + } + } + + verbose(_: any, context?: string): void { + if (this.isLogLevelAllowed('verbose')) { + super.verbose.apply(this, arguments); + } + } +} diff --git a/apps/server/src/middlewares/domain.middleware.ts b/apps/server/src/common/middlewares/domain.middleware.ts similarity index 93% rename from apps/server/src/middlewares/domain.middleware.ts rename to apps/server/src/common/middlewares/domain.middleware.ts index 3ff661cf..4f47e2f5 100644 --- a/apps/server/src/middlewares/domain.middleware.ts +++ b/apps/server/src/common/middlewares/domain.middleware.ts @@ -1,6 +1,6 @@ import { Injectable, NestMiddleware, NotFoundException } from '@nestjs/common'; import { FastifyRequest, FastifyReply } from 'fastify'; -import { EnvironmentService } from '../integrations/environment/environment.service'; +import { EnvironmentService } from '../../integrations/environment/environment.service'; import { WorkspaceRepo } from '@docmost/db/repos/workspace/workspace.repo'; @Injectable() diff --git a/apps/server/src/core/attachment/attachment.controller.ts b/apps/server/src/core/attachment/attachment.controller.ts index 897af58a..842bdb2d 100644 --- a/apps/server/src/core/attachment/attachment.controller.ts +++ b/apps/server/src/core/attachment/attachment.controller.ts @@ -18,16 +18,16 @@ import { AttachmentService } from './services/attachment.service'; import { FastifyReply } from 'fastify'; import { AttachmentInterceptor } from './interceptors/attachment.interceptor'; import * as bytes from 'bytes'; -import { AuthUser } from '../../decorators/auth-user.decorator'; -import { AuthWorkspace } from '../../decorators/auth-workspace.decorator'; -import { JwtAuthGuard } from '../../guards/jwt-auth.guard'; +import { AuthUser } from '../../common/decorators/auth-user.decorator'; +import { AuthWorkspace } from '../../common/decorators/auth-workspace.decorator'; +import { JwtAuthGuard } from '../../common/guards/jwt-auth.guard'; import { User, Workspace } from '@docmost/db/types/entity.types'; import { StorageService } from '../../integrations/storage/storage.service'; import { getAttachmentFolderPath, validAttachmentTypes, } from './attachment.utils'; -import { getMimeType } from '../../helpers'; +import { getMimeType } from '../../common/helpers'; import { AttachmentType, MAX_AVATAR_SIZE, diff --git a/apps/server/src/core/auth/auth.controller.ts b/apps/server/src/core/auth/auth.controller.ts index 54b748a4..91aea653 100644 --- a/apps/server/src/core/auth/auth.controller.ts +++ b/apps/server/src/core/auth/auth.controller.ts @@ -15,10 +15,10 @@ import { SetupGuard } from './guards/setup.guard'; import { EnvironmentService } from '../../integrations/environment/environment.service'; import { CreateAdminUserDto } from './dto/create-admin-user.dto'; import { ChangePasswordDto } from './dto/change-password.dto'; -import { AuthUser } from '../../decorators/auth-user.decorator'; +import { AuthUser } from '../../common/decorators/auth-user.decorator'; import { User, Workspace } from '@docmost/db/types/entity.types'; -import { AuthWorkspace } from '../../decorators/auth-workspace.decorator'; -import { JwtAuthGuard } from '../../guards/jwt-auth.guard'; +import { AuthWorkspace } from '../../common/decorators/auth-workspace.decorator'; +import { JwtAuthGuard } from '../../common/guards/jwt-auth.guard'; @Controller('auth') export class AuthController { diff --git a/apps/server/src/core/auth/services/auth.service.ts b/apps/server/src/core/auth/services/auth.service.ts index a32e3526..7619ecd5 100644 --- a/apps/server/src/core/auth/services/auth.service.ts +++ b/apps/server/src/core/auth/services/auth.service.ts @@ -11,7 +11,7 @@ import { TokensDto } from '../dto/tokens.dto'; import { SignupService } from './signup.service'; import { CreateAdminUserDto } from '../dto/create-admin-user.dto'; import { UserRepo } from '@docmost/db/repos/user/user.repo'; -import { comparePasswordHash, hashPassword } from '../../../helpers'; +import { comparePasswordHash, hashPassword } from '../../../common/helpers'; import { ChangePasswordDto } from '../dto/change-password.dto'; import { MailService } from '../../../integrations/mail/mail.service'; import ChangePasswordEmail from '@docmost/transactional/emails/change-password-email'; diff --git a/apps/server/src/core/auth/services/signup.service.ts b/apps/server/src/core/auth/services/signup.service.ts index 79211232..35365067 100644 --- a/apps/server/src/core/auth/services/signup.service.ts +++ b/apps/server/src/core/auth/services/signup.service.ts @@ -9,7 +9,7 @@ import { executeTx } from '@docmost/db/utils'; import { InjectKysely } from 'nestjs-kysely'; import { User } from '@docmost/db/types/entity.types'; import { GroupUserRepo } from '@docmost/db/repos/group/group-user.repo'; -import { UserRole } from '../../../helpers/types/permission'; +import { UserRole } from '../../../common/helpers/types/permission'; @Injectable() export class SignupService { diff --git a/apps/server/src/core/casl/abilities/space-ability.factory.ts b/apps/server/src/core/casl/abilities/space-ability.factory.ts index 3dbbe32c..d2173383 100644 --- a/apps/server/src/core/casl/abilities/space-ability.factory.ts +++ b/apps/server/src/core/casl/abilities/space-ability.factory.ts @@ -4,7 +4,7 @@ import { createMongoAbility, MongoAbility, } from '@casl/ability'; -import { SpaceRole } from '../../../helpers/types/permission'; +import { SpaceRole } from '../../../common/helpers/types/permission'; import { User } from '@docmost/db/types/entity.types'; import { SpaceMemberRepo } from '@docmost/db/repos/space/space-member.repo'; import { diff --git a/apps/server/src/core/casl/abilities/workspace-ability.factory.ts b/apps/server/src/core/casl/abilities/workspace-ability.factory.ts index 7c3785f6..2fcac679 100644 --- a/apps/server/src/core/casl/abilities/workspace-ability.factory.ts +++ b/apps/server/src/core/casl/abilities/workspace-ability.factory.ts @@ -4,7 +4,7 @@ import { createMongoAbility, MongoAbility, } from '@casl/ability'; -import { UserRole } from '../../../helpers/types/permission'; +import { UserRole } from '../../../common/helpers/types/permission'; import { User, Workspace } from '@docmost/db/types/entity.types'; import { IWorkspaceAbility, diff --git a/apps/server/src/core/comment/comment.controller.ts b/apps/server/src/core/comment/comment.controller.ts index 101aa0e0..fcb19723 100644 --- a/apps/server/src/core/comment/comment.controller.ts +++ b/apps/server/src/core/comment/comment.controller.ts @@ -12,9 +12,9 @@ import { CommentService } from './comment.service'; import { CreateCommentDto } from './dto/create-comment.dto'; import { UpdateCommentDto } from './dto/update-comment.dto'; import { PageIdDto, CommentIdDto } from './dto/comments.input'; -import { AuthUser } from '../../decorators/auth-user.decorator'; -import { AuthWorkspace } from '../../decorators/auth-workspace.decorator'; -import { JwtAuthGuard } from '../../guards/jwt-auth.guard'; +import { AuthUser } from '../../common/decorators/auth-user.decorator'; +import { AuthWorkspace } from '../../common/decorators/auth-workspace.decorator'; +import { JwtAuthGuard } from '../../common/guards/jwt-auth.guard'; import { PaginationOptions } from '@docmost/db/pagination/pagination-options'; import { User, Workspace } from '@docmost/db/types/entity.types'; import SpaceAbilityFactory from '../casl/abilities/space-ability.factory'; diff --git a/apps/server/src/core/core.module.ts b/apps/server/src/core/core.module.ts index 94a29f5a..d97e3684 100644 --- a/apps/server/src/core/core.module.ts +++ b/apps/server/src/core/core.module.ts @@ -14,7 +14,7 @@ import { SearchModule } from './search/search.module'; import { SpaceModule } from './space/space.module'; import { GroupModule } from './group/group.module'; import { CaslModule } from './casl/casl.module'; -import { DomainMiddleware } from '../middlewares/domain.middleware'; +import { DomainMiddleware } from '../common/middlewares/domain.middleware'; @Module({ imports: [ diff --git a/apps/server/src/core/group/group.controller.ts b/apps/server/src/core/group/group.controller.ts index b19dd011..2e07daba 100644 --- a/apps/server/src/core/group/group.controller.ts +++ b/apps/server/src/core/group/group.controller.ts @@ -9,15 +9,15 @@ import { } from '@nestjs/common'; import { GroupService } from './services/group.service'; import { CreateGroupDto } from './dto/create-group.dto'; -import { AuthUser } from '../../decorators/auth-user.decorator'; -import { AuthWorkspace } from '../../decorators/auth-workspace.decorator'; +import { AuthUser } from '../../common/decorators/auth-user.decorator'; +import { AuthWorkspace } from '../../common/decorators/auth-workspace.decorator'; import { GroupUserService } from './services/group-user.service'; import { GroupIdDto } from './dto/group-id.dto'; import { PaginationOptions } from '@docmost/db/pagination/pagination-options'; import { AddGroupUserDto } from './dto/add-group-user.dto'; import { RemoveGroupUserDto } from './dto/remove-group-user.dto'; import { UpdateGroupDto } from './dto/update-group.dto'; -import { JwtAuthGuard } from '../../guards/jwt-auth.guard'; +import { JwtAuthGuard } from '../../common/guards/jwt-auth.guard'; import { User, Workspace } from '@docmost/db/types/entity.types'; import WorkspaceAbilityFactory from '../casl/abilities/workspace-ability.factory'; import { diff --git a/apps/server/src/core/page/page.controller.ts b/apps/server/src/core/page/page.controller.ts index d8dccced..694bec60 100644 --- a/apps/server/src/core/page/page.controller.ts +++ b/apps/server/src/core/page/page.controller.ts @@ -14,9 +14,9 @@ import { UpdatePageDto } from './dto/update-page.dto'; import { MovePageDto } from './dto/move-page.dto'; import { PageHistoryIdDto, PageIdDto, PageInfoDto } from './dto/page.dto'; import { PageHistoryService } from './services/page-history.service'; -import { AuthUser } from '../../decorators/auth-user.decorator'; -import { AuthWorkspace } from '../../decorators/auth-workspace.decorator'; -import { JwtAuthGuard } from '../../guards/jwt-auth.guard'; +import { AuthUser } from '../../common/decorators/auth-user.decorator'; +import { AuthWorkspace } from '../../common/decorators/auth-workspace.decorator'; +import { JwtAuthGuard } from '../../common/guards/jwt-auth.guard'; import { PaginationOptions } from '@docmost/db/pagination/pagination-options'; import { User, Workspace } from '@docmost/db/types/entity.types'; import { SidebarPageDto } from './dto/sidebar-page.dto'; diff --git a/apps/server/src/core/page/services/page.service.ts b/apps/server/src/core/page/services/page.service.ts index 875352a7..97f9377f 100644 --- a/apps/server/src/core/page/services/page.service.ts +++ b/apps/server/src/core/page/services/page.service.ts @@ -18,7 +18,7 @@ import { generateJitteredKeyBetween } from 'fractional-indexing-jittered'; import { MovePageDto } from '../dto/move-page.dto'; import { ExpressionBuilder } from 'kysely'; import { DB } from '@docmost/db/types/db'; -import { generateSlugId } from '../../../helpers'; +import { generateSlugId } from '../../../common/helpers'; @Injectable() export class PageService { diff --git a/apps/server/src/core/search/search.controller.ts b/apps/server/src/core/search/search.controller.ts index 768e640c..631d1654 100644 --- a/apps/server/src/core/search/search.controller.ts +++ b/apps/server/src/core/search/search.controller.ts @@ -10,15 +10,15 @@ import { } from '@nestjs/common'; import { SearchService } from './search.service'; import { SearchDTO, SearchSuggestionDTO } from './dto/search.dto'; -import { AuthWorkspace } from '../../decorators/auth-workspace.decorator'; -import { JwtAuthGuard } from '../../guards/jwt-auth.guard'; +import { AuthWorkspace } from '../../common/decorators/auth-workspace.decorator'; +import { JwtAuthGuard } from '../../common/guards/jwt-auth.guard'; import { User, Workspace } from '@docmost/db/types/entity.types'; import SpaceAbilityFactory from '../casl/abilities/space-ability.factory'; import { SpaceCaslAction, SpaceCaslSubject, } from '../casl/interfaces/space-ability.type'; -import { AuthUser } from '../../decorators/auth-user.decorator'; +import { AuthUser } from '../../common/decorators/auth-user.decorator'; @UseGuards(JwtAuthGuard) @Controller('search') diff --git a/apps/server/src/core/space/dto/add-space-members.dto.ts b/apps/server/src/core/space/dto/add-space-members.dto.ts index 5206ee7e..d21338cb 100644 --- a/apps/server/src/core/space/dto/add-space-members.dto.ts +++ b/apps/server/src/core/space/dto/add-space-members.dto.ts @@ -1,11 +1,6 @@ -import { - ArrayMaxSize, - IsArray, - IsEnum, - IsUUID, -} from 'class-validator'; +import { ArrayMaxSize, IsArray, IsEnum, IsUUID } from 'class-validator'; import { SpaceIdDto } from './space-id.dto'; -import { SpaceRole } from '../../../helpers/types/permission'; +import { SpaceRole } from '../../../common/helpers/types/permission'; export class AddSpaceMembersDto extends SpaceIdDto { // @IsOptional() diff --git a/apps/server/src/core/space/dto/update-space-member-role.dto.ts b/apps/server/src/core/space/dto/update-space-member-role.dto.ts index 156c55e1..dfac7548 100644 --- a/apps/server/src/core/space/dto/update-space-member-role.dto.ts +++ b/apps/server/src/core/space/dto/update-space-member-role.dto.ts @@ -1,6 +1,6 @@ import { IsEnum, IsNotEmpty, IsOptional, IsUUID } from 'class-validator'; import { SpaceIdDto } from './space-id.dto'; -import { SpaceRole } from '../../../helpers/types/permission'; +import { SpaceRole } from '../../../common/helpers/types/permission'; export class UpdateSpaceMemberRoleDto extends SpaceIdDto { @IsOptional() diff --git a/apps/server/src/core/space/services/space-member.service.ts b/apps/server/src/core/space/services/space-member.service.ts index 03160e22..16ab7c65 100644 --- a/apps/server/src/core/space/services/space-member.service.ts +++ b/apps/server/src/core/space/services/space-member.service.ts @@ -12,7 +12,7 @@ import { Space, SpaceMember, User } from '@docmost/db/types/entity.types'; import { SpaceRepo } from '@docmost/db/repos/space/space.repo'; import { RemoveSpaceMemberDto } from '../dto/remove-space-member.dto'; import { UpdateSpaceMemberRoleDto } from '../dto/update-space-member-role.dto'; -import { SpaceRole } from '../../../helpers/types/permission'; +import { SpaceRole } from '../../../common/helpers/types/permission'; import { PaginationResult } from '@docmost/db/pagination/pagination'; @Injectable() diff --git a/apps/server/src/core/space/space.controller.ts b/apps/server/src/core/space/space.controller.ts index bd21fffd..0049f46e 100644 --- a/apps/server/src/core/space/space.controller.ts +++ b/apps/server/src/core/space/space.controller.ts @@ -10,9 +10,9 @@ import { UseGuards, } from '@nestjs/common'; import { SpaceService } from './services/space.service'; -import { AuthUser } from '../../decorators/auth-user.decorator'; -import { AuthWorkspace } from '../../decorators/auth-workspace.decorator'; -import { JwtAuthGuard } from '../../guards/jwt-auth.guard'; +import { AuthUser } from '../../common/decorators/auth-user.decorator'; +import { AuthWorkspace } from '../../common/decorators/auth-workspace.decorator'; +import { JwtAuthGuard } from '../../common/guards/jwt-auth.guard'; import { SpaceIdDto } from './dto/space-id.dto'; import { PaginationOptions } from '@docmost/db/pagination/pagination-options'; import { SpaceMemberService } from './services/space-member.service'; diff --git a/apps/server/src/core/user/user.controller.ts b/apps/server/src/core/user/user.controller.ts index 3a18f935..eb8580cb 100644 --- a/apps/server/src/core/user/user.controller.ts +++ b/apps/server/src/core/user/user.controller.ts @@ -8,9 +8,9 @@ import { } from '@nestjs/common'; import { UserService } from './user.service'; import { UpdateUserDto } from './dto/update-user.dto'; -import { AuthUser } from '../../decorators/auth-user.decorator'; -import { JwtAuthGuard } from '../../guards/jwt-auth.guard'; -import { AuthWorkspace } from '../../decorators/auth-workspace.decorator'; +import { AuthUser } from '../../common/decorators/auth-user.decorator'; +import { JwtAuthGuard } from '../../common/guards/jwt-auth.guard'; +import { AuthWorkspace } from '../../common/decorators/auth-workspace.decorator'; import { User, Workspace } from '@docmost/db/types/entity.types'; @UseGuards(JwtAuthGuard) diff --git a/apps/server/src/core/workspace/controllers/workspace.controller.ts b/apps/server/src/core/workspace/controllers/workspace.controller.ts index 8bf8307a..670c817f 100644 --- a/apps/server/src/core/workspace/controllers/workspace.controller.ts +++ b/apps/server/src/core/workspace/controllers/workspace.controller.ts @@ -11,18 +11,18 @@ import { import { WorkspaceService } from '../services/workspace.service'; import { UpdateWorkspaceDto } from '../dto/update-workspace.dto'; import { UpdateWorkspaceUserRoleDto } from '../dto/update-workspace-user-role.dto'; -import { AuthUser } from '../../../decorators/auth-user.decorator'; -import { AuthWorkspace } from '../../../decorators/auth-workspace.decorator'; +import { AuthUser } from '../../../common/decorators/auth-user.decorator'; +import { AuthWorkspace } from '../../../common/decorators/auth-workspace.decorator'; import { PaginationOptions } from '@docmost/db/pagination/pagination-options'; import { WorkspaceInvitationService } from '../services/workspace-invitation.service'; -import { Public } from '../../../decorators/public.decorator'; +import { Public } from '../../../common/decorators/public.decorator'; import { AcceptInviteDto, InvitationIdDto, InviteUserDto, RevokeInviteDto, } from '../dto/invitation.dto'; -import { JwtAuthGuard } from '../../../guards/jwt-auth.guard'; +import { JwtAuthGuard } from '../../../common/guards/jwt-auth.guard'; import { User, Workspace } from '@docmost/db/types/entity.types'; import WorkspaceAbilityFactory from '../../casl/abilities/workspace-ability.factory'; import { diff --git a/apps/server/src/core/workspace/dto/invitation.dto.ts b/apps/server/src/core/workspace/dto/invitation.dto.ts index 7becf50d..269fdb96 100644 --- a/apps/server/src/core/workspace/dto/invitation.dto.ts +++ b/apps/server/src/core/workspace/dto/invitation.dto.ts @@ -11,7 +11,7 @@ import { MaxLength, MinLength, } from 'class-validator'; -import { UserRole } from '../../../helpers/types/permission'; +import { UserRole } from '../../../common/helpers/types/permission'; export class InviteUserDto { @IsArray() diff --git a/apps/server/src/core/workspace/services/workspace-invitation.service.ts b/apps/server/src/core/workspace/services/workspace-invitation.service.ts index 9b274f31..7587d090 100644 --- a/apps/server/src/core/workspace/services/workspace-invitation.service.ts +++ b/apps/server/src/core/workspace/services/workspace-invitation.service.ts @@ -16,12 +16,12 @@ import { } from '@docmost/db/types/entity.types'; import { MailService } from '../../../integrations/mail/mail.service'; import InvitationEmail from '@docmost/transactional/emails/invitation-email'; -import { hashPassword } from '../../../helpers'; +import { hashPassword } from '../../../common/helpers'; import { GroupUserRepo } from '@docmost/db/repos/group/group-user.repo'; import InvitationAcceptedEmail from '@docmost/transactional/emails/invitation-accepted-email'; import { EnvironmentService } from '../../../integrations/environment/environment.service'; import { TokenService } from '../../auth/services/token.service'; -import { nanoIdGen } from '../../../helpers/nanoid.utils'; +import { nanoIdGen } from '../../../common/helpers/nanoid.utils'; import { PaginationOptions } from '@docmost/db/pagination/pagination-options'; import { executeWithPagination } from '@docmost/db/pagination/pagination'; import { TokensDto } from '../../auth/dto/tokens.dto'; diff --git a/apps/server/src/core/workspace/services/workspace.service.ts b/apps/server/src/core/workspace/services/workspace.service.ts index 72ece960..8d243ea6 100644 --- a/apps/server/src/core/workspace/services/workspace.service.ts +++ b/apps/server/src/core/workspace/services/workspace.service.ts @@ -7,7 +7,7 @@ import { CreateWorkspaceDto } from '../dto/create-workspace.dto'; import { UpdateWorkspaceDto } from '../dto/update-workspace.dto'; import { SpaceService } from '../../space/services/space.service'; import { CreateSpaceDto } from '../../space/dto/create-space.dto'; -import { SpaceRole, UserRole } from '../../../helpers/types/permission'; +import { SpaceRole, UserRole } from '../../../common/helpers/types/permission'; import { SpaceMemberService } from '../../space/services/space-member.service'; import { WorkspaceRepo } from '@docmost/db/repos/workspace/workspace.repo'; import { KyselyDB, KyselyTransaction } from '@docmost/db/types/kysely.types'; diff --git a/apps/server/src/database/migrate.ts b/apps/server/src/database/migrate.ts index 0eda25c5..22e62491 100644 --- a/apps/server/src/database/migrate.ts +++ b/apps/server/src/database/migrate.ts @@ -9,7 +9,7 @@ import { } from 'kysely'; import { run } from 'kysely-migration-cli'; import * as dotenv from 'dotenv'; -import { envPath } from '../helpers/utils'; +import { envPath } from '../common/helpers/utils'; dotenv.config({ path: envPath }); diff --git a/apps/server/src/database/migrations/20240324T085500-workspaces.ts b/apps/server/src/database/migrations/20240324T085500-workspaces.ts index 981908ba..cc5702ac 100644 --- a/apps/server/src/database/migrations/20240324T085500-workspaces.ts +++ b/apps/server/src/database/migrations/20240324T085500-workspaces.ts @@ -1,5 +1,5 @@ import { Kysely, sql } from 'kysely'; -import { UserRole } from '../../helpers/types/permission'; +import { UserRole } from '../../common/helpers/types/permission'; export async function up(db: Kysely): Promise { await db.schema diff --git a/apps/server/src/database/migrations/20240324T085900-spaces.ts b/apps/server/src/database/migrations/20240324T085900-spaces.ts index 2822a599..a4271a10 100644 --- a/apps/server/src/database/migrations/20240324T085900-spaces.ts +++ b/apps/server/src/database/migrations/20240324T085900-spaces.ts @@ -1,5 +1,8 @@ import { Kysely, sql } from 'kysely'; -import { SpaceRole, SpaceVisibility } from '../../helpers/types/permission'; +import { + SpaceRole, + SpaceVisibility, +} from '../../common/helpers/types/permission'; export async function up(db: Kysely): Promise { await db.schema diff --git a/apps/server/src/database/repos/space/utils.ts b/apps/server/src/database/repos/space/utils.ts index 7b7d8cd4..b976b367 100644 --- a/apps/server/src/database/repos/space/utils.ts +++ b/apps/server/src/database/repos/space/utils.ts @@ -1,5 +1,5 @@ import { UserSpaceRole } from '@docmost/db/repos/space/types'; -import { SpaceRole } from '../../../helpers/types/permission'; +import { SpaceRole } from '../../../common/helpers/types/permission'; export function findHighestUserSpaceRole(userSpaceRoles: UserSpaceRole[]) { if (!userSpaceRoles) { diff --git a/apps/server/src/database/repos/user/user.repo.ts b/apps/server/src/database/repos/user/user.repo.ts index 9c450da4..8ec07a90 100644 --- a/apps/server/src/database/repos/user/user.repo.ts +++ b/apps/server/src/database/repos/user/user.repo.ts @@ -2,7 +2,7 @@ import { Injectable } from '@nestjs/common'; import { InjectKysely } from 'nestjs-kysely'; import { KyselyDB, KyselyTransaction } from '@docmost/db/types/kysely.types'; import { Users } from '@docmost/db/types/db'; -import { hashPassword } from '../../../helpers'; +import { hashPassword } from '../../../common/helpers'; import { dbOrTx } from '@docmost/db/utils'; import { InsertableUser, diff --git a/apps/server/src/integrations/environment/environment.module.ts b/apps/server/src/integrations/environment/environment.module.ts index 2fcee965..61c388aa 100644 --- a/apps/server/src/integrations/environment/environment.module.ts +++ b/apps/server/src/integrations/environment/environment.module.ts @@ -2,7 +2,7 @@ import { Global, Module } from '@nestjs/common'; import { EnvironmentService } from './environment.service'; import { ConfigModule } from '@nestjs/config'; import { validate } from './environment.validation'; -import { envPath } from '../../helpers'; +import { envPath } from '../../common/helpers'; @Global() @Module({ diff --git a/apps/server/src/integrations/logger/internal-log-filter.ts b/apps/server/src/integrations/logger/internal-log-filter.ts deleted file mode 100644 index 1f6df4e5..00000000 --- a/apps/server/src/integrations/logger/internal-log-filter.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { ConsoleLogger } from '@nestjs/common'; - -export class InternalLogFilter extends ConsoleLogger { - static contextsToIgnore = [ - 'InstanceLoader', - 'RoutesResolver', - 'RouterExplorer', - 'WebSocketsController', - ]; - - log(_: any, context?: string): void { - if ( - process.env.NODE_ENV !== 'production' || - !InternalLogFilter.contextsToIgnore.includes(context) - ) { - super.log.apply(this, arguments); - } - } -} diff --git a/apps/server/src/integrations/queue/queue.module.ts b/apps/server/src/integrations/queue/queue.module.ts index b4ed917e..b28326fe 100644 --- a/apps/server/src/integrations/queue/queue.module.ts +++ b/apps/server/src/integrations/queue/queue.module.ts @@ -1,7 +1,7 @@ import { Global, Module } from '@nestjs/common'; import { BullModule } from '@nestjs/bullmq'; import { EnvironmentService } from '../environment/environment.service'; -import { createRetryStrategy, parseRedisUrl } from '../../helpers'; +import { createRetryStrategy, parseRedisUrl } from '../../common/helpers'; import { QueueName } from './constants'; @Global() diff --git a/apps/server/src/integrations/storage/drivers/s3.driver.ts b/apps/server/src/integrations/storage/drivers/s3.driver.ts index bbefb392..a35b4699 100644 --- a/apps/server/src/integrations/storage/drivers/s3.driver.ts +++ b/apps/server/src/integrations/storage/drivers/s3.driver.ts @@ -10,7 +10,7 @@ import { import { streamToBuffer } from '../storage.utils'; import { Readable } from 'stream'; import { getSignedUrl } from '@aws-sdk/s3-request-presigner'; -import { getMimeType } from '../../../helpers'; +import { getMimeType } from '../../../common/helpers'; export class S3Driver implements StorageDriver { private readonly s3Client: S3Client; diff --git a/apps/server/src/integrations/storage/providers/storage.provider.ts b/apps/server/src/integrations/storage/providers/storage.provider.ts index dfaab7fe..8a796fcf 100644 --- a/apps/server/src/integrations/storage/providers/storage.provider.ts +++ b/apps/server/src/integrations/storage/providers/storage.provider.ts @@ -12,7 +12,7 @@ import { } from '../interfaces'; import { LocalDriver, S3Driver } from '../drivers'; import * as process from 'node:process'; -import { LOCAL_STORAGE_PATH } from '../../../helpers'; +import { LOCAL_STORAGE_PATH } from '../../../common/helpers'; function createStorageDriver(disk: StorageConfig): StorageDriver { switch (disk.driver) { diff --git a/apps/server/src/main.ts b/apps/server/src/main.ts index 3e9fc24d..5c4042f2 100644 --- a/apps/server/src/main.ts +++ b/apps/server/src/main.ts @@ -5,10 +5,10 @@ import { NestFastifyApplication, } from '@nestjs/platform-fastify'; import { NotFoundException, ValidationPipe } from '@nestjs/common'; -import { TransformHttpResponseInterceptor } from './interceptors/http-response.interceptor'; +import { TransformHttpResponseInterceptor } from './common/interceptors/http-response.interceptor'; import fastifyMultipart from '@fastify/multipart'; import { WsRedisIoAdapter } from './ws/adapter/ws-redis.adapter'; -import { InternalLogFilter } from './integrations/logger/internal-log-filter'; +import { InternalLogFilter } from './common/logger/internal-log-filter'; async function bootstrap() { const app = await NestFactory.create( diff --git a/apps/server/src/ws/adapter/ws-redis.adapter.ts b/apps/server/src/ws/adapter/ws-redis.adapter.ts index 09f00af9..df1e4a7e 100644 --- a/apps/server/src/ws/adapter/ws-redis.adapter.ts +++ b/apps/server/src/ws/adapter/ws-redis.adapter.ts @@ -2,7 +2,7 @@ import { IoAdapter } from '@nestjs/platform-socket.io'; import { ServerOptions } from 'socket.io'; import { createAdapter } from '@socket.io/redis-adapter'; import Redis, { RedisOptions } from 'ioredis'; -import { createRetryStrategy } from '../../helpers'; +import { createRetryStrategy } from '../../common/helpers'; export class WsRedisIoAdapter extends IoAdapter { private adapterConstructor: ReturnType;