diff --git a/server/e2e/jobs/specs/library-watcher.e2e-spec.ts b/server/e2e/jobs/specs/library-watcher.e2e-spec.ts index 50d29f8ff6..a146bc8569 100644 --- a/server/e2e/jobs/specs/library-watcher.e2e-spec.ts +++ b/server/e2e/jobs/specs/library-watcher.e2e-spec.ts @@ -4,9 +4,9 @@ import path from 'node:path'; import { LoginResponseDto } from 'src/domain/auth/auth.dto'; import { LibraryResponseDto } from 'src/domain/library/library.dto'; import { LibraryService } from 'src/domain/library/library.service'; -import { StorageEventType } from 'src/domain/repositories/storage.repository'; import { AssetType } from 'src/infra/entities/asset.entity'; import { LibraryType } from 'src/infra/entities/library.entity'; +import { StorageEventType } from 'src/interfaces/storage.repository'; import { IMMICH_TEST_ASSET_PATH, IMMICH_TEST_ASSET_TEMP_PATH, diff --git a/server/src/controllers/partner.controller.ts b/server/src/controllers/partner.controller.ts index b756ade3e3..8ca55e73c8 100644 --- a/server/src/controllers/partner.controller.ts +++ b/server/src/controllers/partner.controller.ts @@ -3,7 +3,7 @@ import { ApiQuery, ApiTags } from '@nestjs/swagger'; import { AuthDto } from 'src/domain/auth/auth.dto'; import { PartnerResponseDto, UpdatePartnerDto } from 'src/domain/partner/partner.dto'; import { PartnerService } from 'src/domain/partner/partner.service'; -import { PartnerDirection } from 'src/domain/repositories/partner.repository'; +import { PartnerDirection } from 'src/interfaces/partner.repository'; import { Auth, Authenticated } from 'src/middleware/auth.guard'; import { UUIDParamDto } from 'src/validation'; diff --git a/server/src/cores/access.core.ts b/server/src/cores/access.core.ts index eb4ff55d12..3896475244 100644 --- a/server/src/cores/access.core.ts +++ b/server/src/cores/access.core.ts @@ -1,7 +1,7 @@ import { BadRequestException, UnauthorizedException } from '@nestjs/common'; import { AuthDto } from 'src/domain/auth/auth.dto'; -import { IAccessRepository } from 'src/domain/repositories/access.repository'; import { SharedLinkEntity } from 'src/infra/entities/shared-link.entity'; +import { IAccessRepository } from 'src/interfaces/access.repository'; import { setDifference, setIsEqual, setUnion } from 'src/utils'; export enum Permission { diff --git a/server/src/cores/storage.core.ts b/server/src/cores/storage.core.ts index 4e501dd834..39d9e12c96 100644 --- a/server/src/cores/storage.core.ts +++ b/server/src/cores/storage.core.ts @@ -1,16 +1,16 @@ import { dirname, join, resolve } from 'node:path'; import { SystemConfigCore } from 'src/cores/system-config.core'; import { APP_MEDIA_LOCATION } from 'src/domain/domain.constant'; -import { IAssetRepository } from 'src/domain/repositories/asset.repository'; -import { ICryptoRepository } from 'src/domain/repositories/crypto.repository'; -import { IMoveRepository } from 'src/domain/repositories/move.repository'; -import { IPersonRepository } from 'src/domain/repositories/person.repository'; -import { IStorageRepository } from 'src/domain/repositories/storage.repository'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; import { AssetEntity } from 'src/infra/entities/asset.entity'; import { AssetPathType, PathType, PersonPathType } from 'src/infra/entities/move.entity'; import { PersonEntity } from 'src/infra/entities/person.entity'; import { ImmichLogger } from 'src/infra/logger'; +import { IAssetRepository } from 'src/interfaces/asset.repository'; +import { ICryptoRepository } from 'src/interfaces/crypto.repository'; +import { IMoveRepository } from 'src/interfaces/move.repository'; +import { IPersonRepository } from 'src/interfaces/person.repository'; +import { IStorageRepository } from 'src/interfaces/storage.repository'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; export enum StorageFolder { ENCODED_VIDEO = 'encoded-video', diff --git a/server/src/cores/system-config.core.ts b/server/src/cores/system-config.core.ts index 999ca3e5be..1bfab773d1 100644 --- a/server/src/cores/system-config.core.ts +++ b/server/src/cores/system-config.core.ts @@ -6,7 +6,6 @@ import { load as loadYaml } from 'js-yaml'; import * as _ from 'lodash'; import { Subject } from 'rxjs'; import { QueueName } from 'src/domain/job/job.constants'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; import { SystemConfigDto } from 'src/domain/system-config/dto/system-config.dto'; import { AudioCodec, @@ -23,6 +22,7 @@ import { VideoCodec, } from 'src/infra/entities/system-config.entity'; import { ImmichLogger } from 'src/infra/logger'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; export type SystemConfigValidator = (config: SystemConfig, newConfig: SystemConfig) => void | Promise; diff --git a/server/src/cores/user.core.ts b/server/src/cores/user.core.ts index 0f9022a426..488c160368 100644 --- a/server/src/cores/user.core.ts +++ b/server/src/cores/user.core.ts @@ -1,11 +1,11 @@ import { BadRequestException, ForbiddenException } from '@nestjs/common'; import sanitize from 'sanitize-filename'; -import { ICryptoRepository } from 'src/domain/repositories/crypto.repository'; -import { ILibraryRepository } from 'src/domain/repositories/library.repository'; -import { IUserRepository } from 'src/domain/repositories/user.repository'; import { UserResponseDto } from 'src/domain/user/response-dto/user-response.dto'; import { LibraryType } from 'src/infra/entities/library.entity'; import { UserEntity } from 'src/infra/entities/user.entity'; +import { ICryptoRepository } from 'src/interfaces/crypto.repository'; +import { ILibraryRepository } from 'src/interfaces/library.repository'; +import { IUserRepository } from 'src/interfaces/user.repository'; const SALT_ROUNDS = 10; diff --git a/server/src/domain/activity/activity.service.ts b/server/src/domain/activity/activity.service.ts index cc1fef2c13..9ed8946f50 100644 --- a/server/src/domain/activity/activity.service.ts +++ b/server/src/domain/activity/activity.service.ts @@ -12,9 +12,9 @@ import { mapActivity, } from 'src/domain/activity/activity.dto'; import { AuthDto } from 'src/domain/auth/auth.dto'; -import { IAccessRepository } from 'src/domain/repositories/access.repository'; -import { IActivityRepository } from 'src/domain/repositories/activity.repository'; import { ActivityEntity } from 'src/infra/entities/activity.entity'; +import { IAccessRepository } from 'src/interfaces/access.repository'; +import { IActivityRepository } from 'src/interfaces/activity.repository'; @Injectable() export class ActivityService { diff --git a/server/src/domain/activity/activity.spec.ts b/server/src/domain/activity/activity.spec.ts index cd70572cad..467540be34 100644 --- a/server/src/domain/activity/activity.spec.ts +++ b/server/src/domain/activity/activity.spec.ts @@ -1,7 +1,7 @@ import { BadRequestException } from '@nestjs/common'; import { ReactionType } from 'src/domain/activity/activity.dto'; import { ActivityService } from 'src/domain/activity/activity.service'; -import { IActivityRepository } from 'src/domain/repositories/activity.repository'; +import { IActivityRepository } from 'src/interfaces/activity.repository'; import { activityStub } from 'test/fixtures/activity.stub'; import { authStub } from 'test/fixtures/auth.stub'; import { IAccessRepositoryMock, newAccessRepositoryMock } from 'test/repositories/access.repository.mock'; diff --git a/server/src/domain/album/album.service.spec.ts b/server/src/domain/album/album.service.spec.ts index e8122b73cd..5b3a91ecff 100644 --- a/server/src/domain/album/album.service.spec.ts +++ b/server/src/domain/album/album.service.spec.ts @@ -2,9 +2,9 @@ import { BadRequestException } from '@nestjs/common'; import _ from 'lodash'; import { AlbumService } from 'src/domain/album/album.service'; import { BulkIdErrorReason } from 'src/domain/asset/response-dto/asset-ids-response.dto'; -import { IAlbumRepository } from 'src/domain/repositories/album.repository'; -import { IAssetRepository } from 'src/domain/repositories/asset.repository'; -import { IUserRepository } from 'src/domain/repositories/user.repository'; +import { IAlbumRepository } from 'src/interfaces/album.repository'; +import { IAssetRepository } from 'src/interfaces/asset.repository'; +import { IUserRepository } from 'src/interfaces/user.repository'; import { albumStub } from 'test/fixtures/album.stub'; import { authStub } from 'test/fixtures/auth.stub'; import { userStub } from 'test/fixtures/user.stub'; diff --git a/server/src/domain/album/album.service.ts b/server/src/domain/album/album.service.ts index 5cd026cb34..77a6c6c467 100644 --- a/server/src/domain/album/album.service.ts +++ b/server/src/domain/album/album.service.ts @@ -14,13 +14,13 @@ import { AlbumInfoDto } from 'src/domain/album/dto/album.dto'; import { GetAlbumsDto } from 'src/domain/album/dto/get-albums.dto'; import { BulkIdErrorReason, BulkIdResponseDto, BulkIdsDto } from 'src/domain/asset/response-dto/asset-ids-response.dto'; import { AuthDto } from 'src/domain/auth/auth.dto'; -import { IAccessRepository } from 'src/domain/repositories/access.repository'; -import { AlbumAssetCount, AlbumInfoOptions, IAlbumRepository } from 'src/domain/repositories/album.repository'; -import { IAssetRepository } from 'src/domain/repositories/asset.repository'; -import { IUserRepository } from 'src/domain/repositories/user.repository'; import { AlbumEntity } from 'src/infra/entities/album.entity'; import { AssetEntity } from 'src/infra/entities/asset.entity'; import { UserEntity } from 'src/infra/entities/user.entity'; +import { IAccessRepository } from 'src/interfaces/access.repository'; +import { AlbumAssetCount, AlbumInfoOptions, IAlbumRepository } from 'src/interfaces/album.repository'; +import { IAssetRepository } from 'src/interfaces/asset.repository'; +import { IUserRepository } from 'src/interfaces/user.repository'; import { setUnion } from 'src/utils'; @Injectable() diff --git a/server/src/domain/api-key/api-key.service.spec.ts b/server/src/domain/api-key/api-key.service.spec.ts index e50d0d9b33..0400c13a20 100644 --- a/server/src/domain/api-key/api-key.service.spec.ts +++ b/server/src/domain/api-key/api-key.service.spec.ts @@ -1,7 +1,7 @@ import { BadRequestException } from '@nestjs/common'; import { APIKeyService } from 'src/domain/api-key/api-key.service'; -import { IKeyRepository } from 'src/domain/repositories/api-key.repository'; -import { ICryptoRepository } from 'src/domain/repositories/crypto.repository'; +import { IKeyRepository } from 'src/interfaces/api-key.repository'; +import { ICryptoRepository } from 'src/interfaces/crypto.repository'; import { keyStub } from 'test/fixtures/api-key.stub'; import { authStub } from 'test/fixtures/auth.stub'; import { newKeyRepositoryMock } from 'test/repositories/api-key.repository.mock'; diff --git a/server/src/domain/api-key/api-key.service.ts b/server/src/domain/api-key/api-key.service.ts index 5a531e9d5a..c8e7c5ec35 100644 --- a/server/src/domain/api-key/api-key.service.ts +++ b/server/src/domain/api-key/api-key.service.ts @@ -1,9 +1,9 @@ import { BadRequestException, Inject, Injectable } from '@nestjs/common'; import { APIKeyCreateDto, APIKeyCreateResponseDto, APIKeyResponseDto } from 'src/domain/api-key/api-key.dto'; import { AuthDto } from 'src/domain/auth/auth.dto'; -import { IKeyRepository } from 'src/domain/repositories/api-key.repository'; -import { ICryptoRepository } from 'src/domain/repositories/crypto.repository'; import { APIKeyEntity } from 'src/infra/entities/api-key.entity'; +import { IKeyRepository } from 'src/interfaces/api-key.repository'; +import { ICryptoRepository } from 'src/interfaces/crypto.repository'; @Injectable() export class APIKeyService { diff --git a/server/src/domain/asset/asset.service.spec.ts b/server/src/domain/asset/asset.service.spec.ts index fdf89739f2..9b59f40923 100644 --- a/server/src/domain/asset/asset.service.spec.ts +++ b/server/src/domain/asset/asset.service.spec.ts @@ -5,15 +5,15 @@ import { AssetJobName } from 'src/domain/asset/dto/asset-ids.dto'; import { AssetStatsResponseDto } from 'src/domain/asset/dto/asset-statistics.dto'; import { mapAsset } from 'src/domain/asset/response-dto/asset-response.dto'; import { JobName } from 'src/domain/job/job.constants'; -import { IAssetStackRepository } from 'src/domain/repositories/asset-stack.repository'; -import { AssetStats, IAssetRepository, TimeBucketSize } from 'src/domain/repositories/asset.repository'; -import { ClientEvent, ICommunicationRepository } from 'src/domain/repositories/communication.repository'; -import { IJobRepository, JobItem } from 'src/domain/repositories/job.repository'; -import { IPartnerRepository } from 'src/domain/repositories/partner.repository'; -import { IStorageRepository } from 'src/domain/repositories/storage.repository'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; -import { IUserRepository } from 'src/domain/repositories/user.repository'; import { AssetEntity, AssetType } from 'src/infra/entities/asset.entity'; +import { IAssetStackRepository } from 'src/interfaces/asset-stack.repository'; +import { AssetStats, IAssetRepository, TimeBucketSize } from 'src/interfaces/asset.repository'; +import { ClientEvent, ICommunicationRepository } from 'src/interfaces/communication.repository'; +import { IJobRepository, JobItem } from 'src/interfaces/job.repository'; +import { IPartnerRepository } from 'src/interfaces/partner.repository'; +import { IStorageRepository } from 'src/interfaces/storage.repository'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; +import { IUserRepository } from 'src/interfaces/user.repository'; import { assetStackStub, assetStub } from 'test/fixtures/asset.stub'; import { authStub } from 'test/fixtures/auth.stub'; import { faceStub } from 'test/fixtures/face.stub'; diff --git a/server/src/domain/asset/asset.service.ts b/server/src/domain/asset/asset.service.ts index d6d2d76fbd..2594233c45 100644 --- a/server/src/domain/asset/asset.service.ts +++ b/server/src/domain/asset/asset.service.ts @@ -25,18 +25,18 @@ import { AuthDto } from 'src/domain/auth/auth.dto'; import { mimeTypes } from 'src/domain/domain.constant'; import { JOBS_ASSET_PAGINATION_SIZE, JobName } from 'src/domain/job/job.constants'; import { IAssetDeletionJob, ISidecarWriteJob } from 'src/domain/job/job.interface'; -import { IAccessRepository } from 'src/domain/repositories/access.repository'; -import { IAssetStackRepository } from 'src/domain/repositories/asset-stack.repository'; -import { IAssetRepository, TimeBucketOptions } from 'src/domain/repositories/asset.repository'; -import { ClientEvent, ICommunicationRepository } from 'src/domain/repositories/communication.repository'; -import { IJobRepository, JobItem, JobStatus } from 'src/domain/repositories/job.repository'; -import { IPartnerRepository } from 'src/domain/repositories/partner.repository'; -import { IStorageRepository } from 'src/domain/repositories/storage.repository'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; -import { IUserRepository } from 'src/domain/repositories/user.repository'; import { AssetEntity } from 'src/infra/entities/asset.entity'; import { LibraryType } from 'src/infra/entities/library.entity'; import { ImmichLogger } from 'src/infra/logger'; +import { IAccessRepository } from 'src/interfaces/access.repository'; +import { IAssetStackRepository } from 'src/interfaces/asset-stack.repository'; +import { IAssetRepository, TimeBucketOptions } from 'src/interfaces/asset.repository'; +import { ClientEvent, ICommunicationRepository } from 'src/interfaces/communication.repository'; +import { IJobRepository, JobItem, JobStatus } from 'src/interfaces/job.repository'; +import { IPartnerRepository } from 'src/interfaces/partner.repository'; +import { IStorageRepository } from 'src/interfaces/storage.repository'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; +import { IUserRepository } from 'src/interfaces/user.repository'; import { usePagination } from 'src/utils'; export enum UploadFieldName { diff --git a/server/src/domain/asset/dto/asset-statistics.dto.ts b/server/src/domain/asset/dto/asset-statistics.dto.ts index 7694955c27..45bae1f5dd 100644 --- a/server/src/domain/asset/dto/asset-statistics.dto.ts +++ b/server/src/domain/asset/dto/asset-statistics.dto.ts @@ -1,6 +1,6 @@ import { ApiProperty } from '@nestjs/swagger'; -import { AssetStats } from 'src/domain/repositories/asset.repository'; import { AssetType } from 'src/infra/entities/asset.entity'; +import { AssetStats } from 'src/interfaces/asset.repository'; import { ValidateBoolean } from 'src/validation'; export class AssetStatsDto { diff --git a/server/src/domain/asset/dto/time-bucket.dto.ts b/server/src/domain/asset/dto/time-bucket.dto.ts index c9e104256a..7b2ee24c09 100644 --- a/server/src/domain/asset/dto/time-bucket.dto.ts +++ b/server/src/domain/asset/dto/time-bucket.dto.ts @@ -1,7 +1,7 @@ import { ApiProperty } from '@nestjs/swagger'; import { IsEnum, IsNotEmpty, IsString } from 'class-validator'; -import { TimeBucketSize } from 'src/domain/repositories/asset.repository'; import { AssetOrder } from 'src/infra/entities/album.entity'; +import { TimeBucketSize } from 'src/interfaces/asset.repository'; import { Optional, ValidateBoolean, ValidateUUID } from 'src/validation'; export class TimeBucketDto { diff --git a/server/src/domain/audit/audit.service.spec.ts b/server/src/domain/audit/audit.service.spec.ts index b8a4d2b2bd..aa110dfb2a 100644 --- a/server/src/domain/audit/audit.service.spec.ts +++ b/server/src/domain/audit/audit.service.spec.ts @@ -1,12 +1,12 @@ import { AuditService } from 'src/domain/audit/audit.service'; -import { IAssetRepository } from 'src/domain/repositories/asset.repository'; -import { IAuditRepository } from 'src/domain/repositories/audit.repository'; -import { ICryptoRepository } from 'src/domain/repositories/crypto.repository'; -import { JobStatus } from 'src/domain/repositories/job.repository'; -import { IPersonRepository } from 'src/domain/repositories/person.repository'; -import { IStorageRepository } from 'src/domain/repositories/storage.repository'; -import { IUserRepository } from 'src/domain/repositories/user.repository'; import { DatabaseAction, EntityType } from 'src/infra/entities/audit.entity'; +import { IAssetRepository } from 'src/interfaces/asset.repository'; +import { IAuditRepository } from 'src/interfaces/audit.repository'; +import { ICryptoRepository } from 'src/interfaces/crypto.repository'; +import { JobStatus } from 'src/interfaces/job.repository'; +import { IPersonRepository } from 'src/interfaces/person.repository'; +import { IStorageRepository } from 'src/interfaces/storage.repository'; +import { IUserRepository } from 'src/interfaces/user.repository'; import { auditStub } from 'test/fixtures/audit.stub'; import { authStub } from 'test/fixtures/auth.stub'; import { IAccessRepositoryMock, newAccessRepositoryMock } from 'test/repositories/access.repository.mock'; diff --git a/server/src/domain/audit/audit.service.ts b/server/src/domain/audit/audit.service.ts index d375aa082e..cf8b7f3030 100644 --- a/server/src/domain/audit/audit.service.ts +++ b/server/src/domain/audit/audit.service.ts @@ -14,17 +14,17 @@ import { import { AuthDto } from 'src/domain/auth/auth.dto'; import { AUDIT_LOG_MAX_DURATION } from 'src/domain/domain.constant'; import { JOBS_ASSET_PAGINATION_SIZE } from 'src/domain/job/job.constants'; -import { IAccessRepository } from 'src/domain/repositories/access.repository'; -import { IAssetRepository } from 'src/domain/repositories/asset.repository'; -import { IAuditRepository } from 'src/domain/repositories/audit.repository'; -import { ICryptoRepository } from 'src/domain/repositories/crypto.repository'; -import { JobStatus } from 'src/domain/repositories/job.repository'; -import { IPersonRepository } from 'src/domain/repositories/person.repository'; -import { IStorageRepository } from 'src/domain/repositories/storage.repository'; -import { IUserRepository } from 'src/domain/repositories/user.repository'; import { DatabaseAction } from 'src/infra/entities/audit.entity'; import { AssetPathType, PersonPathType, UserPathType } from 'src/infra/entities/move.entity'; import { ImmichLogger } from 'src/infra/logger'; +import { IAccessRepository } from 'src/interfaces/access.repository'; +import { IAssetRepository } from 'src/interfaces/asset.repository'; +import { IAuditRepository } from 'src/interfaces/audit.repository'; +import { ICryptoRepository } from 'src/interfaces/crypto.repository'; +import { JobStatus } from 'src/interfaces/job.repository'; +import { IPersonRepository } from 'src/interfaces/person.repository'; +import { IStorageRepository } from 'src/interfaces/storage.repository'; +import { IUserRepository } from 'src/interfaces/user.repository'; import { usePagination } from 'src/utils'; @Injectable() diff --git a/server/src/domain/auth/auth.service.spec.ts b/server/src/domain/auth/auth.service.spec.ts index 37941aa44c..2cbc3cb6e0 100644 --- a/server/src/domain/auth/auth.service.spec.ts +++ b/server/src/domain/auth/auth.service.spec.ts @@ -5,14 +5,14 @@ import { Socket } from 'socket.io'; import { AuthType } from 'src/domain/auth/auth.constant'; import { AuthDto, SignUpDto } from 'src/domain/auth/auth.dto'; import { AuthService } from 'src/domain/auth/auth.service'; -import { IKeyRepository } from 'src/domain/repositories/api-key.repository'; -import { ICryptoRepository } from 'src/domain/repositories/crypto.repository'; -import { ILibraryRepository } from 'src/domain/repositories/library.repository'; -import { ISharedLinkRepository } from 'src/domain/repositories/shared-link.repository'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; -import { IUserTokenRepository } from 'src/domain/repositories/user-token.repository'; -import { IUserRepository } from 'src/domain/repositories/user.repository'; import { UserEntity } from 'src/infra/entities/user.entity'; +import { IKeyRepository } from 'src/interfaces/api-key.repository'; +import { ICryptoRepository } from 'src/interfaces/crypto.repository'; +import { ILibraryRepository } from 'src/interfaces/library.repository'; +import { ISharedLinkRepository } from 'src/interfaces/shared-link.repository'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; +import { IUserTokenRepository } from 'src/interfaces/user-token.repository'; +import { IUserRepository } from 'src/interfaces/user.repository'; import { keyStub } from 'test/fixtures/api-key.stub'; import { authStub, loginResponseStub } from 'test/fixtures/auth.stub'; import { sharedLinkStub } from 'test/fixtures/shared-link.stub'; diff --git a/server/src/domain/auth/auth.service.ts b/server/src/domain/auth/auth.service.ts index bad5780139..0f2709307d 100644 --- a/server/src/domain/auth/auth.service.ts +++ b/server/src/domain/auth/auth.service.ts @@ -36,18 +36,18 @@ import { mapLoginResponse, mapUserToken, } from 'src/domain/auth/auth.dto'; -import { IAccessRepository } from 'src/domain/repositories/access.repository'; -import { IKeyRepository } from 'src/domain/repositories/api-key.repository'; -import { ICryptoRepository } from 'src/domain/repositories/crypto.repository'; -import { ILibraryRepository } from 'src/domain/repositories/library.repository'; -import { ISharedLinkRepository } from 'src/domain/repositories/shared-link.repository'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; -import { IUserTokenRepository } from 'src/domain/repositories/user-token.repository'; -import { IUserRepository } from 'src/domain/repositories/user.repository'; import { UserResponseDto, mapUser } from 'src/domain/user/response-dto/user-response.dto'; import { SystemConfig } from 'src/infra/entities/system-config.entity'; import { UserEntity } from 'src/infra/entities/user.entity'; import { ImmichLogger } from 'src/infra/logger'; +import { IAccessRepository } from 'src/interfaces/access.repository'; +import { IKeyRepository } from 'src/interfaces/api-key.repository'; +import { ICryptoRepository } from 'src/interfaces/crypto.repository'; +import { ILibraryRepository } from 'src/interfaces/library.repository'; +import { ISharedLinkRepository } from 'src/interfaces/shared-link.repository'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; +import { IUserTokenRepository } from 'src/interfaces/user-token.repository'; +import { IUserRepository } from 'src/interfaces/user.repository'; import { HumanReadableSize } from 'src/utils'; export interface LoginDetails { diff --git a/server/src/domain/database/database.service.spec.ts b/server/src/domain/database/database.service.spec.ts index 25ebe61afb..191c0221b3 100644 --- a/server/src/domain/database/database.service.spec.ts +++ b/server/src/domain/database/database.service.spec.ts @@ -1,7 +1,7 @@ import { DatabaseService } from 'src/domain/database/database.service'; import { Version, VersionType } from 'src/domain/domain.constant'; -import { DatabaseExtension, IDatabaseRepository, VectorIndex } from 'src/domain/repositories/database.repository'; import { ImmichLogger } from 'src/infra/logger'; +import { DatabaseExtension, IDatabaseRepository, VectorIndex } from 'src/interfaces/database.repository'; import { newDatabaseRepositoryMock } from 'test/repositories/database.repository.mock'; describe(DatabaseService.name, () => { diff --git a/server/src/domain/database/database.service.ts b/server/src/domain/database/database.service.ts index 6e6ef98aa6..7bb16a4e1a 100644 --- a/server/src/domain/database/database.service.ts +++ b/server/src/domain/database/database.service.ts @@ -1,5 +1,6 @@ import { Inject, Injectable } from '@nestjs/common'; import { Version, VersionType } from 'src/domain/domain.constant'; +import { ImmichLogger } from 'src/infra/logger'; import { DatabaseExtension, DatabaseLock, @@ -7,8 +8,7 @@ import { VectorExtension, VectorIndex, extName, -} from 'src/domain/repositories/database.repository'; -import { ImmichLogger } from 'src/infra/logger'; +} from 'src/interfaces/database.repository'; @Injectable() export class DatabaseService { diff --git a/server/src/domain/download/download.service.spec.ts b/server/src/domain/download/download.service.spec.ts index 7c3ecbb026..6e1eafbecd 100644 --- a/server/src/domain/download/download.service.spec.ts +++ b/server/src/domain/download/download.service.spec.ts @@ -2,8 +2,8 @@ import { BadRequestException } from '@nestjs/common'; import { when } from 'jest-when'; import { DownloadResponseDto } from 'src/domain/download/download.dto'; import { DownloadService } from 'src/domain/download/download.service'; -import { IAssetRepository } from 'src/domain/repositories/asset.repository'; -import { IStorageRepository } from 'src/domain/repositories/storage.repository'; +import { IAssetRepository } from 'src/interfaces/asset.repository'; +import { IStorageRepository } from 'src/interfaces/storage.repository'; import { CacheControl, ImmichFileResponse } from 'src/utils'; import { assetStub } from 'test/fixtures/asset.stub'; import { authStub } from 'test/fixtures/auth.stub'; diff --git a/server/src/domain/download/download.service.ts b/server/src/domain/download/download.service.ts index 7a0fc2ca61..5c790548d0 100644 --- a/server/src/domain/download/download.service.ts +++ b/server/src/domain/download/download.service.ts @@ -5,10 +5,10 @@ import { AssetIdsDto } from 'src/domain/asset/dto/asset-ids.dto'; import { AuthDto } from 'src/domain/auth/auth.dto'; import { mimeTypes } from 'src/domain/domain.constant'; import { DownloadArchiveInfo, DownloadInfoDto, DownloadResponseDto } from 'src/domain/download/download.dto'; -import { IAccessRepository } from 'src/domain/repositories/access.repository'; -import { IAssetRepository } from 'src/domain/repositories/asset.repository'; -import { IStorageRepository, ImmichReadStream } from 'src/domain/repositories/storage.repository'; import { AssetEntity } from 'src/infra/entities/asset.entity'; +import { IAccessRepository } from 'src/interfaces/access.repository'; +import { IAssetRepository } from 'src/interfaces/asset.repository'; +import { IStorageRepository, ImmichReadStream } from 'src/interfaces/storage.repository'; import { CacheControl, HumanReadableSize, ImmichFileResponse, usePagination } from 'src/utils'; @Injectable() diff --git a/server/src/domain/job/job.service.spec.ts b/server/src/domain/job/job.service.spec.ts index 2dee51cd66..1b46ec9362 100644 --- a/server/src/domain/job/job.service.spec.ts +++ b/server/src/domain/job/job.service.spec.ts @@ -2,12 +2,12 @@ import { BadRequestException } from '@nestjs/common'; import { FeatureFlag, SystemConfigCore } from 'src/cores/system-config.core'; import { JobCommand, JobName, QueueName } from 'src/domain/job/job.constants'; import { JobService } from 'src/domain/job/job.service'; -import { IAssetRepository } from 'src/domain/repositories/asset.repository'; -import { ICommunicationRepository } from 'src/domain/repositories/communication.repository'; -import { IJobRepository, JobHandler, JobItem, JobStatus } from 'src/domain/repositories/job.repository'; -import { IPersonRepository } from 'src/domain/repositories/person.repository'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; import { SystemConfig, SystemConfigKey } from 'src/infra/entities/system-config.entity'; +import { IAssetRepository } from 'src/interfaces/asset.repository'; +import { ICommunicationRepository } from 'src/interfaces/communication.repository'; +import { IJobRepository, JobHandler, JobItem, JobStatus } from 'src/interfaces/job.repository'; +import { IPersonRepository } from 'src/interfaces/person.repository'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; import { assetStub } from 'test/fixtures/asset.stub'; import { newAssetRepositoryMock } from 'test/repositories/asset.repository.mock'; import { newCommunicationRepositoryMock } from 'test/repositories/communication.repository.mock'; diff --git a/server/src/domain/job/job.service.ts b/server/src/domain/job/job.service.ts index b50d26de41..5676036562 100644 --- a/server/src/domain/job/job.service.ts +++ b/server/src/domain/job/job.service.ts @@ -3,13 +3,13 @@ import { FeatureFlag, SystemConfigCore } from 'src/cores/system-config.core'; import { mapAsset } from 'src/domain/asset/response-dto/asset-response.dto'; import { ConcurrentQueueName, JobCommand, JobName, QueueName } from 'src/domain/job/job.constants'; import { AllJobStatusResponseDto, JobCommandDto, JobStatusDto } from 'src/domain/job/job.dto'; -import { IAssetRepository } from 'src/domain/repositories/asset.repository'; -import { ClientEvent, ICommunicationRepository } from 'src/domain/repositories/communication.repository'; -import { IJobRepository, JobHandler, JobItem, JobStatus, QueueCleanType } from 'src/domain/repositories/job.repository'; -import { IPersonRepository } from 'src/domain/repositories/person.repository'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; import { AssetType } from 'src/infra/entities/asset.entity'; import { ImmichLogger } from 'src/infra/logger'; +import { IAssetRepository } from 'src/interfaces/asset.repository'; +import { ClientEvent, ICommunicationRepository } from 'src/interfaces/communication.repository'; +import { IJobRepository, JobHandler, JobItem, JobStatus, QueueCleanType } from 'src/interfaces/job.repository'; +import { IPersonRepository } from 'src/interfaces/person.repository'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; @Injectable() export class JobService { diff --git a/server/src/domain/library/library.service.spec.ts b/server/src/domain/library/library.service.spec.ts index c1f2cc38c9..00592dc1eb 100644 --- a/server/src/domain/library/library.service.spec.ts +++ b/server/src/domain/library/library.service.spec.ts @@ -7,17 +7,17 @@ import { JobName } from 'src/domain/job/job.constants'; import { ILibraryFileJob, ILibraryRefreshJob } from 'src/domain/job/job.interface'; import { mapLibrary } from 'src/domain/library/library.dto'; import { LibraryService } from 'src/domain/library/library.service'; -import { IAssetRepository } from 'src/domain/repositories/asset.repository'; -import { ICryptoRepository } from 'src/domain/repositories/crypto.repository'; -import { IDatabaseRepository } from 'src/domain/repositories/database.repository'; -import { IJobRepository, JobStatus } from 'src/domain/repositories/job.repository'; -import { ILibraryRepository } from 'src/domain/repositories/library.repository'; -import { IStorageRepository, StorageEventType } from 'src/domain/repositories/storage.repository'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; import { AssetType } from 'src/infra/entities/asset.entity'; import { LibraryType } from 'src/infra/entities/library.entity'; import { SystemConfig, SystemConfigKey } from 'src/infra/entities/system-config.entity'; import { UserEntity } from 'src/infra/entities/user.entity'; +import { IAssetRepository } from 'src/interfaces/asset.repository'; +import { ICryptoRepository } from 'src/interfaces/crypto.repository'; +import { IDatabaseRepository } from 'src/interfaces/database.repository'; +import { IJobRepository, JobStatus } from 'src/interfaces/job.repository'; +import { ILibraryRepository } from 'src/interfaces/library.repository'; +import { IStorageRepository, StorageEventType } from 'src/interfaces/storage.repository'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; import { assetStub } from 'test/fixtures/asset.stub'; import { authStub } from 'test/fixtures/auth.stub'; import { libraryStub } from 'test/fixtures/library.stub'; diff --git a/server/src/domain/library/library.service.ts b/server/src/domain/library/library.service.ts index 30b1d19757..b859d0046c 100644 --- a/server/src/domain/library/library.service.ts +++ b/server/src/domain/library/library.service.ts @@ -23,17 +23,17 @@ import { ValidateLibraryResponseDto, mapLibrary, } from 'src/domain/library/library.dto'; -import { IAssetRepository, WithProperty } from 'src/domain/repositories/asset.repository'; -import { InternalEvent, InternalEventMap } from 'src/domain/repositories/communication.repository'; -import { ICryptoRepository } from 'src/domain/repositories/crypto.repository'; -import { DatabaseLock, IDatabaseRepository } from 'src/domain/repositories/database.repository'; -import { IJobRepository, JobStatus } from 'src/domain/repositories/job.repository'; -import { ILibraryRepository } from 'src/domain/repositories/library.repository'; -import { IStorageRepository, StorageEventType } from 'src/domain/repositories/storage.repository'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; import { AssetType } from 'src/infra/entities/asset.entity'; import { LibraryEntity, LibraryType } from 'src/infra/entities/library.entity'; import { ImmichLogger } from 'src/infra/logger'; +import { IAssetRepository, WithProperty } from 'src/interfaces/asset.repository'; +import { InternalEvent, InternalEventMap } from 'src/interfaces/communication.repository'; +import { ICryptoRepository } from 'src/interfaces/crypto.repository'; +import { DatabaseLock, IDatabaseRepository } from 'src/interfaces/database.repository'; +import { IJobRepository, JobStatus } from 'src/interfaces/job.repository'; +import { ILibraryRepository } from 'src/interfaces/library.repository'; +import { IStorageRepository, StorageEventType } from 'src/interfaces/storage.repository'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; import { handlePromiseError, usePagination } from 'src/utils'; import { validateCronExpression } from 'src/validation'; diff --git a/server/src/domain/media/media.service.spec.ts b/server/src/domain/media/media.service.spec.ts index 9a5727ef21..ad3ed3d220 100644 --- a/server/src/domain/media/media.service.spec.ts +++ b/server/src/domain/media/media.service.spec.ts @@ -1,14 +1,6 @@ import { Stats } from 'node:fs'; import { JobName } from 'src/domain/job/job.constants'; import { MediaService } from 'src/domain/media/media.service'; -import { IAssetRepository, WithoutProperty } from 'src/domain/repositories/asset.repository'; -import { ICryptoRepository } from 'src/domain/repositories/crypto.repository'; -import { IJobRepository, JobStatus } from 'src/domain/repositories/job.repository'; -import { IMediaRepository } from 'src/domain/repositories/media.repository'; -import { IMoveRepository } from 'src/domain/repositories/move.repository'; -import { IPersonRepository } from 'src/domain/repositories/person.repository'; -import { IStorageRepository } from 'src/domain/repositories/storage.repository'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; import { AssetType } from 'src/infra/entities/asset.entity'; import { ExifEntity } from 'src/infra/entities/exif.entity'; import { @@ -20,6 +12,14 @@ import { TranscodePolicy, VideoCodec, } from 'src/infra/entities/system-config.entity'; +import { IAssetRepository, WithoutProperty } from 'src/interfaces/asset.repository'; +import { ICryptoRepository } from 'src/interfaces/crypto.repository'; +import { IJobRepository, JobStatus } from 'src/interfaces/job.repository'; +import { IMediaRepository } from 'src/interfaces/media.repository'; +import { IMoveRepository } from 'src/interfaces/move.repository'; +import { IPersonRepository } from 'src/interfaces/person.repository'; +import { IStorageRepository } from 'src/interfaces/storage.repository'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; import { assetStub } from 'test/fixtures/asset.stub'; import { faceStub } from 'test/fixtures/face.stub'; import { probeStub } from 'test/fixtures/media.stub'; diff --git a/server/src/domain/media/media.service.ts b/server/src/domain/media/media.service.ts index 8678203d71..6807e962ad 100644 --- a/server/src/domain/media/media.service.ts +++ b/server/src/domain/media/media.service.ts @@ -13,19 +13,6 @@ import { VAAPIConfig, VP9Config, } from 'src/domain/media/media.util'; -import { IAssetRepository, WithoutProperty } from 'src/domain/repositories/asset.repository'; -import { ICryptoRepository } from 'src/domain/repositories/crypto.repository'; -import { IJobRepository, JobItem, JobStatus } from 'src/domain/repositories/job.repository'; -import { - AudioStreamInfo, - IMediaRepository, - VideoCodecHWConfig, - VideoStreamInfo, -} from 'src/domain/repositories/media.repository'; -import { IMoveRepository } from 'src/domain/repositories/move.repository'; -import { IPersonRepository } from 'src/domain/repositories/person.repository'; -import { IStorageRepository } from 'src/domain/repositories/storage.repository'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; import { SystemConfigFFmpegDto } from 'src/domain/system-config/dto/system-config-ffmpeg.dto'; import { AssetEntity, AssetType } from 'src/infra/entities/asset.entity'; import { AssetPathType } from 'src/infra/entities/move.entity'; @@ -38,6 +25,19 @@ import { VideoCodec, } from 'src/infra/entities/system-config.entity'; import { ImmichLogger } from 'src/infra/logger'; +import { IAssetRepository, WithoutProperty } from 'src/interfaces/asset.repository'; +import { ICryptoRepository } from 'src/interfaces/crypto.repository'; +import { IJobRepository, JobItem, JobStatus } from 'src/interfaces/job.repository'; +import { + AudioStreamInfo, + IMediaRepository, + VideoCodecHWConfig, + VideoStreamInfo, +} from 'src/interfaces/media.repository'; +import { IMoveRepository } from 'src/interfaces/move.repository'; +import { IPersonRepository } from 'src/interfaces/person.repository'; +import { IStorageRepository } from 'src/interfaces/storage.repository'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; import { usePagination } from 'src/utils'; @Injectable() diff --git a/server/src/domain/media/media.util.ts b/server/src/domain/media/media.util.ts index 224e55a217..bc9fa4887e 100644 --- a/server/src/domain/media/media.util.ts +++ b/server/src/domain/media/media.util.ts @@ -1,11 +1,3 @@ -import { - AudioStreamInfo, - BitrateDistribution, - TranscodeOptions, - VideoCodecHWConfig, - VideoCodecSWConfig, - VideoStreamInfo, -} from 'src/domain/repositories/media.repository'; import { SystemConfigFFmpegDto } from 'src/domain/system-config/dto/system-config-ffmpeg.dto'; import { CQMode, @@ -14,6 +6,14 @@ import { TranscodeTarget, VideoCodec, } from 'src/infra/entities/system-config.entity'; +import { + AudioStreamInfo, + BitrateDistribution, + TranscodeOptions, + VideoCodecHWConfig, + VideoCodecSWConfig, + VideoStreamInfo, +} from 'src/interfaces/media.repository'; class BaseConfig implements VideoCodecSWConfig { presets = ['veryslow', 'slower', 'slow', 'medium', 'fast', 'faster', 'veryfast', 'superfast', 'ultrafast']; diff --git a/server/src/domain/metadata/metadata.service.spec.ts b/server/src/domain/metadata/metadata.service.spec.ts index e23da47baa..f8483d6ef8 100644 --- a/server/src/domain/metadata/metadata.service.spec.ts +++ b/server/src/domain/metadata/metadata.service.spec.ts @@ -5,21 +5,21 @@ import { Stats } from 'node:fs'; import { constants } from 'node:fs/promises'; import { JobName } from 'src/domain/job/job.constants'; import { MetadataService, Orientation } from 'src/domain/metadata/metadata.service'; -import { IAlbumRepository } from 'src/domain/repositories/album.repository'; -import { IAssetRepository, WithoutProperty } from 'src/domain/repositories/asset.repository'; -import { ClientEvent, ICommunicationRepository } from 'src/domain/repositories/communication.repository'; -import { ICryptoRepository } from 'src/domain/repositories/crypto.repository'; -import { IDatabaseRepository } from 'src/domain/repositories/database.repository'; -import { IJobRepository, JobStatus } from 'src/domain/repositories/job.repository'; -import { IMediaRepository } from 'src/domain/repositories/media.repository'; -import { IMetadataRepository, ImmichTags } from 'src/domain/repositories/metadata.repository'; -import { IMoveRepository } from 'src/domain/repositories/move.repository'; -import { IPersonRepository } from 'src/domain/repositories/person.repository'; -import { IStorageRepository } from 'src/domain/repositories/storage.repository'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; import { AssetType } from 'src/infra/entities/asset.entity'; import { ExifEntity } from 'src/infra/entities/exif.entity'; import { SystemConfigKey } from 'src/infra/entities/system-config.entity'; +import { IAlbumRepository } from 'src/interfaces/album.repository'; +import { IAssetRepository, WithoutProperty } from 'src/interfaces/asset.repository'; +import { ClientEvent, ICommunicationRepository } from 'src/interfaces/communication.repository'; +import { ICryptoRepository } from 'src/interfaces/crypto.repository'; +import { IDatabaseRepository } from 'src/interfaces/database.repository'; +import { IJobRepository, JobStatus } from 'src/interfaces/job.repository'; +import { IMediaRepository } from 'src/interfaces/media.repository'; +import { IMetadataRepository, ImmichTags } from 'src/interfaces/metadata.repository'; +import { IMoveRepository } from 'src/interfaces/move.repository'; +import { IPersonRepository } from 'src/interfaces/person.repository'; +import { IStorageRepository } from 'src/interfaces/storage.repository'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; import { assetStub } from 'test/fixtures/asset.stub'; import { fileStub } from 'test/fixtures/file.stub'; import { probeStub } from 'test/fixtures/media.stub'; diff --git a/server/src/domain/metadata/metadata.service.ts b/server/src/domain/metadata/metadata.service.ts index 68b813eae6..d7f98e245b 100644 --- a/server/src/domain/metadata/metadata.service.ts +++ b/server/src/domain/metadata/metadata.service.ts @@ -10,21 +10,21 @@ import { StorageCore } from 'src/cores/storage.core'; import { FeatureFlag, SystemConfigCore } from 'src/cores/system-config.core'; import { JOBS_ASSET_PAGINATION_SIZE, JobName, QueueName } from 'src/domain/job/job.constants'; import { IBaseJob, IEntityJob, ISidecarWriteJob } from 'src/domain/job/job.interface'; -import { IAlbumRepository } from 'src/domain/repositories/album.repository'; -import { IAssetRepository, WithoutProperty } from 'src/domain/repositories/asset.repository'; -import { ClientEvent, ICommunicationRepository } from 'src/domain/repositories/communication.repository'; -import { ICryptoRepository } from 'src/domain/repositories/crypto.repository'; -import { DatabaseLock, IDatabaseRepository } from 'src/domain/repositories/database.repository'; -import { IJobRepository, JobStatus } from 'src/domain/repositories/job.repository'; -import { IMediaRepository } from 'src/domain/repositories/media.repository'; -import { IMetadataRepository, ImmichTags } from 'src/domain/repositories/metadata.repository'; -import { IMoveRepository } from 'src/domain/repositories/move.repository'; -import { IPersonRepository } from 'src/domain/repositories/person.repository'; -import { IStorageRepository } from 'src/domain/repositories/storage.repository'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; import { AssetEntity, AssetType } from 'src/infra/entities/asset.entity'; import { ExifEntity } from 'src/infra/entities/exif.entity'; import { ImmichLogger } from 'src/infra/logger'; +import { IAlbumRepository } from 'src/interfaces/album.repository'; +import { IAssetRepository, WithoutProperty } from 'src/interfaces/asset.repository'; +import { ClientEvent, ICommunicationRepository } from 'src/interfaces/communication.repository'; +import { ICryptoRepository } from 'src/interfaces/crypto.repository'; +import { DatabaseLock, IDatabaseRepository } from 'src/interfaces/database.repository'; +import { IJobRepository, JobStatus } from 'src/interfaces/job.repository'; +import { IMediaRepository } from 'src/interfaces/media.repository'; +import { IMetadataRepository, ImmichTags } from 'src/interfaces/metadata.repository'; +import { IMoveRepository } from 'src/interfaces/move.repository'; +import { IPersonRepository } from 'src/interfaces/person.repository'; +import { IStorageRepository } from 'src/interfaces/storage.repository'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; import { handlePromiseError, usePagination } from 'src/utils'; /** look for a date from these tags (in order) */ diff --git a/server/src/domain/partner/partner.service.spec.ts b/server/src/domain/partner/partner.service.spec.ts index b1b7fb097e..487818b3d8 100644 --- a/server/src/domain/partner/partner.service.spec.ts +++ b/server/src/domain/partner/partner.service.spec.ts @@ -1,9 +1,9 @@ import { BadRequestException } from '@nestjs/common'; import { PartnerResponseDto } from 'src/domain/partner/partner.dto'; import { PartnerService } from 'src/domain/partner/partner.service'; -import { IAccessRepository } from 'src/domain/repositories/access.repository'; -import { IPartnerRepository, PartnerDirection } from 'src/domain/repositories/partner.repository'; import { UserAvatarColor } from 'src/infra/entities/user.entity'; +import { IAccessRepository } from 'src/interfaces/access.repository'; +import { IPartnerRepository, PartnerDirection } from 'src/interfaces/partner.repository'; import { authStub } from 'test/fixtures/auth.stub'; import { partnerStub } from 'test/fixtures/partner.stub'; import { newPartnerRepositoryMock } from 'test/repositories/partner.repository.mock'; diff --git a/server/src/domain/partner/partner.service.ts b/server/src/domain/partner/partner.service.ts index 9bf305b2b4..2528b44be2 100644 --- a/server/src/domain/partner/partner.service.ts +++ b/server/src/domain/partner/partner.service.ts @@ -2,10 +2,10 @@ import { BadRequestException, Inject, Injectable } from '@nestjs/common'; import { AccessCore, Permission } from 'src/cores/access.core'; import { AuthDto } from 'src/domain/auth/auth.dto'; import { PartnerResponseDto, UpdatePartnerDto } from 'src/domain/partner/partner.dto'; -import { IAccessRepository } from 'src/domain/repositories/access.repository'; -import { IPartnerRepository, PartnerDirection, PartnerIds } from 'src/domain/repositories/partner.repository'; import { mapUser } from 'src/domain/user/response-dto/user-response.dto'; import { PartnerEntity } from 'src/infra/entities/partner.entity'; +import { IAccessRepository } from 'src/interfaces/access.repository'; +import { IPartnerRepository, PartnerDirection, PartnerIds } from 'src/interfaces/partner.repository'; @Injectable() export class PartnerService { diff --git a/server/src/domain/person/person.service.spec.ts b/server/src/domain/person/person.service.spec.ts index a4b1282d32..042469d7ea 100644 --- a/server/src/domain/person/person.service.spec.ts +++ b/server/src/domain/person/person.service.spec.ts @@ -3,18 +3,18 @@ import { BulkIdErrorReason } from 'src/domain/asset/response-dto/asset-ids-respo import { JobName } from 'src/domain/job/job.constants'; import { PersonResponseDto, mapFaces, mapPerson } from 'src/domain/person/person.dto'; import { PersonService } from 'src/domain/person/person.service'; -import { IAssetRepository, WithoutProperty } from 'src/domain/repositories/asset.repository'; -import { ICryptoRepository } from 'src/domain/repositories/crypto.repository'; -import { IJobRepository, JobStatus } from 'src/domain/repositories/job.repository'; -import { IMachineLearningRepository } from 'src/domain/repositories/machine-learning.repository'; -import { IMediaRepository } from 'src/domain/repositories/media.repository'; -import { IMoveRepository } from 'src/domain/repositories/move.repository'; -import { IPersonRepository } from 'src/domain/repositories/person.repository'; -import { FaceSearchResult, ISearchRepository } from 'src/domain/repositories/search.repository'; -import { IStorageRepository } from 'src/domain/repositories/storage.repository'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; import { AssetFaceEntity } from 'src/infra/entities/asset-face.entity'; import { Colorspace, SystemConfigKey } from 'src/infra/entities/system-config.entity'; +import { IAssetRepository, WithoutProperty } from 'src/interfaces/asset.repository'; +import { ICryptoRepository } from 'src/interfaces/crypto.repository'; +import { IJobRepository, JobStatus } from 'src/interfaces/job.repository'; +import { IMachineLearningRepository } from 'src/interfaces/machine-learning.repository'; +import { IMediaRepository } from 'src/interfaces/media.repository'; +import { IMoveRepository } from 'src/interfaces/move.repository'; +import { IPersonRepository } from 'src/interfaces/person.repository'; +import { FaceSearchResult, ISearchRepository } from 'src/interfaces/search.repository'; +import { IStorageRepository } from 'src/interfaces/storage.repository'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; import { CacheControl, ImmichFileResponse } from 'src/utils'; import { assetStub } from 'test/fixtures/asset.stub'; import { authStub } from 'test/fixtures/auth.stub'; diff --git a/server/src/domain/person/person.service.ts b/server/src/domain/person/person.service.ts index 62b13452a4..9e56e4b18f 100644 --- a/server/src/domain/person/person.service.ts +++ b/server/src/domain/person/person.service.ts @@ -24,20 +24,20 @@ import { mapFaces, mapPerson, } from 'src/domain/person/person.dto'; -import { IAccessRepository } from 'src/domain/repositories/access.repository'; -import { IAssetRepository, WithoutProperty } from 'src/domain/repositories/asset.repository'; -import { ICryptoRepository } from 'src/domain/repositories/crypto.repository'; -import { IJobRepository, JobItem, JobStatus } from 'src/domain/repositories/job.repository'; -import { IMachineLearningRepository } from 'src/domain/repositories/machine-learning.repository'; -import { CropOptions, IMediaRepository } from 'src/domain/repositories/media.repository'; -import { IMoveRepository } from 'src/domain/repositories/move.repository'; -import { IPersonRepository, UpdateFacesData } from 'src/domain/repositories/person.repository'; -import { ISearchRepository } from 'src/domain/repositories/search.repository'; -import { IStorageRepository } from 'src/domain/repositories/storage.repository'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; import { PersonPathType } from 'src/infra/entities/move.entity'; import { PersonEntity } from 'src/infra/entities/person.entity'; import { ImmichLogger } from 'src/infra/logger'; +import { IAccessRepository } from 'src/interfaces/access.repository'; +import { IAssetRepository, WithoutProperty } from 'src/interfaces/asset.repository'; +import { ICryptoRepository } from 'src/interfaces/crypto.repository'; +import { IJobRepository, JobItem, JobStatus } from 'src/interfaces/job.repository'; +import { IMachineLearningRepository } from 'src/interfaces/machine-learning.repository'; +import { CropOptions, IMediaRepository } from 'src/interfaces/media.repository'; +import { IMoveRepository } from 'src/interfaces/move.repository'; +import { IPersonRepository, UpdateFacesData } from 'src/interfaces/person.repository'; +import { ISearchRepository } from 'src/interfaces/search.repository'; +import { IStorageRepository } from 'src/interfaces/storage.repository'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; import { CacheControl, ImmichFileResponse, usePagination } from 'src/utils'; import { IsNull } from 'typeorm'; diff --git a/server/src/domain/search/search.service.spec.ts b/server/src/domain/search/search.service.spec.ts index ae5e94a76e..f9313d2775 100644 --- a/server/src/domain/search/search.service.spec.ts +++ b/server/src/domain/search/search.service.spec.ts @@ -1,14 +1,14 @@ import { mapAsset } from 'src/domain/asset/response-dto/asset-response.dto'; -import { IAssetRepository } from 'src/domain/repositories/asset.repository'; -import { IMachineLearningRepository } from 'src/domain/repositories/machine-learning.repository'; -import { IMetadataRepository } from 'src/domain/repositories/metadata.repository'; -import { IPartnerRepository } from 'src/domain/repositories/partner.repository'; -import { IPersonRepository } from 'src/domain/repositories/person.repository'; -import { ISearchRepository } from 'src/domain/repositories/search.repository'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; import { SearchDto } from 'src/domain/search/dto/search.dto'; import { SearchService } from 'src/domain/search/search.service'; import { SystemConfigKey } from 'src/infra/entities/system-config.entity'; +import { IAssetRepository } from 'src/interfaces/asset.repository'; +import { IMachineLearningRepository } from 'src/interfaces/machine-learning.repository'; +import { IMetadataRepository } from 'src/interfaces/metadata.repository'; +import { IPartnerRepository } from 'src/interfaces/partner.repository'; +import { IPersonRepository } from 'src/interfaces/person.repository'; +import { ISearchRepository } from 'src/interfaces/search.repository'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; import { assetStub } from 'test/fixtures/asset.stub'; import { authStub } from 'test/fixtures/auth.stub'; import { personStub } from 'test/fixtures/person.stub'; diff --git a/server/src/domain/search/search.service.ts b/server/src/domain/search/search.service.ts index ae8738cb66..9778c6d3d9 100644 --- a/server/src/domain/search/search.service.ts +++ b/server/src/domain/search/search.service.ts @@ -3,13 +3,6 @@ import { FeatureFlag, SystemConfigCore } from 'src/cores/system-config.core'; import { AssetResponseDto, mapAsset } from 'src/domain/asset/response-dto/asset-response.dto'; import { AuthDto } from 'src/domain/auth/auth.dto'; import { PersonResponseDto } from 'src/domain/person/person.dto'; -import { IAssetRepository } from 'src/domain/repositories/asset.repository'; -import { IMachineLearningRepository } from 'src/domain/repositories/machine-learning.repository'; -import { IMetadataRepository } from 'src/domain/repositories/metadata.repository'; -import { IPartnerRepository } from 'src/domain/repositories/partner.repository'; -import { IPersonRepository } from 'src/domain/repositories/person.repository'; -import { ISearchRepository, SearchExploreItem, SearchStrategy } from 'src/domain/repositories/search.repository'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; import { SearchSuggestionRequestDto, SearchSuggestionType } from 'src/domain/search/dto/search-suggestion.dto'; import { MetadataSearchDto, @@ -23,6 +16,13 @@ import { import { SearchResponseDto } from 'src/domain/search/response-dto/search-response.dto'; import { AssetOrder } from 'src/infra/entities/album.entity'; import { AssetEntity } from 'src/infra/entities/asset.entity'; +import { IAssetRepository } from 'src/interfaces/asset.repository'; +import { IMachineLearningRepository } from 'src/interfaces/machine-learning.repository'; +import { IMetadataRepository } from 'src/interfaces/metadata.repository'; +import { IPartnerRepository } from 'src/interfaces/partner.repository'; +import { IPersonRepository } from 'src/interfaces/person.repository'; +import { ISearchRepository, SearchExploreItem, SearchStrategy } from 'src/interfaces/search.repository'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; @Injectable() export class SearchService { diff --git a/server/src/domain/server-info/server-info.service.spec.ts b/server/src/domain/server-info/server-info.service.spec.ts index 41bc8fb6f8..05f05cc8fa 100644 --- a/server/src/domain/server-info/server-info.service.spec.ts +++ b/server/src/domain/server-info/server-info.service.spec.ts @@ -1,12 +1,12 @@ import { serverVersion } from 'src/domain/domain.constant'; -import { ICommunicationRepository } from 'src/domain/repositories/communication.repository'; -import { IServerInfoRepository } from 'src/domain/repositories/server-info.repository'; -import { IStorageRepository } from 'src/domain/repositories/storage.repository'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; -import { ISystemMetadataRepository } from 'src/domain/repositories/system-metadata.repository'; -import { IUserRepository } from 'src/domain/repositories/user.repository'; import { ServerInfoService } from 'src/domain/server-info/server-info.service'; import { SystemMetadataKey } from 'src/infra/entities/system-metadata.entity'; +import { ICommunicationRepository } from 'src/interfaces/communication.repository'; +import { IServerInfoRepository } from 'src/interfaces/server-info.repository'; +import { IStorageRepository } from 'src/interfaces/storage.repository'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; +import { ISystemMetadataRepository } from 'src/interfaces/system-metadata.repository'; +import { IUserRepository } from 'src/interfaces/user.repository'; import { newCommunicationRepositoryMock } from 'test/repositories/communication.repository.mock'; import { newStorageRepositoryMock } from 'test/repositories/storage.repository.mock'; import { newSystemConfigRepositoryMock } from 'test/repositories/system-config.repository.mock'; diff --git a/server/src/domain/server-info/server-info.service.ts b/server/src/domain/server-info/server-info.service.ts index 9e72c71085..533bb42d9f 100644 --- a/server/src/domain/server-info/server-info.service.ts +++ b/server/src/domain/server-info/server-info.service.ts @@ -3,12 +3,6 @@ import { DateTime } from 'luxon'; import { StorageCore, StorageFolder } from 'src/cores/storage.core'; import { SystemConfigCore } from 'src/cores/system-config.core'; import { Version, isDev, mimeTypes, serverVersion } from 'src/domain/domain.constant'; -import { ClientEvent, ICommunicationRepository } from 'src/domain/repositories/communication.repository'; -import { IServerInfoRepository } from 'src/domain/repositories/server-info.repository'; -import { IStorageRepository } from 'src/domain/repositories/storage.repository'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; -import { ISystemMetadataRepository } from 'src/domain/repositories/system-metadata.repository'; -import { IUserRepository, UserStatsQueryResponse } from 'src/domain/repositories/user.repository'; import { ServerConfigDto, ServerFeaturesDto, @@ -20,6 +14,12 @@ import { } from 'src/domain/server-info/server-info.dto'; import { SystemMetadataKey } from 'src/infra/entities/system-metadata.entity'; import { ImmichLogger } from 'src/infra/logger'; +import { ClientEvent, ICommunicationRepository } from 'src/interfaces/communication.repository'; +import { IServerInfoRepository } from 'src/interfaces/server-info.repository'; +import { IStorageRepository } from 'src/interfaces/storage.repository'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; +import { ISystemMetadataRepository } from 'src/interfaces/system-metadata.repository'; +import { IUserRepository, UserStatsQueryResponse } from 'src/interfaces/user.repository'; import { asHumanReadable } from 'src/utils'; @Injectable() diff --git a/server/src/domain/shared-link/shared-link.service.spec.ts b/server/src/domain/shared-link/shared-link.service.spec.ts index 6e2da5a64b..3b15138f46 100644 --- a/server/src/domain/shared-link/shared-link.service.spec.ts +++ b/server/src/domain/shared-link/shared-link.service.spec.ts @@ -1,10 +1,10 @@ import { BadRequestException, ForbiddenException, UnauthorizedException } from '@nestjs/common'; import _ from 'lodash'; import { AssetIdErrorReason } from 'src/domain/asset/response-dto/asset-ids-response.dto'; -import { ICryptoRepository } from 'src/domain/repositories/crypto.repository'; -import { ISharedLinkRepository } from 'src/domain/repositories/shared-link.repository'; import { SharedLinkService } from 'src/domain/shared-link/shared-link.service'; import { SharedLinkType } from 'src/infra/entities/shared-link.entity'; +import { ICryptoRepository } from 'src/interfaces/crypto.repository'; +import { ISharedLinkRepository } from 'src/interfaces/shared-link.repository'; import { albumStub } from 'test/fixtures/album.stub'; import { assetStub } from 'test/fixtures/asset.stub'; import { authStub } from 'test/fixtures/auth.stub'; diff --git a/server/src/domain/shared-link/shared-link.service.ts b/server/src/domain/shared-link/shared-link.service.ts index a62acb6bf4..34619cc5ca 100644 --- a/server/src/domain/shared-link/shared-link.service.ts +++ b/server/src/domain/shared-link/shared-link.service.ts @@ -3,9 +3,6 @@ import { AccessCore, Permission } from 'src/cores/access.core'; import { AssetIdsDto } from 'src/domain/asset/dto/asset-ids.dto'; import { AssetIdErrorReason, AssetIdsResponseDto } from 'src/domain/asset/response-dto/asset-ids-response.dto'; import { AuthDto } from 'src/domain/auth/auth.dto'; -import { IAccessRepository } from 'src/domain/repositories/access.repository'; -import { ICryptoRepository } from 'src/domain/repositories/crypto.repository'; -import { ISharedLinkRepository } from 'src/domain/repositories/shared-link.repository'; import { SharedLinkResponseDto, mapSharedLink, @@ -14,6 +11,9 @@ import { import { SharedLinkCreateDto, SharedLinkEditDto, SharedLinkPasswordDto } from 'src/domain/shared-link/shared-link.dto'; import { AssetEntity } from 'src/infra/entities/asset.entity'; import { SharedLinkEntity, SharedLinkType } from 'src/infra/entities/shared-link.entity'; +import { IAccessRepository } from 'src/interfaces/access.repository'; +import { ICryptoRepository } from 'src/interfaces/crypto.repository'; +import { ISharedLinkRepository } from 'src/interfaces/shared-link.repository'; import { OpenGraphTags } from 'src/utils'; @Injectable() diff --git a/server/src/domain/smart-info/dto/model-config.dto.ts b/server/src/domain/smart-info/dto/model-config.dto.ts index e0977c4dae..b63ec74146 100644 --- a/server/src/domain/smart-info/dto/model-config.dto.ts +++ b/server/src/domain/smart-info/dto/model-config.dto.ts @@ -1,7 +1,7 @@ import { ApiProperty } from '@nestjs/swagger'; import { Type } from 'class-transformer'; import { IsEnum, IsNotEmpty, IsNumber, IsString, Max, Min } from 'class-validator'; -import { CLIPMode, ModelType } from 'src/domain/repositories/machine-learning.repository'; +import { CLIPMode, ModelType } from 'src/interfaces/machine-learning.repository'; import { Optional, ValidateBoolean } from 'src/validation'; export class ModelConfig { diff --git a/server/src/domain/smart-info/smart-info.service.spec.ts b/server/src/domain/smart-info/smart-info.service.spec.ts index e83e823db9..fec43eb080 100644 --- a/server/src/domain/smart-info/smart-info.service.spec.ts +++ b/server/src/domain/smart-info/smart-info.service.spec.ts @@ -1,14 +1,14 @@ import { JobName } from 'src/domain/job/job.constants'; -import { IAssetRepository, WithoutProperty } from 'src/domain/repositories/asset.repository'; -import { IDatabaseRepository } from 'src/domain/repositories/database.repository'; -import { IJobRepository } from 'src/domain/repositories/job.repository'; -import { IMachineLearningRepository } from 'src/domain/repositories/machine-learning.repository'; -import { ISearchRepository } from 'src/domain/repositories/search.repository'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; import { cleanModelName, getCLIPModelInfo } from 'src/domain/smart-info/smart-info.constant'; import { SmartInfoService } from 'src/domain/smart-info/smart-info.service'; import { AssetEntity } from 'src/infra/entities/asset.entity'; import { SystemConfigKey } from 'src/infra/entities/system-config.entity'; +import { IAssetRepository, WithoutProperty } from 'src/interfaces/asset.repository'; +import { IDatabaseRepository } from 'src/interfaces/database.repository'; +import { IJobRepository } from 'src/interfaces/job.repository'; +import { IMachineLearningRepository } from 'src/interfaces/machine-learning.repository'; +import { ISearchRepository } from 'src/interfaces/search.repository'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; import { assetStub } from 'test/fixtures/asset.stub'; import { newAssetRepositoryMock } from 'test/repositories/asset.repository.mock'; import { newDatabaseRepositoryMock } from 'test/repositories/database.repository.mock'; diff --git a/server/src/domain/smart-info/smart-info.service.ts b/server/src/domain/smart-info/smart-info.service.ts index 333c8faaf2..a7d4700086 100644 --- a/server/src/domain/smart-info/smart-info.service.ts +++ b/server/src/domain/smart-info/smart-info.service.ts @@ -2,13 +2,13 @@ import { Inject, Injectable } from '@nestjs/common'; import { SystemConfigCore } from 'src/cores/system-config.core'; import { JOBS_ASSET_PAGINATION_SIZE, JobName, QueueName } from 'src/domain/job/job.constants'; import { IBaseJob, IEntityJob } from 'src/domain/job/job.interface'; -import { IAssetRepository, WithoutProperty } from 'src/domain/repositories/asset.repository'; -import { DatabaseLock, IDatabaseRepository } from 'src/domain/repositories/database.repository'; -import { IJobRepository, JobStatus } from 'src/domain/repositories/job.repository'; -import { IMachineLearningRepository } from 'src/domain/repositories/machine-learning.repository'; -import { ISearchRepository } from 'src/domain/repositories/search.repository'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; import { ImmichLogger } from 'src/infra/logger'; +import { IAssetRepository, WithoutProperty } from 'src/interfaces/asset.repository'; +import { DatabaseLock, IDatabaseRepository } from 'src/interfaces/database.repository'; +import { IJobRepository, JobStatus } from 'src/interfaces/job.repository'; +import { IMachineLearningRepository } from 'src/interfaces/machine-learning.repository'; +import { ISearchRepository } from 'src/interfaces/search.repository'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; import { usePagination } from 'src/utils'; @Injectable() diff --git a/server/src/domain/storage-template/storage-template.service.spec.ts b/server/src/domain/storage-template/storage-template.service.spec.ts index ce378bf9b7..c73dfbdcfd 100644 --- a/server/src/domain/storage-template/storage-template.service.spec.ts +++ b/server/src/domain/storage-template/storage-template.service.spec.ts @@ -1,19 +1,19 @@ import { when } from 'jest-when'; import { Stats } from 'node:fs'; import { SystemConfigCore, defaults } from 'src/cores/system-config.core'; -import { IAlbumRepository } from 'src/domain/repositories/album.repository'; -import { IAssetRepository } from 'src/domain/repositories/asset.repository'; -import { ICryptoRepository } from 'src/domain/repositories/crypto.repository'; -import { IDatabaseRepository } from 'src/domain/repositories/database.repository'; -import { JobStatus } from 'src/domain/repositories/job.repository'; -import { IMoveRepository } from 'src/domain/repositories/move.repository'; -import { IPersonRepository } from 'src/domain/repositories/person.repository'; -import { IStorageRepository } from 'src/domain/repositories/storage.repository'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; -import { IUserRepository } from 'src/domain/repositories/user.repository'; import { StorageTemplateService } from 'src/domain/storage-template/storage-template.service'; import { AssetPathType } from 'src/infra/entities/move.entity'; import { SystemConfig, SystemConfigKey } from 'src/infra/entities/system-config.entity'; +import { IAlbumRepository } from 'src/interfaces/album.repository'; +import { IAssetRepository } from 'src/interfaces/asset.repository'; +import { ICryptoRepository } from 'src/interfaces/crypto.repository'; +import { IDatabaseRepository } from 'src/interfaces/database.repository'; +import { JobStatus } from 'src/interfaces/job.repository'; +import { IMoveRepository } from 'src/interfaces/move.repository'; +import { IPersonRepository } from 'src/interfaces/person.repository'; +import { IStorageRepository } from 'src/interfaces/storage.repository'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; +import { IUserRepository } from 'src/interfaces/user.repository'; import { assetStub } from 'test/fixtures/asset.stub'; import { userStub } from 'test/fixtures/user.stub'; import { newAlbumRepositoryMock } from 'test/repositories/album.repository.mock'; diff --git a/server/src/domain/storage-template/storage-template.service.ts b/server/src/domain/storage-template/storage-template.service.ts index b79426b1f7..480f973683 100644 --- a/server/src/domain/storage-template/storage-template.service.ts +++ b/server/src/domain/storage-template/storage-template.service.ts @@ -8,17 +8,6 @@ import { StorageCore, StorageFolder } from 'src/cores/storage.core'; import { SystemConfigCore } from 'src/cores/system-config.core'; import { JOBS_ASSET_PAGINATION_SIZE } from 'src/domain/job/job.constants'; import { IEntityJob } from 'src/domain/job/job.interface'; -import { IAlbumRepository } from 'src/domain/repositories/album.repository'; -import { IAssetRepository } from 'src/domain/repositories/asset.repository'; -import { InternalEvent, InternalEventMap } from 'src/domain/repositories/communication.repository'; -import { ICryptoRepository } from 'src/domain/repositories/crypto.repository'; -import { DatabaseLock, IDatabaseRepository } from 'src/domain/repositories/database.repository'; -import { JobStatus } from 'src/domain/repositories/job.repository'; -import { IMoveRepository } from 'src/domain/repositories/move.repository'; -import { IPersonRepository } from 'src/domain/repositories/person.repository'; -import { IStorageRepository } from 'src/domain/repositories/storage.repository'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; -import { IUserRepository } from 'src/domain/repositories/user.repository'; import { supportedDayTokens, supportedHourTokens, @@ -32,6 +21,17 @@ import { AssetEntity, AssetType } from 'src/infra/entities/asset.entity'; import { AssetPathType } from 'src/infra/entities/move.entity'; import { SystemConfig } from 'src/infra/entities/system-config.entity'; import { ImmichLogger } from 'src/infra/logger'; +import { IAlbumRepository } from 'src/interfaces/album.repository'; +import { IAssetRepository } from 'src/interfaces/asset.repository'; +import { InternalEvent, InternalEventMap } from 'src/interfaces/communication.repository'; +import { ICryptoRepository } from 'src/interfaces/crypto.repository'; +import { DatabaseLock, IDatabaseRepository } from 'src/interfaces/database.repository'; +import { JobStatus } from 'src/interfaces/job.repository'; +import { IMoveRepository } from 'src/interfaces/move.repository'; +import { IPersonRepository } from 'src/interfaces/person.repository'; +import { IStorageRepository } from 'src/interfaces/storage.repository'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; +import { IUserRepository } from 'src/interfaces/user.repository'; import { getLivePhotoMotionFilename, usePagination } from 'src/utils'; export interface MoveAssetMetadata { diff --git a/server/src/domain/storage/storage.service.spec.ts b/server/src/domain/storage/storage.service.spec.ts index 9181af76ea..2791c96300 100644 --- a/server/src/domain/storage/storage.service.spec.ts +++ b/server/src/domain/storage/storage.service.spec.ts @@ -1,5 +1,5 @@ -import { IStorageRepository } from 'src/domain/repositories/storage.repository'; import { StorageService } from 'src/domain/storage/storage.service'; +import { IStorageRepository } from 'src/interfaces/storage.repository'; import { newStorageRepositoryMock } from 'test/repositories/storage.repository.mock'; describe(StorageService.name, () => { diff --git a/server/src/domain/storage/storage.service.ts b/server/src/domain/storage/storage.service.ts index 5c75a99219..9df3dd7784 100644 --- a/server/src/domain/storage/storage.service.ts +++ b/server/src/domain/storage/storage.service.ts @@ -1,9 +1,9 @@ import { Inject, Injectable } from '@nestjs/common'; import { StorageCore, StorageFolder } from 'src/cores/storage.core'; import { IDeleteFilesJob } from 'src/domain/job/job.interface'; -import { JobStatus } from 'src/domain/repositories/job.repository'; -import { IStorageRepository } from 'src/domain/repositories/storage.repository'; import { ImmichLogger } from 'src/infra/logger'; +import { JobStatus } from 'src/interfaces/job.repository'; +import { IStorageRepository } from 'src/interfaces/storage.repository'; @Injectable() export class StorageService { diff --git a/server/src/domain/system-config/system-config.service.spec.ts b/server/src/domain/system-config/system-config.service.spec.ts index 4eb1619ee2..94db09bab2 100644 --- a/server/src/domain/system-config/system-config.service.spec.ts +++ b/server/src/domain/system-config/system-config.service.spec.ts @@ -1,9 +1,6 @@ import { BadRequestException } from '@nestjs/common'; import { defaults } from 'src/cores/system-config.core'; import { QueueName } from 'src/domain/job/job.constants'; -import { ICommunicationRepository, ServerEvent } from 'src/domain/repositories/communication.repository'; -import { ISearchRepository } from 'src/domain/repositories/search.repository'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; import { SystemConfigService } from 'src/domain/system-config/system-config.service'; import { AudioCodec, @@ -19,6 +16,9 @@ import { VideoCodec, } from 'src/infra/entities/system-config.entity'; import { ImmichLogger } from 'src/infra/logger'; +import { ICommunicationRepository, ServerEvent } from 'src/interfaces/communication.repository'; +import { ISearchRepository } from 'src/interfaces/search.repository'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; import { newCommunicationRepositoryMock } from 'test/repositories/communication.repository.mock'; import { newSystemConfigRepositoryMock } from 'test/repositories/system-config.repository.mock'; diff --git a/server/src/domain/system-config/system-config.service.ts b/server/src/domain/system-config/system-config.service.ts index 856e80d498..bd2c308054 100644 --- a/server/src/domain/system-config/system-config.service.ts +++ b/server/src/domain/system-config/system-config.service.ts @@ -3,15 +3,6 @@ import { OnEvent } from '@nestjs/event-emitter'; import { instanceToPlain } from 'class-transformer'; import _ from 'lodash'; import { SystemConfigCore } from 'src/cores/system-config.core'; -import { - ClientEvent, - ICommunicationRepository, - InternalEvent, - InternalEventMap, - ServerEvent, -} from 'src/domain/repositories/communication.repository'; -import { ISearchRepository } from 'src/domain/repositories/search.repository'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; import { SystemConfigDto, mapConfig } from 'src/domain/system-config/dto/system-config.dto'; import { SystemConfigTemplateStorageOptionDto } from 'src/domain/system-config/response-dto/system-config-template-storage-option.dto'; import { @@ -26,6 +17,15 @@ import { } from 'src/domain/system-config/system-config.constants'; import { LogLevel, SystemConfig } from 'src/infra/entities/system-config.entity'; import { ImmichLogger } from 'src/infra/logger'; +import { + ClientEvent, + ICommunicationRepository, + InternalEvent, + InternalEventMap, + ServerEvent, +} from 'src/interfaces/communication.repository'; +import { ISearchRepository } from 'src/interfaces/search.repository'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; @Injectable() export class SystemConfigService { diff --git a/server/src/domain/tag/tag.service.spec.ts b/server/src/domain/tag/tag.service.spec.ts index ae578068a9..012a745eeb 100644 --- a/server/src/domain/tag/tag.service.spec.ts +++ b/server/src/domain/tag/tag.service.spec.ts @@ -1,9 +1,9 @@ import { BadRequestException } from '@nestjs/common'; import { when } from 'jest-when'; import { AssetIdErrorReason } from 'src/domain/asset/response-dto/asset-ids-response.dto'; -import { ITagRepository } from 'src/domain/repositories/tag.repository'; import { TagService } from 'src/domain/tag/tag.service'; import { TagType } from 'src/infra/entities/tag.entity'; +import { ITagRepository } from 'src/interfaces/tag.repository'; import { assetStub } from 'test/fixtures/asset.stub'; import { authStub } from 'test/fixtures/auth.stub'; import { tagResponseStub, tagStub } from 'test/fixtures/tag.stub'; diff --git a/server/src/domain/tag/tag.service.ts b/server/src/domain/tag/tag.service.ts index 3a7a5b5797..b04e251f7c 100644 --- a/server/src/domain/tag/tag.service.ts +++ b/server/src/domain/tag/tag.service.ts @@ -3,9 +3,9 @@ import { AssetIdsDto } from 'src/domain/asset/dto/asset-ids.dto'; import { AssetIdErrorReason, AssetIdsResponseDto } from 'src/domain/asset/response-dto/asset-ids-response.dto'; import { AssetResponseDto, mapAsset } from 'src/domain/asset/response-dto/asset-response.dto'; import { AuthDto } from 'src/domain/auth/auth.dto'; -import { ITagRepository } from 'src/domain/repositories/tag.repository'; import { TagResponseDto, mapTag } from 'src/domain/tag/tag-response.dto'; import { CreateTagDto, UpdateTagDto } from 'src/domain/tag/tag.dto'; +import { ITagRepository } from 'src/interfaces/tag.repository'; @Injectable() export class TagService { diff --git a/server/src/domain/trash/trash.service.spec.ts b/server/src/domain/trash/trash.service.spec.ts index 90320326f5..021c8e526a 100644 --- a/server/src/domain/trash/trash.service.spec.ts +++ b/server/src/domain/trash/trash.service.spec.ts @@ -1,9 +1,9 @@ import { BadRequestException } from '@nestjs/common'; import { JobName } from 'src/domain/job/job.constants'; -import { IAssetRepository } from 'src/domain/repositories/asset.repository'; -import { ClientEvent, ICommunicationRepository } from 'src/domain/repositories/communication.repository'; -import { IJobRepository } from 'src/domain/repositories/job.repository'; import { TrashService } from 'src/domain/trash/trash.service'; +import { IAssetRepository } from 'src/interfaces/asset.repository'; +import { ClientEvent, ICommunicationRepository } from 'src/interfaces/communication.repository'; +import { IJobRepository } from 'src/interfaces/job.repository'; import { assetStub } from 'test/fixtures/asset.stub'; import { authStub } from 'test/fixtures/auth.stub'; import { IAccessRepositoryMock, newAccessRepositoryMock } from 'test/repositories/access.repository.mock'; diff --git a/server/src/domain/trash/trash.service.ts b/server/src/domain/trash/trash.service.ts index 2ae09c1049..2043b42481 100644 --- a/server/src/domain/trash/trash.service.ts +++ b/server/src/domain/trash/trash.service.ts @@ -4,10 +4,10 @@ import { AccessCore, Permission } from 'src/cores/access.core'; import { BulkIdsDto } from 'src/domain/asset/response-dto/asset-ids-response.dto'; import { AuthDto } from 'src/domain/auth/auth.dto'; import { JOBS_ASSET_PAGINATION_SIZE, JobName } from 'src/domain/job/job.constants'; -import { IAccessRepository } from 'src/domain/repositories/access.repository'; -import { IAssetRepository } from 'src/domain/repositories/asset.repository'; -import { ClientEvent, ICommunicationRepository } from 'src/domain/repositories/communication.repository'; -import { IJobRepository } from 'src/domain/repositories/job.repository'; +import { IAccessRepository } from 'src/interfaces/access.repository'; +import { IAssetRepository } from 'src/interfaces/asset.repository'; +import { ClientEvent, ICommunicationRepository } from 'src/interfaces/communication.repository'; +import { IJobRepository } from 'src/interfaces/job.repository'; import { usePagination } from 'src/utils'; export class TrashService { diff --git a/server/src/domain/user/user.service.spec.ts b/server/src/domain/user/user.service.spec.ts index d590d7fda2..c187e71cc4 100644 --- a/server/src/domain/user/user.service.spec.ts +++ b/server/src/domain/user/user.service.spec.ts @@ -6,17 +6,17 @@ import { } from '@nestjs/common'; import { when } from 'jest-when'; import { JobName } from 'src/domain/job/job.constants'; -import { IAlbumRepository } from 'src/domain/repositories/album.repository'; -import { ICryptoRepository } from 'src/domain/repositories/crypto.repository'; -import { IJobRepository } from 'src/domain/repositories/job.repository'; -import { ILibraryRepository } from 'src/domain/repositories/library.repository'; -import { IStorageRepository } from 'src/domain/repositories/storage.repository'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; -import { IUserRepository } from 'src/domain/repositories/user.repository'; import { UpdateUserDto } from 'src/domain/user/dto/update-user.dto'; import { mapUser } from 'src/domain/user/response-dto/user-response.dto'; import { UserService } from 'src/domain/user/user.service'; import { UserEntity, UserStatus } from 'src/infra/entities/user.entity'; +import { IAlbumRepository } from 'src/interfaces/album.repository'; +import { ICryptoRepository } from 'src/interfaces/crypto.repository'; +import { IJobRepository } from 'src/interfaces/job.repository'; +import { ILibraryRepository } from 'src/interfaces/library.repository'; +import { IStorageRepository } from 'src/interfaces/storage.repository'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; +import { IUserRepository } from 'src/interfaces/user.repository'; import { CacheControl, ImmichFileResponse } from 'src/utils'; import { authStub } from 'test/fixtures/auth.stub'; import { systemConfigStub } from 'test/fixtures/system-config.stub'; diff --git a/server/src/domain/user/user.service.ts b/server/src/domain/user/user.service.ts index 022b93492e..3b2bbf370f 100644 --- a/server/src/domain/user/user.service.ts +++ b/server/src/domain/user/user.service.ts @@ -7,13 +7,6 @@ import { UserCore } from 'src/cores/user.core'; import { AuthDto } from 'src/domain/auth/auth.dto'; import { JobName } from 'src/domain/job/job.constants'; import { IEntityJob } from 'src/domain/job/job.interface'; -import { IAlbumRepository } from 'src/domain/repositories/album.repository'; -import { ICryptoRepository } from 'src/domain/repositories/crypto.repository'; -import { IJobRepository, JobStatus } from 'src/domain/repositories/job.repository'; -import { ILibraryRepository } from 'src/domain/repositories/library.repository'; -import { IStorageRepository } from 'src/domain/repositories/storage.repository'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; -import { IUserRepository, UserFindOptions } from 'src/domain/repositories/user.repository'; import { CreateUserDto } from 'src/domain/user/dto/create-user.dto'; import { DeleteUserDto } from 'src/domain/user/dto/delete-user.dto'; import { UpdateUserDto } from 'src/domain/user/dto/update-user.dto'; @@ -24,6 +17,13 @@ import { import { UserResponseDto, mapUser } from 'src/domain/user/response-dto/user-response.dto'; import { UserEntity, UserStatus } from 'src/infra/entities/user.entity'; import { ImmichLogger } from 'src/infra/logger'; +import { IAlbumRepository } from 'src/interfaces/album.repository'; +import { ICryptoRepository } from 'src/interfaces/crypto.repository'; +import { IJobRepository, JobStatus } from 'src/interfaces/job.repository'; +import { ILibraryRepository } from 'src/interfaces/library.repository'; +import { IStorageRepository } from 'src/interfaces/storage.repository'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; +import { IUserRepository, UserFindOptions } from 'src/interfaces/user.repository'; import { CacheControl, ImmichFileResponse } from 'src/utils'; @Injectable() diff --git a/server/src/immich/api-v1/asset/asset.service.spec.ts b/server/src/immich/api-v1/asset/asset.service.spec.ts index fff1c0e1ec..37f1a540fd 100644 --- a/server/src/immich/api-v1/asset/asset.service.spec.ts +++ b/server/src/immich/api-v1/asset/asset.service.spec.ts @@ -1,16 +1,16 @@ import { when } from 'jest-when'; import { JobName } from 'src/domain/job/job.constants'; -import { IAssetRepository } from 'src/domain/repositories/asset.repository'; -import { IJobRepository } from 'src/domain/repositories/job.repository'; -import { ILibraryRepository } from 'src/domain/repositories/library.repository'; -import { IStorageRepository } from 'src/domain/repositories/storage.repository'; -import { IUserRepository } from 'src/domain/repositories/user.repository'; import { IAssetRepositoryV1 } from 'src/immich/api-v1/asset/asset-repository'; import { AssetService } from 'src/immich/api-v1/asset/asset.service'; import { CreateAssetDto } from 'src/immich/api-v1/asset/dto/create-asset.dto'; import { AssetRejectReason, AssetUploadAction } from 'src/immich/api-v1/asset/response-dto/asset-check-response.dto'; import { ASSET_CHECKSUM_CONSTRAINT, AssetEntity, AssetType } from 'src/infra/entities/asset.entity'; import { ExifEntity } from 'src/infra/entities/exif.entity'; +import { IAssetRepository } from 'src/interfaces/asset.repository'; +import { IJobRepository } from 'src/interfaces/job.repository'; +import { ILibraryRepository } from 'src/interfaces/library.repository'; +import { IStorageRepository } from 'src/interfaces/storage.repository'; +import { IUserRepository } from 'src/interfaces/user.repository'; import { assetStub } from 'test/fixtures/asset.stub'; import { authStub } from 'test/fixtures/auth.stub'; import { fileStub } from 'test/fixtures/file.stub'; diff --git a/server/src/immich/api-v1/asset/asset.service.ts b/server/src/immich/api-v1/asset/asset.service.ts index aa157aaed0..879128077f 100644 --- a/server/src/immich/api-v1/asset/asset.service.ts +++ b/server/src/immich/api-v1/asset/asset.service.ts @@ -11,12 +11,6 @@ import { AssetResponseDto, mapAsset } from 'src/domain/asset/response-dto/asset- import { AuthDto } from 'src/domain/auth/auth.dto'; import { mimeTypes } from 'src/domain/domain.constant'; import { JobName } from 'src/domain/job/job.constants'; -import { IAccessRepository } from 'src/domain/repositories/access.repository'; -import { IAssetRepository } from 'src/domain/repositories/asset.repository'; -import { IJobRepository } from 'src/domain/repositories/job.repository'; -import { ILibraryRepository } from 'src/domain/repositories/library.repository'; -import { IStorageRepository } from 'src/domain/repositories/storage.repository'; -import { IUserRepository } from 'src/domain/repositories/user.repository'; import { IAssetRepositoryV1 } from 'src/immich/api-v1/asset/asset-repository'; import { AssetBulkUploadCheckDto } from 'src/immich/api-v1/asset/dto/asset-check.dto'; import { AssetSearchDto } from 'src/immich/api-v1/asset/dto/asset-search.dto'; @@ -36,6 +30,12 @@ import { CuratedObjectsResponseDto } from 'src/immich/api-v1/asset/response-dto/ import { ASSET_CHECKSUM_CONSTRAINT, AssetEntity, AssetType } from 'src/infra/entities/asset.entity'; import { LibraryType } from 'src/infra/entities/library.entity'; import { ImmichLogger } from 'src/infra/logger'; +import { IAccessRepository } from 'src/interfaces/access.repository'; +import { IAssetRepository } from 'src/interfaces/asset.repository'; +import { IJobRepository } from 'src/interfaces/job.repository'; +import { ILibraryRepository } from 'src/interfaces/library.repository'; +import { IStorageRepository } from 'src/interfaces/storage.repository'; +import { IUserRepository } from 'src/interfaces/user.repository'; import { CacheControl, ImmichFileResponse, getLivePhotoMotionFilename } from 'src/utils'; import { QueryFailedError } from 'typeorm'; diff --git a/server/src/immich/app.utils.ts b/server/src/immich/app.utils.ts index 456c9cf4e0..f0e4ba6610 100644 --- a/server/src/immich/app.utils.ts +++ b/server/src/immich/app.utils.ts @@ -15,8 +15,8 @@ import path, { isAbsolute } from 'node:path'; import { promisify } from 'node:util'; import { IMMICH_ACCESS_COOKIE, IMMICH_API_KEY_HEADER, IMMICH_API_KEY_NAME } from 'src/domain/auth/auth.constant'; import { serverVersion } from 'src/domain/domain.constant'; -import { ImmichReadStream } from 'src/domain/repositories/storage.repository'; import { ImmichLogger } from 'src/infra/logger'; +import { ImmichReadStream } from 'src/interfaces/storage.repository'; import { Metadata } from 'src/middleware/auth.guard'; import { CacheControl, ImmichFileResponse, isConnectionAborted } from 'src/utils'; diff --git a/server/src/infra/database.config.ts b/server/src/infra/database.config.ts index ccb0f6a32e..fd6286f1bb 100644 --- a/server/src/infra/database.config.ts +++ b/server/src/infra/database.config.ts @@ -1,4 +1,4 @@ -import { DatabaseExtension } from 'src/domain/repositories/database.repository'; +import { DatabaseExtension } from 'src/interfaces/database.repository'; import { DataSource } from 'typeorm'; import { PostgresConnectionOptions } from 'typeorm/driver/postgres/PostgresConnectionOptions.js'; diff --git a/server/src/infra/infra.module.ts b/server/src/infra/infra.module.ts index b1636c5e2c..9864a01917 100644 --- a/server/src/infra/infra.module.ts +++ b/server/src/infra/infra.module.ts @@ -6,33 +6,6 @@ import { ScheduleModule, SchedulerRegistry } from '@nestjs/schedule'; import { TypeOrmModule } from '@nestjs/typeorm'; import { OpenTelemetryModule } from 'nestjs-otel'; import { bullConfig, bullQueues, immichAppConfig } from 'src/config'; -import { IAccessRepository } from 'src/domain/repositories/access.repository'; -import { IActivityRepository } from 'src/domain/repositories/activity.repository'; -import { IAlbumRepository } from 'src/domain/repositories/album.repository'; -import { IKeyRepository } from 'src/domain/repositories/api-key.repository'; -import { IAssetStackRepository } from 'src/domain/repositories/asset-stack.repository'; -import { IAssetRepository } from 'src/domain/repositories/asset.repository'; -import { IAuditRepository } from 'src/domain/repositories/audit.repository'; -import { ICommunicationRepository } from 'src/domain/repositories/communication.repository'; -import { ICryptoRepository } from 'src/domain/repositories/crypto.repository'; -import { IDatabaseRepository } from 'src/domain/repositories/database.repository'; -import { IJobRepository } from 'src/domain/repositories/job.repository'; -import { ILibraryRepository } from 'src/domain/repositories/library.repository'; -import { IMachineLearningRepository } from 'src/domain/repositories/machine-learning.repository'; -import { IMediaRepository } from 'src/domain/repositories/media.repository'; -import { IMetadataRepository } from 'src/domain/repositories/metadata.repository'; -import { IMoveRepository } from 'src/domain/repositories/move.repository'; -import { IPartnerRepository } from 'src/domain/repositories/partner.repository'; -import { IPersonRepository } from 'src/domain/repositories/person.repository'; -import { ISearchRepository } from 'src/domain/repositories/search.repository'; -import { IServerInfoRepository } from 'src/domain/repositories/server-info.repository'; -import { ISharedLinkRepository } from 'src/domain/repositories/shared-link.repository'; -import { IStorageRepository } from 'src/domain/repositories/storage.repository'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; -import { ISystemMetadataRepository } from 'src/domain/repositories/system-metadata.repository'; -import { ITagRepository } from 'src/domain/repositories/tag.repository'; -import { IUserTokenRepository } from 'src/domain/repositories/user-token.repository'; -import { IUserRepository } from 'src/domain/repositories/user.repository'; import { databaseConfig } from 'src/infra/database.config'; import { databaseEntities } from 'src/infra/entities'; import { otelConfig } from 'src/infra/instrumentation'; @@ -63,6 +36,33 @@ import { SystemMetadataRepository } from 'src/infra/repositories/system-metadata import { TagRepository } from 'src/infra/repositories/tag.repository'; import { UserTokenRepository } from 'src/infra/repositories/user-token.repository'; import { UserRepository } from 'src/infra/repositories/user.repository'; +import { IAccessRepository } from 'src/interfaces/access.repository'; +import { IActivityRepository } from 'src/interfaces/activity.repository'; +import { IAlbumRepository } from 'src/interfaces/album.repository'; +import { IKeyRepository } from 'src/interfaces/api-key.repository'; +import { IAssetStackRepository } from 'src/interfaces/asset-stack.repository'; +import { IAssetRepository } from 'src/interfaces/asset.repository'; +import { IAuditRepository } from 'src/interfaces/audit.repository'; +import { ICommunicationRepository } from 'src/interfaces/communication.repository'; +import { ICryptoRepository } from 'src/interfaces/crypto.repository'; +import { IDatabaseRepository } from 'src/interfaces/database.repository'; +import { IJobRepository } from 'src/interfaces/job.repository'; +import { ILibraryRepository } from 'src/interfaces/library.repository'; +import { IMachineLearningRepository } from 'src/interfaces/machine-learning.repository'; +import { IMediaRepository } from 'src/interfaces/media.repository'; +import { IMetadataRepository } from 'src/interfaces/metadata.repository'; +import { IMoveRepository } from 'src/interfaces/move.repository'; +import { IPartnerRepository } from 'src/interfaces/partner.repository'; +import { IPersonRepository } from 'src/interfaces/person.repository'; +import { ISearchRepository } from 'src/interfaces/search.repository'; +import { IServerInfoRepository } from 'src/interfaces/server-info.repository'; +import { ISharedLinkRepository } from 'src/interfaces/shared-link.repository'; +import { IStorageRepository } from 'src/interfaces/storage.repository'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; +import { ISystemMetadataRepository } from 'src/interfaces/system-metadata.repository'; +import { ITagRepository } from 'src/interfaces/tag.repository'; +import { IUserTokenRepository } from 'src/interfaces/user-token.repository'; +import { IUserRepository } from 'src/interfaces/user.repository'; const providers: Provider[] = [ { provide: IActivityRepository, useClass: ActivityRepository }, diff --git a/server/src/infra/infra.utils.ts b/server/src/infra/infra.utils.ts index 41c57904b6..36f1ef4bf4 100644 --- a/server/src/infra/infra.utils.ts +++ b/server/src/infra/infra.utils.ts @@ -1,6 +1,6 @@ import _ from 'lodash'; -import { AssetSearchBuilderOptions } from 'src/domain/repositories/search.repository'; import { AssetEntity } from 'src/infra/entities/asset.entity'; +import { AssetSearchBuilderOptions } from 'src/interfaces/search.repository'; import { Paginated, PaginatedBuilderOptions, PaginationMode, PaginationOptions, PaginationResult } from 'src/utils'; import { Between, diff --git a/server/src/infra/migrations/1700713994428-AddCLIPEmbeddingIndex.ts b/server/src/infra/migrations/1700713994428-AddCLIPEmbeddingIndex.ts index 505b4dbcb8..b045ba62b3 100644 --- a/server/src/infra/migrations/1700713994428-AddCLIPEmbeddingIndex.ts +++ b/server/src/infra/migrations/1700713994428-AddCLIPEmbeddingIndex.ts @@ -1,5 +1,5 @@ -import { DatabaseExtension } from 'src/domain/repositories/database.repository'; import { vectorExt } from 'src/infra/database.config'; +import { DatabaseExtension } from 'src/interfaces/database.repository'; import { MigrationInterface, QueryRunner } from 'typeorm'; export class AddCLIPEmbeddingIndex1700713994428 implements MigrationInterface { diff --git a/server/src/infra/migrations/1700714033632-AddFaceEmbeddingIndex.ts b/server/src/infra/migrations/1700714033632-AddFaceEmbeddingIndex.ts index e79c220456..e77ce3b0b4 100644 --- a/server/src/infra/migrations/1700714033632-AddFaceEmbeddingIndex.ts +++ b/server/src/infra/migrations/1700714033632-AddFaceEmbeddingIndex.ts @@ -1,5 +1,5 @@ -import { DatabaseExtension } from 'src/domain/repositories/database.repository'; import { vectorExt } from 'src/infra/database.config'; +import { DatabaseExtension } from 'src/interfaces/database.repository'; import { MigrationInterface, QueryRunner } from 'typeorm'; export class AddFaceEmbeddingIndex1700714033632 implements MigrationInterface { diff --git a/server/src/infra/repositories/access.repository.ts b/server/src/infra/repositories/access.repository.ts index d16d6a6aa9..c6b7bc0fd9 100644 --- a/server/src/infra/repositories/access.repository.ts +++ b/server/src/infra/repositories/access.repository.ts @@ -1,6 +1,5 @@ import { InjectRepository } from '@nestjs/typeorm'; import { ChunkedSet, DummyValue, GenerateSql } from 'src/decorators'; -import { IAccessRepository } from 'src/domain/repositories/access.repository'; import { ActivityEntity } from 'src/infra/entities/activity.entity'; import { AlbumEntity } from 'src/infra/entities/album.entity'; import { AssetFaceEntity } from 'src/infra/entities/asset-face.entity'; @@ -11,6 +10,7 @@ import { PersonEntity } from 'src/infra/entities/person.entity'; import { SharedLinkEntity } from 'src/infra/entities/shared-link.entity'; import { UserTokenEntity } from 'src/infra/entities/user-token.entity'; import { Instrumentation } from 'src/infra/instrumentation'; +import { IAccessRepository } from 'src/interfaces/access.repository'; import { Brackets, In, Repository } from 'typeorm'; type IActivityAccess = IAccessRepository['activity']; diff --git a/server/src/infra/repositories/activity.repository.ts b/server/src/infra/repositories/activity.repository.ts index 1cfe3e264c..4c1cec6d64 100644 --- a/server/src/infra/repositories/activity.repository.ts +++ b/server/src/infra/repositories/activity.repository.ts @@ -1,9 +1,9 @@ import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { DummyValue, GenerateSql } from 'src/decorators'; -import { IActivityRepository } from 'src/domain/repositories/activity.repository'; import { ActivityEntity } from 'src/infra/entities/activity.entity'; import { Instrumentation } from 'src/infra/instrumentation'; +import { IActivityRepository } from 'src/interfaces/activity.repository'; import { IsNull, Repository } from 'typeorm'; export interface ActivitySearch { diff --git a/server/src/infra/repositories/album.repository.ts b/server/src/infra/repositories/album.repository.ts index b31a894b5e..ca4d4a9132 100644 --- a/server/src/infra/repositories/album.repository.ts +++ b/server/src/infra/repositories/album.repository.ts @@ -2,17 +2,17 @@ import { Injectable } from '@nestjs/common'; import { InjectDataSource, InjectRepository } from '@nestjs/typeorm'; import _ from 'lodash'; import { Chunked, ChunkedArray, DATABASE_PARAMETER_CHUNK_SIZE, DummyValue, GenerateSql } from 'src/decorators'; +import { dataSource } from 'src/infra/database.config'; +import { AlbumEntity } from 'src/infra/entities/album.entity'; +import { AssetEntity } from 'src/infra/entities/asset.entity'; +import { Instrumentation } from 'src/infra/instrumentation'; import { AlbumAsset, AlbumAssetCount, AlbumAssets, AlbumInfoOptions, IAlbumRepository, -} from 'src/domain/repositories/album.repository'; -import { dataSource } from 'src/infra/database.config'; -import { AlbumEntity } from 'src/infra/entities/album.entity'; -import { AssetEntity } from 'src/infra/entities/asset.entity'; -import { Instrumentation } from 'src/infra/instrumentation'; +} from 'src/interfaces/album.repository'; import { setUnion } from 'src/utils'; import { DataSource, FindOptionsOrder, FindOptionsRelations, In, IsNull, Not, Repository } from 'typeorm'; diff --git a/server/src/infra/repositories/api-key.repository.ts b/server/src/infra/repositories/api-key.repository.ts index 5bacfded5f..0add8512a8 100644 --- a/server/src/infra/repositories/api-key.repository.ts +++ b/server/src/infra/repositories/api-key.repository.ts @@ -1,9 +1,9 @@ import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { DummyValue, GenerateSql } from 'src/decorators'; -import { IKeyRepository } from 'src/domain/repositories/api-key.repository'; import { APIKeyEntity } from 'src/infra/entities/api-key.entity'; import { Instrumentation } from 'src/infra/instrumentation'; +import { IKeyRepository } from 'src/interfaces/api-key.repository'; import { Repository } from 'typeorm'; @Instrumentation() diff --git a/server/src/infra/repositories/asset-stack.repository.ts b/server/src/infra/repositories/asset-stack.repository.ts index 556098ff1a..0f984f4ea2 100644 --- a/server/src/infra/repositories/asset-stack.repository.ts +++ b/server/src/infra/repositories/asset-stack.repository.ts @@ -1,8 +1,8 @@ import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; -import { IAssetStackRepository } from 'src/domain/repositories/asset-stack.repository'; import { AssetStackEntity } from 'src/infra/entities/asset-stack.entity'; import { Instrumentation } from 'src/infra/instrumentation'; +import { IAssetStackRepository } from 'src/interfaces/asset-stack.repository'; import { Repository } from 'typeorm'; @Instrumentation() diff --git a/server/src/infra/repositories/asset.repository.ts b/server/src/infra/repositories/asset.repository.ts index a57e852d28..3026c5386c 100644 --- a/server/src/infra/repositories/asset.repository.ts +++ b/server/src/infra/repositories/asset.repository.ts @@ -3,6 +3,13 @@ import { InjectRepository } from '@nestjs/typeorm'; import { DateTime } from 'luxon'; import path from 'node:path'; import { Chunked, ChunkedArray, DummyValue, GenerateSql } from 'src/decorators'; +import { AssetOrder } from 'src/infra/entities/album.entity'; +import { AssetJobStatusEntity } from 'src/infra/entities/asset-job-status.entity'; +import { AssetEntity, AssetType } from 'src/infra/entities/asset.entity'; +import { ExifEntity } from 'src/infra/entities/exif.entity'; +import { SmartInfoEntity } from 'src/infra/entities/smart-info.entity'; +import { OptionalBetween, paginate, paginatedBuilder, searchAssetBuilder } from 'src/infra/infra.utils'; +import { Instrumentation } from 'src/infra/instrumentation'; import { AssetBuilderOptions, AssetCreate, @@ -23,15 +30,8 @@ import { TimeBucketSize, WithProperty, WithoutProperty, -} from 'src/domain/repositories/asset.repository'; -import { AssetSearchOptions, SearchExploreItem } from 'src/domain/repositories/search.repository'; -import { AssetOrder } from 'src/infra/entities/album.entity'; -import { AssetJobStatusEntity } from 'src/infra/entities/asset-job-status.entity'; -import { AssetEntity, AssetType } from 'src/infra/entities/asset.entity'; -import { ExifEntity } from 'src/infra/entities/exif.entity'; -import { SmartInfoEntity } from 'src/infra/entities/smart-info.entity'; -import { OptionalBetween, paginate, paginatedBuilder, searchAssetBuilder } from 'src/infra/infra.utils'; -import { Instrumentation } from 'src/infra/instrumentation'; +} from 'src/interfaces/asset.repository'; +import { AssetSearchOptions, SearchExploreItem } from 'src/interfaces/search.repository'; import { Paginated, PaginationMode, PaginationOptions } from 'src/utils'; import { Brackets, diff --git a/server/src/infra/repositories/audit.repository.ts b/server/src/infra/repositories/audit.repository.ts index 71c89c8d05..bfd55336d1 100644 --- a/server/src/infra/repositories/audit.repository.ts +++ b/server/src/infra/repositories/audit.repository.ts @@ -1,7 +1,7 @@ import { InjectRepository } from '@nestjs/typeorm'; -import { AuditSearch, IAuditRepository } from 'src/domain/repositories/audit.repository'; import { AuditEntity } from 'src/infra/entities/audit.entity'; import { Instrumentation } from 'src/infra/instrumentation'; +import { AuditSearch, IAuditRepository } from 'src/interfaces/audit.repository'; import { LessThan, MoreThan, Repository } from 'typeorm'; @Instrumentation() diff --git a/server/src/infra/repositories/communication.repository.ts b/server/src/infra/repositories/communication.repository.ts index 854c6d1f38..e92fe13873 100644 --- a/server/src/infra/repositories/communication.repository.ts +++ b/server/src/infra/repositories/communication.repository.ts @@ -8,6 +8,8 @@ import { } from '@nestjs/websockets'; import { Server, Socket } from 'socket.io'; import { AuthService } from 'src/domain/auth/auth.service'; +import { Instrumentation } from 'src/infra/instrumentation'; +import { ImmichLogger } from 'src/infra/logger'; import { ClientEvent, ICommunicationRepository, @@ -15,9 +17,7 @@ import { OnConnectCallback, OnServerEventCallback, ServerEvent, -} from 'src/domain/repositories/communication.repository'; -import { Instrumentation } from 'src/infra/instrumentation'; -import { ImmichLogger } from 'src/infra/logger'; +} from 'src/interfaces/communication.repository'; @Instrumentation() @WebSocketGateway({ diff --git a/server/src/infra/repositories/crypto.repository.ts b/server/src/infra/repositories/crypto.repository.ts index f7bf63f2c6..121943af3b 100644 --- a/server/src/infra/repositories/crypto.repository.ts +++ b/server/src/infra/repositories/crypto.repository.ts @@ -2,8 +2,8 @@ import { Injectable } from '@nestjs/common'; import { compareSync, hash } from 'bcrypt'; import { createHash, randomBytes, randomUUID } from 'node:crypto'; import { createReadStream } from 'node:fs'; -import { ICryptoRepository } from 'src/domain/repositories/crypto.repository'; import { Instrumentation } from 'src/infra/instrumentation'; +import { ICryptoRepository } from 'src/interfaces/crypto.repository'; @Instrumentation() @Injectable() diff --git a/server/src/infra/repositories/database.repository.ts b/server/src/infra/repositories/database.repository.ts index 8720ad8d70..60586edc5f 100644 --- a/server/src/infra/repositories/database.repository.ts +++ b/server/src/infra/repositories/database.repository.ts @@ -2,6 +2,9 @@ import { Injectable } from '@nestjs/common'; import { InjectDataSource } from '@nestjs/typeorm'; import AsyncLock from 'async-lock'; import { Version, VersionType } from 'src/domain/domain.constant'; +import { vectorExt } from 'src/infra/database.config'; +import { Instrumentation } from 'src/infra/instrumentation'; +import { ImmichLogger } from 'src/infra/logger'; import { DatabaseExtension, DatabaseLock, @@ -10,10 +13,7 @@ import { VectorIndex, VectorUpdateResult, extName, -} from 'src/domain/repositories/database.repository'; -import { vectorExt } from 'src/infra/database.config'; -import { Instrumentation } from 'src/infra/instrumentation'; -import { ImmichLogger } from 'src/infra/logger'; +} from 'src/interfaces/database.repository'; import { isValidInteger } from 'src/validation'; import { DataSource, EntityManager, QueryRunner } from 'typeorm'; diff --git a/server/src/infra/repositories/filesystem.provider.ts b/server/src/infra/repositories/filesystem.provider.ts index c88b0c83a8..2da49625ed 100644 --- a/server/src/infra/repositories/filesystem.provider.ts +++ b/server/src/infra/repositories/filesystem.provider.ts @@ -6,6 +6,8 @@ import fs from 'node:fs/promises'; import path from 'node:path'; import { mimeTypes } from 'src/domain/domain.constant'; import { CrawlOptionsDto } from 'src/domain/library/library.dto'; +import { Instrumentation } from 'src/infra/instrumentation'; +import { ImmichLogger } from 'src/infra/logger'; import { DiskUsage, IStorageRepository, @@ -13,9 +15,7 @@ import { ImmichZipStream, StorageEventType, WatchEvents, -} from 'src/domain/repositories/storage.repository'; -import { Instrumentation } from 'src/infra/instrumentation'; -import { ImmichLogger } from 'src/infra/logger'; +} from 'src/interfaces/storage.repository'; @Instrumentation() export class FilesystemProvider implements IStorageRepository { diff --git a/server/src/infra/repositories/job.repository.ts b/server/src/infra/repositories/job.repository.ts index 856c7fae06..a7637e0e63 100644 --- a/server/src/infra/repositories/job.repository.ts +++ b/server/src/infra/repositories/job.repository.ts @@ -7,15 +7,9 @@ import { CronJob, CronTime } from 'cron'; import { setTimeout } from 'node:timers/promises'; import { bullConfig } from 'src/config'; import { JOBS_TO_QUEUE, JobName, QueueName } from 'src/domain/job/job.constants'; -import { - IJobRepository, - JobCounts, - JobItem, - QueueCleanType, - QueueStatus, -} from 'src/domain/repositories/job.repository'; import { Instrumentation } from 'src/infra/instrumentation'; import { ImmichLogger } from 'src/infra/logger'; +import { IJobRepository, JobCounts, JobItem, QueueCleanType, QueueStatus } from 'src/interfaces/job.repository'; @Instrumentation() @Injectable() diff --git a/server/src/infra/repositories/library.repository.ts b/server/src/infra/repositories/library.repository.ts index f9045b9c88..ae6a1e3438 100644 --- a/server/src/infra/repositories/library.repository.ts +++ b/server/src/infra/repositories/library.repository.ts @@ -2,9 +2,9 @@ import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { DummyValue, GenerateSql } from 'src/decorators'; import { LibraryStatsResponseDto } from 'src/domain/library/library.dto'; -import { ILibraryRepository } from 'src/domain/repositories/library.repository'; import { LibraryEntity, LibraryType } from 'src/infra/entities/library.entity'; import { Instrumentation } from 'src/infra/instrumentation'; +import { ILibraryRepository } from 'src/interfaces/library.repository'; import { IsNull, Not } from 'typeorm'; import { Repository } from 'typeorm/repository/Repository.js'; diff --git a/server/src/infra/repositories/machine-learning.repository.ts b/server/src/infra/repositories/machine-learning.repository.ts index edf0679051..46d16dcd7a 100644 --- a/server/src/infra/repositories/machine-learning.repository.ts +++ b/server/src/infra/repositories/machine-learning.repository.ts @@ -1,5 +1,7 @@ import { Injectable } from '@nestjs/common'; import { readFile } from 'node:fs/promises'; +import { CLIPConfig, ModelConfig, RecognitionConfig } from 'src/domain/smart-info/dto/model-config.dto'; +import { Instrumentation } from 'src/infra/instrumentation'; import { CLIPMode, DetectFaceResult, @@ -7,9 +9,7 @@ import { ModelType, TextModelInput, VisionModelInput, -} from 'src/domain/repositories/machine-learning.repository'; -import { CLIPConfig, ModelConfig, RecognitionConfig } from 'src/domain/smart-info/dto/model-config.dto'; -import { Instrumentation } from 'src/infra/instrumentation'; +} from 'src/interfaces/machine-learning.repository'; const errorPrefix = 'Machine learning request'; diff --git a/server/src/infra/repositories/media.repository.ts b/server/src/infra/repositories/media.repository.ts index f2d59ea95d..8c143d0493 100644 --- a/server/src/infra/repositories/media.repository.ts +++ b/server/src/infra/repositories/media.repository.ts @@ -3,16 +3,16 @@ import fs from 'node:fs/promises'; import { Writable } from 'node:stream'; import { promisify } from 'node:util'; import sharp from 'sharp'; +import { Colorspace } from 'src/infra/entities/system-config.entity'; +import { Instrumentation } from 'src/infra/instrumentation'; +import { ImmichLogger } from 'src/infra/logger'; import { CropOptions, IMediaRepository, ResizeOptions, TranscodeOptions, VideoInfo, -} from 'src/domain/repositories/media.repository'; -import { Colorspace } from 'src/infra/entities/system-config.entity'; -import { Instrumentation } from 'src/infra/instrumentation'; -import { ImmichLogger } from 'src/infra/logger'; +} from 'src/interfaces/media.repository'; import { handlePromiseError } from 'src/utils'; const probe = promisify(ffmpeg.ffprobe); diff --git a/server/src/infra/repositories/metadata.repository.ts b/server/src/infra/repositories/metadata.repository.ts index 365a3543f5..a5e82535c1 100644 --- a/server/src/infra/repositories/metadata.repository.ts +++ b/server/src/infra/repositories/metadata.repository.ts @@ -14,18 +14,13 @@ import { geodataCities500Path, geodataDatePath, } from 'src/domain/domain.constant'; -import { - GeoPoint, - IMetadataRepository, - ImmichTags, - ReverseGeocodeResult, -} from 'src/domain/repositories/metadata.repository'; -import { ISystemMetadataRepository } from 'src/domain/repositories/system-metadata.repository'; import { ExifEntity } from 'src/infra/entities/exif.entity'; import { GeodataPlacesEntity } from 'src/infra/entities/geodata-places.entity'; import { SystemMetadataKey } from 'src/infra/entities/system-metadata.entity'; import { Instrumentation } from 'src/infra/instrumentation'; import { ImmichLogger } from 'src/infra/logger'; +import { GeoPoint, IMetadataRepository, ImmichTags, ReverseGeocodeResult } from 'src/interfaces/metadata.repository'; +import { ISystemMetadataRepository } from 'src/interfaces/system-metadata.repository'; import { DataSource, QueryRunner, Repository } from 'typeorm'; import { QueryDeepPartialEntity } from 'typeorm/query-builder/QueryPartialEntity.js'; diff --git a/server/src/infra/repositories/move.repository.ts b/server/src/infra/repositories/move.repository.ts index 8482fc228b..7f7595125f 100644 --- a/server/src/infra/repositories/move.repository.ts +++ b/server/src/infra/repositories/move.repository.ts @@ -1,9 +1,9 @@ import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { DummyValue, GenerateSql } from 'src/decorators'; -import { IMoveRepository, MoveCreate } from 'src/domain/repositories/move.repository'; import { MoveEntity, PathType } from 'src/infra/entities/move.entity'; import { Instrumentation } from 'src/infra/instrumentation'; +import { IMoveRepository, MoveCreate } from 'src/interfaces/move.repository'; import { Repository } from 'typeorm'; @Instrumentation() diff --git a/server/src/infra/repositories/partner.repository.ts b/server/src/infra/repositories/partner.repository.ts index cd39a8f9d5..f8b9866cac 100644 --- a/server/src/infra/repositories/partner.repository.ts +++ b/server/src/infra/repositories/partner.repository.ts @@ -1,8 +1,8 @@ import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; -import { IPartnerRepository, PartnerIds } from 'src/domain/repositories/partner.repository'; import { PartnerEntity } from 'src/infra/entities/partner.entity'; import { Instrumentation } from 'src/infra/instrumentation'; +import { IPartnerRepository, PartnerIds } from 'src/interfaces/partner.repository'; import { DeepPartial, Repository } from 'typeorm'; @Instrumentation() diff --git a/server/src/infra/repositories/person.repository.ts b/server/src/infra/repositories/person.repository.ts index e0d707ca1b..5096032da2 100644 --- a/server/src/infra/repositories/person.repository.ts +++ b/server/src/infra/repositories/person.repository.ts @@ -1,6 +1,11 @@ import { InjectRepository } from '@nestjs/typeorm'; import _ from 'lodash'; import { ChunkedArray, DummyValue, GenerateSql } from 'src/decorators'; +import { AssetFaceEntity } from 'src/infra/entities/asset-face.entity'; +import { AssetEntity } from 'src/infra/entities/asset.entity'; +import { PersonEntity } from 'src/infra/entities/person.entity'; +import { asVector, paginate } from 'src/infra/infra.utils'; +import { Instrumentation } from 'src/infra/instrumentation'; import { AssetFaceId, IPersonRepository, @@ -9,12 +14,7 @@ import { PersonSearchOptions, PersonStatistics, UpdateFacesData, -} from 'src/domain/repositories/person.repository'; -import { AssetFaceEntity } from 'src/infra/entities/asset-face.entity'; -import { AssetEntity } from 'src/infra/entities/asset.entity'; -import { PersonEntity } from 'src/infra/entities/person.entity'; -import { asVector, paginate } from 'src/infra/infra.utils'; -import { Instrumentation } from 'src/infra/instrumentation'; +} from 'src/interfaces/person.repository'; import { Paginated, PaginationOptions } from 'src/utils'; import { FindManyOptions, FindOptionsRelations, FindOptionsSelect, In, Repository } from 'typeorm'; diff --git a/server/src/infra/repositories/search.repository.ts b/server/src/infra/repositories/search.repository.ts index 6ba546ea9a..83bbef6671 100644 --- a/server/src/infra/repositories/search.repository.ts +++ b/server/src/infra/repositories/search.repository.ts @@ -1,16 +1,6 @@ import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { DummyValue, GenerateSql } from 'src/decorators'; -import { DatabaseExtension } from 'src/domain/repositories/database.repository'; -import { - AssetSearchOptions, - Embedding, - FaceEmbeddingSearch, - FaceSearchResult, - ISearchRepository, - SearchPaginationOptions, - SmartSearchOptions, -} from 'src/domain/repositories/search.repository'; import { getCLIPModelInfo } from 'src/domain/smart-info/smart-info.constant'; import { vectorExt } from 'src/infra/database.config'; import { AssetFaceEntity } from 'src/infra/entities/asset-face.entity'; @@ -21,6 +11,16 @@ import { SmartSearchEntity } from 'src/infra/entities/smart-search.entity'; import { asVector, paginatedBuilder, searchAssetBuilder } from 'src/infra/infra.utils'; import { Instrumentation } from 'src/infra/instrumentation'; import { ImmichLogger } from 'src/infra/logger'; +import { DatabaseExtension } from 'src/interfaces/database.repository'; +import { + AssetSearchOptions, + Embedding, + FaceEmbeddingSearch, + FaceSearchResult, + ISearchRepository, + SearchPaginationOptions, + SmartSearchOptions, +} from 'src/interfaces/search.repository'; import { Paginated, PaginationMode, PaginationResult } from 'src/utils'; import { isValidInteger } from 'src/validation'; import { Repository, SelectQueryBuilder } from 'typeorm'; diff --git a/server/src/infra/repositories/server-info.repository.ts b/server/src/infra/repositories/server-info.repository.ts index 50ee3bc8dd..fcef0a3962 100644 --- a/server/src/infra/repositories/server-info.repository.ts +++ b/server/src/infra/repositories/server-info.repository.ts @@ -1,6 +1,6 @@ import { Injectable } from '@nestjs/common'; -import { GitHubRelease, IServerInfoRepository } from 'src/domain/repositories/server-info.repository'; import { Instrumentation } from 'src/infra/instrumentation'; +import { GitHubRelease, IServerInfoRepository } from 'src/interfaces/server-info.repository'; @Instrumentation() @Injectable() diff --git a/server/src/infra/repositories/shared-link.repository.ts b/server/src/infra/repositories/shared-link.repository.ts index e2878acf4d..93aacf1f28 100644 --- a/server/src/infra/repositories/shared-link.repository.ts +++ b/server/src/infra/repositories/shared-link.repository.ts @@ -1,9 +1,9 @@ import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { DummyValue, GenerateSql } from 'src/decorators'; -import { ISharedLinkRepository } from 'src/domain/repositories/shared-link.repository'; import { SharedLinkEntity } from 'src/infra/entities/shared-link.entity'; import { Instrumentation } from 'src/infra/instrumentation'; +import { ISharedLinkRepository } from 'src/interfaces/shared-link.repository'; import { Repository } from 'typeorm'; @Instrumentation() diff --git a/server/src/infra/repositories/system-config.repository.ts b/server/src/infra/repositories/system-config.repository.ts index 555a3c254c..ba3ee0aa0f 100644 --- a/server/src/infra/repositories/system-config.repository.ts +++ b/server/src/infra/repositories/system-config.repository.ts @@ -1,9 +1,9 @@ import { InjectRepository } from '@nestjs/typeorm'; import { readFile } from 'node:fs/promises'; import { Chunked, DummyValue, GenerateSql } from 'src/decorators'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; import { SystemConfigEntity } from 'src/infra/entities/system-config.entity'; import { Instrumentation } from 'src/infra/instrumentation'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; import { In, Repository } from 'typeorm'; @Instrumentation() diff --git a/server/src/infra/repositories/system-metadata.repository.ts b/server/src/infra/repositories/system-metadata.repository.ts index b0ace1b917..12c72c090f 100644 --- a/server/src/infra/repositories/system-metadata.repository.ts +++ b/server/src/infra/repositories/system-metadata.repository.ts @@ -1,7 +1,7 @@ import { InjectRepository } from '@nestjs/typeorm'; -import { ISystemMetadataRepository } from 'src/domain/repositories/system-metadata.repository'; import { SystemMetadata, SystemMetadataEntity } from 'src/infra/entities/system-metadata.entity'; import { Instrumentation } from 'src/infra/instrumentation'; +import { ISystemMetadataRepository } from 'src/interfaces/system-metadata.repository'; import { Repository } from 'typeorm'; @Instrumentation() diff --git a/server/src/infra/repositories/tag.repository.ts b/server/src/infra/repositories/tag.repository.ts index 3de70aa104..c44b0763a3 100644 --- a/server/src/infra/repositories/tag.repository.ts +++ b/server/src/infra/repositories/tag.repository.ts @@ -1,9 +1,9 @@ import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; -import { ITagRepository } from 'src/domain/repositories/tag.repository'; import { AssetEntity } from 'src/infra/entities/asset.entity'; import { TagEntity } from 'src/infra/entities/tag.entity'; import { Instrumentation } from 'src/infra/instrumentation'; +import { ITagRepository } from 'src/interfaces/tag.repository'; import { Repository } from 'typeorm'; @Instrumentation() diff --git a/server/src/infra/repositories/user-token.repository.ts b/server/src/infra/repositories/user-token.repository.ts index 7d16bd0cff..19dcafc1e1 100644 --- a/server/src/infra/repositories/user-token.repository.ts +++ b/server/src/infra/repositories/user-token.repository.ts @@ -1,9 +1,9 @@ import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { DummyValue, GenerateSql } from 'src/decorators'; -import { IUserTokenRepository } from 'src/domain/repositories/user-token.repository'; import { UserTokenEntity } from 'src/infra/entities/user-token.entity'; import { Instrumentation } from 'src/infra/instrumentation'; +import { IUserTokenRepository } from 'src/interfaces/user-token.repository'; import { Repository } from 'typeorm'; @Instrumentation() diff --git a/server/src/infra/repositories/user.repository.ts b/server/src/infra/repositories/user.repository.ts index 27692dd660..7432937666 100644 --- a/server/src/infra/repositories/user.repository.ts +++ b/server/src/infra/repositories/user.repository.ts @@ -1,15 +1,15 @@ import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { DummyValue, GenerateSql } from 'src/decorators'; +import { AssetEntity } from 'src/infra/entities/asset.entity'; +import { UserEntity } from 'src/infra/entities/user.entity'; +import { Instrumentation } from 'src/infra/instrumentation'; import { IUserRepository, UserFindOptions, UserListFilter, UserStatsQueryResponse, -} from 'src/domain/repositories/user.repository'; -import { AssetEntity } from 'src/infra/entities/asset.entity'; -import { UserEntity } from 'src/infra/entities/user.entity'; -import { Instrumentation } from 'src/infra/instrumentation'; +} from 'src/interfaces/user.repository'; import { IsNull, Not, Repository } from 'typeorm'; @Instrumentation() diff --git a/server/src/infra/sql-generator/index.ts b/server/src/infra/sql-generator/index.ts index 0821d53cd3..a117568d82 100644 --- a/server/src/infra/sql-generator/index.ts +++ b/server/src/infra/sql-generator/index.ts @@ -6,7 +6,6 @@ import { TypeOrmModule } from '@nestjs/typeorm'; import { mkdir, rm, writeFile } from 'node:fs/promises'; import { join } from 'node:path'; import { GENERATE_SQL_KEY, GenerateSqlQueries } from 'src/decorators'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; import { databaseConfig } from 'src/infra/database.config'; import { databaseEntities } from 'src/infra/entities'; import { AccessRepository } from 'src/infra/repositories/access.repository'; @@ -26,6 +25,7 @@ import { TagRepository } from 'src/infra/repositories/tag.repository'; import { UserTokenRepository } from 'src/infra/repositories/user-token.repository'; import { UserRepository } from 'src/infra/repositories/user.repository'; import { SqlLogger } from 'src/infra/sql-generator/sql.logger'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; const reflector = new Reflector(); const repositories = [ diff --git a/server/src/domain/repositories/access.repository.ts b/server/src/interfaces/access.repository.ts similarity index 100% rename from server/src/domain/repositories/access.repository.ts rename to server/src/interfaces/access.repository.ts diff --git a/server/src/domain/repositories/activity.repository.ts b/server/src/interfaces/activity.repository.ts similarity index 100% rename from server/src/domain/repositories/activity.repository.ts rename to server/src/interfaces/activity.repository.ts diff --git a/server/src/domain/repositories/album.repository.ts b/server/src/interfaces/album.repository.ts similarity index 100% rename from server/src/domain/repositories/album.repository.ts rename to server/src/interfaces/album.repository.ts diff --git a/server/src/domain/repositories/api-key.repository.ts b/server/src/interfaces/api-key.repository.ts similarity index 100% rename from server/src/domain/repositories/api-key.repository.ts rename to server/src/interfaces/api-key.repository.ts diff --git a/server/src/domain/repositories/asset-stack.repository.ts b/server/src/interfaces/asset-stack.repository.ts similarity index 100% rename from server/src/domain/repositories/asset-stack.repository.ts rename to server/src/interfaces/asset-stack.repository.ts diff --git a/server/src/domain/repositories/asset.repository.ts b/server/src/interfaces/asset.repository.ts similarity index 96% rename from server/src/domain/repositories/asset.repository.ts rename to server/src/interfaces/asset.repository.ts index 336db8d70a..a362d23499 100644 --- a/server/src/domain/repositories/asset.repository.ts +++ b/server/src/interfaces/asset.repository.ts @@ -1,9 +1,9 @@ -import { ReverseGeocodeResult } from 'src/domain/repositories/metadata.repository'; -import { AssetSearchOptions, SearchExploreItem } from 'src/domain/repositories/search.repository'; import { AssetOrder } from 'src/infra/entities/album.entity'; import { AssetJobStatusEntity } from 'src/infra/entities/asset-job-status.entity'; import { AssetEntity, AssetType } from 'src/infra/entities/asset.entity'; import { ExifEntity } from 'src/infra/entities/exif.entity'; +import { ReverseGeocodeResult } from 'src/interfaces/metadata.repository'; +import { AssetSearchOptions, SearchExploreItem } from 'src/interfaces/search.repository'; import { Paginated, PaginationOptions } from 'src/utils'; import { FindOptionsRelations, FindOptionsSelect } from 'typeorm'; diff --git a/server/src/domain/repositories/audit.repository.ts b/server/src/interfaces/audit.repository.ts similarity index 100% rename from server/src/domain/repositories/audit.repository.ts rename to server/src/interfaces/audit.repository.ts diff --git a/server/src/domain/repositories/communication.repository.ts b/server/src/interfaces/communication.repository.ts similarity index 100% rename from server/src/domain/repositories/communication.repository.ts rename to server/src/interfaces/communication.repository.ts diff --git a/server/src/domain/repositories/crypto.repository.ts b/server/src/interfaces/crypto.repository.ts similarity index 100% rename from server/src/domain/repositories/crypto.repository.ts rename to server/src/interfaces/crypto.repository.ts diff --git a/server/src/domain/repositories/database.repository.ts b/server/src/interfaces/database.repository.ts similarity index 100% rename from server/src/domain/repositories/database.repository.ts rename to server/src/interfaces/database.repository.ts diff --git a/server/src/domain/repositories/job.repository.ts b/server/src/interfaces/job.repository.ts similarity index 100% rename from server/src/domain/repositories/job.repository.ts rename to server/src/interfaces/job.repository.ts diff --git a/server/src/domain/repositories/library.repository.ts b/server/src/interfaces/library.repository.ts similarity index 100% rename from server/src/domain/repositories/library.repository.ts rename to server/src/interfaces/library.repository.ts diff --git a/server/src/domain/repositories/machine-learning.repository.ts b/server/src/interfaces/machine-learning.repository.ts similarity index 100% rename from server/src/domain/repositories/machine-learning.repository.ts rename to server/src/interfaces/machine-learning.repository.ts diff --git a/server/src/domain/repositories/media.repository.ts b/server/src/interfaces/media.repository.ts similarity index 100% rename from server/src/domain/repositories/media.repository.ts rename to server/src/interfaces/media.repository.ts diff --git a/server/src/domain/repositories/metadata.repository.ts b/server/src/interfaces/metadata.repository.ts similarity index 100% rename from server/src/domain/repositories/metadata.repository.ts rename to server/src/interfaces/metadata.repository.ts diff --git a/server/src/domain/repositories/move.repository.ts b/server/src/interfaces/move.repository.ts similarity index 100% rename from server/src/domain/repositories/move.repository.ts rename to server/src/interfaces/move.repository.ts diff --git a/server/src/domain/repositories/partner.repository.ts b/server/src/interfaces/partner.repository.ts similarity index 100% rename from server/src/domain/repositories/partner.repository.ts rename to server/src/interfaces/partner.repository.ts diff --git a/server/src/domain/repositories/person.repository.ts b/server/src/interfaces/person.repository.ts similarity index 100% rename from server/src/domain/repositories/person.repository.ts rename to server/src/interfaces/person.repository.ts diff --git a/server/src/domain/repositories/search.repository.ts b/server/src/interfaces/search.repository.ts similarity index 100% rename from server/src/domain/repositories/search.repository.ts rename to server/src/interfaces/search.repository.ts diff --git a/server/src/domain/repositories/server-info.repository.ts b/server/src/interfaces/server-info.repository.ts similarity index 100% rename from server/src/domain/repositories/server-info.repository.ts rename to server/src/interfaces/server-info.repository.ts diff --git a/server/src/domain/repositories/shared-link.repository.ts b/server/src/interfaces/shared-link.repository.ts similarity index 100% rename from server/src/domain/repositories/shared-link.repository.ts rename to server/src/interfaces/shared-link.repository.ts diff --git a/server/src/domain/repositories/storage.repository.ts b/server/src/interfaces/storage.repository.ts similarity index 100% rename from server/src/domain/repositories/storage.repository.ts rename to server/src/interfaces/storage.repository.ts diff --git a/server/src/domain/repositories/system-config.repository.ts b/server/src/interfaces/system-config.repository.ts similarity index 100% rename from server/src/domain/repositories/system-config.repository.ts rename to server/src/interfaces/system-config.repository.ts diff --git a/server/src/domain/repositories/system-metadata.repository.ts b/server/src/interfaces/system-metadata.repository.ts similarity index 100% rename from server/src/domain/repositories/system-metadata.repository.ts rename to server/src/interfaces/system-metadata.repository.ts diff --git a/server/src/domain/repositories/tag.repository.ts b/server/src/interfaces/tag.repository.ts similarity index 100% rename from server/src/domain/repositories/tag.repository.ts rename to server/src/interfaces/tag.repository.ts diff --git a/server/src/domain/repositories/user-token.repository.ts b/server/src/interfaces/user-token.repository.ts similarity index 100% rename from server/src/domain/repositories/user-token.repository.ts rename to server/src/interfaces/user-token.repository.ts diff --git a/server/src/domain/repositories/user.repository.ts b/server/src/interfaces/user.repository.ts similarity index 100% rename from server/src/domain/repositories/user.repository.ts rename to server/src/interfaces/user.repository.ts diff --git a/server/src/test-utils/utils.ts b/server/src/test-utils/utils.ts index 5b4f17baf1..b9e74f767d 100644 --- a/server/src/test-utils/utils.ts +++ b/server/src/test-utils/utils.ts @@ -7,14 +7,14 @@ import { join } from 'node:path'; import { EventEmitter } from 'node:stream'; import { Server } from 'node:tls'; import { QueueName } from 'src/domain/job/job.constants'; -import { IJobRepository, JobItem, JobItemHandler } from 'src/domain/repositories/job.repository'; -import { IMediaRepository } from 'src/domain/repositories/media.repository'; -import { StorageEventType } from 'src/domain/repositories/storage.repository'; import { AppModule } from 'src/immich/app.module'; import { AppService } from 'src/immich/app.service'; import { dataSource } from 'src/infra/database.config'; import { InfraModule, InfraTestModule } from 'src/infra/infra.module'; import { MediaRepository } from 'src/infra/repositories/media.repository'; +import { IJobRepository, JobItem, JobItemHandler } from 'src/interfaces/job.repository'; +import { IMediaRepository } from 'src/interfaces/media.repository'; +import { StorageEventType } from 'src/interfaces/storage.repository'; import { AppService as MicroAppService } from 'src/microservices/app.service'; import { EntityTarget, ObjectLiteral } from 'typeorm'; diff --git a/server/test/fixtures/media.stub.ts b/server/test/fixtures/media.stub.ts index b4c74b34da..1be792c251 100644 --- a/server/test/fixtures/media.stub.ts +++ b/server/test/fixtures/media.stub.ts @@ -1,4 +1,4 @@ -import { AudioStreamInfo, VideoFormat, VideoInfo, VideoStreamInfo } from 'src/domain/repositories/media.repository'; +import { AudioStreamInfo, VideoFormat, VideoInfo, VideoStreamInfo } from 'src/interfaces/media.repository'; const probeStubDefaultFormat: VideoFormat = { formatName: 'mov,mp4,m4a,3gp,3g2,mj2', diff --git a/server/test/repositories/access.repository.mock.ts b/server/test/repositories/access.repository.mock.ts index 686d9bc855..8d2233cf61 100644 --- a/server/test/repositories/access.repository.mock.ts +++ b/server/test/repositories/access.repository.mock.ts @@ -1,5 +1,5 @@ import { AccessCore } from 'src/cores/access.core'; -import { IAccessRepository } from 'src/domain/repositories/access.repository'; +import { IAccessRepository } from 'src/interfaces/access.repository'; export interface IAccessRepositoryMock { activity: jest.Mocked; diff --git a/server/test/repositories/activity.repository.mock.ts b/server/test/repositories/activity.repository.mock.ts index 166690b5f7..84cf7e124c 100644 --- a/server/test/repositories/activity.repository.mock.ts +++ b/server/test/repositories/activity.repository.mock.ts @@ -1,4 +1,4 @@ -import { IActivityRepository } from 'src/domain/repositories/activity.repository'; +import { IActivityRepository } from 'src/interfaces/activity.repository'; export const newActivityRepositoryMock = (): jest.Mocked => { return { diff --git a/server/test/repositories/album.repository.mock.ts b/server/test/repositories/album.repository.mock.ts index 8259ac4565..b50fe67503 100644 --- a/server/test/repositories/album.repository.mock.ts +++ b/server/test/repositories/album.repository.mock.ts @@ -1,4 +1,4 @@ -import { IAlbumRepository } from 'src/domain/repositories/album.repository'; +import { IAlbumRepository } from 'src/interfaces/album.repository'; export const newAlbumRepositoryMock = (): jest.Mocked => { return { diff --git a/server/test/repositories/api-key.repository.mock.ts b/server/test/repositories/api-key.repository.mock.ts index 471b4bb94e..d74a41028d 100644 --- a/server/test/repositories/api-key.repository.mock.ts +++ b/server/test/repositories/api-key.repository.mock.ts @@ -1,4 +1,4 @@ -import { IKeyRepository } from 'src/domain/repositories/api-key.repository'; +import { IKeyRepository } from 'src/interfaces/api-key.repository'; export const newKeyRepositoryMock = (): jest.Mocked => { return { diff --git a/server/test/repositories/asset-stack.repository.mock.ts b/server/test/repositories/asset-stack.repository.mock.ts index cb935a17e5..cf38d045fd 100644 --- a/server/test/repositories/asset-stack.repository.mock.ts +++ b/server/test/repositories/asset-stack.repository.mock.ts @@ -1,4 +1,4 @@ -import { IAssetStackRepository } from 'src/domain/repositories/asset-stack.repository'; +import { IAssetStackRepository } from 'src/interfaces/asset-stack.repository'; export const newAssetStackRepositoryMock = (): jest.Mocked => { return { diff --git a/server/test/repositories/asset.repository.mock.ts b/server/test/repositories/asset.repository.mock.ts index ab933e7858..c72d004142 100644 --- a/server/test/repositories/asset.repository.mock.ts +++ b/server/test/repositories/asset.repository.mock.ts @@ -1,4 +1,4 @@ -import { IAssetRepository } from 'src/domain/repositories/asset.repository'; +import { IAssetRepository } from 'src/interfaces/asset.repository'; export const newAssetRepositoryMock = (): jest.Mocked => { return { diff --git a/server/test/repositories/audit.repository.mock.ts b/server/test/repositories/audit.repository.mock.ts index 87a83787b3..654f677944 100644 --- a/server/test/repositories/audit.repository.mock.ts +++ b/server/test/repositories/audit.repository.mock.ts @@ -1,4 +1,4 @@ -import { IAuditRepository } from 'src/domain/repositories/audit.repository'; +import { IAuditRepository } from 'src/interfaces/audit.repository'; export const newAuditRepositoryMock = (): jest.Mocked => { return { diff --git a/server/test/repositories/communication.repository.mock.ts b/server/test/repositories/communication.repository.mock.ts index 8ba1e370cf..3d4eaeb37f 100644 --- a/server/test/repositories/communication.repository.mock.ts +++ b/server/test/repositories/communication.repository.mock.ts @@ -1,4 +1,4 @@ -import { ICommunicationRepository } from 'src/domain/repositories/communication.repository'; +import { ICommunicationRepository } from 'src/interfaces/communication.repository'; export const newCommunicationRepositoryMock = (): jest.Mocked => { return { diff --git a/server/test/repositories/crypto.repository.mock.ts b/server/test/repositories/crypto.repository.mock.ts index 015593a888..6cf4adffd0 100644 --- a/server/test/repositories/crypto.repository.mock.ts +++ b/server/test/repositories/crypto.repository.mock.ts @@ -1,4 +1,4 @@ -import { ICryptoRepository } from 'src/domain/repositories/crypto.repository'; +import { ICryptoRepository } from 'src/interfaces/crypto.repository'; export const newCryptoRepositoryMock = (): jest.Mocked => { return { diff --git a/server/test/repositories/database.repository.mock.ts b/server/test/repositories/database.repository.mock.ts index 5cf2960d27..82abe16a8e 100644 --- a/server/test/repositories/database.repository.mock.ts +++ b/server/test/repositories/database.repository.mock.ts @@ -1,5 +1,5 @@ import { Version } from 'src/domain/domain.constant'; -import { IDatabaseRepository } from 'src/domain/repositories/database.repository'; +import { IDatabaseRepository } from 'src/interfaces/database.repository'; export const newDatabaseRepositoryMock = (): jest.Mocked => { return { diff --git a/server/test/repositories/job.repository.mock.ts b/server/test/repositories/job.repository.mock.ts index 2162873435..851da70daa 100644 --- a/server/test/repositories/job.repository.mock.ts +++ b/server/test/repositories/job.repository.mock.ts @@ -1,4 +1,4 @@ -import { IJobRepository } from 'src/domain/repositories/job.repository'; +import { IJobRepository } from 'src/interfaces/job.repository'; export const newJobRepositoryMock = (): jest.Mocked => { return { diff --git a/server/test/repositories/library.repository.mock.ts b/server/test/repositories/library.repository.mock.ts index 79d95cbb56..b3c62d6814 100644 --- a/server/test/repositories/library.repository.mock.ts +++ b/server/test/repositories/library.repository.mock.ts @@ -1,4 +1,4 @@ -import { ILibraryRepository } from 'src/domain/repositories/library.repository'; +import { ILibraryRepository } from 'src/interfaces/library.repository'; export const newLibraryRepositoryMock = (): jest.Mocked => { return { diff --git a/server/test/repositories/machine-learning.repository.mock.ts b/server/test/repositories/machine-learning.repository.mock.ts index 2266dedae6..50da10cb40 100644 --- a/server/test/repositories/machine-learning.repository.mock.ts +++ b/server/test/repositories/machine-learning.repository.mock.ts @@ -1,4 +1,4 @@ -import { IMachineLearningRepository } from 'src/domain/repositories/machine-learning.repository'; +import { IMachineLearningRepository } from 'src/interfaces/machine-learning.repository'; export const newMachineLearningRepositoryMock = (): jest.Mocked => { return { diff --git a/server/test/repositories/media.repository.mock.ts b/server/test/repositories/media.repository.mock.ts index 8b21aad10c..d1806c6362 100644 --- a/server/test/repositories/media.repository.mock.ts +++ b/server/test/repositories/media.repository.mock.ts @@ -1,4 +1,4 @@ -import { IMediaRepository } from 'src/domain/repositories/media.repository'; +import { IMediaRepository } from 'src/interfaces/media.repository'; export const newMediaRepositoryMock = (): jest.Mocked => { return { diff --git a/server/test/repositories/metadata.repository.mock.ts b/server/test/repositories/metadata.repository.mock.ts index ff2bb53fb4..a5f13daf5b 100644 --- a/server/test/repositories/metadata.repository.mock.ts +++ b/server/test/repositories/metadata.repository.mock.ts @@ -1,4 +1,4 @@ -import { IMetadataRepository } from 'src/domain/repositories/metadata.repository'; +import { IMetadataRepository } from 'src/interfaces/metadata.repository'; export const newMetadataRepositoryMock = (): jest.Mocked => { return { diff --git a/server/test/repositories/move.repository.mock.ts b/server/test/repositories/move.repository.mock.ts index b42dc8610a..265799ab6d 100644 --- a/server/test/repositories/move.repository.mock.ts +++ b/server/test/repositories/move.repository.mock.ts @@ -1,4 +1,4 @@ -import { IMoveRepository } from 'src/domain/repositories/move.repository'; +import { IMoveRepository } from 'src/interfaces/move.repository'; export const newMoveRepositoryMock = (): jest.Mocked => { return { diff --git a/server/test/repositories/partner.repository.mock.ts b/server/test/repositories/partner.repository.mock.ts index c701471397..74c42ba8db 100644 --- a/server/test/repositories/partner.repository.mock.ts +++ b/server/test/repositories/partner.repository.mock.ts @@ -1,4 +1,4 @@ -import { IPartnerRepository } from 'src/domain/repositories/partner.repository'; +import { IPartnerRepository } from 'src/interfaces/partner.repository'; export const newPartnerRepositoryMock = (): jest.Mocked => { return { diff --git a/server/test/repositories/person.repository.mock.ts b/server/test/repositories/person.repository.mock.ts index c370241b71..b4b8175358 100644 --- a/server/test/repositories/person.repository.mock.ts +++ b/server/test/repositories/person.repository.mock.ts @@ -1,4 +1,4 @@ -import { IPersonRepository } from 'src/domain/repositories/person.repository'; +import { IPersonRepository } from 'src/interfaces/person.repository'; export const newPersonRepositoryMock = (): jest.Mocked => { return { diff --git a/server/test/repositories/search.repository.mock.ts b/server/test/repositories/search.repository.mock.ts index e86b833506..eb6c13ea41 100644 --- a/server/test/repositories/search.repository.mock.ts +++ b/server/test/repositories/search.repository.mock.ts @@ -1,4 +1,4 @@ -import { ISearchRepository } from 'src/domain/repositories/search.repository'; +import { ISearchRepository } from 'src/interfaces/search.repository'; export const newSearchRepositoryMock = (): jest.Mocked => { return { diff --git a/server/test/repositories/shared-link.repository.mock.ts b/server/test/repositories/shared-link.repository.mock.ts index 2cdf0e2b23..ea084c1ed9 100644 --- a/server/test/repositories/shared-link.repository.mock.ts +++ b/server/test/repositories/shared-link.repository.mock.ts @@ -1,4 +1,4 @@ -import { ISharedLinkRepository } from 'src/domain/repositories/shared-link.repository'; +import { ISharedLinkRepository } from 'src/interfaces/shared-link.repository'; export const newSharedLinkRepositoryMock = (): jest.Mocked => { return { diff --git a/server/test/repositories/storage.repository.mock.ts b/server/test/repositories/storage.repository.mock.ts index 071b733a82..72b87aed12 100644 --- a/server/test/repositories/storage.repository.mock.ts +++ b/server/test/repositories/storage.repository.mock.ts @@ -1,6 +1,6 @@ import { WatchOptions } from 'chokidar'; import { StorageCore } from 'src/cores/storage.core'; -import { IStorageRepository, StorageEventType, WatchEvents } from 'src/domain/repositories/storage.repository'; +import { IStorageRepository, StorageEventType, WatchEvents } from 'src/interfaces/storage.repository'; interface MockWatcherOptions { items?: Array<{ event: 'change' | 'add' | 'unlink' | 'error'; value: string }>; diff --git a/server/test/repositories/system-config.repository.mock.ts b/server/test/repositories/system-config.repository.mock.ts index 537182b2e8..89ce6a0501 100644 --- a/server/test/repositories/system-config.repository.mock.ts +++ b/server/test/repositories/system-config.repository.mock.ts @@ -1,5 +1,5 @@ import { SystemConfigCore } from 'src/cores/system-config.core'; -import { ISystemConfigRepository } from 'src/domain/repositories/system-config.repository'; +import { ISystemConfigRepository } from 'src/interfaces/system-config.repository'; export const newSystemConfigRepositoryMock = (reset = true): jest.Mocked => { if (reset) { diff --git a/server/test/repositories/system-info.repository.mock.ts b/server/test/repositories/system-info.repository.mock.ts index a392818ed6..93ec9c7dda 100644 --- a/server/test/repositories/system-info.repository.mock.ts +++ b/server/test/repositories/system-info.repository.mock.ts @@ -1,4 +1,4 @@ -import { IServerInfoRepository } from 'src/domain/repositories/server-info.repository'; +import { IServerInfoRepository } from 'src/interfaces/server-info.repository'; export const newServerInfoRepositoryMock = (): jest.Mocked => { return { diff --git a/server/test/repositories/system-metadata.repository.mock.ts b/server/test/repositories/system-metadata.repository.mock.ts index f031740a4f..f93278aaaf 100644 --- a/server/test/repositories/system-metadata.repository.mock.ts +++ b/server/test/repositories/system-metadata.repository.mock.ts @@ -1,4 +1,4 @@ -import { ISystemMetadataRepository } from 'src/domain/repositories/system-metadata.repository'; +import { ISystemMetadataRepository } from 'src/interfaces/system-metadata.repository'; export const newSystemMetadataRepositoryMock = (): jest.Mocked => { return { diff --git a/server/test/repositories/tag.repository.mock.ts b/server/test/repositories/tag.repository.mock.ts index 611e773eff..9f5283664b 100644 --- a/server/test/repositories/tag.repository.mock.ts +++ b/server/test/repositories/tag.repository.mock.ts @@ -1,4 +1,4 @@ -import { ITagRepository } from 'src/domain/repositories/tag.repository'; +import { ITagRepository } from 'src/interfaces/tag.repository'; export const newTagRepositoryMock = (): jest.Mocked => { return { diff --git a/server/test/repositories/user-token.repository.mock.ts b/server/test/repositories/user-token.repository.mock.ts index c11cc5ed9e..23de88d350 100644 --- a/server/test/repositories/user-token.repository.mock.ts +++ b/server/test/repositories/user-token.repository.mock.ts @@ -1,4 +1,4 @@ -import { IUserTokenRepository } from 'src/domain/repositories/user-token.repository'; +import { IUserTokenRepository } from 'src/interfaces/user-token.repository'; export const newUserTokenRepositoryMock = (): jest.Mocked => { return { diff --git a/server/test/repositories/user.repository.mock.ts b/server/test/repositories/user.repository.mock.ts index 57e0148301..4db0b16afc 100644 --- a/server/test/repositories/user.repository.mock.ts +++ b/server/test/repositories/user.repository.mock.ts @@ -1,5 +1,5 @@ import { UserCore } from 'src/cores/user.core'; -import { IUserRepository } from 'src/domain/repositories/user.repository'; +import { IUserRepository } from 'src/interfaces/user.repository'; export const newUserRepositoryMock = (reset = true): jest.Mocked => { if (reset) {