diff --git a/api/src/analytics/schemas/bot-stats.schema.ts b/api/src/analytics/schemas/bot-stats.schema.ts index 18e7bcdc..4bdb0a3d 100644 --- a/api/src/analytics/schemas/bot-stats.schema.ts +++ b/api/src/analytics/schemas/bot-stats.schema.ts @@ -7,9 +7,9 @@ */ import { ModelDefinition, Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; -import { THydratedDocument } from 'mongoose'; import { BaseSchema } from '@/utils/generics/base-schema'; +import { THydratedDocument } from '@/utils/types/filter.types'; export enum BotStatsType { outgoing = 'outgoing', diff --git a/api/src/attachment/controllers/attachment.controller.ts b/api/src/attachment/controllers/attachment.controller.ts index 9cc8a059..fbc3717a 100644 --- a/api/src/attachment/controllers/attachment.controller.ts +++ b/api/src/attachment/controllers/attachment.controller.ts @@ -24,7 +24,6 @@ import { } from '@nestjs/common'; import { FileFieldsInterceptor } from '@nestjs/platform-express'; import { CsrfCheck } from '@tekuconcept/nestjs-csrf'; -import { TFilterQuery } from 'mongoose'; import { diskStorage, memoryStorage } from 'multer'; import { v4 as uuidv4 } from 'uuid'; @@ -37,6 +36,7 @@ import { DeleteResult } from '@/utils/generics/base-repository'; import { PageQueryDto } from '@/utils/pagination/pagination-query.dto'; import { PageQueryPipe } from '@/utils/pagination/pagination-query.pipe'; import { SearchFilterPipe } from '@/utils/pipes/search-filter.pipe'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { AttachmentDownloadDto } from '../dto/attachment.dto'; import { Attachment } from '../schemas/attachment.schema'; diff --git a/api/src/attachment/schemas/attachment.schema.ts b/api/src/attachment/schemas/attachment.schema.ts index 5a201f21..6d042ba5 100644 --- a/api/src/attachment/schemas/attachment.schema.ts +++ b/api/src/attachment/schemas/attachment.schema.ts @@ -7,13 +7,13 @@ */ import { ModelDefinition, Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; -import { THydratedDocument } from 'mongoose'; import { FileType } from '@/chat/schemas/types/attachment'; import { config } from '@/config'; import { BaseSchema } from '@/utils/generics/base-schema'; import { LifecycleHookManager } from '@/utils/generics/lifecycle-hook-manager'; import { buildURL } from '@/utils/helpers/URL'; +import { THydratedDocument } from '@/utils/types/filter.types'; import { MIME_REGEX } from '../utilities'; diff --git a/api/src/chat/controllers/block.controller.ts b/api/src/chat/controllers/block.controller.ts index 6621b6f6..a5fbe5d5 100644 --- a/api/src/chat/controllers/block.controller.ts +++ b/api/src/chat/controllers/block.controller.ts @@ -21,7 +21,6 @@ import { UseInterceptors, } from '@nestjs/common'; import { CsrfCheck } from '@tekuconcept/nestjs-csrf'; -import { TFilterQuery } from 'mongoose'; import { CsrfInterceptor } from '@/interceptors/csrf.interceptor'; import { LoggerService } from '@/logger/logger.service'; @@ -33,6 +32,7 @@ import { BaseController } from '@/utils/generics/base-controller'; import { DeleteResult } from '@/utils/generics/base-repository'; import { PopulatePipe } from '@/utils/pipes/populate.pipe'; import { SearchFilterPipe } from '@/utils/pipes/search-filter.pipe'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { BlockCreateDto, BlockUpdateDto } from '../dto/block.dto'; import { diff --git a/api/src/chat/controllers/category.controller.ts b/api/src/chat/controllers/category.controller.ts index bc49ca01..4d90fc39 100644 --- a/api/src/chat/controllers/category.controller.ts +++ b/api/src/chat/controllers/category.controller.ts @@ -21,7 +21,6 @@ import { UseInterceptors, } from '@nestjs/common'; import { CsrfCheck } from '@tekuconcept/nestjs-csrf'; -import { TFilterQuery } from 'mongoose'; import { CsrfInterceptor } from '@/interceptors/csrf.interceptor'; import { LoggerService } from '@/logger/logger.service'; @@ -30,6 +29,7 @@ import { DeleteResult } from '@/utils/generics/base-repository'; import { PageQueryDto } from '@/utils/pagination/pagination-query.dto'; import { PageQueryPipe } from '@/utils/pagination/pagination-query.pipe'; import { SearchFilterPipe } from '@/utils/pipes/search-filter.pipe'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { CategoryCreateDto, CategoryUpdateDto } from '../dto/category.dto'; import { Category } from '../schemas/category.schema'; diff --git a/api/src/chat/controllers/context-var.controller.ts b/api/src/chat/controllers/context-var.controller.ts index e4c3dcd5..53db0735 100644 --- a/api/src/chat/controllers/context-var.controller.ts +++ b/api/src/chat/controllers/context-var.controller.ts @@ -21,7 +21,6 @@ import { UseInterceptors, } from '@nestjs/common'; import { CsrfCheck } from '@tekuconcept/nestjs-csrf'; -import { TFilterQuery } from 'mongoose'; import { CsrfInterceptor } from '@/interceptors/csrf.interceptor'; import { LoggerService } from '@/logger/logger.service'; @@ -30,6 +29,7 @@ import { DeleteResult } from '@/utils/generics/base-repository'; import { PageQueryDto } from '@/utils/pagination/pagination-query.dto'; import { PageQueryPipe } from '@/utils/pagination/pagination-query.pipe'; import { SearchFilterPipe } from '@/utils/pipes/search-filter.pipe'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { ContextVarCreateDto, diff --git a/api/src/chat/controllers/label.controller.ts b/api/src/chat/controllers/label.controller.ts index 0d03baaf..b5b76fae 100644 --- a/api/src/chat/controllers/label.controller.ts +++ b/api/src/chat/controllers/label.controller.ts @@ -14,13 +14,12 @@ import { HttpCode, NotFoundException, Param, - Post, Patch, + Post, Query, UseInterceptors, } from '@nestjs/common'; import { CsrfCheck } from '@tekuconcept/nestjs-csrf'; -import { TFilterQuery } from 'mongoose'; import { CsrfInterceptor } from '@/interceptors/csrf.interceptor'; import { LoggerService } from '@/logger/logger.service'; @@ -29,6 +28,7 @@ import { PageQueryDto } from '@/utils/pagination/pagination-query.dto'; import { PageQueryPipe } from '@/utils/pagination/pagination-query.pipe'; import { PopulatePipe } from '@/utils/pipes/populate.pipe'; import { SearchFilterPipe } from '@/utils/pipes/search-filter.pipe'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { LabelCreateDto, LabelUpdateDto } from '../dto/label.dto'; import { diff --git a/api/src/chat/controllers/message.controller.ts b/api/src/chat/controllers/message.controller.ts index 2cc8b46e..dd7dce25 100644 --- a/api/src/chat/controllers/message.controller.ts +++ b/api/src/chat/controllers/message.controller.ts @@ -21,7 +21,6 @@ import { import { EventEmitter2 } from '@nestjs/event-emitter'; import { CsrfCheck } from '@tekuconcept/nestjs-csrf'; import { Request } from 'express'; // Import the Express request and response types -import { TFilterQuery } from 'mongoose'; import { ChannelService } from '@/channel/channel.service'; import { GenericEventWrapper } from '@/channel/lib/EventWrapper'; @@ -33,6 +32,7 @@ import { PageQueryDto } from '@/utils/pagination/pagination-query.dto'; import { PageQueryPipe } from '@/utils/pagination/pagination-query.pipe'; import { PopulatePipe } from '@/utils/pipes/populate.pipe'; import { SearchFilterPipe } from '@/utils/pipes/search-filter.pipe'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { MessageCreateDto } from '../dto/message.dto'; import { diff --git a/api/src/chat/controllers/subscriber.controller.ts b/api/src/chat/controllers/subscriber.controller.ts index 0ebd45f3..2b086e35 100644 --- a/api/src/chat/controllers/subscriber.controller.ts +++ b/api/src/chat/controllers/subscriber.controller.ts @@ -18,7 +18,6 @@ import { UseInterceptors, } from '@nestjs/common'; import { CsrfCheck } from '@tekuconcept/nestjs-csrf'; -import { TFilterQuery } from 'mongoose'; import { CsrfInterceptor } from '@/interceptors/csrf.interceptor'; import { LoggerService } from '@/logger/logger.service'; @@ -29,6 +28,7 @@ import { PageQueryDto } from '@/utils/pagination/pagination-query.dto'; import { PageQueryPipe } from '@/utils/pagination/pagination-query.pipe'; import { PopulatePipe } from '@/utils/pipes/populate.pipe'; import { SearchFilterPipe } from '@/utils/pipes/search-filter.pipe'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { SubscriberUpdateDto } from '../dto/subscriber.dto'; import { diff --git a/api/src/chat/repositories/block.repository.ts b/api/src/chat/repositories/block.repository.ts index 5d1440db..c796e758 100644 --- a/api/src/chat/repositories/block.repository.ts +++ b/api/src/chat/repositories/block.repository.ts @@ -13,7 +13,6 @@ import { Document, Model, Query, - TFilterQuery, Types, UpdateQuery, UpdateWithAggregationPipeline, @@ -21,6 +20,7 @@ import { import { LoggerService } from '@/logger/logger.service'; import { BaseRepository, DeleteResult } from '@/utils/generics/base-repository'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { BlockCreateDto, BlockUpdateDto } from '../dto/block.dto'; import { diff --git a/api/src/chat/repositories/category.repository.ts b/api/src/chat/repositories/category.repository.ts index 6147b63d..b6cc53ea 100644 --- a/api/src/chat/repositories/category.repository.ts +++ b/api/src/chat/repositories/category.repository.ts @@ -9,9 +9,10 @@ import { ForbiddenException, Injectable, Optional } from '@nestjs/common'; import { EventEmitter2 } from '@nestjs/event-emitter'; import { InjectModel } from '@nestjs/mongoose'; -import { Document, Model, Query, TFilterQuery } from 'mongoose'; +import { Document, Model, Query } from 'mongoose'; import { BaseRepository, DeleteResult } from '@/utils/generics/base-repository'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { Category } from '../schemas/category.schema'; import { BlockService } from '../services/block.service'; diff --git a/api/src/chat/repositories/context-var.repository.ts b/api/src/chat/repositories/context-var.repository.ts index cf2bc185..f2125252 100644 --- a/api/src/chat/repositories/context-var.repository.ts +++ b/api/src/chat/repositories/context-var.repository.ts @@ -14,9 +14,10 @@ import { } from '@nestjs/common'; import { EventEmitter2 } from '@nestjs/event-emitter'; import { InjectModel } from '@nestjs/mongoose'; -import { Document, Model, Query, TFilterQuery } from 'mongoose'; +import { Document, Model, Query } from 'mongoose'; import { BaseRepository, DeleteResult } from '@/utils/generics/base-repository'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { ContextVar } from '../schemas/context-var.schema'; import { BlockService } from '../services/block.service'; diff --git a/api/src/chat/repositories/label.repository.ts b/api/src/chat/repositories/label.repository.ts index 6bcf0624..5794c9d3 100644 --- a/api/src/chat/repositories/label.repository.ts +++ b/api/src/chat/repositories/label.repository.ts @@ -9,9 +9,10 @@ import { Injectable } from '@nestjs/common'; import { EventEmitter2 } from '@nestjs/event-emitter'; import { InjectModel } from '@nestjs/mongoose'; -import { Document, Model, Query, TFilterQuery } from 'mongoose'; +import { Document, Model, Query } from 'mongoose'; import { BaseRepository, DeleteResult } from '@/utils/generics/base-repository'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { Label, diff --git a/api/src/chat/repositories/subscriber.repository.ts b/api/src/chat/repositories/subscriber.repository.ts index f33a1544..9c81cfdd 100644 --- a/api/src/chat/repositories/subscriber.repository.ts +++ b/api/src/chat/repositories/subscriber.repository.ts @@ -13,12 +13,12 @@ import { Document, Model, Query, - TFilterQuery, UpdateQuery, UpdateWithAggregationPipeline, } from 'mongoose'; import { BaseRepository } from '@/utils/generics/base-repository'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { SubscriberUpdateDto } from '../dto/subscriber.dto'; import { diff --git a/api/src/chat/schemas/block.schema.ts b/api/src/chat/schemas/block.schema.ts index e1135993..ab9a0b7a 100644 --- a/api/src/chat/schemas/block.schema.ts +++ b/api/src/chat/schemas/block.schema.ts @@ -8,11 +8,14 @@ import { ModelDefinition, Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; import { Exclude, Transform, Type } from 'class-transformer'; -import { Schema as MongooseSchema, THydratedDocument } from 'mongoose'; +import { Schema as MongooseSchema } from 'mongoose'; import { BaseSchema } from '@/utils/generics/base-schema'; import { LifecycleHookManager } from '@/utils/generics/lifecycle-hook-manager'; -import { TFilterPopulateFields } from '@/utils/types/filter.types'; +import { + TFilterPopulateFields, + THydratedDocument, +} from '@/utils/types/filter.types'; import { isValidMessage } from '../validation-rules/is-message'; import { isPatternList } from '../validation-rules/is-pattern-list'; diff --git a/api/src/chat/schemas/category.schema.ts b/api/src/chat/schemas/category.schema.ts index 7c27124c..7ed8cdf3 100644 --- a/api/src/chat/schemas/category.schema.ts +++ b/api/src/chat/schemas/category.schema.ts @@ -6,11 +6,11 @@ * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). */ -import { Prop, Schema, SchemaFactory, ModelDefinition } from '@nestjs/mongoose'; -import { THydratedDocument } from 'mongoose'; +import { ModelDefinition, Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; import { BaseSchema } from '@/utils/generics/base-schema'; import { LifecycleHookManager } from '@/utils/generics/lifecycle-hook-manager'; +import { THydratedDocument } from '@/utils/types/filter.types'; @Schema({ timestamps: true }) export class Category extends BaseSchema { diff --git a/api/src/chat/schemas/context-var.schema.ts b/api/src/chat/schemas/context-var.schema.ts index fa1b4e8c..eb1b77ad 100644 --- a/api/src/chat/schemas/context-var.schema.ts +++ b/api/src/chat/schemas/context-var.schema.ts @@ -6,11 +6,11 @@ * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). */ -import { Prop, Schema, SchemaFactory, ModelDefinition } from '@nestjs/mongoose'; -import { THydratedDocument } from 'mongoose'; +import { ModelDefinition, Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; import { BaseSchema } from '@/utils/generics/base-schema'; import { LifecycleHookManager } from '@/utils/generics/lifecycle-hook-manager'; +import { THydratedDocument } from '@/utils/types/filter.types'; @Schema({ timestamps: true }) export class ContextVar extends BaseSchema { diff --git a/api/src/chat/schemas/conversation.schema.ts b/api/src/chat/schemas/conversation.schema.ts index 45285ef6..50fb33bd 100644 --- a/api/src/chat/schemas/conversation.schema.ts +++ b/api/src/chat/schemas/conversation.schema.ts @@ -6,12 +6,15 @@ * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). */ -import { Prop, Schema, SchemaFactory, ModelDefinition } from '@nestjs/mongoose'; +import { ModelDefinition, Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; import { Transform, Type } from 'class-transformer'; -import { THydratedDocument, Schema as MongooseSchema } from 'mongoose'; +import { Schema as MongooseSchema } from 'mongoose'; import { BaseSchema } from '@/utils/generics/base-schema'; -import { TFilterPopulateFields } from '@/utils/types/filter.types'; +import { + TFilterPopulateFields, + THydratedDocument, +} from '@/utils/types/filter.types'; import { Block } from './block.schema'; import { Subscriber } from './subscriber.schema'; diff --git a/api/src/chat/schemas/label.schema.ts b/api/src/chat/schemas/label.schema.ts index 5fc44fd2..592d99e2 100644 --- a/api/src/chat/schemas/label.schema.ts +++ b/api/src/chat/schemas/label.schema.ts @@ -6,13 +6,15 @@ * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). */ -import { Prop, Schema, SchemaFactory, ModelDefinition } from '@nestjs/mongoose'; +import { ModelDefinition, Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; import { Exclude, Type } from 'class-transformer'; -import { THydratedDocument } from 'mongoose'; import { BaseSchema } from '@/utils/generics/base-schema'; import { LifecycleHookManager } from '@/utils/generics/lifecycle-hook-manager'; -import { TFilterPopulateFields } from '@/utils/types/filter.types'; +import { + TFilterPopulateFields, + THydratedDocument, +} from '@/utils/types/filter.types'; import { Subscriber } from './subscriber.schema'; diff --git a/api/src/chat/schemas/subscriber.schema.ts b/api/src/chat/schemas/subscriber.schema.ts index 155f7097..87982362 100644 --- a/api/src/chat/schemas/subscriber.schema.ts +++ b/api/src/chat/schemas/subscriber.schema.ts @@ -6,15 +6,18 @@ * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). */ -import { Prop, Schema, SchemaFactory, ModelDefinition } from '@nestjs/mongoose'; +import { ModelDefinition, Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; import { Transform, Type } from 'class-transformer'; -import { THydratedDocument, Schema as MongooseSchema } from 'mongoose'; +import { Schema as MongooseSchema } from 'mongoose'; import { Attachment } from '@/attachment/schemas/attachment.schema'; import { User } from '@/user/schemas/user.schema'; import { BaseSchema } from '@/utils/generics/base-schema'; import { LifecycleHookManager } from '@/utils/generics/lifecycle-hook-manager'; -import { TFilterPopulateFields } from '@/utils/types/filter.types'; +import { + TFilterPopulateFields, + THydratedDocument, +} from '@/utils/types/filter.types'; import { Label } from './label.schema'; import { ChannelData } from './types/channel'; diff --git a/api/src/cms/controllers/content-type.controller.ts b/api/src/cms/controllers/content-type.controller.ts index 441b8e7e..34ccbda3 100644 --- a/api/src/cms/controllers/content-type.controller.ts +++ b/api/src/cms/controllers/content-type.controller.ts @@ -20,7 +20,6 @@ import { UseInterceptors, } from '@nestjs/common'; import { CsrfCheck } from '@tekuconcept/nestjs-csrf'; -import { TFilterQuery } from 'mongoose'; import { CsrfInterceptor } from '@/interceptors/csrf.interceptor'; import { LoggerService } from '@/logger/logger.service'; @@ -28,6 +27,7 @@ import { BaseController } from '@/utils/generics/base-controller'; import { PageQueryDto } from '@/utils/pagination/pagination-query.dto'; import { PageQueryPipe } from '@/utils/pagination/pagination-query.pipe'; import { SearchFilterPipe } from '@/utils/pipes/search-filter.pipe'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { ContentTypeCreateDto, diff --git a/api/src/cms/controllers/content.controller.ts b/api/src/cms/controllers/content.controller.ts index f8b79d46..72eaf9bf 100644 --- a/api/src/cms/controllers/content.controller.ts +++ b/api/src/cms/controllers/content.controller.ts @@ -24,7 +24,6 @@ import { } from '@nestjs/common'; import { BadRequestException } from '@nestjs/common/exceptions'; import { CsrfCheck } from '@tekuconcept/nestjs-csrf'; -import { TFilterQuery } from 'mongoose'; import Papa from 'papaparse'; import { AttachmentService } from '@/attachment/services/attachment.service'; @@ -36,6 +35,7 @@ import { PageQueryDto } from '@/utils/pagination/pagination-query.dto'; import { PageQueryPipe } from '@/utils/pagination/pagination-query.pipe'; import { PopulatePipe } from '@/utils/pipes/populate.pipe'; import { SearchFilterPipe } from '@/utils/pipes/search-filter.pipe'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { ContentCreateDto, ContentUpdateDto } from '../dto/content.dto'; import { diff --git a/api/src/cms/controllers/menu.controller.ts b/api/src/cms/controllers/menu.controller.ts index 68839464..a0f7d800 100644 --- a/api/src/cms/controllers/menu.controller.ts +++ b/api/src/cms/controllers/menu.controller.ts @@ -14,13 +14,12 @@ import { InternalServerErrorException, NotFoundException, Param, - Post, Patch, + Post, Query, UseInterceptors, } from '@nestjs/common'; import { CsrfCheck } from '@tekuconcept/nestjs-csrf'; -import { TFilterQuery } from 'mongoose'; import { CsrfInterceptor } from '@/interceptors/csrf.interceptor'; import { LoggerService } from '@/logger/logger.service'; @@ -28,6 +27,7 @@ import { BaseController } from '@/utils/generics/base-controller'; import { PageQueryDto } from '@/utils/pagination/pagination-query.dto'; import { PageQueryPipe } from '@/utils/pagination/pagination-query.pipe'; import { SearchFilterPipe } from '@/utils/pipes/search-filter.pipe'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { MenuCreateDto, MenuQueryDto } from '../dto/menu.dto'; import { Menu, MenuFull, MenuPopulate, MenuStub } from '../schemas/menu.schema'; diff --git a/api/src/cms/repositories/content-type.repository.ts b/api/src/cms/repositories/content-type.repository.ts index 5619023a..a3b465c6 100644 --- a/api/src/cms/repositories/content-type.repository.ts +++ b/api/src/cms/repositories/content-type.repository.ts @@ -9,10 +9,11 @@ import { ForbiddenException, Injectable, Optional } from '@nestjs/common'; import { EventEmitter2 } from '@nestjs/event-emitter'; import { InjectModel } from '@nestjs/mongoose'; -import { Document, Model, Query, TFilterQuery } from 'mongoose'; +import { Document, Model, Query } from 'mongoose'; import { BlockService } from '@/chat/services/block.service'; import { BaseRepository, DeleteResult } from '@/utils/generics/base-repository'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { ContentType } from '../schemas/content-type.schema'; import { Content } from '../schemas/content.schema'; diff --git a/api/src/cms/repositories/content.repository.ts b/api/src/cms/repositories/content.repository.ts index 1b9930e1..4dea95ce 100644 --- a/api/src/cms/repositories/content.repository.ts +++ b/api/src/cms/repositories/content.repository.ts @@ -14,12 +14,12 @@ import { HydratedDocument, Model, Query, - TFilterQuery, UpdateQuery, UpdateWithAggregationPipeline, } from 'mongoose'; import { BaseRepository } from '@/utils/generics/base-repository'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { Content, diff --git a/api/src/cms/schemas/menu.schema.ts b/api/src/cms/schemas/menu.schema.ts index 0d089d66..125533e7 100644 --- a/api/src/cms/schemas/menu.schema.ts +++ b/api/src/cms/schemas/menu.schema.ts @@ -6,13 +6,16 @@ * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). */ -import { Prop, Schema, SchemaFactory, ModelDefinition } from '@nestjs/mongoose'; +import { ModelDefinition, Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; import { Transform, Type } from 'class-transformer'; -import { THydratedDocument, Schema as MongooseSchema } from 'mongoose'; +import { Schema as MongooseSchema } from 'mongoose'; import { BaseSchema } from '@/utils/generics/base-schema'; import { LifecycleHookManager } from '@/utils/generics/lifecycle-hook-manager'; -import { TFilterPopulateFields } from '@/utils/types/filter.types'; +import { + TFilterPopulateFields, + THydratedDocument, +} from '@/utils/types/filter.types'; import { MenuType } from './types/menu'; diff --git a/api/src/cms/services/content.service.ts b/api/src/cms/services/content.service.ts index 7885466a..331736b4 100644 --- a/api/src/cms/services/content.service.ts +++ b/api/src/cms/services/content.service.ts @@ -7,7 +7,6 @@ */ import { Injectable } from '@nestjs/common'; -import { TFilterQuery } from 'mongoose'; import { Attachment } from '@/attachment/schemas/attachment.schema'; import { AttachmentService } from '@/attachment/services/attachment.service'; @@ -16,6 +15,7 @@ import { StdOutgoingListMessage } from '@/chat/schemas/types/message'; import { ContentOptions } from '@/chat/schemas/types/options'; import { LoggerService } from '@/logger/logger.service'; import { BaseService } from '@/utils/generics/base-service'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { ContentRepository } from '../repositories/content.repository'; import { diff --git a/api/src/i18n/controllers/language.controller.ts b/api/src/i18n/controllers/language.controller.ts index 7c367c2f..899ece71 100644 --- a/api/src/i18n/controllers/language.controller.ts +++ b/api/src/i18n/controllers/language.controller.ts @@ -21,7 +21,6 @@ import { UseInterceptors, } from '@nestjs/common'; import { CsrfCheck } from '@tekuconcept/nestjs-csrf'; -import { TFilterQuery } from 'mongoose'; import { CsrfInterceptor } from '@/interceptors/csrf.interceptor'; import { LoggerService } from '@/logger/logger.service'; @@ -30,6 +29,7 @@ import { DeleteResult } from '@/utils/generics/base-repository'; import { PageQueryDto } from '@/utils/pagination/pagination-query.dto'; import { PageQueryPipe } from '@/utils/pagination/pagination-query.pipe'; import { SearchFilterPipe } from '@/utils/pipes/search-filter.pipe'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { LanguageCreateDto, LanguageUpdateDto } from '../dto/language.dto'; import { Language } from '../schemas/language.schema'; diff --git a/api/src/i18n/controllers/translation.controller.ts b/api/src/i18n/controllers/translation.controller.ts index 8736d81f..b0795839 100644 --- a/api/src/i18n/controllers/translation.controller.ts +++ b/api/src/i18n/controllers/translation.controller.ts @@ -21,7 +21,6 @@ import { UseInterceptors, } from '@nestjs/common'; import { CsrfCheck } from '@tekuconcept/nestjs-csrf'; -import { TFilterQuery } from 'mongoose'; import { CsrfInterceptor } from '@/interceptors/csrf.interceptor'; import { LoggerService } from '@/logger/logger.service'; @@ -31,6 +30,7 @@ import { DeleteResult } from '@/utils/generics/base-repository'; import { PageQueryDto } from '@/utils/pagination/pagination-query.dto'; import { PageQueryPipe } from '@/utils/pagination/pagination-query.pipe'; import { SearchFilterPipe } from '@/utils/pipes/search-filter.pipe'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { TranslationUpdateDto } from '../dto/translation.dto'; import { Translation } from '../schemas/translation.schema'; diff --git a/api/src/i18n/repositories/language.repository.ts b/api/src/i18n/repositories/language.repository.ts index b0651d32..67799afd 100644 --- a/api/src/i18n/repositories/language.repository.ts +++ b/api/src/i18n/repositories/language.repository.ts @@ -9,9 +9,10 @@ import { Injectable } from '@nestjs/common'; import { EventEmitter2 } from '@nestjs/event-emitter'; import { InjectModel } from '@nestjs/mongoose'; -import { Document, Model, Query, TFilterQuery } from 'mongoose'; +import { Document, Model, Query } from 'mongoose'; import { BaseRepository, DeleteResult } from '@/utils/generics/base-repository'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { Language } from '../schemas/language.schema'; diff --git a/api/src/i18n/schemas/language.schema.ts b/api/src/i18n/schemas/language.schema.ts index b4980625..2581666b 100644 --- a/api/src/i18n/schemas/language.schema.ts +++ b/api/src/i18n/schemas/language.schema.ts @@ -6,11 +6,11 @@ * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). */ -import { Prop, Schema, SchemaFactory, ModelDefinition } from '@nestjs/mongoose'; -import { THydratedDocument } from 'mongoose'; +import { ModelDefinition, Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; import { BaseSchema } from '@/utils/generics/base-schema'; import { LifecycleHookManager } from '@/utils/generics/lifecycle-hook-manager'; +import { THydratedDocument } from '@/utils/types/filter.types'; @Schema({ timestamps: true }) export class Language extends BaseSchema { diff --git a/api/src/i18n/schemas/translation.schema.ts b/api/src/i18n/schemas/translation.schema.ts index 7ee0b874..92270566 100644 --- a/api/src/i18n/schemas/translation.schema.ts +++ b/api/src/i18n/schemas/translation.schema.ts @@ -6,11 +6,11 @@ * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). */ -import { Prop, Schema, SchemaFactory, ModelDefinition } from '@nestjs/mongoose'; -import { THydratedDocument } from 'mongoose'; +import { ModelDefinition, Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; import { BaseSchema } from '@/utils/generics/base-schema'; import { LifecycleHookManager } from '@/utils/generics/lifecycle-hook-manager'; +import { THydratedDocument } from '@/utils/types/filter.types'; @Schema({ timestamps: true }) export class Translation extends BaseSchema { diff --git a/api/src/nlp/controllers/nlp-entity.controller.ts b/api/src/nlp/controllers/nlp-entity.controller.ts index 0e729e7d..d5066ec6 100644 --- a/api/src/nlp/controllers/nlp-entity.controller.ts +++ b/api/src/nlp/controllers/nlp-entity.controller.ts @@ -23,7 +23,6 @@ import { UseInterceptors, } from '@nestjs/common'; import { CsrfCheck } from '@tekuconcept/nestjs-csrf'; -import { TFilterQuery } from 'mongoose'; import { CsrfInterceptor } from '@/interceptors/csrf.interceptor'; import { LoggerService } from '@/logger/logger.service'; @@ -33,6 +32,7 @@ import { PageQueryDto } from '@/utils/pagination/pagination-query.dto'; import { PageQueryPipe } from '@/utils/pagination/pagination-query.pipe'; import { PopulatePipe } from '@/utils/pipes/populate.pipe'; import { SearchFilterPipe } from '@/utils/pipes/search-filter.pipe'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { NlpEntityCreateDto } from '../dto/nlp-entity.dto'; import { diff --git a/api/src/nlp/controllers/nlp-sample.controller.ts b/api/src/nlp/controllers/nlp-sample.controller.ts index fc4f41b9..5dbc5197 100644 --- a/api/src/nlp/controllers/nlp-sample.controller.ts +++ b/api/src/nlp/controllers/nlp-sample.controller.ts @@ -29,7 +29,6 @@ import { } from '@nestjs/common'; import { CsrfCheck } from '@tekuconcept/nestjs-csrf'; import { Response } from 'express'; -import { TFilterQuery } from 'mongoose'; import Papa from 'papaparse'; import { AttachmentService } from '@/attachment/services/attachment.service'; @@ -44,6 +43,7 @@ import { PageQueryDto } from '@/utils/pagination/pagination-query.dto'; import { PageQueryPipe } from '@/utils/pagination/pagination-query.pipe'; import { PopulatePipe } from '@/utils/pipes/populate.pipe'; import { SearchFilterPipe } from '@/utils/pipes/search-filter.pipe'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { NlpSampleCreateDto, NlpSampleDto } from '../dto/nlp-sample.dto'; import { diff --git a/api/src/nlp/controllers/nlp-value.controller.ts b/api/src/nlp/controllers/nlp-value.controller.ts index d0773a50..80540c9e 100644 --- a/api/src/nlp/controllers/nlp-value.controller.ts +++ b/api/src/nlp/controllers/nlp-value.controller.ts @@ -7,21 +7,20 @@ */ import { + BadRequestException, Body, Controller, Delete, Get, - Param, - Post, - Patch, HttpCode, - Query, NotFoundException, + Param, + Patch, + Post, + Query, UseInterceptors, - BadRequestException, } from '@nestjs/common'; import { CsrfCheck } from '@tekuconcept/nestjs-csrf'; -import { TFilterQuery } from 'mongoose'; import { CsrfInterceptor } from '@/interceptors/csrf.interceptor'; import { LoggerService } from '@/logger/logger.service'; @@ -31,6 +30,7 @@ import { PageQueryDto } from '@/utils/pagination/pagination-query.dto'; import { PageQueryPipe } from '@/utils/pagination/pagination-query.pipe'; import { PopulatePipe } from '@/utils/pipes/populate.pipe'; import { SearchFilterPipe } from '@/utils/pipes/search-filter.pipe'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { NlpValueCreateDto, NlpValueUpdateDto } from '../dto/nlp-value.dto'; import { diff --git a/api/src/nlp/repositories/nlp-entity.repository.ts b/api/src/nlp/repositories/nlp-entity.repository.ts index 692896cc..fdaac277 100644 --- a/api/src/nlp/repositories/nlp-entity.repository.ts +++ b/api/src/nlp/repositories/nlp-entity.repository.ts @@ -9,9 +9,10 @@ import { Injectable } from '@nestjs/common'; import { EventEmitter2 } from '@nestjs/event-emitter'; import { InjectModel } from '@nestjs/mongoose'; -import { Document, Model, Query, TFilterQuery } from 'mongoose'; +import { Document, Model, Query } from 'mongoose'; import { BaseRepository, DeleteResult } from '@/utils/generics/base-repository'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { NLP_ENTITY_POPULATE, diff --git a/api/src/nlp/repositories/nlp-sample.repository.ts b/api/src/nlp/repositories/nlp-sample.repository.ts index e653d880..f5f953d1 100644 --- a/api/src/nlp/repositories/nlp-sample.repository.ts +++ b/api/src/nlp/repositories/nlp-sample.repository.ts @@ -9,9 +9,10 @@ import { Injectable } from '@nestjs/common'; import { EventEmitter2 } from '@nestjs/event-emitter'; import { InjectModel } from '@nestjs/mongoose'; -import { Document, Model, Query, TFilterQuery } from 'mongoose'; +import { Document, Model, Query } from 'mongoose'; import { BaseRepository, DeleteResult } from '@/utils/generics/base-repository'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { NLP_SAMPLE_POPULATE, diff --git a/api/src/nlp/repositories/nlp-value.repository.ts b/api/src/nlp/repositories/nlp-value.repository.ts index 90d7aa3c..a09b7cde 100644 --- a/api/src/nlp/repositories/nlp-value.repository.ts +++ b/api/src/nlp/repositories/nlp-value.repository.ts @@ -9,9 +9,10 @@ import { Injectable } from '@nestjs/common'; import { EventEmitter2 } from '@nestjs/event-emitter'; import { InjectModel } from '@nestjs/mongoose'; -import { Document, Model, Query, TFilterQuery } from 'mongoose'; +import { Document, Model, Query } from 'mongoose'; import { BaseRepository, DeleteResult } from '@/utils/generics/base-repository'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { NLP_VALUE_POPULATE, diff --git a/api/src/nlp/schemas/nlp-entity.schema.ts b/api/src/nlp/schemas/nlp-entity.schema.ts index f729cb68..77012174 100644 --- a/api/src/nlp/schemas/nlp-entity.schema.ts +++ b/api/src/nlp/schemas/nlp-entity.schema.ts @@ -6,13 +6,15 @@ * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). */ -import { Prop, Schema, SchemaFactory, ModelDefinition } from '@nestjs/mongoose'; +import { ModelDefinition, Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; import { Exclude, Type } from 'class-transformer'; -import { THydratedDocument } from 'mongoose'; import { BaseSchema } from '@/utils/generics/base-schema'; import { LifecycleHookManager } from '@/utils/generics/lifecycle-hook-manager'; -import { TFilterPopulateFields } from '@/utils/types/filter.types'; +import { + TFilterPopulateFields, + THydratedDocument, +} from '@/utils/types/filter.types'; import { Lookup } from '../dto/nlp-entity.dto'; diff --git a/api/src/nlp/schemas/nlp-sample-entity.schema.ts b/api/src/nlp/schemas/nlp-sample-entity.schema.ts index 484d500f..31c2f66c 100644 --- a/api/src/nlp/schemas/nlp-sample-entity.schema.ts +++ b/api/src/nlp/schemas/nlp-sample-entity.schema.ts @@ -6,12 +6,15 @@ * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). */ -import { Prop, Schema, SchemaFactory, ModelDefinition } from '@nestjs/mongoose'; +import { ModelDefinition, Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; import { Transform, Type } from 'class-transformer'; -import { THydratedDocument, Schema as MongooseSchema } from 'mongoose'; +import { Schema as MongooseSchema } from 'mongoose'; import { BaseSchema } from '@/utils/generics/base-schema'; -import { TFilterPopulateFields } from '@/utils/types/filter.types'; +import { + TFilterPopulateFields, + THydratedDocument, +} from '@/utils/types/filter.types'; import { NlpEntity } from './nlp-entity.schema'; import { NlpSample } from './nlp-sample.schema'; diff --git a/api/src/nlp/schemas/nlp-sample.schema.ts b/api/src/nlp/schemas/nlp-sample.schema.ts index ff8fd7c1..72d1900e 100644 --- a/api/src/nlp/schemas/nlp-sample.schema.ts +++ b/api/src/nlp/schemas/nlp-sample.schema.ts @@ -8,12 +8,15 @@ import { ModelDefinition, Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; import { Exclude, Transform, Type } from 'class-transformer'; -import { THydratedDocument, Schema as MongooseSchema } from 'mongoose'; +import { Schema as MongooseSchema } from 'mongoose'; import { Language } from '@/i18n/schemas/language.schema'; import { BaseSchema } from '@/utils/generics/base-schema'; import { LifecycleHookManager } from '@/utils/generics/lifecycle-hook-manager'; -import { TFilterPopulateFields } from '@/utils/types/filter.types'; +import { + TFilterPopulateFields, + THydratedDocument, +} from '@/utils/types/filter.types'; import { NlpSampleEntity } from './nlp-sample-entity.schema'; import { NlpSampleState } from './types'; diff --git a/api/src/nlp/schemas/nlp-value.schema.ts b/api/src/nlp/schemas/nlp-value.schema.ts index a201263d..7469fc87 100644 --- a/api/src/nlp/schemas/nlp-value.schema.ts +++ b/api/src/nlp/schemas/nlp-value.schema.ts @@ -6,13 +6,16 @@ * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). */ -import { Prop, Schema, SchemaFactory, ModelDefinition } from '@nestjs/mongoose'; +import { ModelDefinition, Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; import { Transform, Type } from 'class-transformer'; -import { THydratedDocument, Schema as MongooseSchema } from 'mongoose'; +import { Schema as MongooseSchema } from 'mongoose'; import { BaseSchema } from '@/utils/generics/base-schema'; import { LifecycleHookManager } from '@/utils/generics/lifecycle-hook-manager'; -import { TFilterPopulateFields } from '@/utils/types/filter.types'; +import { + TFilterPopulateFields, + THydratedDocument, +} from '@/utils/types/filter.types'; import { NlpEntity, NlpEntityFull } from './nlp-entity.schema'; import { NlpValueMap } from './types'; diff --git a/api/src/nlp/services/nlp-sample.service.ts b/api/src/nlp/services/nlp-sample.service.ts index d66f8942..565ac48c 100644 --- a/api/src/nlp/services/nlp-sample.service.ts +++ b/api/src/nlp/services/nlp-sample.service.ts @@ -8,13 +8,13 @@ import { Injectable } from '@nestjs/common'; import { OnEvent } from '@nestjs/event-emitter'; -import { THydratedDocument } from 'mongoose'; import { Message } from '@/chat/schemas/message.schema'; import { Language } from '@/i18n/schemas/language.schema'; import { LanguageService } from '@/i18n/services/language.service'; import { LoggerService } from '@/logger/logger.service'; import { BaseService } from '@/utils/generics/base-service'; +import { THydratedDocument } from '@/utils/types/filter.types'; import { NlpSampleCreateDto } from '../dto/nlp-sample.dto'; import { NlpSampleRepository } from '../repositories/nlp-sample.repository'; diff --git a/api/src/setting/controllers/setting.controller.ts b/api/src/setting/controllers/setting.controller.ts index 41bede35..8ca442fc 100644 --- a/api/src/setting/controllers/setting.controller.ts +++ b/api/src/setting/controllers/setting.controller.ts @@ -17,13 +17,13 @@ import { UseInterceptors, } from '@nestjs/common'; import { CsrfCheck } from '@tekuconcept/nestjs-csrf'; -import { TFilterQuery } from 'mongoose'; import { CsrfInterceptor } from '@/interceptors/csrf.interceptor'; import { LoggerService } from '@/logger/logger.service'; import { QuerySortDto } from '@/utils/pagination/pagination-query.dto'; import { PageQueryPipe } from '@/utils/pagination/pagination-query.pipe'; import { SearchFilterPipe } from '@/utils/pipes/search-filter.pipe'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { Setting } from '../schemas/setting.schema'; import { SettingService } from '../services/setting.service'; diff --git a/api/src/user/controllers/model.controller.ts b/api/src/user/controllers/model.controller.ts index f05e95c2..200750d7 100644 --- a/api/src/user/controllers/model.controller.ts +++ b/api/src/user/controllers/model.controller.ts @@ -7,10 +7,10 @@ */ import { Controller, Get, Query } from '@nestjs/common'; -import { TFilterQuery } from 'mongoose'; import { BaseController } from '@/utils/generics/base-controller'; import { PopulatePipe } from '@/utils/pipes/populate.pipe'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { Model, diff --git a/api/src/user/controllers/permission.controller.ts b/api/src/user/controllers/permission.controller.ts index 3d3224a8..4ebbbc8c 100644 --- a/api/src/user/controllers/permission.controller.ts +++ b/api/src/user/controllers/permission.controller.ts @@ -19,13 +19,13 @@ import { UseInterceptors, } from '@nestjs/common'; import { CsrfCheck } from '@tekuconcept/nestjs-csrf'; -import { TFilterQuery } from 'mongoose'; import { CsrfInterceptor } from '@/interceptors/csrf.interceptor'; import { LoggerService } from '@/logger/logger.service'; import { BaseController } from '@/utils/generics/base-controller'; import { PopulatePipe } from '@/utils/pipes/populate.pipe'; import { SearchFilterPipe } from '@/utils/pipes/search-filter.pipe'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { PermissionCreateDto } from '../dto/permission.dto'; import { diff --git a/api/src/user/controllers/role.controller.ts b/api/src/user/controllers/role.controller.ts index f7f17c94..723c27a4 100644 --- a/api/src/user/controllers/role.controller.ts +++ b/api/src/user/controllers/role.controller.ts @@ -10,20 +10,19 @@ import { Body, Controller, Delete, + ForbiddenException, Get, HttpCode, NotFoundException, Param, - Post, Patch, + Post, Query, - UseInterceptors, - ForbiddenException, Req, + UseInterceptors, } from '@nestjs/common'; import { CsrfCheck } from '@tekuconcept/nestjs-csrf'; import { Request } from 'express'; -import { TFilterQuery } from 'mongoose'; import { CsrfInterceptor } from '@/interceptors/csrf.interceptor'; import { LoggerService } from '@/logger/logger.service'; @@ -32,6 +31,7 @@ import { PageQueryDto } from '@/utils/pagination/pagination-query.dto'; import { PageQueryPipe } from '@/utils/pagination/pagination-query.pipe'; import { PopulatePipe } from '@/utils/pipes/populate.pipe'; import { SearchFilterPipe } from '@/utils/pipes/search-filter.pipe'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { RoleCreateDto, RoleUpdateDto } from '../dto/role.dto'; import { Role, RoleFull, RolePopulate, RoleStub } from '../schemas/role.schema'; diff --git a/api/src/user/controllers/user.controller.ts b/api/src/user/controllers/user.controller.ts index 47045189..09591ca8 100644 --- a/api/src/user/controllers/user.controller.ts +++ b/api/src/user/controllers/user.controller.ts @@ -26,7 +26,6 @@ import { import { CsrfCheck } from '@tekuconcept/nestjs-csrf'; import { Request } from 'express'; import { Session as ExpressSession } from 'express-session'; -import { TFilterQuery } from 'mongoose'; import { AttachmentService } from '@/attachment/services/attachment.service'; import { CsrfInterceptor } from '@/interceptors/csrf.interceptor'; @@ -38,6 +37,7 @@ import { PageQueryDto } from '@/utils/pagination/pagination-query.dto'; import { PageQueryPipe } from '@/utils/pagination/pagination-query.pipe'; import { PopulatePipe } from '@/utils/pipes/populate.pipe'; import { SearchFilterPipe } from '@/utils/pipes/search-filter.pipe'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { InvitationCreateDto } from '../dto/invitation.dto'; import { diff --git a/api/src/user/repositories/invitation.repository.ts b/api/src/user/repositories/invitation.repository.ts index 4e8aff84..027e2bf8 100644 --- a/api/src/user/repositories/invitation.repository.ts +++ b/api/src/user/repositories/invitation.repository.ts @@ -8,9 +8,10 @@ import { EventEmitter2 } from '@nestjs/event-emitter'; import { InjectModel } from '@nestjs/mongoose'; -import { Model, TFilterQuery } from 'mongoose'; +import { Model } from 'mongoose'; import { BaseRepository } from '@/utils/generics/base-repository'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { Invitation, diff --git a/api/src/user/repositories/user.repository.ts b/api/src/user/repositories/user.repository.ts index 6a9c1a32..e4a27f7b 100644 --- a/api/src/user/repositories/user.repository.ts +++ b/api/src/user/repositories/user.repository.ts @@ -13,12 +13,12 @@ import { Document, Model, Query, - TFilterQuery, UpdateQuery, UpdateWithAggregationPipeline, } from 'mongoose'; import { BaseRepository } from '@/utils/generics/base-repository'; +import { TFilterQuery } from '@/utils/types/filter.types'; import { UserEditProfileDto } from '../dto/user.dto'; import { diff --git a/api/src/user/schemas/invitation.schema.ts b/api/src/user/schemas/invitation.schema.ts index 1bba0ee7..0d6ce96f 100644 --- a/api/src/user/schemas/invitation.schema.ts +++ b/api/src/user/schemas/invitation.schema.ts @@ -6,13 +6,16 @@ * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). */ -import { Prop, Schema, SchemaFactory, ModelDefinition } from '@nestjs/mongoose'; +import { ModelDefinition, Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; import { Transform, Type } from 'class-transformer'; -import { THydratedDocument, Schema as MongooseSchema } from 'mongoose'; +import { Schema as MongooseSchema } from 'mongoose'; import { BaseSchema } from '@/utils/generics/base-schema'; import { LifecycleHookManager } from '@/utils/generics/lifecycle-hook-manager'; -import { TFilterPopulateFields } from '@/utils/types/filter.types'; +import { + TFilterPopulateFields, + THydratedDocument, +} from '@/utils/types/filter.types'; import { isEmail } from '@/utils/validation-rules/is-email'; import { Role } from './role.schema'; diff --git a/api/src/user/schemas/model.schema.ts b/api/src/user/schemas/model.schema.ts index 18d6f513..457bb856 100644 --- a/api/src/user/schemas/model.schema.ts +++ b/api/src/user/schemas/model.schema.ts @@ -6,13 +6,15 @@ * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). */ -import { Prop, Schema, SchemaFactory, ModelDefinition } from '@nestjs/mongoose'; +import { ModelDefinition, Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; import { Exclude, Type } from 'class-transformer'; -import { THydratedDocument } from 'mongoose'; import { BaseSchema } from '@/utils/generics/base-schema'; import { LifecycleHookManager } from '@/utils/generics/lifecycle-hook-manager'; -import { TFilterPopulateFields } from '@/utils/types/filter.types'; +import { + TFilterPopulateFields, + THydratedDocument, +} from '@/utils/types/filter.types'; import { TRelation } from '../types/index.type'; diff --git a/api/src/user/schemas/permission.schema.ts b/api/src/user/schemas/permission.schema.ts index 5212194e..9c87fe38 100644 --- a/api/src/user/schemas/permission.schema.ts +++ b/api/src/user/schemas/permission.schema.ts @@ -6,13 +6,16 @@ * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). */ -import { Prop, Schema, SchemaFactory, ModelDefinition } from '@nestjs/mongoose'; +import { ModelDefinition, Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; import { Transform, Type } from 'class-transformer'; -import { THydratedDocument, Schema as MongooseSchema } from 'mongoose'; +import { Schema as MongooseSchema } from 'mongoose'; import { BaseSchema } from '@/utils/generics/base-schema'; import { LifecycleHookManager } from '@/utils/generics/lifecycle-hook-manager'; -import { TFilterPopulateFields } from '@/utils/types/filter.types'; +import { + TFilterPopulateFields, + THydratedDocument, +} from '@/utils/types/filter.types'; import { Action } from '../types/action.type'; diff --git a/api/src/user/schemas/role.schema.ts b/api/src/user/schemas/role.schema.ts index 833f61f4..64b8436f 100644 --- a/api/src/user/schemas/role.schema.ts +++ b/api/src/user/schemas/role.schema.ts @@ -6,13 +6,15 @@ * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). */ -import { Prop, Schema, SchemaFactory, ModelDefinition } from '@nestjs/mongoose'; +import { ModelDefinition, Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; import { Exclude, Type } from 'class-transformer'; -import { THydratedDocument } from 'mongoose'; import { BaseSchema } from '@/utils/generics/base-schema'; import { LifecycleHookManager } from '@/utils/generics/lifecycle-hook-manager'; -import { TFilterPopulateFields } from '@/utils/types/filter.types'; +import { + TFilterPopulateFields, + THydratedDocument, +} from '@/utils/types/filter.types'; import { Permission } from './permission.schema'; import { User } from './user.schema'; diff --git a/api/src/user/schemas/user.schema.ts b/api/src/user/schemas/user.schema.ts index ec03de92..21a4a19d 100644 --- a/api/src/user/schemas/user.schema.ts +++ b/api/src/user/schemas/user.schema.ts @@ -8,12 +8,15 @@ import { ModelDefinition, Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; import { Transform, Type } from 'class-transformer'; -import { Schema as MongooseSchema, THydratedDocument } from 'mongoose'; +import { Schema as MongooseSchema } from 'mongoose'; import { Attachment } from '@/attachment/schemas/attachment.schema'; import { BaseSchema } from '@/utils/generics/base-schema'; import { LifecycleHookManager } from '@/utils/generics/lifecycle-hook-manager'; -import { TFilterPopulateFields } from '@/utils/types/filter.types'; +import { + TFilterPopulateFields, + THydratedDocument, +} from '@/utils/types/filter.types'; import { UserProvider } from '../types/user-provider.type'; diff --git a/api/src/utils/generics/base-controller.ts b/api/src/utils/generics/base-controller.ts index b544c6e4..5fa9b4d5 100644 --- a/api/src/utils/generics/base-controller.ts +++ b/api/src/utils/generics/base-controller.ts @@ -7,7 +7,8 @@ */ import { NotFoundException } from '@nestjs/common'; -import { TFilterQuery } from 'mongoose'; + +import { TFilterQuery } from '@/utils/types/filter.types'; import { TValidateProps } from '../types/filter.types'; diff --git a/api/src/utils/generics/base-repository.ts b/api/src/utils/generics/base-repository.ts index 03373087..021b3fd2 100644 --- a/api/src/utils/generics/base-repository.ts +++ b/api/src/utils/generics/base-repository.ts @@ -19,11 +19,12 @@ import { Model, Query, SortOrder, - TFilterQuery, UpdateQuery, UpdateWithAggregationPipeline, } from 'mongoose'; +import { TFilterQuery } from '@/utils/types/filter.types'; + import { PageQueryDto, QuerySortDto } from '../pagination/pagination-query.dto'; import { BaseSchema } from './base-schema'; diff --git a/api/src/utils/generics/base-service.ts b/api/src/utils/generics/base-service.ts index 7cc9efda..976c6e40 100644 --- a/api/src/utils/generics/base-service.ts +++ b/api/src/utils/generics/base-service.ts @@ -9,7 +9,8 @@ import { ConflictException } from '@nestjs/common'; import { ClassTransformOptions } from 'class-transformer'; import { MongoError } from 'mongodb'; -import { TFilterQuery } from 'mongoose'; + +import { TFilterQuery } from '@/utils/types/filter.types'; import { PageQueryDto, QuerySortDto } from '../pagination/pagination-query.dto'; diff --git a/api/src/utils/pipes/search-filter.pipe.ts b/api/src/utils/pipes/search-filter.pipe.ts index 00cd1d8d..6d84f9c5 100644 --- a/api/src/utils/pipes/search-filter.pipe.ts +++ b/api/src/utils/pipes/search-filter.pipe.ts @@ -7,13 +7,15 @@ */ import { - Injectable, - PipeTransform, ArgumentMetadata, + Injectable, Logger, + PipeTransform, } from '@nestjs/common'; import escapeRegExp from 'lodash/escapeRegExp'; -import { TFilterQuery, Types } from 'mongoose'; +import { Types } from 'mongoose'; + +import { TFilterQuery } from '@/utils/types/filter.types'; import { TFilterNestedKeysOfType, diff --git a/api/src/utils/test/dummy/schemas/dummy.schema.ts b/api/src/utils/test/dummy/schemas/dummy.schema.ts index 0fe68899..edab8598 100644 --- a/api/src/utils/test/dummy/schemas/dummy.schema.ts +++ b/api/src/utils/test/dummy/schemas/dummy.schema.ts @@ -6,11 +6,11 @@ * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). */ -import { Prop, SchemaFactory, Schema } from '@nestjs/mongoose'; -import { THydratedDocument } from 'mongoose'; +import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; import { BaseSchema } from '@/utils/generics/base-schema'; import { LifecycleHookManager } from '@/utils/generics/lifecycle-hook-manager'; +import { THydratedDocument } from '@/utils/types/filter.types'; @Schema({ timestamps: true }) export class Dummy extends BaseSchema { diff --git a/api/src/utils/types/filter.types.ts b/api/src/utils/types/filter.types.ts index 823be522..ef32456d 100644 --- a/api/src/utils/types/filter.types.ts +++ b/api/src/utils/types/filter.types.ts @@ -6,6 +6,8 @@ * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). */ +import { HydratedDocument, QuerySelector, RootQuerySelector } from 'mongoose'; + export type TFilterKeysOfType = { [K in keyof T]: T[K] extends U ? K : never; }[keyof T]; @@ -105,3 +107,20 @@ export type TTransformFieldProps = { context?: TContext; operator?: TOperator; }; + +/* mongoose */ +type TOmitId = Omit; +type TReplaceId = TOmitId & { _id?: string }; + +// Enforce the typing with an alternative type to FilterQuery compatible with mongoose: version 8.0.0 +export type TFilterQuery> = ( + | RecursivePartial<{ + [P in keyof S]?: + | (S[P] extends string ? S[P] | RegExp : S[P]) + | QuerySelector; + }> + | Partial> +) & + WithoutGenericAny>; + +export type THydratedDocument = TOmitId>; diff --git a/api/types/event-emitter.d.ts b/api/types/event-emitter.d.ts index 9f08b65f..948246f5 100644 --- a/api/types/event-emitter.d.ts +++ b/api/types/event-emitter.d.ts @@ -8,12 +8,7 @@ import { type OnEventOptions } from '@nestjs/event-emitter/dist/interfaces'; import type { Listener, OnOptions } from 'eventemitter2'; -import type { - Document, - Query, - TFilterQuery, - THydratedDocument, -} from 'mongoose'; +import type { Document, Query } from 'mongoose'; import { type Socket } from 'socket.io'; import { type BotStats } from '@/analytics/schemas/bot-stats.schema'; @@ -49,6 +44,7 @@ import { type Permission } from '@/user/schemas/permission.schema'; import { type Role } from '@/user/schemas/role.schema'; import { type User } from '@/user/schemas/user.schema'; import { EHook, type DeleteResult } from '@/utils/generics/base-repository'; +import { TFilterQuery, THydratedDocument } from '@/utils/types/filter.types'; import '@nestjs/event-emitter'; /** diff --git a/api/types/mongoose.d.ts b/api/types/mongoose.d.ts deleted file mode 100644 index 3101ac2e..00000000 --- a/api/types/mongoose.d.ts +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright © 2024 Hexastack. All rights reserved. - * - * Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms: - * 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission. - * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). - */ - -import { - ObjectWithNestedKeys, - RecursivePartial, - WithoutGenericAny, -} from '@/utils/types/filter.types'; -import 'mongoose'; - -declare module 'mongoose' { - type TOmitId = Omit; - type TReplaceId = TOmitId & { _id?: string }; - - // Enforce the typing with an alternative type to FilterQuery compatible with mongoose: version 8.0.0 - type TFilterQuery> = ( - | RecursivePartial<{ - [P in keyof S]?: - | (S[P] extends string ? S[P] | RegExp : S[P]) - | QuerySelector; - }> - | Partial> - ) & - WithoutGenericAny>; - - type THydratedDocument = TOmitId>; -}