diff --git a/packages/twenty-server/.eslintrc.cjs b/packages/twenty-server/.eslintrc.cjs index 008a3fbbf..6224cb477 100644 --- a/packages/twenty-server/.eslintrc.cjs +++ b/packages/twenty-server/.eslintrc.cjs @@ -14,6 +14,7 @@ module.exports = { project: ['packages/twenty-server/tsconfig.json'], }, rules: { + '@typescript-eslint/no-explicit-any': 'error', 'no-restricted-imports': [ 'error', { @@ -98,6 +99,18 @@ module.exports = { '@nx/workspace-inject-workspace-repository': 'warn', }, }, + { + files: [ + '**/*.spec.ts', + '**/*.integration-spec.ts', + '**/__tests__/**', + '**/test/integration/**', + '**/test/utils/**', + ], + rules: { + '@typescript-eslint/no-explicit-any': 'off', + }, + }, { files: ['scripts/**/*.ts'], parserOptions: { diff --git a/packages/twenty-server/src/database/clickHouse/clickHouse.service.ts b/packages/twenty-server/src/database/clickHouse/clickHouse.service.ts index 08ddbdbef..f309bb94b 100644 --- a/packages/twenty-server/src/database/clickHouse/clickHouse.service.ts +++ b/packages/twenty-server/src/database/clickHouse/clickHouse.service.ts @@ -133,6 +133,7 @@ export class ClickHouseService implements OnModuleInit, OnModuleDestroy { } } + // eslint-disable-next-line @typescript-eslint/no-explicit-any public async insert>( table: string, values: T[], @@ -164,6 +165,7 @@ export class ClickHouseService implements OnModuleInit, OnModuleDestroy { // Method to execute a select query public async select( query: string, + // eslint-disable-next-line @typescript-eslint/no-explicit-any params?: Record, clientId?: string, ): Promise { diff --git a/packages/twenty-server/src/database/commands/logger.ts b/packages/twenty-server/src/database/commands/logger.ts index bb912004f..da67b825a 100644 --- a/packages/twenty-server/src/database/commands/logger.ts +++ b/packages/twenty-server/src/database/commands/logger.ts @@ -20,6 +20,7 @@ export class CommandLogger { this.verboseFlag = options.verbose ?? false; } + // eslint-disable-next-line @typescript-eslint/no-explicit-any log(message: string, ...optionalParams: [...any, string?]) { this.logger.log(message, ...optionalParams); } @@ -28,14 +29,17 @@ export class CommandLogger { this.logger.error(message, stack, context); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any warn(message: string, ...optionalParams: [...any, string?]) { this.logger.warn(message, ...optionalParams); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any debug(message: string, ...optionalParams: [...any, string?]) { this.logger.debug(message, ...optionalParams); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any verbose(message: string, ...optionalParams: [...any, string?]) { if (this.verboseFlag) { this.logger.log(message, ...optionalParams); diff --git a/packages/twenty-server/src/engine/api/graphql/graphql-config/hooks/use-cached-metadata.ts b/packages/twenty-server/src/engine/api/graphql/graphql-config/hooks/use-cached-metadata.ts index 256220d12..bcb118d95 100644 --- a/packages/twenty-server/src/engine/api/graphql/graphql-config/hooks/use-cached-metadata.ts +++ b/packages/twenty-server/src/engine/api/graphql/graphql-config/hooks/use-cached-metadata.ts @@ -2,12 +2,15 @@ import { isDefined } from 'class-validator'; import { Plugin } from 'graphql-yoga'; export type CacheMetadataPluginConfig = { + // eslint-disable-next-line @typescript-eslint/no-explicit-any cacheGetter: (key: string) => any; + // eslint-disable-next-line @typescript-eslint/no-explicit-any cacheSetter: (key: string, value: any) => void; operationsToCache: string[]; }; export function useCachedMetadata(config: CacheMetadataPluginConfig): Plugin { + // eslint-disable-next-line @typescript-eslint/no-explicit-any const computeCacheKey = (serverContext: any) => { const workspaceId = serverContext.req.workspace?.id ?? 'anonymous'; const workspaceMetadataVersion = @@ -21,6 +24,7 @@ export function useCachedMetadata(config: CacheMetadataPluginConfig): Plugin { return `graphql:operations:${operationName}:${workspaceId}:${workspaceMetadataVersion}${localeCacheKey}`; }; + // eslint-disable-next-line @typescript-eslint/no-explicit-any const getOperationName = (serverContext: any) => serverContext?.req?.body?.operationName; diff --git a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-filter/graphql-query-filter-condition.parser.ts b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-filter/graphql-query-filter-condition.parser.ts index 31c7aa359..704b8fb3e 100644 --- a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-filter/graphql-query-filter-condition.parser.ts +++ b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-filter/graphql-query-filter-condition.parser.ts @@ -29,9 +29,11 @@ export class GraphqlQueryFilterConditionParser { } public parse( + // eslint-disable-next-line @typescript-eslint/no-explicit-any queryBuilder: SelectQueryBuilder, objectNameSingular: string, filter: Partial, + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): SelectQueryBuilder { if (!filter || Object.keys(filter).length === 0) { return queryBuilder; @@ -50,6 +52,7 @@ export class GraphqlQueryFilterConditionParser { queryBuilder: WhereExpressionBuilder, objectNameSingular: string, key: string, + // eslint-disable-next-line @typescript-eslint/no-explicit-any value: any, isFirst = false, ): void { diff --git a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-filter/graphql-query-filter-field.parser.ts b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-filter/graphql-query-filter-field.parser.ts index 41628cda9..fd3a93c97 100644 --- a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-filter/graphql-query-filter-field.parser.ts +++ b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-filter/graphql-query-filter-field.parser.ts @@ -31,6 +31,7 @@ export class GraphqlQueryFilterFieldParser { queryBuilder: WhereExpressionBuilder, objectNameSingular: string, key: string, + // eslint-disable-next-line @typescript-eslint/no-explicit-any filterValue: any, isFirst = false, ): void { @@ -81,6 +82,7 @@ export class GraphqlQueryFilterFieldParser { queryBuilder: WhereExpressionBuilder, fieldMetadata: FieldMetadataInterface, objectNameSingular: string, + // eslint-disable-next-line @typescript-eslint/no-explicit-any fieldValue: any, isFirst = false, ): void { @@ -108,6 +110,7 @@ export class GraphqlQueryFilterFieldParser { const fullFieldName = `${fieldMetadata.name}${capitalize(subFieldKey)}`; const [[operator, value]] = Object.entries( + // eslint-disable-next-line @typescript-eslint/no-explicit-any subFieldFilter as Record, ); diff --git a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-order/graphql-query-order.parser.ts b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-order/graphql-query-order.parser.ts index a19fa7fab..3fe947109 100644 --- a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-order/graphql-query-order.parser.ts +++ b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-order/graphql-query-order.parser.ts @@ -65,6 +65,7 @@ export class GraphqlQueryOrderFieldParser { private parseCompositeFieldForOrder( fieldMetadata: FieldMetadataInterface, + // eslint-disable-next-line @typescript-eslint/no-explicit-any value: any, objectNameSingular: string, isForwardPagination = true, diff --git a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-selected-fields/graphql-selected-fields-aggregate.parser.ts b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-selected-fields/graphql-selected-fields-aggregate.parser.ts index fcd3ed6a1..ad08692fb 100644 --- a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-selected-fields/graphql-selected-fields-aggregate.parser.ts +++ b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-selected-fields/graphql-selected-fields-aggregate.parser.ts @@ -8,6 +8,7 @@ import { export class GraphqlQuerySelectedFieldsAggregateParser { parse( + // eslint-disable-next-line @typescript-eslint/no-explicit-any graphqlSelectedFields: Partial>, fieldMetadataMapByName: Record, accumulator: GraphqlQuerySelectedFieldsResult, diff --git a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-selected-fields/graphql-selected-fields-relation.parser.ts b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-selected-fields/graphql-selected-fields-relation.parser.ts index 041bd61e6..f747e07ec 100644 --- a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-selected-fields/graphql-selected-fields-relation.parser.ts +++ b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-selected-fields/graphql-selected-fields-relation.parser.ts @@ -17,6 +17,7 @@ export class GraphqlQuerySelectedFieldsRelationParser { parseRelationField( fieldMetadata: FieldMetadataInterface, fieldKey: string, + // eslint-disable-next-line @typescript-eslint/no-explicit-any fieldValue: any, accumulator: GraphqlQuerySelectedFieldsResult, ): void { diff --git a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-selected-fields/graphql-selected-fields.parser.ts b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-selected-fields/graphql-selected-fields.parser.ts index f04784701..ee6107dac 100644 --- a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-selected-fields/graphql-selected-fields.parser.ts +++ b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query-selected-fields/graphql-selected-fields.parser.ts @@ -11,8 +11,11 @@ import { CompositeFieldMetadataType } from 'src/engine/metadata-modules/workspac import { isRelationFieldMetadataType } from 'src/engine/utils/is-relation-field-metadata-type.util'; export type GraphqlQuerySelectedFieldsResult = { + // eslint-disable-next-line @typescript-eslint/no-explicit-any select: Record; + // eslint-disable-next-line @typescript-eslint/no-explicit-any relations: Record; + // eslint-disable-next-line @typescript-eslint/no-explicit-any aggregate: Record; }; @@ -27,6 +30,7 @@ export class GraphqlQuerySelectedFieldsParser { } parse( + // eslint-disable-next-line @typescript-eslint/no-explicit-any graphqlSelectedFields: Partial>, fieldMetadataMapByName: Record, ): GraphqlQuerySelectedFieldsResult { @@ -62,6 +66,7 @@ export class GraphqlQuerySelectedFieldsParser { } private parseRecordField( + // eslint-disable-next-line @typescript-eslint/no-explicit-any graphqlSelectedFields: Partial>, fieldMetadataMapByName: Record, accumulator: GraphqlQuerySelectedFieldsResult, @@ -96,6 +101,7 @@ export class GraphqlQuerySelectedFieldsParser { } private parseConnectionField( + // eslint-disable-next-line @typescript-eslint/no-explicit-any graphqlSelectedFields: Partial>, fieldMetadataMapByName: Record, accumulator: GraphqlQuerySelectedFieldsResult, @@ -112,6 +118,7 @@ export class GraphqlQuerySelectedFieldsParser { } private isRootConnection( + // eslint-disable-next-line @typescript-eslint/no-explicit-any graphqlSelectedFields: Partial>, ): boolean { return Object.keys(graphqlSelectedFields).includes('edges'); @@ -119,7 +126,9 @@ export class GraphqlQuerySelectedFieldsParser { private parseCompositeField( fieldMetadata: FieldMetadataInterface, + // eslint-disable-next-line @typescript-eslint/no-explicit-any fieldValue: any, + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): Record { const compositeType = compositeTypeDefinitions.get( fieldMetadata.type as CompositeFieldMetadataType, @@ -151,6 +160,7 @@ export class GraphqlQuerySelectedFieldsParser { return acc; }, + // eslint-disable-next-line @typescript-eslint/no-explicit-any {} as Record, ); } diff --git a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query.parser.ts b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query.parser.ts index 09b637c95..7a2e84b3f 100644 --- a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query.parser.ts +++ b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/graphql-query-parsers/graphql-query.parser.ts @@ -50,9 +50,11 @@ export class GraphqlQueryParser { } public applyFilterToBuilder( + // eslint-disable-next-line @typescript-eslint/no-explicit-any queryBuilder: SelectQueryBuilder, objectNameSingular: string, recordFilter: Partial, + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): SelectQueryBuilder { return this.filterConditionParser.parse( queryBuilder, @@ -62,8 +64,10 @@ export class GraphqlQueryParser { } public applyDeletedAtToBuilder( + // eslint-disable-next-line @typescript-eslint/no-explicit-any queryBuilder: SelectQueryBuilder, recordFilter: Partial, + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): SelectQueryBuilder { if (this.checkForDeletedAtFilter(recordFilter)) { queryBuilder.withDeleted(); @@ -99,10 +103,12 @@ export class GraphqlQueryParser { }; public applyOrderToBuilder( + // eslint-disable-next-line @typescript-eslint/no-explicit-any queryBuilder: SelectQueryBuilder, orderBy: ObjectRecordOrderBy, objectNameSingular: string, isForwardPagination = true, + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): SelectQueryBuilder { const parsedOrderBys = this.orderFieldParser.parse( orderBy, @@ -115,6 +121,7 @@ export class GraphqlQueryParser { public parseSelectedFields( parentObjectMetadata: ObjectMetadataItemWithFieldMaps, + // eslint-disable-next-line @typescript-eslint/no-explicit-any graphqlSelectedFields: Partial>, ): GraphqlQuerySelectedFieldsResult { const parentFields = getObjectMetadataMapItemByNameSingular( diff --git a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/object-records-to-graphql-connection.helper.ts b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/object-records-to-graphql-connection.helper.ts index 4e0d661a5..40ac4a419 100644 --- a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/object-records-to-graphql-connection.helper.ts +++ b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/object-records-to-graphql-connection.helper.ts @@ -46,7 +46,9 @@ export class ObjectRecordsToGraphqlConnectionHelper { }: { objectRecords: T[]; parentObjectRecord?: T; + // eslint-disable-next-line @typescript-eslint/no-explicit-any objectRecordsAggregatedValues?: Record; + // eslint-disable-next-line @typescript-eslint/no-explicit-any selectedAggregatedFields?: Record; objectName: string; take: number; @@ -95,6 +97,7 @@ export class ObjectRecordsToGraphqlConnectionHelper { objectRecordsAggregatedValues, }: { selectedAggregatedFields: Record; + // eslint-disable-next-line @typescript-eslint/no-explicit-any objectRecordsAggregatedValues: Record; }) => { if (!isDefined(objectRecordsAggregatedValues)) { @@ -120,6 +123,7 @@ export class ObjectRecordsToGraphqlConnectionHelper { ); }; + // eslint-disable-next-line @typescript-eslint/no-explicit-any public processRecord>({ objectRecord, objectName, @@ -132,7 +136,9 @@ export class ObjectRecordsToGraphqlConnectionHelper { }: { objectRecord: T; objectName: string; + // eslint-disable-next-line @typescript-eslint/no-explicit-any objectRecordsAggregatedValues?: Record; + // eslint-disable-next-line @typescript-eslint/no-explicit-any selectedAggregatedFields?: Record; take: number; totalCount: number; @@ -158,6 +164,7 @@ export class ObjectRecordsToGraphqlConnectionHelper { ); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any const processedObjectRecord: Record = {}; for (const [key, value] of Object.entries(objectRecord)) { @@ -229,7 +236,9 @@ export class ObjectRecordsToGraphqlConnectionHelper { private processCompositeField( fieldMetadata: FieldMetadataInterface, + // eslint-disable-next-line @typescript-eslint/no-explicit-any fieldValue: any, + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): Record { const compositeType = compositeTypeDefinitions.get( fieldMetadata.type as CompositeFieldMetadataType, @@ -262,10 +271,12 @@ export class ObjectRecordsToGraphqlConnectionHelper { return acc; }, + // eslint-disable-next-line @typescript-eslint/no-explicit-any {} as Record, ); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any private formatFieldValue(value: any, fieldType: FieldMetadataType) { switch (fieldType) { case FieldMetadataType.RAW_JSON: diff --git a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/process-aggregate.helper.ts b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/process-aggregate.helper.ts index 1f6866c9c..a03f6b534 100644 --- a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/process-aggregate.helper.ts +++ b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/process-aggregate.helper.ts @@ -14,6 +14,7 @@ export class ProcessAggregateHelper { queryBuilder, }: { selectedAggregatedFields: Record; + // eslint-disable-next-line @typescript-eslint/no-explicit-any queryBuilder: SelectQueryBuilder; }) => { queryBuilder.select([]); diff --git a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/process-nested-relations-v2.helper.ts b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/process-nested-relations-v2.helper.ts index 0dac002f3..f5aab8b25 100644 --- a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/process-nested-relations-v2.helper.ts +++ b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/process-nested-relations-v2.helper.ts @@ -47,6 +47,7 @@ export class ProcessNestedRelationsV2Helper { objectMetadataMaps: ObjectMetadataMaps; parentObjectMetadataItem: ObjectMetadataItemWithFieldMaps; parentObjectRecords: T[]; + // eslint-disable-next-line @typescript-eslint/no-explicit-any parentObjectRecordsAggregatedValues?: Record; relations: Record>; aggregate?: Record; @@ -94,6 +95,7 @@ export class ProcessNestedRelationsV2Helper { objectMetadataMaps: ObjectMetadataMaps; parentObjectMetadataItem: ObjectMetadataItemWithFieldMaps; parentObjectRecords: T[]; + // eslint-disable-next-line @typescript-eslint/no-explicit-any parentObjectRecordsAggregatedValues: Record; sourceFieldName: string; nestedRelations: FindOptionsRelations; @@ -251,6 +253,7 @@ export class ProcessNestedRelationsV2Helper { }: { records: ObjectRecord[]; idField: string; + // eslint-disable-next-line @typescript-eslint/no-explicit-any }): any[] { return [...new Set(records.map((item) => item[idField]))]; } @@ -265,20 +268,26 @@ export class ProcessNestedRelationsV2Helper { aggregate, sourceFieldName, }: { + // eslint-disable-next-line @typescript-eslint/no-explicit-any referenceQueryBuilder: SelectQueryBuilder; column: string; + // eslint-disable-next-line @typescript-eslint/no-explicit-any ids: any[]; limit: number; objectMetadataMaps: ObjectMetadataMaps; targetObjectMetadata: ObjectMetadataItemWithFieldMaps; + // eslint-disable-next-line @typescript-eslint/no-explicit-any aggregate: Record; sourceFieldName: string; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any }): Promise<{ relationResults: any[]; relationAggregatedFieldsResult: any }> { if (ids.length === 0) { return { relationResults: [], relationAggregatedFieldsResult: {} }; } const aggregateForRelation = aggregate[sourceFieldName]; + // eslint-disable-next-line @typescript-eslint/no-explicit-any let relationAggregatedFieldsResult: Record = {}; if (aggregateForRelation) { @@ -339,8 +348,11 @@ export class ProcessNestedRelationsV2Helper { relationType, }: { parentRecords: ObjectRecord[]; + // eslint-disable-next-line @typescript-eslint/no-explicit-any parentObjectRecordsAggregatedValues: Record; + // eslint-disable-next-line @typescript-eslint/no-explicit-any relationResults: any[]; + // eslint-disable-next-line @typescript-eslint/no-explicit-any relationAggregatedFieldsResult: Record; sourceFieldName: string; joinField: string; diff --git a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/process-nested-relations.helper.ts b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/process-nested-relations.helper.ts index 0da2d995a..66e8f30a1 100644 --- a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/process-nested-relations.helper.ts +++ b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/process-nested-relations.helper.ts @@ -35,6 +35,7 @@ export class ProcessNestedRelationsHelper { objectMetadataMaps: ObjectMetadataMaps; parentObjectMetadataItem: ObjectMetadataItemWithFieldMaps; parentObjectRecords: T[]; + // eslint-disable-next-line @typescript-eslint/no-explicit-any parentObjectRecordsAggregatedValues?: Record; relations: Record>; aggregate?: Record; diff --git a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/resolvers/graphql-query-create-many-resolver.service.ts b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/resolvers/graphql-query-create-many-resolver.service.ts index 8391c57ba..3f07db001 100644 --- a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/resolvers/graphql-query-create-many-resolver.service.ts +++ b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/resolvers/graphql-query-create-many-resolver.service.ts @@ -199,6 +199,7 @@ export class GraphqlQueryCreateManyResolverService extends GraphqlQueryBaseResol fullPath: string; column: string; }[], + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): Record { const whereConditions = {}; diff --git a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/utils/compute-where-condition-parts.ts b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/utils/compute-where-condition-parts.ts index 0985a2eb5..729f6c0c2 100644 --- a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/utils/compute-where-condition-parts.ts +++ b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/utils/compute-where-condition-parts.ts @@ -14,6 +14,7 @@ export const computeWhereConditionParts = ( operator: string, objectNameSingular: string, key: string, + // eslint-disable-next-line @typescript-eslint/no-explicit-any value: any, ): WhereConditionParts => { const uuid = Math.random().toString(36).slice(2, 7); diff --git a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/utils/cursors.util.ts b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/utils/cursors.util.ts index 8ae1486c0..afa0f80fb 100644 --- a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/utils/cursors.util.ts +++ b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/utils/cursors.util.ts @@ -10,6 +10,7 @@ import { } from 'src/engine/api/graphql/graphql-query-runner/errors/graphql-query-runner.exception'; export interface CursorData { + // eslint-disable-next-line @typescript-eslint/no-explicit-any [key: string]: any; } @@ -28,6 +29,7 @@ export const encodeCursor = ( objectRecord: T, order: ObjectRecordOrderBy | undefined, ): string => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any const orderByValues: Record = {}; const orderBy = order?.reduce((acc, orderBy) => ({ ...acc, ...orderBy }), {}); @@ -47,7 +49,10 @@ export const encodeCursor = ( }; export const getCursor = ( + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any args: FindManyResolverArgs, + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): Record | undefined => { if (args.after) return decodeCursor(args.after); if (args.before) return decodeCursor(args.before); @@ -56,6 +61,7 @@ export const getCursor = ( }; export const getPaginationInfo = ( + // eslint-disable-next-line @typescript-eslint/no-explicit-any objectRecords: any[], limit: number, isForwardPagination: boolean, diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-query-builder/interfaces/object-record.interface.ts b/packages/twenty-server/src/engine/api/graphql/workspace-query-builder/interfaces/object-record.interface.ts index 5c0395aca..206eb2d62 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-query-builder/interfaces/object-record.interface.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-query-builder/interfaces/object-record.interface.ts @@ -1,5 +1,6 @@ export interface ObjectRecord { id: string; + // eslint-disable-next-line @typescript-eslint/no-explicit-any [key: string]: any; createdAt: string; updatedAt: string; @@ -7,6 +8,7 @@ export interface ObjectRecord { } export type ObjectRecordFilter = { + // eslint-disable-next-line @typescript-eslint/no-explicit-any [Property in keyof ObjectRecord]: any; }; diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-query-builder/utils/get-field-arguments-by-key.util.ts b/packages/twenty-server/src/engine/api/graphql/workspace-query-builder/utils/get-field-arguments-by-key.util.ts index 33e0b761b..5bb720f71 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-query-builder/utils/get-field-arguments-by-key.util.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-query-builder/utils/get-field-arguments-by-key.util.ts @@ -74,6 +74,7 @@ const parseValueNode = ( export const getFieldArgumentsByKey = ( info: GraphQLResolveInfo, fieldKey: string, + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): Record => { // Start from the first top-level field node and search recursively const targetField = findFieldNode(info.fieldNodes[0].selectionSet, fieldKey); @@ -84,6 +85,7 @@ export const getFieldArgumentsByKey = ( } // Extract the arguments from the field we've found + // eslint-disable-next-line @typescript-eslint/no-explicit-any const args: Record = {}; if (targetField.arguments && targetField.arguments.length) { diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-query-builder/utils/stringify-without-key-quote.util.ts b/packages/twenty-server/src/engine/api/graphql/workspace-query-builder/utils/stringify-without-key-quote.util.ts index f8fb96450..a7392c3cf 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-query-builder/utils/stringify-without-key-quote.util.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-query-builder/utils/stringify-without-key-quote.util.ts @@ -1,3 +1,4 @@ +// eslint-disable-next-line @typescript-eslint/no-explicit-any export const stringifyWithoutKeyQuote = (obj: any) => { const jsonString = JSON.stringify(obj); const jsonWithoutQuotes = jsonString?.replace(/"(\w+)"\s*:/g, '$1:'); diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/factories/query-result-getters/handlers/activity-query-result-getter.handler.ts b/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/factories/query-result-getters/handlers/activity-query-result-getter.handler.ts index 4731a80ca..cb0fc924d 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/factories/query-result-getters/handlers/activity-query-result-getter.handler.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/factories/query-result-getters/handlers/activity-query-result-getter.handler.ts @@ -5,6 +5,7 @@ import { FileService } from 'src/engine/core-modules/file/services/file.service' import { NoteWorkspaceEntity } from 'src/modules/note/standard-objects/note.workspace-entity'; import { TaskWorkspaceEntity } from 'src/modules/task/standard-objects/task.workspace-entity'; +// eslint-disable-next-line @typescript-eslint/no-explicit-any type RichTextBlock = Record; type RichTextBody = RichTextBlock[]; diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/factories/query-result-getters/query-result-getters.factory.ts b/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/factories/query-result-getters/query-result-getters.factory.ts index 134845d19..a957d0fce 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/factories/query-result-getters/query-result-getters.factory.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/factories/query-result-getters/query-result-getters.factory.ts @@ -233,6 +233,7 @@ export class QueryResultGettersFactory { objectMetadataItem: ObjectMetadataInterface, workspaceId: string, objectMetadataMaps: ObjectMetadataMaps, + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): Promise { return await this.processQueryResultField( result, @@ -245,6 +246,7 @@ export class QueryResultGettersFactory { private getHandler(objectType: string): QueryResultGetterHandlerInterface { return ( this.handlers.get(objectType) || { + // eslint-disable-next-line @typescript-eslint/no-explicit-any handle: (result: any) => result, } ); diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/factories/query-runner-args.factory.ts b/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/factories/query-runner-args.factory.ts index 263813986..0d2a11111 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/factories/query-runner-args.factory.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/factories/query-runner-args.factory.ts @@ -174,8 +174,10 @@ export class QueryRunnerArgsFactory { const workspaceId = options.authContext.workspace.id; let isFieldPositionPresent = false; + // eslint-disable-next-line @typescript-eslint/no-explicit-any const createArgByArgKeyPromises: Promise<[string, any]>[] = Object.entries( data, + // eslint-disable-next-line @typescript-eslint/no-explicit-any ).map(async ([key, value]): Promise<[string, any]> => { const fieldMetadata = fieldMetadataMapByNameByName[key]; @@ -280,6 +282,7 @@ export class QueryRunnerArgsFactory { private transformFilterValueByType( key: string, + // eslint-disable-next-line @typescript-eslint/no-explicit-any value: any, fieldMetadataMapByName: FieldMetadataMap, ) { @@ -310,6 +313,7 @@ export class QueryRunnerArgsFactory { private async overrideValueByFieldMetadata( key: string, + // eslint-disable-next-line @typescript-eslint/no-explicit-any value: any, fieldMetadataMapByName: FieldMetadataMap, ) { diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/utils/compute-pg-graphql-error.util.ts b/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/utils/compute-pg-graphql-error.util.ts index bab858d6c..eba801246 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/utils/compute-pg-graphql-error.util.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/utils/compute-pg-graphql-error.util.ts @@ -51,6 +51,7 @@ const pgGraphQLErrorMapping: PgGraphQLErrorMapping = { export const computePgGraphQLError = ( command: string, objectName: string, + // eslint-disable-next-line @typescript-eslint/no-explicit-any errors: any[], pgGraphqlConfig: PgGraphQLConfig, ) => { diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/utils/parse-result.util.ts b/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/utils/parse-result.util.ts index 677850ba1..4008dad2b 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/utils/parse-result.util.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/utils/parse-result.util.ts @@ -4,8 +4,10 @@ import { } from 'src/engine/api/graphql/workspace-query-builder/utils/composite-field-metadata.util'; export const handleCompositeKey = ( + // eslint-disable-next-line @typescript-eslint/no-explicit-any result: any, key: string, + // eslint-disable-next-line @typescript-eslint/no-explicit-any value: any, ): void => { const parsedFieldKey = parseCompositeFieldKey(key); @@ -22,6 +24,8 @@ export const handleCompositeKey = ( result[parsedFieldKey.parentFieldName][parsedFieldKey.childFieldName] = value; }; +// eslint-disable-next-line @typescript-eslint/no-explicit-any +// eslint-disable-next-line @typescript-eslint/no-explicit-any export const parseResult = (obj: any): any => { if (obj === null || typeof obj !== 'object' || typeof obj === 'function') { return obj; @@ -31,6 +35,7 @@ export const parseResult = (obj: any): any => { return obj.map((item) => parseResult(item)); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any const result: any = {}; for (const key in obj) { diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface.ts b/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface.ts index 95bea5de1..4f88ac6bb 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface.ts @@ -8,6 +8,9 @@ import { import { workspaceResolverBuilderMethodNames } from 'src/engine/api/graphql/workspace-resolver-builder/factories/factories'; +// eslint-disable-next-line @typescript-eslint/no-explicit-any +// eslint-disable-next-line @typescript-eslint/no-explicit-any +// eslint-disable-next-line @typescript-eslint/no-explicit-any export type Resolver = GraphQLFieldResolver; export enum ResolverArgsType { @@ -71,6 +74,7 @@ export interface UpdateOneResolverArgs< export interface UpdateManyResolverArgs< Data extends Partial = Partial, + // eslint-disable-next-line @typescript-eslint/no-explicit-any Filter = any, > { filter: Filter; @@ -81,6 +85,7 @@ export interface DeleteOneResolverArgs { id: string; } +// eslint-disable-next-line @typescript-eslint/no-explicit-any export interface DeleteManyResolverArgs { filter: Filter; } @@ -89,6 +94,7 @@ export interface RestoreOneResolverArgs { id: string; } +// eslint-disable-next-line @typescript-eslint/no-explicit-any export interface RestoreManyResolverArgs { filter: Filter; } @@ -97,6 +103,7 @@ export interface DestroyOneResolverArgs { id: string; } +// eslint-disable-next-line @typescript-eslint/no-explicit-any export interface DestroyManyResolverArgs { filter: Filter; } diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/composite-object-type-definition.factory.ts b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/composite-object-type-definition.factory.ts index a0334a540..34f7f077f 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/composite-object-type-definition.factory.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/composite-object-type-definition.factory.ts @@ -44,7 +44,11 @@ export class CompositeObjectTypeDefinitionFactory { compositeType: CompositeType, kind: ObjectTypeDefinitionKind, options: WorkspaceBuildSchemaOptions, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): GraphQLFieldConfigMap { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any const fields: GraphQLFieldConfigMap = {}; for (const property of compositeType.properties) { diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/connection-type-definition.factory.ts b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/connection-type-definition.factory.ts index e691609b0..edc0186f6 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/connection-type-definition.factory.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/connection-type-definition.factory.ts @@ -46,7 +46,11 @@ export class ConnectionTypeDefinitionFactory { private generateFields( objectMetadata: ObjectMetadataInterface, options: WorkspaceBuildSchemaOptions, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): GraphQLFieldConfigMap { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any const fields: GraphQLFieldConfigMap = {}; const aggregatedFields = this.aggregationTypeFactory.create(objectMetadata); diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/edge-type-definition.factory.ts b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/edge-type-definition.factory.ts index 03c25a197..bb9fbd212 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/edge-type-definition.factory.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/edge-type-definition.factory.ts @@ -42,7 +42,11 @@ export class EdgeTypeDefinitionFactory { private generateFields( objectMetadata: ObjectMetadataInterface, options: WorkspaceBuildSchemaOptions, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): GraphQLFieldConfigMap { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any const fields: GraphQLFieldConfigMap = {}; fields.node = { diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/extend-object-type-definition-v2.factory.ts b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/extend-object-type-definition-v2.factory.ts index 49ea91c95..04c8febc7 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/extend-object-type-definition-v2.factory.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/extend-object-type-definition-v2.factory.ts @@ -103,7 +103,11 @@ export class ExtendObjectTypeDefinitionV2Factory { private generateFields( objectMetadata: ObjectMetadataInterface, options: WorkspaceBuildSchemaOptions, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): GraphQLFieldConfigMap { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any const fields: GraphQLFieldConfigMap = {}; for (const fieldMetadata of objectMetadata.fields) { diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/extend-object-type-definition.factory.ts b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/extend-object-type-definition.factory.ts index 6cf60ee26..95c6d8d69 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/extend-object-type-definition.factory.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/extend-object-type-definition.factory.ts @@ -104,7 +104,11 @@ export class ExtendObjectTypeDefinitionFactory { private generateFields( objectMetadata: ObjectMetadataInterface, options: WorkspaceBuildSchemaOptions, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): GraphQLFieldConfigMap { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any const fields: GraphQLFieldConfigMap = {}; for (const fieldMetadata of objectMetadata.fields) { diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/root-type.factory.ts b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/root-type.factory.ts index de9170476..ace302453 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/root-type.factory.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/factories/root-type.factory.ts @@ -63,6 +63,8 @@ export class RootTypeFactory { }); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any private generateFields( objectMetadataCollection: ObjectMetadataInterface[], workspaceResolverMethodNames: WorkspaceResolverBuilderMethodNames[], diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/graphql-types/scalars/position.scalar.ts b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/graphql-types/scalars/position.scalar.ts index fcbc04db0..f26a69c8c 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/graphql-types/scalars/position.scalar.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/graphql-types/scalars/position.scalar.ts @@ -10,6 +10,7 @@ const isValidStringPosition = (value: string): boolean => const isValidNumberPosition = (value: number): boolean => typeof value === 'number'; +// eslint-disable-next-line @typescript-eslint/no-explicit-any const checkPosition = (value: any): PositionType => { if (isValidNumberPosition(value) || isValidStringPosition(value)) { return value; diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/graphql-types/scalars/raw-json.scalar.ts b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/graphql-types/scalars/raw-json.scalar.ts index bff382f0a..c52aefa05 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/graphql-types/scalars/raw-json.scalar.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/graphql-types/scalars/raw-json.scalar.ts @@ -8,6 +8,7 @@ import { ValidationError } from 'src/engine/core-modules/graphql/utils/graphql-e const parseLiteral = ( ast: ValueNode, variables?: Maybe>, + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): any => { switch (ast.kind) { case Kind.STRING: @@ -17,8 +18,10 @@ const parseLiteral = ( case Kind.FLOAT: return parseFloat(ast.value); case Kind.OBJECT: + // eslint-disable-next-line @typescript-eslint/no-explicit-any return parseObject(ast as any, variables); case Kind.LIST: + // eslint-disable-next-line @typescript-eslint/no-explicit-any return (ast as any).values.map((n: ValueNode) => parseLiteral(n, variables), ); @@ -40,6 +43,7 @@ const parseObject = ( const value = Object.create(null); if ('fields' in ast) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any ast.fields?.forEach((field: any) => { value[field.name.value] = parseLiteral(field.value, variables); }); @@ -48,6 +52,7 @@ const parseObject = ( return value; }; +// eslint-disable-next-line @typescript-eslint/no-explicit-any const stringify = (value: any): string => { return JSON.stringify(value); }; diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/graphql-types/scalars/uuid.scalar.ts b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/graphql-types/scalars/uuid.scalar.ts index c0a5edc6c..acec37607 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/graphql-types/scalars/uuid.scalar.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/graphql-types/scalars/uuid.scalar.ts @@ -3,6 +3,7 @@ import { validate as uuidValidate } from 'uuid'; import { ValidationError } from 'src/engine/core-modules/graphql/utils/graphql-errors.util'; +// eslint-disable-next-line @typescript-eslint/no-explicit-any const checkUUID = (value: any): string => { if (typeof value !== 'string') { throw new ValidationError('UUID must be a string'); diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/interfaces/param-metadata.interface.ts b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/interfaces/param-metadata.interface.ts index fb27a34cd..ab66b3444 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/interfaces/param-metadata.interface.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/interfaces/param-metadata.interface.ts @@ -2,6 +2,7 @@ import { GraphQLScalarType } from 'graphql'; import { InputTypeDefinitionKind } from 'src/engine/api/graphql/workspace-schema-builder/factories/input-type-definition.factory'; +// eslint-disable-next-line @typescript-eslint/no-explicit-any export interface ArgMetadata { kind?: InputTypeDefinitionKind; type?: GraphQLScalarType; diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/services/type-mapper.service.ts b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/services/type-mapper.service.ts index 0dc6b4543..e852a272f 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/services/type-mapper.service.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/services/type-mapper.service.ts @@ -40,6 +40,7 @@ import { RawJSONScalar } from 'src/engine/api/graphql/workspace-schema-builder/g import { getNumberFilterType } from 'src/engine/api/graphql/workspace-schema-builder/utils/get-number-filter-type.util'; import { getNumberScalarType } from 'src/engine/api/graphql/workspace-schema-builder/utils/get-number-scalar-type.util'; +// eslint-disable-next-line @typescript-eslint/no-explicit-any export interface TypeOptions { nullable?: boolean; isArray?: boolean; diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/utils/generate-fields.utils.ts b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/utils/generate-fields.utils.ts index b564b67d9..c83bfdbe0 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/utils/generate-fields.utils.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/utils/generate-fields.utils.ts @@ -24,8 +24,10 @@ type TypeFactory = options: WorkspaceBuildSchemaOptions, additionalOptions: { nullable?: boolean; + // eslint-disable-next-line @typescript-eslint/no-explicit-any defaultValue?: any; isArray: boolean; + // eslint-disable-next-line @typescript-eslint/no-explicit-any settings: any; isIdField: boolean; }, @@ -43,7 +45,9 @@ export const generateFields = < typeFactory: TypeFactory, ): T extends InputTypeDefinitionKind ? GraphQLInputFieldConfigMap - : GraphQLFieldConfigMap => { + : // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any + GraphQLFieldConfigMap => { const fields = {}; for (const fieldMetadata of objectMetadata.fields) { diff --git a/packages/twenty-server/src/engine/api/rest/core/handlers/rest-api-create-many.handler.ts b/packages/twenty-server/src/engine/api/rest/core/handlers/rest-api-create-many.handler.ts index 9ce9671a9..ef8a96a7b 100644 --- a/packages/twenty-server/src/engine/api/rest/core/handlers/rest-api-create-many.handler.ts +++ b/packages/twenty-server/src/engine/api/rest/core/handlers/rest-api-create-many.handler.ts @@ -21,6 +21,7 @@ export class RestApiCreateManyHandler extends RestApiBaseHandler { throw new BadRequestException('Input must not be empty'); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any const overriddenRecordsToCreate: Record[] = []; for (const recordToCreate of body) { diff --git a/packages/twenty-server/src/engine/api/rest/core/handlers/rest-api-find-duplicates.handler.ts b/packages/twenty-server/src/engine/api/rest/core/handlers/rest-api-find-duplicates.handler.ts index 4b47b6447..864f3baf4 100644 --- a/packages/twenty-server/src/engine/api/rest/core/handlers/rest-api-find-duplicates.handler.ts +++ b/packages/twenty-server/src/engine/api/rest/core/handlers/rest-api-find-duplicates.handler.ts @@ -121,6 +121,7 @@ export class RestApiFindDuplicatesHandler extends RestApiBaseHandler { startCursor, endCursor, }: { + // eslint-disable-next-line @typescript-eslint/no-explicit-any finalRecords: any[]; objectMetadataNameSingular: string; isForwardPagination: boolean; diff --git a/packages/twenty-server/src/engine/api/rest/core/handlers/rest-api-find-many.handler.ts b/packages/twenty-server/src/engine/api/rest/core/handlers/rest-api-find-many.handler.ts index fdf6b0c65..2cb5acf96 100644 --- a/packages/twenty-server/src/engine/api/rest/core/handlers/rest-api-find-many.handler.ts +++ b/packages/twenty-server/src/engine/api/rest/core/handlers/rest-api-find-many.handler.ts @@ -50,6 +50,7 @@ export class RestApiFindManyHandler extends RestApiBaseHandler { startCursor, endCursor, }: { + // eslint-disable-next-line @typescript-eslint/no-explicit-any finalRecords: any[]; objectMetadataNamePlural: string; isForwardPagination: boolean; diff --git a/packages/twenty-server/src/engine/api/rest/utils/clean-graphql-response.utils.ts b/packages/twenty-server/src/engine/api/rest/utils/clean-graphql-response.utils.ts index f4d11c166..cfd1d0792 100644 --- a/packages/twenty-server/src/engine/api/rest/utils/clean-graphql-response.utils.ts +++ b/packages/twenty-server/src/engine/api/rest/utils/clean-graphql-response.utils.ts @@ -1,11 +1,14 @@ +// eslint-disable-next-line @typescript-eslint/no-explicit-any export const cleanGraphQLResponse = (input: any) => { if (!input) return null; const output = { data: {} }; // Initialize the output with a data key at the top level + // eslint-disable-next-line @typescript-eslint/no-explicit-any const isObject = (obj: any) => { return obj !== null && typeof obj === 'object' && !Array.isArray(obj); }; + // eslint-disable-next-line @typescript-eslint/no-explicit-any const cleanObject = (obj: any) => { const cleanedObj = {}; diff --git a/packages/twenty-server/src/engine/api/utils/compute-cursor-arg-filter.utils.ts b/packages/twenty-server/src/engine/api/utils/compute-cursor-arg-filter.utils.ts index f1ae08681..42f85efc6 100644 --- a/packages/twenty-server/src/engine/api/utils/compute-cursor-arg-filter.utils.ts +++ b/packages/twenty-server/src/engine/api/utils/compute-cursor-arg-filter.utils.ts @@ -33,6 +33,7 @@ const computeOperator = ( const validateAndGetOrderBy = ( key: string, orderBy: ObjectRecordOrderBy, + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): Record => { const keyOrderBy = orderBy.find((order) => key in order); @@ -51,6 +52,7 @@ const isAscendingOrder = (direction: OrderByDirection): boolean => direction === OrderByDirection.AscNullsLast; export const computeCursorArgFilter = ( + // eslint-disable-next-line @typescript-eslint/no-explicit-any cursor: Record, orderBy: ObjectRecordOrderBy, fieldMetadataMapByName: FieldMetadataMap, @@ -99,11 +101,13 @@ export const computeCursorArgFilter = ( const buildWhereCondition = ( key: string, + // eslint-disable-next-line @typescript-eslint/no-explicit-any value: any, fieldMetadataMapByName: FieldMetadataMap, orderBy: ObjectRecordOrderBy, isForwardPagination: boolean, operator?: string, + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): Record => { const fieldMetadata = fieldMetadataMapByName[key]; @@ -138,11 +142,13 @@ const buildWhereCondition = ( const buildCompositeWhereCondition = ( key: string, + // eslint-disable-next-line @typescript-eslint/no-explicit-any value: any, fieldType: FieldMetadataType, orderBy: ObjectRecordOrderBy, isForwardPagination: boolean, operator?: string, + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): Record => { const compositeType = compositeTypeDefinitions.get(fieldType); @@ -154,6 +160,7 @@ const buildCompositeWhereCondition = ( } const keyOrderBy = validateAndGetOrderBy(key, orderBy); + // eslint-disable-next-line @typescript-eslint/no-explicit-any const result: Record = {}; compositeType.properties.forEach((property) => { diff --git a/packages/twenty-server/src/engine/core-modules/admin-panel/admin-panel-health.service.ts b/packages/twenty-server/src/engine/core-modules/admin-panel/admin-panel-health.service.ts index fc3647d26..8a37d3821 100644 --- a/packages/twenty-server/src/engine/core-modules/admin-panel/admin-panel-health.service.ts +++ b/packages/twenty-server/src/engine/core-modules/admin-panel/admin-panel-health.service.ts @@ -46,6 +46,7 @@ export class AdminPanelHealthService { : AdminPanelHealthServiceStatus.OUTAGE; } + // eslint-disable-next-line @typescript-eslint/no-explicit-any private transformServiceDetails(details: any) { if (!details) return details; diff --git a/packages/twenty-server/src/engine/core-modules/app-token/app-token.auto-resolver-opts.ts b/packages/twenty-server/src/engine/core-modules/app-token/app-token.auto-resolver-opts.ts index f431a2e8a..bdf061aa6 100644 --- a/packages/twenty-server/src/engine/core-modules/app-token/app-token.auto-resolver-opts.ts +++ b/packages/twenty-server/src/engine/core-modules/app-token/app-token.auto-resolver-opts.ts @@ -9,10 +9,13 @@ import { CreateAppTokenInput } from 'src/engine/core-modules/app-token/dtos/crea import { WorkspaceAuthGuard } from 'src/engine/guards/workspace-auth.guard'; export const appTokenAutoResolverOpts: AutoResolverOpts< + // eslint-disable-next-line @typescript-eslint/no-explicit-any any, + // eslint-disable-next-line @typescript-eslint/no-explicit-any any, unknown, unknown, + // eslint-disable-next-line @typescript-eslint/no-explicit-any ReadResolverOpts, PagingStrategies >[] = [ diff --git a/packages/twenty-server/src/engine/core-modules/app-token/hooks/before-create-one-app-token.hook.ts b/packages/twenty-server/src/engine/core-modules/app-token/hooks/before-create-one-app-token.hook.ts index 0927ee8de..47e55ff94 100644 --- a/packages/twenty-server/src/engine/core-modules/app-token/hooks/before-create-one-app-token.hook.ts +++ b/packages/twenty-server/src/engine/core-modules/app-token/hooks/before-create-one-app-token.hook.ts @@ -11,6 +11,7 @@ export class BeforeCreateOneAppToken { async run( instance: CreateOneInputType, + // eslint-disable-next-line @typescript-eslint/no-explicit-any context: any, ): Promise> { const userId = context?.req?.user?.id; diff --git a/packages/twenty-server/src/engine/core-modules/audit/dtos/create-object-event.input.ts b/packages/twenty-server/src/engine/core-modules/audit/dtos/create-object-event.input.ts index 5595d5324..cb8e8e1e6 100644 --- a/packages/twenty-server/src/engine/core-modules/audit/dtos/create-object-event.input.ts +++ b/packages/twenty-server/src/engine/core-modules/audit/dtos/create-object-event.input.ts @@ -25,5 +25,6 @@ export class CreateObjectEventInput { @Field(() => GraphQLJSON, { nullable: true }) @IsObject() @IsOptional() + // eslint-disable-next-line @typescript-eslint/no-explicit-any properties?: Record; } diff --git a/packages/twenty-server/src/engine/core-modules/audit/utils/events/workspace-event/track.ts b/packages/twenty-server/src/engine/core-modules/audit/utils/events/workspace-event/track.ts index 54612549d..fef9490c0 100644 --- a/packages/twenty-server/src/engine/core-modules/audit/utils/events/workspace-event/track.ts +++ b/packages/twenty-server/src/engine/core-modules/audit/utils/events/workspace-event/track.ts @@ -11,6 +11,7 @@ export const genericTrackSchema = baseEventSchema.extend({ export type GenericTrackEvent = { type: 'track'; event: E; + // eslint-disable-next-line @typescript-eslint/no-explicit-any properties: any; timestamp: string; version: string; @@ -18,8 +19,10 @@ export type GenericTrackEvent = { workspaceId?: string; }; +// eslint-disable-next-line @typescript-eslint/no-explicit-any export const eventsRegistry = new Map>(); +// eslint-disable-next-line @typescript-eslint/no-explicit-any export function registerEvent>( event: E, schema: S, diff --git a/packages/twenty-server/src/engine/core-modules/auth/controllers/sso-auth.controller.ts b/packages/twenty-server/src/engine/core-modules/auth/controllers/sso-auth.controller.ts index 5754ba719..a1ca4b777 100644 --- a/packages/twenty-server/src/engine/core-modules/auth/controllers/sso-auth.controller.ts +++ b/packages/twenty-server/src/engine/core-modules/auth/controllers/sso-auth.controller.ts @@ -57,6 +57,7 @@ export class SSOAuthController { @Get('saml/metadata/:identityProviderId') @UseGuards(EnterpriseFeaturesEnabledGuard) @UseFilters(AuthRestApiExceptionFilter) + // eslint-disable-next-line @typescript-eslint/no-explicit-any async generateMetadata(@Req() req: any): Promise { return generateServiceProviderMetadata({ wantAssertionsSigned: false, diff --git a/packages/twenty-server/src/engine/core-modules/auth/guards/oidc-auth.guard.ts b/packages/twenty-server/src/engine/core-modules/auth/guards/oidc-auth.guard.ts index a2760f308..e1049141e 100644 --- a/packages/twenty-server/src/engine/core-modules/auth/guards/oidc-auth.guard.ts +++ b/packages/twenty-server/src/engine/core-modules/auth/guards/oidc-auth.guard.ts @@ -26,6 +26,7 @@ export class OIDCAuthGuard extends AuthGuard('openidconnect') { super(); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any private getStateByRequest(request: any): { identityProviderId: string; } { diff --git a/packages/twenty-server/src/engine/core-modules/auth/strategies/google-apis-oauth-exchange-code-for-token.auth.strategy.ts b/packages/twenty-server/src/engine/core-modules/auth/strategies/google-apis-oauth-exchange-code-for-token.auth.strategy.ts index f10e63f5a..674a08aa6 100644 --- a/packages/twenty-server/src/engine/core-modules/auth/strategies/google-apis-oauth-exchange-code-for-token.auth.strategy.ts +++ b/packages/twenty-server/src/engine/core-modules/auth/strategies/google-apis-oauth-exchange-code-for-token.auth.strategy.ts @@ -20,6 +20,7 @@ export class GoogleAPIsOauthExchangeCodeForTokenStrategy extends GoogleAPIsOauth request: GoogleAPIsRequest, accessToken: string, refreshToken: string, + // eslint-disable-next-line @typescript-eslint/no-explicit-any profile: any, done: VerifyCallback, ): Promise { diff --git a/packages/twenty-server/src/engine/core-modules/auth/strategies/google-apis-oauth-request-code.auth.strategy.ts b/packages/twenty-server/src/engine/core-modules/auth/strategies/google-apis-oauth-request-code.auth.strategy.ts index b5339f5af..bbd8e5083 100644 --- a/packages/twenty-server/src/engine/core-modules/auth/strategies/google-apis-oauth-request-code.auth.strategy.ts +++ b/packages/twenty-server/src/engine/core-modules/auth/strategies/google-apis-oauth-request-code.auth.strategy.ts @@ -14,6 +14,8 @@ export class GoogleAPIsOauthRequestCodeStrategy extends GoogleAPIsOauthCommonStr super(twentyConfigService); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any authenticate(req: any, options: any) { options = { ...options, diff --git a/packages/twenty-server/src/engine/core-modules/auth/strategies/google.auth.strategy.ts b/packages/twenty-server/src/engine/core-modules/auth/strategies/google.auth.strategy.ts index d2f132eaf..66d881d75 100644 --- a/packages/twenty-server/src/engine/core-modules/auth/strategies/google.auth.strategy.ts +++ b/packages/twenty-server/src/engine/core-modules/auth/strategies/google.auth.strategy.ts @@ -36,6 +36,7 @@ export class GoogleStrategy extends PassportStrategy(Strategy, 'google') { }); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any authenticate(req: Request, options: any) { options = { ...options, @@ -54,6 +55,7 @@ export class GoogleStrategy extends PassportStrategy(Strategy, 'google') { request: GoogleRequest, accessToken: string, refreshToken: string, + // eslint-disable-next-line @typescript-eslint/no-explicit-any profile: any, done: VerifyCallback, ): Promise { diff --git a/packages/twenty-server/src/engine/core-modules/auth/strategies/microsoft-apis-oauth-exchange-code-for-token.auth.strategy.ts b/packages/twenty-server/src/engine/core-modules/auth/strategies/microsoft-apis-oauth-exchange-code-for-token.auth.strategy.ts index c0b9e418f..d129cf0b5 100644 --- a/packages/twenty-server/src/engine/core-modules/auth/strategies/microsoft-apis-oauth-exchange-code-for-token.auth.strategy.ts +++ b/packages/twenty-server/src/engine/core-modules/auth/strategies/microsoft-apis-oauth-exchange-code-for-token.auth.strategy.ts @@ -20,6 +20,7 @@ export class MicrosoftAPIsOauthExchangeCodeForTokenStrategy extends MicrosoftAPI request: MicrosoftAPIsRequest, accessToken: string, refreshToken: string, + // eslint-disable-next-line @typescript-eslint/no-explicit-any profile: any, done: VerifyCallback, ): Promise { diff --git a/packages/twenty-server/src/engine/core-modules/auth/strategies/microsoft-apis-oauth-request-code.auth.strategy.ts b/packages/twenty-server/src/engine/core-modules/auth/strategies/microsoft-apis-oauth-request-code.auth.strategy.ts index 9a48798b6..851277ce2 100644 --- a/packages/twenty-server/src/engine/core-modules/auth/strategies/microsoft-apis-oauth-request-code.auth.strategy.ts +++ b/packages/twenty-server/src/engine/core-modules/auth/strategies/microsoft-apis-oauth-request-code.auth.strategy.ts @@ -9,6 +9,8 @@ export class MicrosoftAPIsOauthRequestCodeStrategy extends MicrosoftAPIsOauthCom super(twentyConfigService); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any authenticate(req: any, options: any) { options = { ...options, diff --git a/packages/twenty-server/src/engine/core-modules/auth/strategies/microsoft.auth.strategy.ts b/packages/twenty-server/src/engine/core-modules/auth/strategies/microsoft.auth.strategy.ts index 0c48e37d1..4dddd7153 100644 --- a/packages/twenty-server/src/engine/core-modules/auth/strategies/microsoft.auth.strategy.ts +++ b/packages/twenty-server/src/engine/core-modules/auth/strategies/microsoft.auth.strategy.ts @@ -40,6 +40,7 @@ export class MicrosoftStrategy extends PassportStrategy(Strategy, 'microsoft') { }); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any authenticate(req: Request, options: any) { options = { ...options, @@ -59,6 +60,7 @@ export class MicrosoftStrategy extends PassportStrategy(Strategy, 'microsoft') { request: MicrosoftRequest, accessToken: string, refreshToken: string, + // eslint-disable-next-line @typescript-eslint/no-explicit-any profile: any, done: VerifyCallback, ): Promise { diff --git a/packages/twenty-server/src/engine/core-modules/auth/strategies/oidc.auth.strategy.ts b/packages/twenty-server/src/engine/core-modules/auth/strategies/oidc.auth.strategy.ts index 0f3bfb80a..18b3b431b 100644 --- a/packages/twenty-server/src/engine/core-modules/auth/strategies/oidc.auth.strategy.ts +++ b/packages/twenty-server/src/engine/core-modules/auth/strategies/oidc.auth.strategy.ts @@ -45,6 +45,7 @@ export class OIDCAuthStrategy extends PassportStrategy( }); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any async authenticate(req: Request, options: any) { return super.authenticate(req, { ...options, @@ -84,6 +85,7 @@ export class OIDCAuthStrategy extends PassportStrategy( async validate( req: Request, tokenset: TokenSet, + // eslint-disable-next-line @typescript-eslint/no-explicit-any done: (err: any, user?: OIDCRequest['user']) => void, ) { try { diff --git a/packages/twenty-server/src/engine/core-modules/cache-storage/cache-storage.module.ts b/packages/twenty-server/src/engine/core-modules/cache-storage/cache-storage.module.ts index 96210df65..24ca082d3 100644 --- a/packages/twenty-server/src/engine/core-modules/cache-storage/cache-storage.module.ts +++ b/packages/twenty-server/src/engine/core-modules/cache-storage/cache-storage.module.ts @@ -34,7 +34,9 @@ export class CacheStorageModule implements OnModuleDestroy { constructor(@Inject(CACHE_MANAGER) private cacheManager: Cache) {} async onModuleDestroy() { + // eslint-disable-next-line @typescript-eslint/no-explicit-any if ((this.cacheManager.store as any)?.name === 'redis') { + // eslint-disable-next-line @typescript-eslint/no-explicit-any await (this.cacheManager.store as any).client.quit(); } } diff --git a/packages/twenty-server/src/engine/core-modules/cache-storage/commands/flush-cache.command.ts b/packages/twenty-server/src/engine/core-modules/cache-storage/commands/flush-cache.command.ts index 0a4d51357..98b9717cf 100644 --- a/packages/twenty-server/src/engine/core-modules/cache-storage/commands/flush-cache.command.ts +++ b/packages/twenty-server/src/engine/core-modules/cache-storage/commands/flush-cache.command.ts @@ -22,6 +22,7 @@ export class FlushCacheCommand extends CommandRunner { async run( passedParams: string[], + // eslint-disable-next-line @typescript-eslint/no-explicit-any options?: Record, ): Promise { const pattern = options?.pattern || '*'; diff --git a/packages/twenty-server/src/engine/core-modules/cache-storage/services/cache-storage.service.ts b/packages/twenty-server/src/engine/core-modules/cache-storage/services/cache-storage.service.ts index 6990137ad..70fe45a48 100644 --- a/packages/twenty-server/src/engine/core-modules/cache-storage/services/cache-storage.service.ts +++ b/packages/twenty-server/src/engine/core-modules/cache-storage/services/cache-storage.service.ts @@ -123,6 +123,7 @@ export class CacheStorageService { } private isRedisCache() { + // eslint-disable-next-line @typescript-eslint/no-explicit-any return (this.cache.store as any)?.name === 'redis'; } diff --git a/packages/twenty-server/src/engine/core-modules/captcha/captcha.module.ts b/packages/twenty-server/src/engine/core-modules/captcha/captcha.module.ts index 90cdc578f..c8547b794 100644 --- a/packages/twenty-server/src/engine/core-modules/captcha/captcha.module.ts +++ b/packages/twenty-server/src/engine/core-modules/captcha/captcha.module.ts @@ -14,6 +14,7 @@ export class CaptchaModule { static forRoot(options: CaptchaModuleAsyncOptions): DynamicModule { const provider = { provide: CAPTCHA_DRIVER, + // eslint-disable-next-line @typescript-eslint/no-explicit-any useFactory: async (...args: any[]) => { const config = await options.useFactory(...args); diff --git a/packages/twenty-server/src/engine/core-modules/captcha/interfaces/captcha.interface.ts b/packages/twenty-server/src/engine/core-modules/captcha/interfaces/captcha.interface.ts index f19e15fa2..f6f61b814 100644 --- a/packages/twenty-server/src/engine/core-modules/captcha/interfaces/captcha.interface.ts +++ b/packages/twenty-server/src/engine/core-modules/captcha/interfaces/captcha.interface.ts @@ -31,6 +31,7 @@ export type CaptchaModuleOptions = export type CaptchaModuleAsyncOptions = { useFactory: ( + // eslint-disable-next-line @typescript-eslint/no-explicit-any ...args: any[] ) => CaptchaModuleOptions | Promise | undefined; } & Pick & diff --git a/packages/twenty-server/src/engine/core-modules/cron/sentry-cron-monitor.decorator.ts b/packages/twenty-server/src/engine/core-modules/cron/sentry-cron-monitor.decorator.ts index ad60c242c..86baba96c 100644 --- a/packages/twenty-server/src/engine/core-modules/cron/sentry-cron-monitor.decorator.ts +++ b/packages/twenty-server/src/engine/core-modules/cron/sentry-cron-monitor.decorator.ts @@ -2,12 +2,14 @@ import * as Sentry from '@sentry/node'; export function SentryCronMonitor(monitorSlug: string, schedule: string) { return function ( + // eslint-disable-next-line @typescript-eslint/no-explicit-any target: any, propertyKey: string, descriptor: PropertyDescriptor, ) { const originalMethod = descriptor.value; + // eslint-disable-next-line @typescript-eslint/no-explicit-any descriptor.value = async function (...args: any[]) { if (!Sentry.isInitialized()) { return await originalMethod.apply(this, args); diff --git a/packages/twenty-server/src/engine/core-modules/email/email.module.ts b/packages/twenty-server/src/engine/core-modules/email/email.module.ts index 7a98760be..96001af7f 100644 --- a/packages/twenty-server/src/engine/core-modules/email/email.module.ts +++ b/packages/twenty-server/src/engine/core-modules/email/email.module.ts @@ -16,6 +16,7 @@ export class EmailModule { static forRoot(options: EmailModuleAsyncOptions): DynamicModule { const provider = { provide: EMAIL_DRIVER, + // eslint-disable-next-line @typescript-eslint/no-explicit-any useFactory: (...args: any[]) => { const config = options.useFactory(...args); diff --git a/packages/twenty-server/src/engine/core-modules/email/interfaces/email.interface.ts b/packages/twenty-server/src/engine/core-modules/email/interfaces/email.interface.ts index a9e830e37..f359af774 100644 --- a/packages/twenty-server/src/engine/core-modules/email/interfaces/email.interface.ts +++ b/packages/twenty-server/src/engine/core-modules/email/interfaces/email.interface.ts @@ -16,6 +16,7 @@ export type EmailModuleOptions = }; export type EmailModuleAsyncOptions = { + // eslint-disable-next-line @typescript-eslint/no-explicit-any useFactory: (...args: any[]) => EmailModuleOptions; } & Pick & Pick; diff --git a/packages/twenty-server/src/engine/core-modules/event-emitter/utils/object-record-changed-values.ts b/packages/twenty-server/src/engine/core-modules/event-emitter/utils/object-record-changed-values.ts index d1a5fb248..81f85186d 100644 --- a/packages/twenty-server/src/engine/core-modules/event-emitter/utils/object-record-changed-values.ts +++ b/packages/twenty-server/src/engine/core-modules/event-emitter/utils/object-record-changed-values.ts @@ -29,6 +29,8 @@ export const objectRecordChangedValues = ( return acc; }, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any {} as Record, ); }; diff --git a/packages/twenty-server/src/engine/core-modules/event-emitter/utils/object-record-diff-merge.ts b/packages/twenty-server/src/engine/core-modules/event-emitter/utils/object-record-diff-merge.ts index 020ab9385..4a048bc45 100644 --- a/packages/twenty-server/src/engine/core-modules/event-emitter/utils/object-record-diff-merge.ts +++ b/packages/twenty-server/src/engine/core-modules/event-emitter/utils/object-record-diff-merge.ts @@ -1,7 +1,11 @@ export function objectRecordDiffMerge( + // eslint-disable-next-line @typescript-eslint/no-explicit-any oldRecord: Record, + // eslint-disable-next-line @typescript-eslint/no-explicit-any newRecord: Record, + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): Record { + // eslint-disable-next-line @typescript-eslint/no-explicit-any const result: Record = { diff: {} }; // Iterate over the keys in the oldRecord diff diff --git a/packages/twenty-server/src/engine/core-modules/exception-handler/drivers/console.driver.ts b/packages/twenty-server/src/engine/core-modules/exception-handler/drivers/console.driver.ts index 4d4c420b0..29a2646ff 100644 --- a/packages/twenty-server/src/engine/core-modules/exception-handler/drivers/console.driver.ts +++ b/packages/twenty-server/src/engine/core-modules/exception-handler/drivers/console.driver.ts @@ -7,6 +7,7 @@ export class ExceptionHandlerConsoleDriver implements ExceptionHandlerDriverInterface { captureExceptions( + // eslint-disable-next-line @typescript-eslint/no-explicit-any exceptions: ReadonlyArray, options?: ExceptionHandlerOptions, ) { diff --git a/packages/twenty-server/src/engine/core-modules/exception-handler/drivers/sentry.driver.ts b/packages/twenty-server/src/engine/core-modules/exception-handler/drivers/sentry.driver.ts index 742477766..d07b12c8f 100644 --- a/packages/twenty-server/src/engine/core-modules/exception-handler/drivers/sentry.driver.ts +++ b/packages/twenty-server/src/engine/core-modules/exception-handler/drivers/sentry.driver.ts @@ -9,6 +9,7 @@ export class ExceptionHandlerSentryDriver implements ExceptionHandlerDriverInterface { captureExceptions( + // eslint-disable-next-line @typescript-eslint/no-explicit-any exceptions: ReadonlyArray, options?: ExceptionHandlerOptions, ) { diff --git a/packages/twenty-server/src/engine/core-modules/exception-handler/exception-handler.module.ts b/packages/twenty-server/src/engine/core-modules/exception-handler/exception-handler.module.ts index 4028ed4eb..0ce3c730a 100644 --- a/packages/twenty-server/src/engine/core-modules/exception-handler/exception-handler.module.ts +++ b/packages/twenty-server/src/engine/core-modules/exception-handler/exception-handler.module.ts @@ -37,6 +37,7 @@ export class ExceptionHandlerModule extends ConfigurableModuleClass { static forRootAsync(options: typeof ASYNC_OPTIONS_TYPE): DynamicModule { const provider = { provide: EXCEPTION_HANDLER_DRIVER, + // eslint-disable-next-line @typescript-eslint/no-explicit-any useFactory: async (...args: any[]) => { const config = await options?.useFactory?.(...args); diff --git a/packages/twenty-server/src/engine/core-modules/exception-handler/exception-handler.service.ts b/packages/twenty-server/src/engine/core-modules/exception-handler/exception-handler.service.ts index a532587d7..3f3d4a636 100644 --- a/packages/twenty-server/src/engine/core-modules/exception-handler/exception-handler.service.ts +++ b/packages/twenty-server/src/engine/core-modules/exception-handler/exception-handler.service.ts @@ -13,6 +13,7 @@ export class ExceptionHandlerService { ) {} captureExceptions( + // eslint-disable-next-line @typescript-eslint/no-explicit-any exceptions: ReadonlyArray, options?: ExceptionHandlerOptions, ): string[] { diff --git a/packages/twenty-server/src/engine/core-modules/exception-handler/http-exception-handler.service.ts b/packages/twenty-server/src/engine/core-modules/exception-handler/http-exception-handler.service.ts index e2eb2c947..2f57f7a33 100644 --- a/packages/twenty-server/src/engine/core-modules/exception-handler/http-exception-handler.service.ts +++ b/packages/twenty-server/src/engine/core-modules/exception-handler/http-exception-handler.service.ts @@ -22,6 +22,7 @@ export const handleException = ( interface RequestAndParams { request: Request | null; + // eslint-disable-next-line @typescript-eslint/no-explicit-any params: any; } @@ -35,10 +36,14 @@ export class HttpExceptionHandlerService { handleError = ( exception: CustomException, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any response: Response>, errorCode?: number, user?: ExceptionHandlerUser, workspace?: ExceptionHandlerWorkspace, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): Response> | undefined => { const params = this.request?.params; diff --git a/packages/twenty-server/src/engine/core-modules/exception-handler/interfaces/exception-handler-driver.interface.ts b/packages/twenty-server/src/engine/core-modules/exception-handler/interfaces/exception-handler-driver.interface.ts index d98893eea..d4f070c4e 100644 --- a/packages/twenty-server/src/engine/core-modules/exception-handler/interfaces/exception-handler-driver.interface.ts +++ b/packages/twenty-server/src/engine/core-modules/exception-handler/interfaces/exception-handler-driver.interface.ts @@ -2,6 +2,7 @@ import { ExceptionHandlerOptions } from 'src/engine/core-modules/exception-handl export interface ExceptionHandlerDriverInterface { captureExceptions( + // eslint-disable-next-line @typescript-eslint/no-explicit-any exceptions: ReadonlyArray, options?: ExceptionHandlerOptions, ): string[]; diff --git a/packages/twenty-server/src/engine/core-modules/exception-handler/interfaces/exception-handler-options.interface.ts b/packages/twenty-server/src/engine/core-modules/exception-handler/interfaces/exception-handler-options.interface.ts index 94c05fd95..c42a6bd56 100644 --- a/packages/twenty-server/src/engine/core-modules/exception-handler/interfaces/exception-handler-options.interface.ts +++ b/packages/twenty-server/src/engine/core-modules/exception-handler/interfaces/exception-handler-options.interface.ts @@ -9,6 +9,7 @@ export interface ExceptionHandlerOptions { name: string; }; document?: string; + // eslint-disable-next-line @typescript-eslint/no-explicit-any additionalData?: Record; user?: ExceptionHandlerUser | null; workspace?: ExceptionHandlerWorkspace | null; diff --git a/packages/twenty-server/src/engine/core-modules/exception-handler/mocks/exception-handler-mock.service.ts b/packages/twenty-server/src/engine/core-modules/exception-handler/mocks/exception-handler-mock.service.ts index 5af5f0a6a..e5a519064 100644 --- a/packages/twenty-server/src/engine/core-modules/exception-handler/mocks/exception-handler-mock.service.ts +++ b/packages/twenty-server/src/engine/core-modules/exception-handler/mocks/exception-handler-mock.service.ts @@ -9,6 +9,7 @@ export class ExceptionHandlerMockService implements ExceptionHandlerDriverInterface { captureExceptions( + // eslint-disable-next-line @typescript-eslint/no-explicit-any exceptions: readonly any[], _?: ExceptionHandlerOptions | undefined, ): string[] { diff --git a/packages/twenty-server/src/engine/core-modules/exception-handler/mocks/mock-unhandled-exception.filter.ts b/packages/twenty-server/src/engine/core-modules/exception-handler/mocks/mock-unhandled-exception.filter.ts index cc579e5f9..bc191bed8 100644 --- a/packages/twenty-server/src/engine/core-modules/exception-handler/mocks/mock-unhandled-exception.filter.ts +++ b/packages/twenty-server/src/engine/core-modules/exception-handler/mocks/mock-unhandled-exception.filter.ts @@ -6,6 +6,7 @@ export class MockedUnhandledExceptionFilter extends BaseExceptionFilter implements ExceptionFilter { + // eslint-disable-next-line @typescript-eslint/no-explicit-any catch(exception: any, _host: ArgumentsHost) { throw exception; } diff --git a/packages/twenty-server/src/engine/core-modules/file-storage/file-storage.module.ts b/packages/twenty-server/src/engine/core-modules/file-storage/file-storage.module.ts index 7c8a5e683..44fc5990b 100644 --- a/packages/twenty-server/src/engine/core-modules/file-storage/file-storage.module.ts +++ b/packages/twenty-server/src/engine/core-modules/file-storage/file-storage.module.ts @@ -30,6 +30,7 @@ export class FileStorageModule { static forRootAsync(options: FileStorageModuleAsyncOptions): DynamicModule { const provider = { provide: STORAGE_DRIVER, + // eslint-disable-next-line @typescript-eslint/no-explicit-any useFactory: async (...args: any[]) => { const config = await options.useFactory(...args); diff --git a/packages/twenty-server/src/engine/core-modules/file-storage/interfaces/file-storage.interface.ts b/packages/twenty-server/src/engine/core-modules/file-storage/interfaces/file-storage.interface.ts index cff95d736..bfac55fbb 100644 --- a/packages/twenty-server/src/engine/core-modules/file-storage/interfaces/file-storage.interface.ts +++ b/packages/twenty-server/src/engine/core-modules/file-storage/interfaces/file-storage.interface.ts @@ -24,6 +24,7 @@ export type FileStorageModuleOptions = export type FileStorageModuleAsyncOptions = { useFactory: ( + // eslint-disable-next-line @typescript-eslint/no-explicit-any ...args: any[] ) => FileStorageModuleOptions | Promise; } & Pick & diff --git a/packages/twenty-server/src/engine/core-modules/file/controllers/file.controller.ts b/packages/twenty-server/src/engine/core-modules/file/controllers/file.controller.ts index 4c9ed0744..0405f62cd 100644 --- a/packages/twenty-server/src/engine/core-modules/file/controllers/file.controller.ts +++ b/packages/twenty-server/src/engine/core-modules/file/controllers/file.controller.ts @@ -42,6 +42,7 @@ export class FileController { const folderPath = checkFilePath(params[0]); const filename = checkFilename(params['filename']); + // eslint-disable-next-line @typescript-eslint/no-explicit-any const workspaceId = (req as any)?.workspaceId; if (!workspaceId) { diff --git a/packages/twenty-server/src/engine/core-modules/file/services/file.service.ts b/packages/twenty-server/src/engine/core-modules/file/services/file.service.ts index 2de14a4ca..5c5658460 100644 --- a/packages/twenty-server/src/engine/core-modules/file/services/file.service.ts +++ b/packages/twenty-server/src/engine/core-modules/file/services/file.service.ts @@ -27,6 +27,7 @@ export class FileService { }); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any encodeFileToken(payloadToEncode: Record) { const fileTokenExpiresIn = this.twentyConfigService.get( 'FILE_TOKEN_EXPIRES_IN', diff --git a/packages/twenty-server/src/engine/core-modules/graphql/utils/graphql-errors.util.ts b/packages/twenty-server/src/engine/core-modules/graphql/utils/graphql-errors.util.ts index 701159c0f..72c080ee5 100644 --- a/packages/twenty-server/src/engine/core-modules/graphql/utils/graphql-errors.util.ts +++ b/packages/twenty-server/src/engine/core-modules/graphql/utils/graphql-errors.util.ts @@ -31,6 +31,7 @@ export enum ErrorCode { } export class BaseGraphQLError extends GraphQLError { + // eslint-disable-next-line @typescript-eslint/no-explicit-any public extensions: Record; override readonly name!: string; readonly locations: ReadonlyArray | undefined; @@ -40,11 +41,13 @@ export class BaseGraphQLError extends GraphQLError { readonly nodes: ReadonlyArray | undefined; public originalError: Error | undefined; + // eslint-disable-next-line @typescript-eslint/no-explicit-any [key: string]: any; constructor( message: string, code?: string, + // eslint-disable-next-line @typescript-eslint/no-explicit-any extensions?: Record, ) { super(message); @@ -106,6 +109,7 @@ export class ValidationError extends BaseGraphQLError { } export class AuthenticationError extends BaseGraphQLError { + // eslint-disable-next-line @typescript-eslint/no-explicit-any constructor(message: string, extensions?: Record) { super(message, ErrorCode.UNAUTHENTICATED, extensions); @@ -114,6 +118,7 @@ export class AuthenticationError extends BaseGraphQLError { } export class ForbiddenError extends BaseGraphQLError { + // eslint-disable-next-line @typescript-eslint/no-explicit-any constructor(message: string, extensions?: Record) { super(message, ErrorCode.FORBIDDEN, extensions); diff --git a/packages/twenty-server/src/engine/core-modules/health/utils/health-state-manager.util.ts b/packages/twenty-server/src/engine/core-modules/health/utils/health-state-manager.util.ts index 5a952dd60..e02af6ec5 100644 --- a/packages/twenty-server/src/engine/core-modules/health/utils/health-state-manager.util.ts +++ b/packages/twenty-server/src/engine/core-modules/health/utils/health-state-manager.util.ts @@ -1,9 +1,11 @@ export class HealthStateManager { private lastKnownState: { timestamp: Date; + // eslint-disable-next-line @typescript-eslint/no-explicit-any details: Record; } | null = null; + // eslint-disable-next-line @typescript-eslint/no-explicit-any updateState(details: Record) { this.lastKnownState = { timestamp: new Date(), diff --git a/packages/twenty-server/src/engine/core-modules/i18n/i18n.service.ts b/packages/twenty-server/src/engine/core-modules/i18n/i18n.service.ts index f4c8fa2c8..c4e218882 100644 --- a/packages/twenty-server/src/engine/core-modules/i18n/i18n.service.ts +++ b/packages/twenty-server/src/engine/core-modules/i18n/i18n.service.ts @@ -38,6 +38,7 @@ import { messages as zhHantMessages } from 'src/engine/core-modules/i18n/locales @Injectable() export class I18nService implements OnModuleInit { async loadTranslations() { + // eslint-disable-next-line @typescript-eslint/no-explicit-any const messages: Record = { en: enMessages, 'pseudo-en': pseudoEnMessages, @@ -72,6 +73,7 @@ export class I18nService implements OnModuleInit { 'zh-TW': zhHantMessages, }; + // eslint-disable-next-line @typescript-eslint/no-explicit-any (Object.entries(messages) as [keyof typeof APP_LOCALES, any][]).forEach( ([locale, message]) => { i18n.load(locale, message); diff --git a/packages/twenty-server/src/engine/core-modules/jwt/services/jwt-wrapper.service.ts b/packages/twenty-server/src/engine/core-modules/jwt/services/jwt-wrapper.service.ts index e5c803cde..044f23663 100644 --- a/packages/twenty-server/src/engine/core-modules/jwt/services/jwt-wrapper.service.ts +++ b/packages/twenty-server/src/engine/core-modules/jwt/services/jwt-wrapper.service.ts @@ -39,10 +39,12 @@ export class JwtWrapperService { return this.jwtService.sign(payload, options); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any verify(token: string, options?: JwtVerifyOptions): T { return this.jwtService.verify(token, options); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any decode(payload: string, options?: jwt.DecodeOptions): T { return this.jwtService.decode(payload, options); } diff --git a/packages/twenty-server/src/engine/core-modules/key-value-pair/key-value-pair.service.ts b/packages/twenty-server/src/engine/core-modules/key-value-pair/key-value-pair.service.ts index cd2b4261f..a6b4f82d4 100644 --- a/packages/twenty-server/src/engine/core-modules/key-value-pair/key-value-pair.service.ts +++ b/packages/twenty-server/src/engine/core-modules/key-value-pair/key-value-pair.service.ts @@ -8,6 +8,8 @@ import { } from 'src/engine/core-modules/key-value-pair/key-value-pair.entity'; export class KeyValuePairService< + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any KeyValueTypesMap extends Record = Record, > { constructor( diff --git a/packages/twenty-server/src/engine/core-modules/llm-chat-model/interfaces/llm-chat-model.interface.ts b/packages/twenty-server/src/engine/core-modules/llm-chat-model/interfaces/llm-chat-model.interface.ts index 5c6edbcd0..bb67a7e22 100644 --- a/packages/twenty-server/src/engine/core-modules/llm-chat-model/interfaces/llm-chat-model.interface.ts +++ b/packages/twenty-server/src/engine/core-modules/llm-chat-model/interfaces/llm-chat-model.interface.ts @@ -9,6 +9,7 @@ export interface LLMChatModelModuleOptions { } export type LLMChatModelModuleAsyncOptions = { + // eslint-disable-next-line @typescript-eslint/no-explicit-any useFactory: (...args: any[]) => LLMChatModelModuleOptions | undefined; } & Pick & Pick; diff --git a/packages/twenty-server/src/engine/core-modules/llm-chat-model/llm-chat-model.module.ts b/packages/twenty-server/src/engine/core-modules/llm-chat-model/llm-chat-model.module.ts index 518c3389a..148cde990 100644 --- a/packages/twenty-server/src/engine/core-modules/llm-chat-model/llm-chat-model.module.ts +++ b/packages/twenty-server/src/engine/core-modules/llm-chat-model/llm-chat-model.module.ts @@ -14,6 +14,7 @@ export class LLMChatModelModule { static forRoot(options: LLMChatModelModuleAsyncOptions): DynamicModule { const provider = { provide: LLM_CHAT_MODEL_DRIVER, + // eslint-disable-next-line @typescript-eslint/no-explicit-any useFactory: (...args: any[]) => { const config = options.useFactory(...args); diff --git a/packages/twenty-server/src/engine/core-modules/llm-tracing/interfaces/llm-tracing.interface.ts b/packages/twenty-server/src/engine/core-modules/llm-tracing/interfaces/llm-tracing.interface.ts index 99dcdbd15..1195d5014 100644 --- a/packages/twenty-server/src/engine/core-modules/llm-tracing/interfaces/llm-tracing.interface.ts +++ b/packages/twenty-server/src/engine/core-modules/llm-tracing/interfaces/llm-tracing.interface.ts @@ -21,6 +21,7 @@ export type LLMTracingModuleOptions = | ConsoleDriverFactoryOptions; export type LLMTracingModuleAsyncOptions = { + // eslint-disable-next-line @typescript-eslint/no-explicit-any useFactory: (...args: any[]) => LLMTracingModuleOptions; } & Pick & Pick; diff --git a/packages/twenty-server/src/engine/core-modules/llm-tracing/llm-tracing.module.ts b/packages/twenty-server/src/engine/core-modules/llm-tracing/llm-tracing.module.ts index 045dfbd7c..ef6569580 100644 --- a/packages/twenty-server/src/engine/core-modules/llm-tracing/llm-tracing.module.ts +++ b/packages/twenty-server/src/engine/core-modules/llm-tracing/llm-tracing.module.ts @@ -15,6 +15,7 @@ export class LLMTracingModule { static forRoot(options: LLMTracingModuleAsyncOptions): DynamicModule { const provider = { provide: LLM_TRACING_DRIVER, + // eslint-disable-next-line @typescript-eslint/no-explicit-any useFactory: (...args: any[]) => { const config = options.useFactory(...args); diff --git a/packages/twenty-server/src/engine/core-modules/logger/logger.module.ts b/packages/twenty-server/src/engine/core-modules/logger/logger.module.ts index fba6a3a5f..93063c83a 100644 --- a/packages/twenty-server/src/engine/core-modules/logger/logger.module.ts +++ b/packages/twenty-server/src/engine/core-modules/logger/logger.module.ts @@ -34,6 +34,7 @@ export class LoggerModule extends ConfigurableModuleClass { static forRootAsync(options: typeof ASYNC_OPTIONS_TYPE): DynamicModule { const provider = { provide: LOGGER_DRIVER, + // eslint-disable-next-line @typescript-eslint/no-explicit-any useFactory: async (...args: any[]) => { const config = await options?.useFactory?.(...args); diff --git a/packages/twenty-server/src/engine/core-modules/logger/logger.service.ts b/packages/twenty-server/src/engine/core-modules/logger/logger.service.ts index 8d363bb32..3cbe60481 100644 --- a/packages/twenty-server/src/engine/core-modules/logger/logger.service.ts +++ b/packages/twenty-server/src/engine/core-modules/logger/logger.service.ts @@ -11,10 +11,14 @@ import { LOGGER_DRIVER } from 'src/engine/core-modules/logger/logger.constants'; export class LoggerService implements LoggerServiceInterface { constructor(@Inject(LOGGER_DRIVER) private driver: LoggerServiceInterface) {} + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any log(message: any, category: string, ...optionalParams: any[]) { this.driver.log.apply(this.driver, [message, category, ...optionalParams]); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any error(message: any, category: string, ...optionalParams: any[]) { this.driver.error.apply(this.driver, [ message, @@ -23,10 +27,14 @@ export class LoggerService implements LoggerServiceInterface { ]); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any warn(message: any, category: string, ...optionalParams: any[]) { this.driver.warn.apply(this.driver, [message, category, ...optionalParams]); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any debug?(message: any, category: string, ...optionalParams: any[]) { this.driver.debug?.apply(this.driver, [ message, @@ -35,6 +43,8 @@ export class LoggerService implements LoggerServiceInterface { ]); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any verbose?(message: any, category: string, ...optionalParams: any[]) { this.driver.verbose?.apply(this.driver, [ message, diff --git a/packages/twenty-server/src/engine/core-modules/message-queue/drivers/sync.driver.ts b/packages/twenty-server/src/engine/core-modules/message-queue/drivers/sync.driver.ts index 489599286..255775787 100644 --- a/packages/twenty-server/src/engine/core-modules/message-queue/drivers/sync.driver.ts +++ b/packages/twenty-server/src/engine/core-modules/message-queue/drivers/sync.driver.ts @@ -38,6 +38,7 @@ export class SyncDriver implements MessageQueueDriver { id: '', name: jobName, // TODO: Fix this type issue + // eslint-disable-next-line @typescript-eslint/no-explicit-any data: data as any, }); } diff --git a/packages/twenty-server/src/engine/core-modules/message-queue/interfaces/message-queue-job.interface.ts b/packages/twenty-server/src/engine/core-modules/message-queue/interfaces/message-queue-job.interface.ts index 8a1ced80e..921db7ab8 100644 --- a/packages/twenty-server/src/engine/core-modules/message-queue/interfaces/message-queue-job.interface.ts +++ b/packages/twenty-server/src/engine/core-modules/message-queue/interfaces/message-queue-job.interface.ts @@ -1,3 +1,4 @@ +// eslint-disable-next-line @typescript-eslint/no-explicit-any export interface MessageQueueJob { id: string; name: string; @@ -11,5 +12,6 @@ export interface MessageQueueCronJobData< } export interface MessageQueueJobData { + // eslint-disable-next-line @typescript-eslint/no-explicit-any [key: string]: any; } diff --git a/packages/twenty-server/src/engine/core-modules/message-queue/interfaces/message-queue-module-options.interface.ts b/packages/twenty-server/src/engine/core-modules/message-queue/interfaces/message-queue-module-options.interface.ts index 55027987a..84325867f 100644 --- a/packages/twenty-server/src/engine/core-modules/message-queue/interfaces/message-queue-module-options.interface.ts +++ b/packages/twenty-server/src/engine/core-modules/message-queue/interfaces/message-queue-module-options.interface.ts @@ -19,6 +19,7 @@ export interface BullMQDriverFactoryOptions { export interface SyncDriverFactoryOptions { type: MessageQueueDriverType.Sync; + // eslint-disable-next-line @typescript-eslint/no-explicit-any options: Record; } diff --git a/packages/twenty-server/src/engine/core-modules/message-queue/message-queue-core.module.ts b/packages/twenty-server/src/engine/core-modules/message-queue/message-queue-core.module.ts index fb4b7dd6c..eb0d6b628 100644 --- a/packages/twenty-server/src/engine/core-modules/message-queue/message-queue-core.module.ts +++ b/packages/twenty-server/src/engine/core-modules/message-queue/message-queue-core.module.ts @@ -62,6 +62,7 @@ export class MessageQueueCoreModule extends ConfigurableModuleClass { const driverProvider: Provider = { provide: QUEUE_DRIVER, + // eslint-disable-next-line @typescript-eslint/no-explicit-any useFactory: async (...args: any[]) => { if (options.useFactory) { const config = await options.useFactory(...args); diff --git a/packages/twenty-server/src/engine/core-modules/record-position/utils/build-record-position-query.util.ts b/packages/twenty-server/src/engine/core-modules/record-position/utils/build-record-position-query.util.ts index b26022d03..16e72840e 100644 --- a/packages/twenty-server/src/engine/core-modules/record-position/utils/build-record-position-query.util.ts +++ b/packages/twenty-server/src/engine/core-modules/record-position/utils/build-record-position-query.util.ts @@ -8,6 +8,7 @@ import { computeTableName } from 'src/engine/utils/compute-table-name.util'; type RecordPositionQuery = string; +// eslint-disable-next-line @typescript-eslint/no-explicit-any type RecordPositionQueryParams = any[]; export const buildRecordPositionQuery = ( diff --git a/packages/twenty-server/src/engine/core-modules/record-transformer/services/record-input-transformer.service.ts b/packages/twenty-server/src/engine/core-modules/record-transformer/services/record-input-transformer.service.ts index 30d6d9d66..d089abaff 100644 --- a/packages/twenty-server/src/engine/core-modules/record-transformer/services/record-input-transformer.service.ts +++ b/packages/twenty-server/src/engine/core-modules/record-transformer/services/record-input-transformer.service.ts @@ -21,8 +21,10 @@ export class RecordInputTransformerService { recordInput, objectMetadataMapItem, }: { + // eslint-disable-next-line @typescript-eslint/no-explicit-any recordInput: Record; objectMetadataMapItem: ObjectMetadataItemWithFieldMaps; + // eslint-disable-next-line @typescript-eslint/no-explicit-any }): Promise> { if (!recordInput) { return recordInput; @@ -63,7 +65,9 @@ export class RecordInputTransformerService { async transformFieldValue( fieldType: FieldMetadataType, + // eslint-disable-next-line @typescript-eslint/no-explicit-any value: any, + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): Promise { if (!isDefined(value)) { return value; @@ -90,6 +94,7 @@ export class RecordInputTransformerService { } private async transformRichTextV2Value( + // eslint-disable-next-line @typescript-eslint/no-explicit-any richTextValue: any, ): Promise { const parsedValue = richTextV2ValueSchema.parse(richTextValue); @@ -124,6 +129,8 @@ export class RecordInputTransformerService { }; } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any private transformLinksValue(value: any): any { if (!value) { return value; @@ -157,6 +164,8 @@ export class RecordInputTransformerService { }; } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any private transformEmailsValue(value: any): any { if (!value) { return value; @@ -185,6 +194,7 @@ export class RecordInputTransformerService { }; } + // eslint-disable-next-line @typescript-eslint/no-explicit-any private stringifySubFields(fieldMetadataType: FieldMetadataType, value: any) { const compositeType = compositeTypeDefinitions.get(fieldMetadataType); @@ -213,6 +223,7 @@ export class RecordInputTransformerService { ); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any private parseSubFields(fieldMetadataType: FieldMetadataType, value: any) { const compositeType = compositeTypeDefinitions.get(fieldMetadataType); @@ -221,6 +232,7 @@ export class RecordInputTransformerService { } return Object.entries(value).reduce( + // eslint-disable-next-line @typescript-eslint/no-explicit-any (acc, [subFieldName, subFieldValue]: [string, any]) => { const subFieldType = compositeType.properties.find( (property) => property.name === subFieldName, diff --git a/packages/twenty-server/src/engine/core-modules/serverless/commands/add-packages.command.ts b/packages/twenty-server/src/engine/core-modules/serverless/commands/add-packages.command.ts index 9540b1c3a..227602944 100644 --- a/packages/twenty-server/src/engine/core-modules/serverless/commands/add-packages.command.ts +++ b/packages/twenty-server/src/engine/core-modules/serverless/commands/add-packages.command.ts @@ -28,6 +28,7 @@ export class AddPackagesCommand extends CommandRunner { async run( passedParams: string[], + // eslint-disable-next-line @typescript-eslint/no-explicit-any options: Record, ): Promise { this.logger.log('---------------------------------------'); diff --git a/packages/twenty-server/src/engine/core-modules/serverless/drivers/utils/copy-and-build-dependencies.ts b/packages/twenty-server/src/engine/core-modules/serverless/drivers/utils/copy-and-build-dependencies.ts index 0a7581bb8..9d94bc440 100644 --- a/packages/twenty-server/src/engine/core-modules/serverless/drivers/utils/copy-and-build-dependencies.ts +++ b/packages/twenty-server/src/engine/core-modules/serverless/drivers/utils/copy-and-build-dependencies.ts @@ -21,6 +21,7 @@ export const copyAndBuildDependencies = async (buildDirectory: string) => { try { await execPromise('yarn', { cwd: buildDirectory }); + // eslint-disable-next-line @typescript-eslint/no-explicit-any } catch (error: any) { throw new Error(error.stdout); } diff --git a/packages/twenty-server/src/engine/core-modules/serverless/drivers/utils/intercept-console.ts b/packages/twenty-server/src/engine/core-modules/serverless/drivers/utils/intercept-console.ts index b8c73c528..a67dfd7a9 100644 --- a/packages/twenty-server/src/engine/core-modules/serverless/drivers/utils/intercept-console.ts +++ b/packages/twenty-server/src/engine/core-modules/serverless/drivers/utils/intercept-console.ts @@ -12,8 +12,10 @@ export class ConsoleListener { }; } + // eslint-disable-next-line @typescript-eslint/no-explicit-any intercept(callback: (type: string, message: any[]) => void) { Object.keys(this.originalConsole).forEach((method) => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any console[method] = (...args: any[]) => { callback(method, args); }; @@ -22,6 +24,7 @@ export class ConsoleListener { release() { Object.keys(this.originalConsole).forEach((method) => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any console[method] = (...args: any[]) => { this.originalConsole[method](...args); }; diff --git a/packages/twenty-server/src/engine/core-modules/serverless/serverless.interface.ts b/packages/twenty-server/src/engine/core-modules/serverless/serverless.interface.ts index be2cbb694..cd7721dd2 100644 --- a/packages/twenty-server/src/engine/core-modules/serverless/serverless.interface.ts +++ b/packages/twenty-server/src/engine/core-modules/serverless/serverless.interface.ts @@ -24,6 +24,7 @@ export type ServerlessModuleOptions = export type ServerlessModuleAsyncOptions = { useFactory: ( + // eslint-disable-next-line @typescript-eslint/no-explicit-any ...args: any[] ) => ServerlessModuleOptions | Promise; } & Pick & diff --git a/packages/twenty-server/src/engine/core-modules/serverless/serverless.module.ts b/packages/twenty-server/src/engine/core-modules/serverless/serverless.module.ts index 341b13dc1..fb6d8137e 100644 --- a/packages/twenty-server/src/engine/core-modules/serverless/serverless.module.ts +++ b/packages/twenty-server/src/engine/core-modules/serverless/serverless.module.ts @@ -15,6 +15,7 @@ export class ServerlessModule { static forRootAsync(options: ServerlessModuleAsyncOptions): DynamicModule { const provider = { provide: SERVERLESS_DRIVER, + // eslint-disable-next-line @typescript-eslint/no-explicit-any useFactory: async (...args: any[]) => { const config = await options.useFactory(...args); diff --git a/packages/twenty-server/src/engine/core-modules/sso/dtos/validators/x509.validator.ts b/packages/twenty-server/src/engine/core-modules/sso/dtos/validators/x509.validator.ts index 22486aa3e..ec4fb1389 100644 --- a/packages/twenty-server/src/engine/core-modules/sso/dtos/validators/x509.validator.ts +++ b/packages/twenty-server/src/engine/core-modules/sso/dtos/validators/x509.validator.ts @@ -13,6 +13,7 @@ import { export class IsX509CertificateConstraint implements ValidatorConstraintInterface { + // eslint-disable-next-line @typescript-eslint/no-explicit-any validate(value: any) { if (typeof value !== 'string') { return false; diff --git a/packages/twenty-server/src/engine/core-modules/twenty-config/conversion/config-value-converter.service.ts b/packages/twenty-server/src/engine/core-modules/twenty-config/conversion/config-value-converter.service.ts index d8a74982e..f703c0b55 100644 --- a/packages/twenty-server/src/engine/core-modules/twenty-config/conversion/config-value-converter.service.ts +++ b/packages/twenty-server/src/engine/core-modules/twenty-config/conversion/config-value-converter.service.ts @@ -78,6 +78,7 @@ export class ConfigValueConverterService { return appValue; } + // eslint-disable-next-line @typescript-eslint/no-explicit-any return transformer.toStorage(appValue as any, options); } catch (error) { if (error instanceof ConfigVariableException) { diff --git a/packages/twenty-server/src/engine/core-modules/twenty-config/decorators/assert-or-warn.decorator.ts b/packages/twenty-server/src/engine/core-modules/twenty-config/decorators/assert-or-warn.decorator.ts index c9726a6d0..c926d3df9 100644 --- a/packages/twenty-server/src/engine/core-modules/twenty-config/decorators/assert-or-warn.decorator.ts +++ b/packages/twenty-server/src/engine/core-modules/twenty-config/decorators/assert-or-warn.decorator.ts @@ -5,9 +5,12 @@ import { } from 'class-validator'; export const AssertOrWarn = ( + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any condition: (object: any, value: any) => boolean, validationOptions?: ValidationOptions, ) => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any return function (object: any, propertyName: string) { registerDecorator({ name: 'AssertOrWarn', @@ -19,6 +22,7 @@ export const AssertOrWarn = ( }, constraints: [condition], validator: { + // eslint-disable-next-line @typescript-eslint/no-explicit-any validate(value: any, args: ValidationArguments) { return condition(args.object, value); }, diff --git a/packages/twenty-server/src/engine/core-modules/twenty-config/decorators/cast-to-log-level-array.decorator.ts b/packages/twenty-server/src/engine/core-modules/twenty-config/decorators/cast-to-log-level-array.decorator.ts index 35afda2f3..7253a4145 100644 --- a/packages/twenty-server/src/engine/core-modules/twenty-config/decorators/cast-to-log-level-array.decorator.ts +++ b/packages/twenty-server/src/engine/core-modules/twenty-config/decorators/cast-to-log-level-array.decorator.ts @@ -3,6 +3,7 @@ import { Transform } from 'class-transformer'; export const CastToLogLevelArray = () => Transform(({ value }: { value: string }) => toLogLevelArray(value)); +// eslint-disable-next-line @typescript-eslint/no-explicit-any const toLogLevelArray = (value: any) => { if (typeof value === 'string') { const rawLogLevels = value.split(',').map((level) => level.trim()); diff --git a/packages/twenty-server/src/engine/core-modules/twenty-config/decorators/cast-to-positive-number.decorator.ts b/packages/twenty-server/src/engine/core-modules/twenty-config/decorators/cast-to-positive-number.decorator.ts index 1f532d966..2038e7981 100644 --- a/packages/twenty-server/src/engine/core-modules/twenty-config/decorators/cast-to-positive-number.decorator.ts +++ b/packages/twenty-server/src/engine/core-modules/twenty-config/decorators/cast-to-positive-number.decorator.ts @@ -3,6 +3,7 @@ import { Transform } from 'class-transformer'; export const CastToPositiveNumber = () => Transform(({ value }: { value: string }) => toNumber(value)); +// eslint-disable-next-line @typescript-eslint/no-explicit-any const toNumber = (value: any) => { if (typeof value === 'number') { return value >= 0 ? value : undefined; diff --git a/packages/twenty-server/src/engine/core-modules/twenty-config/decorators/is-strictly-lower-than.decorator.ts b/packages/twenty-server/src/engine/core-modules/twenty-config/decorators/is-strictly-lower-than.decorator.ts index 0ff049bbb..beddec7e7 100644 --- a/packages/twenty-server/src/engine/core-modules/twenty-config/decorators/is-strictly-lower-than.decorator.ts +++ b/packages/twenty-server/src/engine/core-modules/twenty-config/decorators/is-strictly-lower-than.decorator.ts @@ -16,8 +16,10 @@ export const IsStrictlyLowerThan = ( constraints: [property], options: validationOptions, validator: { + // eslint-disable-next-line @typescript-eslint/no-explicit-any validate(value: any, args: ValidationArguments) { const [relatedPropertyName] = args.constraints; + // eslint-disable-next-line @typescript-eslint/no-explicit-any const relatedValue = (args.object as any)[relatedPropertyName]; return ( diff --git a/packages/twenty-server/src/engine/core-modules/twenty-config/storage/config-storage.service.ts b/packages/twenty-server/src/engine/core-modules/twenty-config/storage/config-storage.service.ts index deda40fa3..caff926d6 100644 --- a/packages/twenty-server/src/engine/core-modules/twenty-config/storage/config-storage.service.ts +++ b/packages/twenty-server/src/engine/core-modules/twenty-config/storage/config-storage.service.ts @@ -51,15 +51,18 @@ export class ConfigStorageService implements ConfigStorageInterface { ]; } + // eslint-disable-next-line @typescript-eslint/no-explicit-any private logAndRethrow(message: string, error: any): never { this.logger.error(message, error); throw error; } private async convertAndSecureValue( + // eslint-disable-next-line @typescript-eslint/no-explicit-any value: any, key: T, isDecrypt = false, + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): Promise { try { const convertedValue = isDecrypt diff --git a/packages/twenty-server/src/engine/core-modules/twenty-config/twenty-config.service.ts b/packages/twenty-server/src/engine/core-modules/twenty-config/twenty-config.service.ts index 2f5074714..6cabc1028 100644 --- a/packages/twenty-server/src/engine/core-modules/twenty-config/twenty-config.service.ts +++ b/packages/twenty-server/src/engine/core-modules/twenty-config/twenty-config.service.ts @@ -237,7 +237,9 @@ export class TwentyConfigService { private maskSensitiveValue( key: T, + // eslint-disable-next-line @typescript-eslint/no-explicit-any value: any, + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): any { if (!isString(value) || !(key in CONFIG_VARIABLES_MASKING_CONFIG)) { return value; diff --git a/packages/twenty-server/src/engine/core-modules/twenty-config/utils/type-transformers.registry.ts b/packages/twenty-server/src/engine/core-modules/twenty-config/utils/type-transformers.registry.ts index 0977e243d..026f41677 100644 --- a/packages/twenty-server/src/engine/core-modules/twenty-config/utils/type-transformers.registry.ts +++ b/packages/twenty-server/src/engine/core-modules/twenty-config/utils/type-transformers.registry.ts @@ -27,6 +27,7 @@ export interface TypeTransformer { export const typeTransformers: Record< ConfigVariableType, + // eslint-disable-next-line @typescript-eslint/no-explicit-any TypeTransformer > = { [ConfigVariableType.BOOLEAN]: { diff --git a/packages/twenty-server/src/engine/core-modules/user/services/user.service.ts b/packages/twenty-server/src/engine/core-modules/user/services/user.service.ts index 7e0a0fbbe..305494843 100644 --- a/packages/twenty-server/src/engine/core-modules/user/services/user.service.ts +++ b/packages/twenty-server/src/engine/core-modules/user/services/user.service.ts @@ -179,6 +179,7 @@ export class UserService extends TypeOrmQueryService { userId, workspaceId: userWorkspace.workspaceId, }); + // eslint-disable-next-line @typescript-eslint/no-explicit-any } catch (error: any) { if ( error instanceof PermissionsException && diff --git a/packages/twenty-server/src/engine/core-modules/user/user-vars/services/user-vars.service.ts b/packages/twenty-server/src/engine/core-modules/user/user-vars/services/user-vars.service.ts index d3eff0b9c..02f8c4014 100644 --- a/packages/twenty-server/src/engine/core-modules/user/user-vars/services/user-vars.service.ts +++ b/packages/twenty-server/src/engine/core-modules/user/user-vars/services/user-vars.service.ts @@ -6,6 +6,8 @@ import { mergeUserVars } from 'src/engine/core-modules/user/user-vars/utils/merg @Injectable() export class UserVarsService< + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any KeyValueTypesMap extends Record = Record, > { constructor(private readonly keyValuePairService: KeyValuePairService) {} @@ -19,6 +21,7 @@ export class UserVarsService< workspaceId?: string; key: Extract; }): Promise { + // eslint-disable-next-line @typescript-eslint/no-explicit-any let userVarWorkspaceLevel: any[] = []; if (workspaceId) { @@ -36,6 +39,7 @@ export class UserVarsService< ); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any let userVarUserLevel: any[] = []; if (userId) { @@ -51,6 +55,7 @@ export class UserVarsService< throw new Error(`Multiple values found for key ${key} at user level`); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any let userVarWorkspaceAndUserLevel: any[] = []; if (userId && workspaceId) { @@ -81,7 +86,9 @@ export class UserVarsService< }: { userId?: string; workspaceId?: string; + // eslint-disable-next-line @typescript-eslint/no-explicit-any }): Promise, any>> { + // eslint-disable-next-line @typescript-eslint/no-explicit-any let result: any[] = []; if (userId) { diff --git a/packages/twenty-server/src/engine/core-modules/user/user.auto-resolver-opts.ts b/packages/twenty-server/src/engine/core-modules/user/user.auto-resolver-opts.ts index b5ff2c2c3..8cc76a949 100644 --- a/packages/twenty-server/src/engine/core-modules/user/user.auto-resolver-opts.ts +++ b/packages/twenty-server/src/engine/core-modules/user/user.auto-resolver-opts.ts @@ -8,10 +8,13 @@ import { User } from 'src/engine/core-modules/user/user.entity'; import { WorkspaceAuthGuard } from 'src/engine/guards/workspace-auth.guard'; export const userAutoResolverOpts: AutoResolverOpts< + // eslint-disable-next-line @typescript-eslint/no-explicit-any any, + // eslint-disable-next-line @typescript-eslint/no-explicit-any any, unknown, unknown, + // eslint-disable-next-line @typescript-eslint/no-explicit-any ReadResolverOpts, PagingStrategies >[] = [ diff --git a/packages/twenty-server/src/engine/core-modules/user/user.resolver.ts b/packages/twenty-server/src/engine/core-modules/user/user.resolver.ts index 282f99e02..6f254200a 100644 --- a/packages/twenty-server/src/engine/core-modules/user/user.resolver.ts +++ b/packages/twenty-server/src/engine/core-modules/user/user.resolver.ts @@ -150,6 +150,7 @@ export class UserResolver { async userVars( @Parent() user: User, @AuthWorkspace() workspace: Workspace, + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): Promise> { const userVars = await this.userVarService.getAll({ userId: user.id, diff --git a/packages/twenty-server/src/engine/core-modules/workspace/workspace.auto-resolver-opts.ts b/packages/twenty-server/src/engine/core-modules/workspace/workspace.auto-resolver-opts.ts index 1f136422c..1f6c6e664 100644 --- a/packages/twenty-server/src/engine/core-modules/workspace/workspace.auto-resolver-opts.ts +++ b/packages/twenty-server/src/engine/core-modules/workspace/workspace.auto-resolver-opts.ts @@ -10,10 +10,13 @@ import { WorkspaceAuthGuard } from 'src/engine/guards/workspace-auth.guard'; import { Workspace } from './workspace.entity'; export const workspaceAutoResolverOpts: AutoResolverOpts< + // eslint-disable-next-line @typescript-eslint/no-explicit-any any, + // eslint-disable-next-line @typescript-eslint/no-explicit-any any, unknown, unknown, + // eslint-disable-next-line @typescript-eslint/no-explicit-any ReadResolverOpts, PagingStrategies >[] = [ diff --git a/packages/twenty-server/src/engine/decorators/metadata/is-valid-metadata-name.decorator.ts b/packages/twenty-server/src/engine/decorators/metadata/is-valid-metadata-name.decorator.ts index feb618f9a..15c50f45f 100644 --- a/packages/twenty-server/src/engine/decorators/metadata/is-valid-metadata-name.decorator.ts +++ b/packages/twenty-server/src/engine/decorators/metadata/is-valid-metadata-name.decorator.ts @@ -12,6 +12,7 @@ export function IsValidMetadataName(validationOptions?: ValidationOptions) { propertyName: propertyName, options: validationOptions, validator: { + // eslint-disable-next-line @typescript-eslint/no-explicit-any validate(value: any) { return /^(?!(?:not|or|and|Int|Float|Boolean|String|ID)$)[^'"\\;.=*/]+$/.test( value, diff --git a/packages/twenty-server/src/engine/decorators/observability/log-execution-time.decorator.ts b/packages/twenty-server/src/engine/decorators/observability/log-execution-time.decorator.ts index 5625b98cf..b69fb8bd2 100644 --- a/packages/twenty-server/src/engine/decorators/observability/log-execution-time.decorator.ts +++ b/packages/twenty-server/src/engine/decorators/observability/log-execution-time.decorator.ts @@ -9,6 +9,7 @@ import { isDefined } from 'class-validator'; */ export function LogExecutionTime(label?: string | undefined) { return function ( + // eslint-disable-next-line @typescript-eslint/no-explicit-any target: any, propertyKey: string, descriptor: PropertyDescriptor, @@ -16,6 +17,7 @@ export function LogExecutionTime(label?: string | undefined) { const originalMethod = descriptor.value; const logger = new Logger(`${target.constructor.name}:${propertyKey}`); + // eslint-disable-next-line @typescript-eslint/no-explicit-any descriptor.value = async function (...args: any[]) { const start = performance.now(); diff --git a/packages/twenty-server/src/engine/metadata-modules/field-metadata/dtos/field-metadata.dto.ts b/packages/twenty-server/src/engine/metadata-modules/field-metadata/dtos/field-metadata.dto.ts index 2e6c83b54..137eb0e9f 100644 --- a/packages/twenty-server/src/engine/metadata-modules/field-metadata/dtos/field-metadata.dto.ts +++ b/packages/twenty-server/src/engine/metadata-modules/field-metadata/dtos/field-metadata.dto.ts @@ -47,6 +47,7 @@ registerEnumType(FieldMetadataType, { @ObjectType('Field') @Authorize({ + // eslint-disable-next-line @typescript-eslint/no-explicit-any authorize: (context: any) => ({ workspaceId: { eq: context?.req?.workspace?.id }, }), diff --git a/packages/twenty-server/src/engine/metadata-modules/field-metadata/field-metadata-validation.service.ts b/packages/twenty-server/src/engine/metadata-modules/field-metadata/field-metadata-validation.service.ts index 4628fbe85..25e1fb02e 100644 --- a/packages/twenty-server/src/engine/metadata-modules/field-metadata/field-metadata-validation.service.ts +++ b/packages/twenty-server/src/engine/metadata-modules/field-metadata/field-metadata-validation.service.ts @@ -69,6 +69,8 @@ export class FieldMetadataValidationService< } } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any private async validateSettings(validator: any, settings: any) { try { const settingsInstance = plainToInstance(validator, settings); @@ -77,6 +79,7 @@ export class FieldMetadataValidationService< } catch (error) { const errorMessages = Array.isArray(error) ? error + // eslint-disable-next-line @typescript-eslint/no-explicit-any .map((err: any) => Object.values(err.constraints)) .flat() .join(', ') diff --git a/packages/twenty-server/src/engine/metadata-modules/field-metadata/field-metadata.service.ts b/packages/twenty-server/src/engine/metadata-modules/field-metadata/field-metadata.service.ts index 0402ac7df..39d4bbe8d 100644 --- a/packages/twenty-server/src/engine/metadata-modules/field-metadata/field-metadata.service.ts +++ b/packages/twenty-server/src/engine/metadata-modules/field-metadata/field-metadata.service.ts @@ -530,9 +530,9 @@ export class FieldMetadataService extends TypeOrmQueryService // Reset the override by setting it to null const localeTranslations = update.standardOverrides.translations[locale]; + // eslint-disable-next-line @typescript-eslint/no-explicit-any (localeTranslations as Record)[overrideKey] = null; return true; @@ -325,6 +326,7 @@ export class BeforeUpdateOneField const localeTranslations = update.standardOverrides.translations[locale]; + // eslint-disable-next-line @typescript-eslint/no-explicit-any (localeTranslations as Record)[overrideKey] = value; } diff --git a/packages/twenty-server/src/engine/metadata-modules/field-metadata/interceptors/field-metadata-graphql-api-exception.interceptor.ts b/packages/twenty-server/src/engine/metadata-modules/field-metadata/interceptors/field-metadata-graphql-api-exception.interceptor.ts index 4c2696e0d..83d0caa23 100644 --- a/packages/twenty-server/src/engine/metadata-modules/field-metadata/interceptors/field-metadata-graphql-api-exception.interceptor.ts +++ b/packages/twenty-server/src/engine/metadata-modules/field-metadata/interceptors/field-metadata-graphql-api-exception.interceptor.ts @@ -7,6 +7,7 @@ import { fieldMetadataGraphqlApiExceptionHandler } from 'src/engine/metadata-mod export class FieldMetadataGraphqlApiExceptionInterceptor implements NestInterceptor { + // eslint-disable-next-line @typescript-eslint/no-explicit-any intercept(_: ExecutionContext, next: CallHandler): Observable { return next .handle() diff --git a/packages/twenty-server/src/engine/metadata-modules/field-metadata/utils/assert-does-not-nullify-default-value-for-non-nullable-field.util.ts b/packages/twenty-server/src/engine/metadata-modules/field-metadata/utils/assert-does-not-nullify-default-value-for-non-nullable-field.util.ts index 7fcd625b8..efcea1f48 100644 --- a/packages/twenty-server/src/engine/metadata-modules/field-metadata/utils/assert-does-not-nullify-default-value-for-non-nullable-field.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/field-metadata/utils/assert-does-not-nullify-default-value-for-non-nullable-field.util.ts @@ -8,6 +8,7 @@ export const assertDoesNotNullifyDefaultValueForNonNullableField = ({ defaultValueFromUpdate, }: { isNullable: boolean; + // eslint-disable-next-line @typescript-eslint/no-explicit-any defaultValueFromUpdate?: any; }) => { if (!isNullable && defaultValueFromUpdate === null) { diff --git a/packages/twenty-server/src/engine/metadata-modules/field-metadata/utils/unserialize-default-value.ts b/packages/twenty-server/src/engine/metadata-modules/field-metadata/utils/unserialize-default-value.ts index cfe9a5984..e5971c7a9 100644 --- a/packages/twenty-server/src/engine/metadata-modules/field-metadata/utils/unserialize-default-value.ts +++ b/packages/twenty-server/src/engine/metadata-modules/field-metadata/utils/unserialize-default-value.ts @@ -2,6 +2,7 @@ import { FieldMetadataDefaultSerializableValue } from 'src/engine/metadata-modul export const unserializeDefaultValue = ( serializedDefaultValue: FieldMetadataDefaultSerializableValue, + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): any => { if (serializedDefaultValue === null) { return null; diff --git a/packages/twenty-server/src/engine/metadata-modules/field-metadata/utils/validate-default-value-for-type.util.ts b/packages/twenty-server/src/engine/metadata-modules/field-metadata/utils/validate-default-value-for-type.util.ts index ca4539c8a..f3cf3d33f 100644 --- a/packages/twenty-server/src/engine/metadata-modules/field-metadata/utils/validate-default-value-for-type.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/field-metadata/utils/validate-default-value-for-type.util.ts @@ -73,6 +73,7 @@ export const validateDefaultValueForType = ( }; } + // eslint-disable-next-line @typescript-eslint/no-explicit-any const validators = defaultValueValidatorsMap[type] as any[]; if (!validators) { @@ -88,6 +89,7 @@ export const validateDefaultValueForType = ( : { value: defaultValue }; const defaultValueInstance = plainToInstance< + // eslint-disable-next-line @typescript-eslint/no-explicit-any any, FieldMetadataClassValidation >(validator, conputedDefaultValue as FieldMetadataClassValidation); diff --git a/packages/twenty-server/src/engine/metadata-modules/field-metadata/utils/validate-options-for-type.util.ts b/packages/twenty-server/src/engine/metadata-modules/field-metadata/utils/validate-options-for-type.util.ts index 3ae402fa2..5c19cada5 100644 --- a/packages/twenty-server/src/engine/metadata-modules/field-metadata/utils/validate-options-for-type.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/field-metadata/utils/validate-options-for-type.util.ts @@ -59,6 +59,7 @@ export const validateOptionsForType = ( const isValid = options.every((option) => { return validators.some((validator) => { const optionsInstance = plainToInstance< + // eslint-disable-next-line @typescript-eslint/no-explicit-any any, FieldMetadataDefaultOption | FieldMetadataComplexOption >(validator, option); diff --git a/packages/twenty-server/src/engine/metadata-modules/field-metadata/validators/is-quoted-string.validator.ts b/packages/twenty-server/src/engine/metadata-modules/field-metadata/validators/is-quoted-string.validator.ts index 4e52b237b..e7894e348 100644 --- a/packages/twenty-server/src/engine/metadata-modules/field-metadata/validators/is-quoted-string.validator.ts +++ b/packages/twenty-server/src/engine/metadata-modules/field-metadata/validators/is-quoted-string.validator.ts @@ -12,6 +12,7 @@ export function IsQuotedString(validationOptions?: ValidationOptions) { propertyName: propertyName, options: validationOptions, validator: { + // eslint-disable-next-line @typescript-eslint/no-explicit-any validate(value: any) { return typeof value === 'string' && /^'{1}.*'{1}$/.test(value); }, diff --git a/packages/twenty-server/src/engine/metadata-modules/field-metadata/validators/is-valid-graphql-enum-name.validator.ts b/packages/twenty-server/src/engine/metadata-modules/field-metadata/validators/is-valid-graphql-enum-name.validator.ts index 1b45983b3..3c9c8cbf2 100644 --- a/packages/twenty-server/src/engine/metadata-modules/field-metadata/validators/is-valid-graphql-enum-name.validator.ts +++ b/packages/twenty-server/src/engine/metadata-modules/field-metadata/validators/is-valid-graphql-enum-name.validator.ts @@ -14,6 +14,7 @@ export function IsValidGraphQLEnumName(validationOptions?: ValidationOptions) { propertyName: propertyName, options: validationOptions, validator: { + // eslint-disable-next-line @typescript-eslint/no-explicit-any validate(value: any) { return typeof value === 'string' && graphQLEnumNameRegex.test(value); }, diff --git a/packages/twenty-server/src/engine/metadata-modules/index-metadata/dtos/index-field-metadata.dto.ts b/packages/twenty-server/src/engine/metadata-modules/index-metadata/dtos/index-field-metadata.dto.ts index 931117ff7..a948e3985 100644 --- a/packages/twenty-server/src/engine/metadata-modules/index-metadata/dtos/index-field-metadata.dto.ts +++ b/packages/twenty-server/src/engine/metadata-modules/index-metadata/dtos/index-field-metadata.dto.ts @@ -16,6 +16,7 @@ import { IndexMetadataDTO } from './index-metadata.dto'; @ObjectType('IndexField') @Authorize({ + // eslint-disable-next-line @typescript-eslint/no-explicit-any authorize: (context: any) => ({ workspaceId: { eq: context?.req?.workspace?.id }, }), diff --git a/packages/twenty-server/src/engine/metadata-modules/index-metadata/dtos/index-metadata.dto.ts b/packages/twenty-server/src/engine/metadata-modules/index-metadata/dtos/index-metadata.dto.ts index db2496fdb..c20095997 100644 --- a/packages/twenty-server/src/engine/metadata-modules/index-metadata/dtos/index-metadata.dto.ts +++ b/packages/twenty-server/src/engine/metadata-modules/index-metadata/dtos/index-metadata.dto.ts @@ -35,6 +35,7 @@ registerEnumType(IndexType, { @ObjectType('Index') @Authorize({ + // eslint-disable-next-line @typescript-eslint/no-explicit-any authorize: (context: any) => ({ workspaceId: { eq: context?.req?.workspace?.id }, }), diff --git a/packages/twenty-server/src/engine/metadata-modules/object-metadata/dtos/object-metadata.dto.ts b/packages/twenty-server/src/engine/metadata-modules/object-metadata/dtos/object-metadata.dto.ts index 5be6cc8ed..b3d7d1142 100644 --- a/packages/twenty-server/src/engine/metadata-modules/object-metadata/dtos/object-metadata.dto.ts +++ b/packages/twenty-server/src/engine/metadata-modules/object-metadata/dtos/object-metadata.dto.ts @@ -18,6 +18,7 @@ import { BeforeDeleteOneObject } from 'src/engine/metadata-modules/object-metada @ObjectType('Object') @Authorize({ + // eslint-disable-next-line @typescript-eslint/no-explicit-any authorize: (context: any) => ({ workspaceId: { eq: context?.req?.workspace?.id }, }), diff --git a/packages/twenty-server/src/engine/metadata-modules/object-metadata/hooks/before-create-one-object.hook.ts b/packages/twenty-server/src/engine/metadata-modules/object-metadata/hooks/before-create-one-object.hook.ts index 53d917c26..eb07048eb 100644 --- a/packages/twenty-server/src/engine/metadata-modules/object-metadata/hooks/before-create-one-object.hook.ts +++ b/packages/twenty-server/src/engine/metadata-modules/object-metadata/hooks/before-create-one-object.hook.ts @@ -13,6 +13,7 @@ export class BeforeCreateOneObject { async run( instance: CreateOneInputType, + // eslint-disable-next-line @typescript-eslint/no-explicit-any context: any, ): Promise> { const workspaceId = context?.req?.workspace?.id; diff --git a/packages/twenty-server/src/engine/metadata-modules/object-metadata/hooks/before-delete-one-object.hook.ts b/packages/twenty-server/src/engine/metadata-modules/object-metadata/hooks/before-delete-one-object.hook.ts index 918001eba..82907c8e7 100644 --- a/packages/twenty-server/src/engine/metadata-modules/object-metadata/hooks/before-delete-one-object.hook.ts +++ b/packages/twenty-server/src/engine/metadata-modules/object-metadata/hooks/before-delete-one-object.hook.ts @@ -17,6 +17,7 @@ export class BeforeDeleteOneObject implements BeforeDeleteOneHook { async run( instance: DeleteOneInputType, + // eslint-disable-next-line @typescript-eslint/no-explicit-any context: any, ): Promise { const workspaceId = context?.req?.workspace?.id; diff --git a/packages/twenty-server/src/engine/metadata-modules/object-metadata/hooks/before-update-one-object.hook.ts b/packages/twenty-server/src/engine/metadata-modules/object-metadata/hooks/before-update-one-object.hook.ts index ed5de1ee4..144f898e5 100644 --- a/packages/twenty-server/src/engine/metadata-modules/object-metadata/hooks/before-update-one-object.hook.ts +++ b/packages/twenty-server/src/engine/metadata-modules/object-metadata/hooks/before-update-one-object.hook.ts @@ -246,6 +246,7 @@ export class BeforeUpdateOneObject // Reset the override by setting it to null const localeTranslations = update.standardOverrides.translations[locale]; + // eslint-disable-next-line @typescript-eslint/no-explicit-any (localeTranslations as Record)[overrideKey] = null; return true; @@ -301,6 +302,7 @@ export class BeforeUpdateOneObject const localeTranslations = update.standardOverrides.translations[locale]; + // eslint-disable-next-line @typescript-eslint/no-explicit-any (localeTranslations as Record)[overrideKey] = value; } diff --git a/packages/twenty-server/src/engine/metadata-modules/object-metadata/interceptors/object-metadata-graphql-api-exception.interceptor.ts b/packages/twenty-server/src/engine/metadata-modules/object-metadata/interceptors/object-metadata-graphql-api-exception.interceptor.ts index 117fb32f3..8b12d413a 100644 --- a/packages/twenty-server/src/engine/metadata-modules/object-metadata/interceptors/object-metadata-graphql-api-exception.interceptor.ts +++ b/packages/twenty-server/src/engine/metadata-modules/object-metadata/interceptors/object-metadata-graphql-api-exception.interceptor.ts @@ -7,6 +7,7 @@ import { objectMetadataGraphqlApiExceptionHandler } from 'src/engine/metadata-mo export class ObjectMetadataGraphqlApiExceptionInterceptor implements NestInterceptor { + // eslint-disable-next-line @typescript-eslint/no-explicit-any intercept(_: ExecutionContext, next: CallHandler): Observable { return next .handle() diff --git a/packages/twenty-server/src/engine/metadata-modules/relation-metadata/dtos/relation-metadata.dto.ts b/packages/twenty-server/src/engine/metadata-modules/relation-metadata/dtos/relation-metadata.dto.ts index 0cad57697..c327308f6 100644 --- a/packages/twenty-server/src/engine/metadata-modules/relation-metadata/dtos/relation-metadata.dto.ts +++ b/packages/twenty-server/src/engine/metadata-modules/relation-metadata/dtos/relation-metadata.dto.ts @@ -26,6 +26,7 @@ registerEnumType(RelationMetadataType, { @ObjectType('RelationMetadata') @Authorize({ + // eslint-disable-next-line @typescript-eslint/no-explicit-any authorize: (context: any) => ({ workspaceId: { eq: context?.req?.workspace?.id }, }), diff --git a/packages/twenty-server/src/engine/metadata-modules/relation-metadata/hooks/before-create-one-relation.hook.ts b/packages/twenty-server/src/engine/metadata-modules/relation-metadata/hooks/before-create-one-relation.hook.ts index dd11e95d5..170c18ee8 100644 --- a/packages/twenty-server/src/engine/metadata-modules/relation-metadata/hooks/before-create-one-relation.hook.ts +++ b/packages/twenty-server/src/engine/metadata-modules/relation-metadata/hooks/before-create-one-relation.hook.ts @@ -13,6 +13,7 @@ export class BeforeCreateOneRelation { async run( instance: CreateOneInputType, + // eslint-disable-next-line @typescript-eslint/no-explicit-any context: any, ): Promise> { const workspaceId = context?.req?.workspace?.id; diff --git a/packages/twenty-server/src/engine/metadata-modules/relation-metadata/hooks/before-delete-one-relation.hook.ts b/packages/twenty-server/src/engine/metadata-modules/relation-metadata/hooks/before-delete-one-relation.hook.ts index 251492bde..6636b7d7d 100644 --- a/packages/twenty-server/src/engine/metadata-modules/relation-metadata/hooks/before-delete-one-relation.hook.ts +++ b/packages/twenty-server/src/engine/metadata-modules/relation-metadata/hooks/before-delete-one-relation.hook.ts @@ -22,6 +22,7 @@ export class BeforeDeleteOneRelation implements BeforeDeleteOneHook { async run( instance: DeleteOneInputType, + // eslint-disable-next-line @typescript-eslint/no-explicit-any context: any, ): Promise { const workspaceId = context?.req?.workspace?.id; diff --git a/packages/twenty-server/src/engine/metadata-modules/relation-metadata/interceptors/relation-metadata-graphql-api-exception.interceptor.ts b/packages/twenty-server/src/engine/metadata-modules/relation-metadata/interceptors/relation-metadata-graphql-api-exception.interceptor.ts index 04139a44a..3e2b58756 100644 --- a/packages/twenty-server/src/engine/metadata-modules/relation-metadata/interceptors/relation-metadata-graphql-api-exception.interceptor.ts +++ b/packages/twenty-server/src/engine/metadata-modules/relation-metadata/interceptors/relation-metadata-graphql-api-exception.interceptor.ts @@ -7,6 +7,7 @@ import { relationMetadataGraphqlApiExceptionHandler } from 'src/engine/metadata- export class RelationMetadataGraphqlApiExceptionInterceptor implements NestInterceptor { + // eslint-disable-next-line @typescript-eslint/no-explicit-any intercept(_: ExecutionContext, next: CallHandler): Observable { return next .handle() diff --git a/packages/twenty-server/src/engine/metadata-modules/remote-server/utils/build-update-remote-server-raw-query.utils.ts b/packages/twenty-server/src/engine/metadata-modules/remote-server/utils/build-update-remote-server-raw-query.utils.ts index 3e23e9b55..952931d59 100644 --- a/packages/twenty-server/src/engine/metadata-modules/remote-server/utils/build-update-remote-server-raw-query.utils.ts +++ b/packages/twenty-server/src/engine/metadata-modules/remote-server/utils/build-update-remote-server-raw-query.utils.ts @@ -16,6 +16,7 @@ export type DeepPartial = { export const buildUpdateRemoteServerRawQuery = ( remoteServerToUpdate: DeepPartial> & Pick, 'workspaceId' | 'id'>, + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): [any[], string] => { const options: string[] = []; @@ -67,7 +68,9 @@ export const buildUpdateRemoteServerRawQuery = ( const buildParametersAndPositions = ( remoteServerToUpdate: DeepPartial> & Pick, 'workspaceId' | 'id'>, + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): [any[], object] => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any const parameters: any[] = [remoteServerToUpdate.id]; const parametersPositions = {}; diff --git a/packages/twenty-server/src/engine/metadata-modules/remote-server/utils/remote-server-graphql-api-exception-handler.util.ts b/packages/twenty-server/src/engine/metadata-modules/remote-server/utils/remote-server-graphql-api-exception-handler.util.ts index 7cb6e331d..629c4f209 100644 --- a/packages/twenty-server/src/engine/metadata-modules/remote-server/utils/remote-server-graphql-api-exception-handler.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/remote-server/utils/remote-server-graphql-api-exception-handler.util.ts @@ -9,6 +9,7 @@ import { RemoteServerExceptionCode, } from 'src/engine/metadata-modules/remote-server/remote-server.exception'; +// eslint-disable-next-line @typescript-eslint/no-explicit-any export const remoteServerGraphqlApiExceptionHandler = (error: any) => { if (error instanceof RemoteServerException) { switch (error.code) { diff --git a/packages/twenty-server/src/engine/metadata-modules/serverless-function/dtos/serverless-function.dto.ts b/packages/twenty-server/src/engine/metadata-modules/serverless-function/dtos/serverless-function.dto.ts index 37058e995..3c2945526 100644 --- a/packages/twenty-server/src/engine/metadata-modules/serverless-function/dtos/serverless-function.dto.ts +++ b/packages/twenty-server/src/engine/metadata-modules/serverless-function/dtos/serverless-function.dto.ts @@ -32,6 +32,7 @@ registerEnumType(ServerlessFunctionSyncStatus, { @ObjectType('ServerlessFunction') @Authorize({ + // eslint-disable-next-line @typescript-eslint/no-explicit-any authorize: (context: any) => ({ workspaceId: { eq: context?.req?.workspace?.id }, }), diff --git a/packages/twenty-server/src/engine/metadata-modules/serverless-function/utils/serverless-function-graphql-api-exception-handler.utils.ts b/packages/twenty-server/src/engine/metadata-modules/serverless-function/utils/serverless-function-graphql-api-exception-handler.utils.ts index 68ccc4dad..cd67c3cc5 100644 --- a/packages/twenty-server/src/engine/metadata-modules/serverless-function/utils/serverless-function-graphql-api-exception-handler.utils.ts +++ b/packages/twenty-server/src/engine/metadata-modules/serverless-function/utils/serverless-function-graphql-api-exception-handler.utils.ts @@ -8,6 +8,7 @@ import { ServerlessFunctionExceptionCode, } from 'src/engine/metadata-modules/serverless-function/serverless-function.exception'; +// eslint-disable-next-line @typescript-eslint/no-explicit-any export const serverlessFunctionGraphQLApiExceptionHandler = (error: any) => { if (error instanceof ServerlessFunctionException) { switch (error.code) { diff --git a/packages/twenty-server/src/engine/metadata-modules/utils/is-arg-defined-if-provided-or-throw.util.ts b/packages/twenty-server/src/engine/metadata-modules/utils/is-arg-defined-if-provided-or-throw.util.ts index 7ed7a639f..7587fa186 100644 --- a/packages/twenty-server/src/engine/metadata-modules/utils/is-arg-defined-if-provided-or-throw.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/utils/is-arg-defined-if-provided-or-throw.util.ts @@ -6,6 +6,7 @@ export const isArgDefinedIfProvidedOrThrow = ({ }: { input: object; key: string; + // eslint-disable-next-line @typescript-eslint/no-explicit-any value: any; }) => { if (key in input && !isDefined(value)) { diff --git a/packages/twenty-server/src/engine/metadata-modules/workspace-migration/workspace-migration.entity.ts b/packages/twenty-server/src/engine/metadata-modules/workspace-migration/workspace-migration.entity.ts index ed3a1e5cf..c20f56835 100644 --- a/packages/twenty-server/src/engine/metadata-modules/workspace-migration/workspace-migration.entity.ts +++ b/packages/twenty-server/src/engine/metadata-modules/workspace-migration/workspace-migration.entity.ts @@ -31,6 +31,7 @@ export interface WorkspaceMigrationColumnDefinition { isArray?: boolean; isNullable: boolean; isUnique?: boolean; + // eslint-disable-next-line @typescript-eslint/no-explicit-any defaultValue: any; generatedType?: 'STORED' | 'VIRTUAL'; asExpression?: string; diff --git a/packages/twenty-server/src/engine/metadata-modules/workspace-migration/workspace-migration.factory.ts b/packages/twenty-server/src/engine/metadata-modules/workspace-migration/workspace-migration.factory.ts index 525125eaa..e4e7e07ff 100644 --- a/packages/twenty-server/src/engine/metadata-modules/workspace-migration/workspace-migration.factory.ts +++ b/packages/twenty-server/src/engine/metadata-modules/workspace-migration/workspace-migration.factory.ts @@ -26,6 +26,7 @@ export class WorkspaceMigrationFactory { private factoriesMap: Map< FieldMetadataType, { + // eslint-disable-next-line @typescript-eslint/no-explicit-any factory: WorkspaceColumnActionFactory; options?: WorkspaceColumnActionOptions; } @@ -41,6 +42,7 @@ export class WorkspaceMigrationFactory { this.factoriesMap = new Map< FieldMetadataType, { + // eslint-disable-next-line @typescript-eslint/no-explicit-any factory: WorkspaceColumnActionFactory; options?: WorkspaceColumnActionOptions; } diff --git a/packages/twenty-server/src/engine/middlewares/middleware.service.ts b/packages/twenty-server/src/engine/middlewares/middleware.service.ts index 03a694ed4..d2d4d1ef6 100644 --- a/packages/twenty-server/src/engine/middlewares/middleware.service.ts +++ b/packages/twenty-server/src/engine/middlewares/middleware.service.ts @@ -51,6 +51,7 @@ export class MiddlewareService { return isUserUnauthenticated && isExcludedOperation; } + // eslint-disable-next-line @typescript-eslint/no-explicit-any public writeRestResponseOnExceptionCaught(res: Response, error: any) { // capture and handle custom exceptions handleException(error as CustomException, this.exceptionHandlerService); @@ -69,6 +70,7 @@ export class MiddlewareService { res.end(); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any public writeGraphqlResponseOnExceptionCaught(res: Response, error: any) { const errors = [ handleExceptionAndConvertToGraphQLError( @@ -150,6 +152,7 @@ export class MiddlewareService { request.userWorkspaceId = data.userWorkspaceId; } + // eslint-disable-next-line @typescript-eslint/no-explicit-any private getStatus(error: any): number { if (this.hasErrorStatus(error)) { return error.status; diff --git a/packages/twenty-server/src/engine/object-metadata-repository/object-metadata-repository.decorator.ts b/packages/twenty-server/src/engine/object-metadata-repository/object-metadata-repository.decorator.ts index db5997ac8..9160ae0d2 100644 --- a/packages/twenty-server/src/engine/object-metadata-repository/object-metadata-repository.decorator.ts +++ b/packages/twenty-server/src/engine/object-metadata-repository/object-metadata-repository.decorator.ts @@ -4,6 +4,7 @@ import { capitalize } from 'twenty-shared/utils'; import { convertClassNameToObjectMetadataName } from 'src/engine/workspace-manager/workspace-sync-metadata/utils/convert-class-to-object-metadata-name.util'; +// eslint-disable-next-line @typescript-eslint/no-explicit-any export const InjectObjectMetadataRepository = (objectMetadata: any) => { const token = `${capitalize( convertClassNameToObjectMetadataName(objectMetadata.name), diff --git a/packages/twenty-server/src/engine/seeder/seeder.service.ts b/packages/twenty-server/src/engine/seeder/seeder.service.ts index c4a7eea35..97cd6599e 100644 --- a/packages/twenty-server/src/engine/seeder/seeder.service.ts +++ b/packages/twenty-server/src/engine/seeder/seeder.service.ts @@ -27,6 +27,7 @@ export class SeederService { dataSourceId: string, workspaceId: string, objectMetadataSeed: ObjectMetadataSeed, + // eslint-disable-next-line @typescript-eslint/no-explicit-any objectRecordSeeds: Record[], ): Promise { const createdObjectMetadata = await this.objectMetadataService.createOne({ @@ -184,6 +185,7 @@ export class SeederService { private turnCompositeSubFieldValueAsSQLValue( fieldType: FieldMetadataType, subFieldName: string, + // eslint-disable-next-line @typescript-eslint/no-explicit-any subFieldValue: any, ) { if (!isCompositeFieldMetadataType(fieldType)) { @@ -211,6 +213,7 @@ export class SeederService { private turnFieldValueAsSQLValue( fieldType: FieldMetadataType, + // eslint-disable-next-line @typescript-eslint/no-explicit-any fieldValue: any, ) { if (fieldType === FieldMetadataType.RAW_JSON) { diff --git a/packages/twenty-server/src/engine/twenty-orm/custom.workspace-entity.ts b/packages/twenty-server/src/engine/twenty-orm/custom.workspace-entity.ts index a3b227c59..0752729b0 100644 --- a/packages/twenty-server/src/engine/twenty-orm/custom.workspace-entity.ts +++ b/packages/twenty-server/src/engine/twenty-orm/custom.workspace-entity.ts @@ -158,5 +158,6 @@ export class CustomWorkspaceEntity extends BaseWorkspaceEntity { @WorkspaceIsNullable() @WorkspaceIsSystem() @WorkspaceFieldIndex({ indexType: IndexType.GIN }) + // eslint-disable-next-line @typescript-eslint/no-explicit-any searchVector: any; } diff --git a/packages/twenty-server/src/engine/twenty-orm/datasource/workspace.datasource.ts b/packages/twenty-server/src/engine/twenty-orm/datasource/workspace.datasource.ts index 922b776a7..258c54c6b 100644 --- a/packages/twenty-server/src/engine/twenty-orm/datasource/workspace.datasource.ts +++ b/packages/twenty-server/src/engine/twenty-orm/datasource/workspace.datasource.ts @@ -75,6 +75,7 @@ export class WorkspaceDataSource extends DataSource { Object.assign(queryRunner, { manager: manager }); + // eslint-disable-next-line @typescript-eslint/no-explicit-any return queryRunner as any as WorkspaceQueryRunner; } diff --git a/packages/twenty-server/src/engine/twenty-orm/decorators/workspace-field-index.decorator.ts b/packages/twenty-server/src/engine/twenty-orm/decorators/workspace-field-index.decorator.ts index d4a748f91..a650d80dc 100644 --- a/packages/twenty-server/src/engine/twenty-orm/decorators/workspace-field-index.decorator.ts +++ b/packages/twenty-server/src/engine/twenty-orm/decorators/workspace-field-index.decorator.ts @@ -8,6 +8,7 @@ import { TypedReflect } from 'src/utils/typed-reflect'; export function WorkspaceFieldIndex( options?: WorkspaceIndexOptions, ): PropertyDecorator { + // eslint-disable-next-line @typescript-eslint/no-explicit-any return (target: any, propertyKey: string | symbol) => { if (propertyKey === undefined) { throw new Error('This decorator should be used with a field not a class'); diff --git a/packages/twenty-server/src/engine/twenty-orm/decorators/workspace-gate.decorator.ts b/packages/twenty-server/src/engine/twenty-orm/decorators/workspace-gate.decorator.ts index a672e70f5..64478b58b 100644 --- a/packages/twenty-server/src/engine/twenty-orm/decorators/workspace-gate.decorator.ts +++ b/packages/twenty-server/src/engine/twenty-orm/decorators/workspace-gate.decorator.ts @@ -16,6 +16,7 @@ export function WorkspaceGate(options: WorkspaceGateOptions) { ); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any return (target: any, propertyKey?: string | symbol) => { if (propertyKey !== undefined) { TypedReflect.defineMetadata( diff --git a/packages/twenty-server/src/engine/twenty-orm/decorators/workspace-index.decorator.ts b/packages/twenty-server/src/engine/twenty-orm/decorators/workspace-index.decorator.ts index 02690b201..fb827f5a2 100644 --- a/packages/twenty-server/src/engine/twenty-orm/decorators/workspace-index.decorator.ts +++ b/packages/twenty-server/src/engine/twenty-orm/decorators/workspace-index.decorator.ts @@ -18,6 +18,7 @@ export function WorkspaceIndex( throw new Error('Class level WorkspaceIndex should be used with columns'); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any return (target: any) => { const gate = TypedReflect.getMetadata( 'workspace:gate-metadata-args', diff --git a/packages/twenty-server/src/engine/twenty-orm/decorators/workspace-is-searchable.decorator.ts b/packages/twenty-server/src/engine/twenty-orm/decorators/workspace-is-searchable.decorator.ts index f86c23512..424b0cf2e 100644 --- a/packages/twenty-server/src/engine/twenty-orm/decorators/workspace-is-searchable.decorator.ts +++ b/packages/twenty-server/src/engine/twenty-orm/decorators/workspace-is-searchable.decorator.ts @@ -1,6 +1,7 @@ import { TypedReflect } from 'src/utils/typed-reflect'; export function WorkspaceIsSearchable() { + // eslint-disable-next-line @typescript-eslint/no-explicit-any return function (target: any): void { TypedReflect.defineMetadata( 'workspace:is-searchable-metadata-args', diff --git a/packages/twenty-server/src/engine/twenty-orm/decorators/workspace-is-system.decorator.ts b/packages/twenty-server/src/engine/twenty-orm/decorators/workspace-is-system.decorator.ts index 3be9a1343..8171735c4 100644 --- a/packages/twenty-server/src/engine/twenty-orm/decorators/workspace-is-system.decorator.ts +++ b/packages/twenty-server/src/engine/twenty-orm/decorators/workspace-is-system.decorator.ts @@ -1,6 +1,7 @@ import { TypedReflect } from 'src/utils/typed-reflect'; export function WorkspaceIsSystem() { + // eslint-disable-next-line @typescript-eslint/no-explicit-any return function (target: any, propertyKey?: string | symbol): void { if (propertyKey !== undefined) { TypedReflect.defineMetadata( diff --git a/packages/twenty-server/src/engine/twenty-orm/decorators/workspace-is-unique.decorator.ts b/packages/twenty-server/src/engine/twenty-orm/decorators/workspace-is-unique.decorator.ts index 179aa1390..921ff9698 100644 --- a/packages/twenty-server/src/engine/twenty-orm/decorators/workspace-is-unique.decorator.ts +++ b/packages/twenty-server/src/engine/twenty-orm/decorators/workspace-is-unique.decorator.ts @@ -4,6 +4,7 @@ import { convertClassNameToObjectMetadataName } from 'src/engine/workspace-manag import { TypedReflect } from 'src/utils/typed-reflect'; export function WorkspaceIsUnique(): PropertyDecorator { + // eslint-disable-next-line @typescript-eslint/no-explicit-any return (target: any, propertyKey: string | symbol) => { if (propertyKey === undefined) { throw new Error('This decorator should be used with a field not a class'); diff --git a/packages/twenty-server/src/engine/twenty-orm/entity-manager/workspace-entity-manager.ts b/packages/twenty-server/src/engine/twenty-orm/entity-manager/workspace-entity-manager.ts index 0eb037918..bcdcb8ff1 100644 --- a/packages/twenty-server/src/engine/twenty-orm/entity-manager/workspace-entity-manager.ts +++ b/packages/twenty-server/src/engine/twenty-orm/entity-manager/workspace-entity-manager.ts @@ -26,6 +26,7 @@ import { WorkspaceRepository } from 'src/engine/twenty-orm/repository/workspace. export class WorkspaceEntityManager extends EntityManager { private readonly internalContext: WorkspaceInternalContext; + // eslint-disable-next-line @typescript-eslint/no-explicit-any readonly repositories: Map>; declare connection: WorkspaceDataSource; @@ -190,6 +191,7 @@ export class WorkspaceEntityManager extends EntityManager { roleId, shouldBypassPermissionChecks, }: { + // eslint-disable-next-line @typescript-eslint/no-explicit-any target: EntityTarget; dataSource: WorkspaceDataSource; shouldBypassPermissionChecks: boolean; @@ -240,6 +242,7 @@ export class WorkspaceEntityManager extends EntityManager { } private extractTargetNameSingularFromEntityTarget( + // eslint-disable-next-line @typescript-eslint/no-explicit-any target: EntityTarget, ): string { return this.connection.getMetadata(target).name; diff --git a/packages/twenty-server/src/engine/twenty-orm/interfaces/twenty-orm-options.interface.ts b/packages/twenty-server/src/engine/twenty-orm/interfaces/twenty-orm-options.interface.ts index fa88b9fd2..efdfd2d8d 100644 --- a/packages/twenty-server/src/engine/twenty-orm/interfaces/twenty-orm-options.interface.ts +++ b/packages/twenty-server/src/engine/twenty-orm/interfaces/twenty-orm-options.interface.ts @@ -4,6 +4,7 @@ import { FactoryProvider, ModuleMetadata } from '@nestjs/common'; export interface TwentyORMOptions {} export type TwentyORMModuleAsyncOptions = { + // eslint-disable-next-line @typescript-eslint/no-explicit-any useFactory: (...args: any[]) => TwentyORMOptions | Promise; } & Pick & Pick; diff --git a/packages/twenty-server/src/engine/twenty-orm/repository/workspace-insert-query-builder.ts b/packages/twenty-server/src/engine/twenty-orm/repository/workspace-insert-query-builder.ts index d37f263e6..62b2f8928 100644 --- a/packages/twenty-server/src/engine/twenty-orm/repository/workspace-insert-query-builder.ts +++ b/packages/twenty-server/src/engine/twenty-orm/repository/workspace-insert-query-builder.ts @@ -39,6 +39,7 @@ export class WorkspaceInsertQueryBuilder< ) as this; } + // eslint-disable-next-line @typescript-eslint/no-explicit-any override execute(): Promise { validateQueryIsPermittedOrThrow( this.expressionMap, diff --git a/packages/twenty-server/src/engine/twenty-orm/repository/workspace-select-query-builder.ts b/packages/twenty-server/src/engine/twenty-orm/repository/workspace-select-query-builder.ts index a75eb6eef..093499398 100644 --- a/packages/twenty-server/src/engine/twenty-orm/repository/workspace-select-query-builder.ts +++ b/packages/twenty-server/src/engine/twenty-orm/repository/workspace-select-query-builder.ts @@ -50,12 +50,14 @@ export class WorkspaceSelectQueryBuilder< return super.getMany(); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any override getRawOne(): Promise { this.validatePermissions(); return super.getRawOne(); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any override getRawMany(): Promise { this.validatePermissions(); diff --git a/packages/twenty-server/src/engine/twenty-orm/utils/format-data.util.ts b/packages/twenty-server/src/engine/twenty-orm/utils/format-data.util.ts index 05db3e9cf..95049f208 100644 --- a/packages/twenty-server/src/engine/twenty-orm/utils/format-data.util.ts +++ b/packages/twenty-server/src/engine/twenty-orm/utils/format-data.util.ts @@ -23,6 +23,7 @@ export function formatData( ) as T; } + // eslint-disable-next-line @typescript-eslint/no-explicit-any const newData: Record = {}; const fieldMetadataByJoinColumnName = objectMetadataItemWithFieldMaps.fields.reduce((acc, fieldMetadata) => { @@ -69,8 +70,10 @@ export function formatData( } function formatCompositeField( + // eslint-disable-next-line @typescript-eslint/no-explicit-any value: any, fieldMetadata: FieldMetadataInterface, + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): Record { const compositeType = compositeTypeDefinitions.get( fieldMetadata.type as CompositeFieldMetadataType, @@ -82,6 +85,7 @@ function formatCompositeField( ); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any const formattedCompositeField: Record = {}; for (const property of compositeType.properties) { @@ -100,6 +104,7 @@ function formatCompositeField( } function formatFieldMetadataValue( + // eslint-disable-next-line @typescript-eslint/no-explicit-any value: any, fieldMetadata: FieldMetadataInterface, ) { diff --git a/packages/twenty-server/src/engine/twenty-orm/utils/format-result.util.ts b/packages/twenty-server/src/engine/twenty-orm/utils/format-result.util.ts index 986310311..8b49237a7 100644 --- a/packages/twenty-server/src/engine/twenty-orm/utils/format-result.util.ts +++ b/packages/twenty-server/src/engine/twenty-orm/utils/format-result.util.ts @@ -16,6 +16,7 @@ import { isDate } from 'src/utils/date/isDate'; import { isValidDate } from 'src/utils/date/isValidDate'; export function formatResult( + // eslint-disable-next-line @typescript-eslint/no-explicit-any data: any, objectMetadataItemWithFieldMaps: ObjectMetadataItemWithFieldMaps | undefined, objectMetadataMaps: ObjectMetadataMaps, @@ -194,6 +195,7 @@ export function getCompositeFieldMetadataMap( } function formatFieldMetadataValue( + // eslint-disable-next-line @typescript-eslint/no-explicit-any value: any, fieldMetadata: FieldMetadataInterface, ) { diff --git a/packages/twenty-server/src/engine/utils/generate-fake-value.ts b/packages/twenty-server/src/engine/utils/generate-fake-value.ts index f20e076d3..38d583533 100644 --- a/packages/twenty-server/src/engine/utils/generate-fake-value.ts +++ b/packages/twenty-server/src/engine/utils/generate-fake-value.ts @@ -26,6 +26,7 @@ const generatePrimitiveValue = (valueType: string): FakeValueTypes => { return Array.from({ length: 3 }, () => generateFakeValue(elementType)); } else if (valueType.startsWith('{') && valueType.endsWith('}')) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any const objData: Record = {}; const properties = valueType diff --git a/packages/twenty-server/src/engine/workspace-cache-storage/workspace-cache-storage.service.ts b/packages/twenty-server/src/engine/workspace-cache-storage/workspace-cache-storage.service.ts index 724d5791d..1db7ad0c1 100644 --- a/packages/twenty-server/src/engine/workspace-cache-storage/workspace-cache-storage.service.ts +++ b/packages/twenty-server/src/engine/workspace-cache-storage/workspace-cache-storage.service.ts @@ -44,8 +44,10 @@ export class WorkspaceCacheStorageService { setORMEntitySchema( workspaceId: string, metadataVersion: number, + // eslint-disable-next-line @typescript-eslint/no-explicit-any entitySchemas: EntitySchemaOptions[], ) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any return this.cacheStorageService.set[]>( `${WorkspaceCacheKeys.ORMEntitySchemas}:${workspaceId}:${metadataVersion}`, entitySchemas, @@ -56,7 +58,9 @@ export class WorkspaceCacheStorageService { getORMEntitySchema( workspaceId: string, metadataVersion: number, + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): Promise[] | undefined> { + // eslint-disable-next-line @typescript-eslint/no-explicit-any return this.cacheStorageService.get[]>( `${WorkspaceCacheKeys.ORMEntitySchemas}:${workspaceId}:${metadataVersion}`, ); diff --git a/packages/twenty-server/src/engine/workspace-datasource/workspace-datasource.service.ts b/packages/twenty-server/src/engine/workspace-datasource/workspace-datasource.service.ts index 11c597253..f69d7fb17 100644 --- a/packages/twenty-server/src/engine/workspace-datasource/workspace-datasource.service.ts +++ b/packages/twenty-server/src/engine/workspace-datasource/workspace-datasource.service.ts @@ -100,9 +100,11 @@ export class WorkspaceDataSourceService { public async executeRawQuery( query: string, + // eslint-disable-next-line @typescript-eslint/no-explicit-any parameters: any[] = [], workspaceId: string, transactionManager?: EntityManager, + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): Promise { try { if (transactionManager) { diff --git a/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/create-workspace-views.ts b/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/create-workspace-views.ts index b94e57e49..7db31752b 100644 --- a/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/create-workspace-views.ts +++ b/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/create-workspace-views.ts @@ -105,6 +105,7 @@ export const createWorkspaceViews = async ( 'viewId', ]) .values( + // eslint-disable-next-line @typescript-eslint/no-explicit-any viewDefinition.filters.map((filter: any) => ({ fieldMetadataId: filter.fieldMetadataId, displayValue: filter.displayValue, @@ -134,6 +135,7 @@ export const createWorkspaceViews = async ( 'viewId', ]) .values( + // eslint-disable-next-line @typescript-eslint/no-explicit-any viewDefinition.groups.map((group: any) => ({ fieldMetadataId: group.fieldMetadataId, isVisible: group.isVisible, diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-health/commands/workspace-health.command.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-health/commands/workspace-health.command.ts index b6ad97a85..c67a26322 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-health/commands/workspace-health.command.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-health/commands/workspace-health.command.ts @@ -111,6 +111,7 @@ export class WorkspaceHealthCommand extends CommandRunner { required: false, }) fix(value: string): WorkspaceHealthFixKind { + // eslint-disable-next-line @typescript-eslint/no-explicit-any if (!Object.values(WorkspaceHealthFixKind).includes(value as any)) { throw new Error(`Invalid fix kind ${value}`); } @@ -125,6 +126,7 @@ export class WorkspaceHealthCommand extends CommandRunner { defaultValue: WorkspaceHealthMode.All, }) parseMode(value: string): WorkspaceHealthMode { + // eslint-disable-next-line @typescript-eslint/no-explicit-any if (!Object.values(WorkspaceHealthMode).includes(value as any)) { throw new Error(`Invalid mode ${value}`); } diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-health/fixer/workspace-default-value.fixer.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-health/fixer/workspace-default-value.fixer.ts index 8362ca209..bbdc3e218 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-health/fixer/workspace-default-value.fixer.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-health/fixer/workspace-default-value.fixer.ts @@ -146,7 +146,9 @@ export class WorkspaceDefaultValueFixer extends AbstractWorkspaceFixer { const dataSourceSchema = @@ -102,6 +103,7 @@ export class ConvertRecordPositionsToIntegers extends CommandRunner { tableName: string, dataSourceSchema: string, workspaceId: string, + // eslint-disable-next-line @typescript-eslint/no-explicit-any transactionManager: any, ): Promise { await this.workspaceDataSourceService.executeRawQuery( diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/utils/order-object-properties.util.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/utils/order-object-properties.util.ts index 1ac4acdde..3bcabf6b3 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/utils/order-object-properties.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/comparators/utils/order-object-properties.util.ts @@ -2,6 +2,7 @@ export function orderObjectProperties(data: T[]): T[]; export function orderObjectProperties(data: T): T; +// eslint-disable-next-line @typescript-eslint/no-explicit-any export function orderObjectProperties | object>( data: T, ): T { diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/services/workspace-sync-object-metadata-identifiers.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/services/workspace-sync-object-metadata-identifiers.service.ts index cc68bcd8c..d0621b1aa 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/services/workspace-sync-object-metadata-identifiers.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/services/workspace-sync-object-metadata-identifiers.service.ts @@ -52,6 +52,7 @@ export class WorkspaceSyncObjectMetadataIdentifiersService { private createStandardObjectMetadataMap( context: WorkspaceSyncContext, + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): Record { const standardObjectMetadataCollection = this.standardObjectFactory.create( standardObjectMetadataDefinitions, @@ -65,6 +66,7 @@ export class WorkspaceSyncObjectMetadataIdentifiersService { private async processObjectMetadataCollection( originalObjectMetadataCollection: ObjectMetadataEntity[], + // eslint-disable-next-line @typescript-eslint/no-explicit-any standardObjectMetadataMap: Record, objectMetadataRepository: Repository, ): Promise { @@ -111,6 +113,7 @@ export class WorkspaceSyncObjectMetadataIdentifiersService { private findIdentifierFieldMetadata( objectMetadata: ObjectMetadataEntity, objectStandardId: string, + // eslint-disable-next-line @typescript-eslint/no-explicit-any standardObjectMetadataMap: Record, standardIdFieldName: string, ): FieldMetadataEntity | undefined { diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/workspace-sync-metadata.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/workspace-sync-metadata.service.ts index 6293536b1..44d1e17e1 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/workspace-sync-metadata.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/workspace-sync-metadata.service.ts @@ -212,7 +212,9 @@ export class WorkspaceSyncMetadataService { } catch (error) { this.logger.error('Sync of standard objects failed with:', error); + // eslint-disable-next-line @typescript-eslint/no-explicit-any if (error instanceof QueryFailedError && (error as any).detail) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any this.logger.error((error as any).detail); } await queryRunner.rollbackTransaction(); @@ -239,6 +241,7 @@ export class WorkspaceSyncMetadataService { objectMigrations: Partial[]; fieldMigrations: Partial[]; } { + // eslint-disable-next-line @typescript-eslint/no-explicit-any const createMigrationsByTable = new Map(); for (const objectMigration of objectMigrations) { diff --git a/packages/twenty-server/src/filters/unhandled-exception.filter.ts b/packages/twenty-server/src/filters/unhandled-exception.filter.ts index a84ccfa21..f0cd80072 100644 --- a/packages/twenty-server/src/filters/unhandled-exception.filter.ts +++ b/packages/twenty-server/src/filters/unhandled-exception.filter.ts @@ -12,6 +12,7 @@ import { Response } from 'express'; // This class add CORS headers to exception response to avoid misleading CORS error @Catch() export class UnhandledExceptionFilter implements ExceptionFilter { + // eslint-disable-next-line @typescript-eslint/no-explicit-any catch(exception: any, host: ArgumentsHost) { const ctx = host.switchToHttp(); const response = ctx.getResponse(); diff --git a/packages/twenty-server/src/modules/calendar/calendar-event-import-manager/drivers/utils/sanitizeCalendarEvent.ts b/packages/twenty-server/src/modules/calendar/calendar-event-import-manager/drivers/utils/sanitizeCalendarEvent.ts index 29c076ae7..5e6ee2756 100644 --- a/packages/twenty-server/src/modules/calendar/calendar-event-import-manager/drivers/utils/sanitizeCalendarEvent.ts +++ b/packages/twenty-server/src/modules/calendar/calendar-event-import-manager/drivers/utils/sanitizeCalendarEvent.ts @@ -1,5 +1,6 @@ import { isDefined } from 'twenty-shared/utils'; +// eslint-disable-next-line @typescript-eslint/no-explicit-any export const sanitizeCalendarEvent = >( event: T, propertiesToSanitize: (keyof T)[], diff --git a/packages/twenty-server/src/modules/calendar/calendar-event-import-manager/utils/get-flattened-values-and-values-string-for-batch-raw-query.util.ts b/packages/twenty-server/src/modules/calendar/calendar-event-import-manager/utils/get-flattened-values-and-values-string-for-batch-raw-query.util.ts index d1a6cb565..2054734ca 100644 --- a/packages/twenty-server/src/modules/calendar/calendar-event-import-manager/utils/get-flattened-values-and-values-string-for-batch-raw-query.util.ts +++ b/packages/twenty-server/src/modules/calendar/calendar-event-import-manager/utils/get-flattened-values-and-values-string-for-batch-raw-query.util.ts @@ -1,5 +1,6 @@ export const valuesStringForBatchRawQuery = ( values: { + // eslint-disable-next-line @typescript-eslint/no-explicit-any [key: string]: any; }[], typesArray: string[] = [], diff --git a/packages/twenty-server/src/modules/company/standard-objects/company.workspace-entity.ts b/packages/twenty-server/src/modules/company/standard-objects/company.workspace-entity.ts index 509e7b7e6..d910a8a89 100644 --- a/packages/twenty-server/src/modules/company/standard-objects/company.workspace-entity.ts +++ b/packages/twenty-server/src/modules/company/standard-objects/company.workspace-entity.ts @@ -285,5 +285,6 @@ export class CompanyWorkspaceEntity extends BaseWorkspaceEntity { @WorkspaceIsNullable() @WorkspaceIsSystem() @WorkspaceFieldIndex({ indexType: IndexType.GIN }) + // eslint-disable-next-line @typescript-eslint/no-explicit-any searchVector: any; } diff --git a/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/services/gmail-fetch-by-batch.service.ts b/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/services/gmail-fetch-by-batch.service.ts index 66c7c5e02..7422e1e26 100644 --- a/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/services/gmail-fetch-by-batch.service.ts +++ b/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/services/gmail-fetch-by-batch.service.ts @@ -17,12 +17,16 @@ export class GmailFetchByBatchService { boundary: string, ): Promise<{ messageIdsByBatch: string[][]; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any batchResponses: AxiosResponse[]; }> { const batchLimit = 20; let batchOffset = 0; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any let batchResponses: AxiosResponse[] = []; const messageIdsByBatch: string[][] = []; @@ -54,6 +58,8 @@ export class GmailFetchByBatchService { batchOffset: number, batchLimit: number, boundary: string, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): Promise> { const queries = createQueriesFromMessageIds(messageIds); @@ -98,6 +104,8 @@ export class GmailFetchByBatchService { } parseBatch( + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any responseCollection: AxiosResponse, ): GmailMessageParsedResponse[] { const responseItems: GmailMessageParsedResponse[] = []; @@ -124,6 +132,8 @@ export class GmailFetchByBatchService { return responseItems; } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any getBatchSeparator(responseCollection: AxiosResponse): string { const headers = responseCollection.headers; diff --git a/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/services/gmail-get-messages.service.ts b/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/services/gmail-get-messages.service.ts index 930c496ec..37205e7f1 100644 --- a/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/services/gmail-get-messages.service.ts +++ b/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/services/gmail-get-messages.service.ts @@ -66,6 +66,8 @@ export class GmailGetMessagesService { private formatBatchResponseAsMessage( messageIds: string[], + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any responseCollection: AxiosResponse, connectedAccount: Pick< ConnectedAccountWorkspaceEntity, diff --git a/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/services/gmail-handle-error.service.ts b/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/services/gmail-handle-error.service.ts index ab4ea7fea..c821adbc8 100644 --- a/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/services/gmail-handle-error.service.ts +++ b/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/services/gmail-handle-error.service.ts @@ -8,6 +8,7 @@ import { parseGmailMessagesImportError } from 'src/modules/messaging/message-imp export class GmailHandleErrorService { constructor() {} + // eslint-disable-next-line @typescript-eslint/no-explicit-any public handleGmailMessageListFetchError(error: any): void { const gaxiosError = parseGaxiosError(error); @@ -19,6 +20,7 @@ export class GmailHandleErrorService { } public handleGmailMessagesImportError( + // eslint-disable-next-line @typescript-eslint/no-explicit-any error: any, messageExternalId: string, ): void { diff --git a/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/microsoft/services/microsoft-fetch-by-batch.service.ts b/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/microsoft/services/microsoft-fetch-by-batch.service.ts index 9b723e575..e80361051 100644 --- a/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/microsoft/services/microsoft-fetch-by-batch.service.ts +++ b/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/microsoft/services/microsoft-fetch-by-batch.service.ts @@ -82,6 +82,7 @@ export class MicrosoftFetchByBatchService { * }, * } */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any private isTemporaryError(error: any): boolean { return error?.body?.includes('Unexpected token < in JSON at position'); } diff --git a/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/microsoft/services/microsoft-get-messages.interface.ts b/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/microsoft/services/microsoft-get-messages.interface.ts index 14dc42d51..a180a3bd3 100644 --- a/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/microsoft/services/microsoft-get-messages.interface.ts +++ b/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/microsoft/services/microsoft-get-messages.interface.ts @@ -13,6 +13,7 @@ export interface MicrosoftGraphBatchResponse { createdDateTime?: string; lastModifiedDateTime?: string; changeKey?: string; + // eslint-disable-next-line @typescript-eslint/no-explicit-any categories?: any[]; receivedDateTime?: string; sentDateTime?: string; diff --git a/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/microsoft/services/microsoft-get-messages.service.ts b/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/microsoft/services/microsoft-get-messages.service.ts index bd5910941..b78198fb9 100644 --- a/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/microsoft/services/microsoft-get-messages.service.ts +++ b/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/microsoft/services/microsoft-get-messages.service.ts @@ -133,6 +133,7 @@ export class MicrosoftGetMessagesService { return []; } + // eslint-disable-next-line @typescript-eslint/no-explicit-any return batchResponse.responses.map((response: any) => { if (response.status === 200) { return response.body; diff --git a/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/microsoft/services/microsoft-handle-error.service.ts b/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/microsoft/services/microsoft-handle-error.service.ts index d7a0ec650..811fa9bf8 100644 --- a/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/microsoft/services/microsoft-handle-error.service.ts +++ b/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/microsoft/services/microsoft-handle-error.service.ts @@ -8,6 +8,7 @@ import { MicrosoftImportDriverException } from 'src/modules/messaging/message-im @Injectable() export class MicrosoftHandleErrorService { + // eslint-disable-next-line @typescript-eslint/no-explicit-any public handleMicrosoftMessageFetchError(error: any): void { if (!error.statusCode) { throw new MessageImportDriverException( @@ -43,6 +44,7 @@ export class MicrosoftHandleErrorService { ); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any public throwMicrosoftBatchError(error: any): void { throw new MicrosoftImportDriverException( error.message, diff --git a/packages/twenty-server/src/modules/note/standard-objects/note.workspace-entity.ts b/packages/twenty-server/src/modules/note/standard-objects/note.workspace-entity.ts index f721f0753..11c11e754 100644 --- a/packages/twenty-server/src/modules/note/standard-objects/note.workspace-entity.ts +++ b/packages/twenty-server/src/modules/note/standard-objects/note.workspace-entity.ts @@ -160,5 +160,6 @@ export class NoteWorkspaceEntity extends BaseWorkspaceEntity { @WorkspaceIsNullable() @WorkspaceIsSystem() @WorkspaceFieldIndex({ indexType: IndexType.GIN }) + // eslint-disable-next-line @typescript-eslint/no-explicit-any searchVector: any; } diff --git a/packages/twenty-server/src/modules/opportunity/standard-objects/opportunity.workspace-entity.ts b/packages/twenty-server/src/modules/opportunity/standard-objects/opportunity.workspace-entity.ts index ebc751ba2..ff58f24b2 100644 --- a/packages/twenty-server/src/modules/opportunity/standard-objects/opportunity.workspace-entity.ts +++ b/packages/twenty-server/src/modules/opportunity/standard-objects/opportunity.workspace-entity.ts @@ -240,5 +240,6 @@ export class OpportunityWorkspaceEntity extends BaseWorkspaceEntity { @WorkspaceIsNullable() @WorkspaceIsSystem() @WorkspaceFieldIndex({ indexType: IndexType.GIN }) + // eslint-disable-next-line @typescript-eslint/no-explicit-any searchVector: any; } diff --git a/packages/twenty-server/src/modules/person/standard-objects/person.workspace-entity.ts b/packages/twenty-server/src/modules/person/standard-objects/person.workspace-entity.ts index 361887d28..d34ebeec1 100644 --- a/packages/twenty-server/src/modules/person/standard-objects/person.workspace-entity.ts +++ b/packages/twenty-server/src/modules/person/standard-objects/person.workspace-entity.ts @@ -304,5 +304,6 @@ export class PersonWorkspaceEntity extends BaseWorkspaceEntity { @WorkspaceIsNullable() @WorkspaceIsSystem() @WorkspaceFieldIndex({ indexType: IndexType.GIN }) + // eslint-disable-next-line @typescript-eslint/no-explicit-any searchVector: any; } diff --git a/packages/twenty-server/src/modules/task/standard-objects/task.workspace-entity.ts b/packages/twenty-server/src/modules/task/standard-objects/task.workspace-entity.ts index 54176157d..5e9b866ab 100644 --- a/packages/twenty-server/src/modules/task/standard-objects/task.workspace-entity.ts +++ b/packages/twenty-server/src/modules/task/standard-objects/task.workspace-entity.ts @@ -215,5 +215,6 @@ export class TaskWorkspaceEntity extends BaseWorkspaceEntity { @WorkspaceIsNullable() @WorkspaceIsSystem() @WorkspaceFieldIndex({ indexType: IndexType.GIN }) + // eslint-disable-next-line @typescript-eslint/no-explicit-any searchVector: any; } diff --git a/packages/twenty-server/src/modules/timeline/services/timeline-activity.service.ts b/packages/twenty-server/src/modules/timeline/services/timeline-activity.service.ts index 34ba7a35d..77da7db1a 100644 --- a/packages/twenty-server/src/modules/timeline/services/timeline-activity.service.ts +++ b/packages/twenty-server/src/modules/timeline/services/timeline-activity.service.ts @@ -13,6 +13,7 @@ type TimelineActivity = Omit & { linkedRecordCachedName?: string; linkedRecordId?: string; linkedObjectMetadataId?: string; + // eslint-disable-next-line @typescript-eslint/no-explicit-any properties: Record; // more relaxed conditions than for internal events }; diff --git a/packages/twenty-server/src/modules/webhook/jobs/call-webhook.job.ts b/packages/twenty-server/src/modules/webhook/jobs/call-webhook.job.ts index dbc0976f6..3c6bb9e32 100644 --- a/packages/twenty-server/src/modules/webhook/jobs/call-webhook.job.ts +++ b/packages/twenty-server/src/modules/webhook/jobs/call-webhook.job.ts @@ -16,6 +16,7 @@ export type CallWebhookJobData = { workspaceId: string; webhookId: string; eventDate: Date; + // eslint-disable-next-line @typescript-eslint/no-explicit-any record: any; updatedFields?: string[]; secret?: string; diff --git a/packages/twenty-server/src/modules/workflow/common/standard-objects/workflow-run.workspace-entity.ts b/packages/twenty-server/src/modules/workflow/common/standard-objects/workflow-run.workspace-entity.ts index 044751961..321239ab9 100644 --- a/packages/twenty-server/src/modules/workflow/common/standard-objects/workflow-run.workspace-entity.ts +++ b/packages/twenty-server/src/modules/workflow/common/standard-objects/workflow-run.workspace-entity.ts @@ -149,6 +149,7 @@ export class WorkflowRunWorkspaceEntity extends BaseWorkspaceEntity { icon: 'IconHierarchy2', }) @WorkspaceIsNullable() + // eslint-disable-next-line @typescript-eslint/no-explicit-any context: Record | null; @WorkspaceField({ diff --git a/packages/twenty-server/src/modules/workflow/workflow-builder/workflow-schema/types/output-schema.type.ts b/packages/twenty-server/src/modules/workflow/workflow-builder/workflow-schema/types/output-schema.type.ts index 419fa84db..e5f365df3 100644 --- a/packages/twenty-server/src/modules/workflow/workflow-builder/workflow-schema/types/output-schema.type.ts +++ b/packages/twenty-server/src/modules/workflow/workflow-builder/workflow-schema/types/output-schema.type.ts @@ -5,6 +5,7 @@ export type Leaf = { type?: InputSchemaPropertyType; icon?: string; label?: string; + // eslint-disable-next-line @typescript-eslint/no-explicit-any value: any; }; diff --git a/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/code/types/workflow-code-action-input.type.ts b/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/code/types/workflow-code-action-input.type.ts index 39562603f..c426e80dc 100644 --- a/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/code/types/workflow-code-action-input.type.ts +++ b/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/code/types/workflow-code-action-input.type.ts @@ -2,6 +2,7 @@ export type WorkflowCodeActionInput = { serverlessFunctionId: string; serverlessFunctionVersion: string; serverlessFunctionInput: { + // eslint-disable-next-line @typescript-eslint/no-explicit-any [key: string]: any; }; }; diff --git a/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/filter/types/filter-operator.type.ts b/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/filter/types/filter-operator.type.ts index c9ab66ddf..c2dc54669 100644 --- a/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/filter/types/filter-operator.type.ts +++ b/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/filter/types/filter-operator.type.ts @@ -1,5 +1,7 @@ export type FilterOperator = { + // eslint-disable-next-line @typescript-eslint/no-explicit-any eq?: any; + // eslint-disable-next-line @typescript-eslint/no-explicit-any ne?: any; gt?: number; gte?: number; @@ -7,6 +9,8 @@ export type FilterOperator = { lte?: number; like?: string; ilike?: string; + // eslint-disable-next-line @typescript-eslint/no-explicit-any in?: any[]; + // eslint-disable-next-line @typescript-eslint/no-explicit-any is?: 'NULL' | any; }; diff --git a/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/filter/utils/apply-filter.util.ts b/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/filter/utils/apply-filter.util.ts index 452952abf..4b4bc7851 100644 --- a/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/filter/utils/apply-filter.util.ts +++ b/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/filter/utils/apply-filter.util.ts @@ -1,6 +1,7 @@ import { FilterCondition } from 'src/modules/workflow/workflow-executor/workflow-actions/filter/types/filter-condition.type'; import { FilterOperator } from 'src/modules/workflow/workflow-executor/workflow-actions/filter/types/filter-operator.type'; +// eslint-disable-next-line @typescript-eslint/no-explicit-any export const applyFilter = >( array: T[], filter: FilterCondition, @@ -9,6 +10,7 @@ export const applyFilter = >( }; const evaluateFilter = ( + // eslint-disable-next-line @typescript-eslint/no-explicit-any item: Record, filter: FilterCondition, ): boolean => { @@ -73,6 +75,7 @@ const evaluateNestedConditions = ( } return Object.entries(conditions).every(([field, nestedConditions]) => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any const nestedValue = (value as Record)[field]; if (isOperator(nestedConditions)) { @@ -86,6 +89,7 @@ const evaluateNestedConditions = ( }); }; +// eslint-disable-next-line @typescript-eslint/no-explicit-any const evaluateCondition = (value: any, condition: FilterOperator): boolean => { const [[operator, targetValue]] = Object.entries(condition); @@ -132,6 +136,7 @@ const evaluateCondition = (value: any, condition: FilterOperator): boolean => { } }; +// eslint-disable-next-line @typescript-eslint/no-explicit-any const matchesLike = (value: any, pattern: string): boolean => { if (typeof value !== 'string') { return false; @@ -142,6 +147,7 @@ const matchesLike = (value: any, pattern: string): boolean => { return new RegExp(`^${regexPattern}$`).test(value); }; +// eslint-disable-next-line @typescript-eslint/no-explicit-any const matchesILike = (value: any, pattern: string): boolean => { if (typeof value !== 'string') { return false; @@ -152,6 +158,7 @@ const matchesILike = (value: any, pattern: string): boolean => { return new RegExp(`^${regexPattern}$`, 'i').test(value); }; +// eslint-disable-next-line @typescript-eslint/no-explicit-any const isOperator = (obj: any): boolean => { if (typeof obj !== 'object' || obj === null) { return false; diff --git a/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/filter/utils/get-previous-step-output.util.ts b/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/filter/utils/get-previous-step-output.util.ts index 4675ebb16..96c1ed9a8 100644 --- a/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/filter/utils/get-previous-step-output.util.ts +++ b/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/filter/utils/get-previous-step-output.util.ts @@ -7,6 +7,7 @@ import { WorkflowAction } from 'src/modules/workflow/workflow-executor/workflow- export const getPreviousStepOutput = ( steps: WorkflowAction[], currentStepId: string, + // eslint-disable-next-line @typescript-eslint/no-explicit-any context: Record, ) => { const previousSteps = steps.filter((step) => diff --git a/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/form/types/workflow-form-action-settings.type.ts b/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/form/types/workflow-form-action-settings.type.ts index 6a2c5bb5b..455e5ed87 100644 --- a/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/form/types/workflow-form-action-settings.type.ts +++ b/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/form/types/workflow-form-action-settings.type.ts @@ -6,8 +6,10 @@ export type FormFieldMetadata = { name: string; label: string; type: WorkflowFormFieldType; + // eslint-disable-next-line @typescript-eslint/no-explicit-any value?: any; placeholder?: string; + // eslint-disable-next-line @typescript-eslint/no-explicit-any settings?: Record; }; diff --git a/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/record-crud/types/workflow-record-crud-action-input.type.ts b/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/record-crud/types/workflow-record-crud-action-input.type.ts index 543293372..10f61ff26 100644 --- a/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/record-crud/types/workflow-record-crud-action-input.type.ts +++ b/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/record-crud/types/workflow-record-crud-action-input.type.ts @@ -3,6 +3,7 @@ import { ObjectRecordOrderBy, } from 'src/engine/api/graphql/workspace-query-builder/interfaces/object-record.interface'; +// eslint-disable-next-line @typescript-eslint/no-explicit-any type ObjectRecord = Record; export type WorkflowCreateRecordActionInput = { diff --git a/packages/twenty-server/src/modules/workflow/workflow-runner/jobs/run-workflow.job.ts b/packages/twenty-server/src/modules/workflow/workflow-runner/jobs/run-workflow.job.ts index c4b054d29..3bbe7fb88 100644 --- a/packages/twenty-server/src/modules/workflow/workflow-runner/jobs/run-workflow.job.ts +++ b/packages/twenty-server/src/modules/workflow/workflow-runner/jobs/run-workflow.job.ts @@ -171,6 +171,7 @@ export class RunWorkflowJob { workflowRunId: string; currentStepId: string; steps: WorkflowAction[]; + // eslint-disable-next-line @typescript-eslint/no-explicit-any context: Record; }) { const { error, pendingEvent } = diff --git a/packages/twenty-server/src/modules/workflow/workflow-runner/workflow-run/workflow-run.workspace-service.ts b/packages/twenty-server/src/modules/workflow/workflow-runner/workflow-run/workflow-run.workspace-service.ts index 3aec8d224..88c066bc5 100644 --- a/packages/twenty-server/src/modules/workflow/workflow-runner/workflow-run/workflow-run.workspace-service.ts +++ b/packages/twenty-server/src/modules/workflow/workflow-runner/workflow-run/workflow-run.workspace-service.ts @@ -115,6 +115,7 @@ export class WorkflowRunWorkspaceService { output, }: { workflowRunId: string; + // eslint-disable-next-line @typescript-eslint/no-explicit-any context: Record; output: WorkflowRunOutput; }) { @@ -205,6 +206,7 @@ export class WorkflowRunWorkspaceService { }: { workflowRunId: string; stepOutput: StepOutput; + // eslint-disable-next-line @typescript-eslint/no-explicit-any context: Record; }) { const workflowRunRepository = diff --git a/packages/twenty-server/src/modules/workflow/workflow-trigger/utils/assert-version-can-be-activated.util.ts b/packages/twenty-server/src/modules/workflow/workflow-trigger/utils/assert-version-can-be-activated.util.ts index f2a8dd092..eb7cabb0c 100644 --- a/packages/twenty-server/src/modules/workflow/workflow-trigger/utils/assert-version-can-be-activated.util.ts +++ b/packages/twenty-server/src/modules/workflow/workflow-trigger/utils/assert-version-can-be-activated.util.ts @@ -73,6 +73,7 @@ function assertVersionIsValid(workflowVersion: WorkflowVersionWorkspaceEntity) { function assertTriggerSettingsAreValid( triggerType: WorkflowTriggerType, + // eslint-disable-next-line @typescript-eslint/no-explicit-any settings: any, ) { switch (triggerType) { @@ -93,6 +94,7 @@ function assertTriggerSettingsAreValid( } } +// eslint-disable-next-line @typescript-eslint/no-explicit-any function assertCronTriggerSettingsAreValid(settings: any) { if (!settings?.type) { throw new WorkflowTriggerException( @@ -191,6 +193,7 @@ function assertCronTriggerSettingsAreValid(settings: any) { } } +// eslint-disable-next-line @typescript-eslint/no-explicit-any function assertDatabaseEventTriggerSettingsAreValid(settings: any) { if (!settings?.eventName) { throw new WorkflowTriggerException( diff --git a/packages/twenty-server/src/modules/workspace-member/standard-objects/workspace-member.workspace-entity.ts b/packages/twenty-server/src/modules/workspace-member/standard-objects/workspace-member.workspace-entity.ts index e5dd84a17..54b18b90b 100644 --- a/packages/twenty-server/src/modules/workspace-member/standard-objects/workspace-member.workspace-entity.ts +++ b/packages/twenty-server/src/modules/workspace-member/standard-objects/workspace-member.workspace-entity.ts @@ -358,5 +358,6 @@ export class WorkspaceMemberWorkspaceEntity extends BaseWorkspaceEntity { @WorkspaceIsNullable() @WorkspaceIsSystem() @WorkspaceFieldIndex({ indexType: IndexType.GIN }) + // eslint-disable-next-line @typescript-eslint/no-explicit-any searchVector: any; } diff --git a/packages/twenty-server/src/utils/camel-case.ts b/packages/twenty-server/src/utils/camel-case.ts index c5eaafed9..00390c3ff 100644 --- a/packages/twenty-server/src/utils/camel-case.ts +++ b/packages/twenty-server/src/utils/camel-case.ts @@ -13,6 +13,7 @@ export const camelCaseDeep = (value: T): CamelCasedPropertiesDeep => { // Check if it's an object if (isObject(value)) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any const result: Record = {}; for (const key in value) { diff --git a/packages/twenty-server/src/utils/date/isDate.ts b/packages/twenty-server/src/utils/date/isDate.ts index 8c2b80f47..8121fcb7d 100644 --- a/packages/twenty-server/src/utils/date/isDate.ts +++ b/packages/twenty-server/src/utils/date/isDate.ts @@ -1,3 +1,4 @@ +// eslint-disable-next-line @typescript-eslint/no-explicit-any export const isDate = (date: any): date is Date => { return date instanceof Date; }; diff --git a/packages/twenty-server/src/utils/date/isValidDate.ts b/packages/twenty-server/src/utils/date/isValidDate.ts index 9f1775243..5a0bf830c 100644 --- a/packages/twenty-server/src/utils/date/isValidDate.ts +++ b/packages/twenty-server/src/utils/date/isValidDate.ts @@ -1,3 +1,4 @@ +// eslint-disable-next-line @typescript-eslint/no-explicit-any export const isValidDate = (date: any): date is Date => { return date instanceof Date && !isNaN(date.getTime()); }; diff --git a/packages/twenty-server/src/utils/kebab-case.ts b/packages/twenty-server/src/utils/kebab-case.ts index 62cf52412..a1a3664e6 100644 --- a/packages/twenty-server/src/utils/kebab-case.ts +++ b/packages/twenty-server/src/utils/kebab-case.ts @@ -13,6 +13,7 @@ export const kebabCaseDeep = (value: T): KebabCasedPropertiesDeep => { // Check if it's an object if (isObject(value)) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any const result: Record = {}; for (const key in value) { diff --git a/packages/twenty-server/src/utils/pascal-case.ts b/packages/twenty-server/src/utils/pascal-case.ts index ecb13cf81..9b5085b43 100644 --- a/packages/twenty-server/src/utils/pascal-case.ts +++ b/packages/twenty-server/src/utils/pascal-case.ts @@ -14,6 +14,7 @@ export const pascalCaseDeep = (value: T): PascalCasedPropertiesDeep => { // Check if it's an object if (isObject(value)) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any const result: Record = {}; for (const key in value) { diff --git a/packages/twenty-server/src/utils/remove-secret-from-webhook-record.ts b/packages/twenty-server/src/utils/remove-secret-from-webhook-record.ts index 3d1fbe099..1cb7e1b9e 100644 --- a/packages/twenty-server/src/utils/remove-secret-from-webhook-record.ts +++ b/packages/twenty-server/src/utils/remove-secret-from-webhook-record.ts @@ -1,6 +1,8 @@ export const removeSecretFromWebhookRecord = ( + // eslint-disable-next-line @typescript-eslint/no-explicit-any record: Record | undefined, isWebhookEvent: boolean, + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): Record | undefined => { if (!isWebhookEvent || !record) return record; diff --git a/packages/twenty-server/src/utils/snake-case.ts b/packages/twenty-server/src/utils/snake-case.ts index 40102a07a..181815615 100644 --- a/packages/twenty-server/src/utils/snake-case.ts +++ b/packages/twenty-server/src/utils/snake-case.ts @@ -13,6 +13,7 @@ export const snakeCaseDeep = (value: T): SnakeCasedPropertiesDeep => { // Check if it's an object if (isObject(value)) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any const result: Record = {}; for (const key in value) { diff --git a/packages/twenty-server/src/utils/stream-to-buffer.ts b/packages/twenty-server/src/utils/stream-to-buffer.ts index 415b44d27..85af6cc0b 100644 --- a/packages/twenty-server/src/utils/stream-to-buffer.ts +++ b/packages/twenty-server/src/utils/stream-to-buffer.ts @@ -1,6 +1,7 @@ import { Readable } from 'stream'; export const streamToBuffer = async (stream: Readable): Promise => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any const chunks: any[] = []; for await (const chunk of stream) {