diff --git a/server/apps/cli/src/app.module.ts b/server/apps/cli/src/app.module.ts index 142ead9b91..fe0e35bb51 100644 --- a/server/apps/cli/src/app.module.ts +++ b/server/apps/cli/src/app.module.ts @@ -6,11 +6,7 @@ import { DisablePasswordLoginCommand, EnablePasswordLoginCommand } from './comma import { PromptPasswordQuestions, ResetAdminPasswordCommand } from './commands/reset-admin-password.command'; @Module({ - imports: [ - DomainModule.register({ - imports: [InfraModule], - }), - ], + imports: [DomainModule.register({ imports: [InfraModule] })], providers: [ ResetAdminPasswordCommand, PromptPasswordQuestions, diff --git a/server/apps/immich/src/api-v1/album/album-repository.ts b/server/apps/immich/src/api-v1/album/album-repository.ts index bcd779940a..a107a26d69 100644 --- a/server/apps/immich/src/api-v1/album/album-repository.ts +++ b/server/apps/immich/src/api-v1/album/album-repository.ts @@ -1,4 +1,5 @@ -import { AlbumEntity, AssetEntity, dataSource, UserEntity } from '@app/infra'; +import { AlbumEntity, AssetEntity, UserEntity } from '@app/infra/db/entities'; +import { dataSource } from '@app/infra/db/config'; import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; diff --git a/server/apps/immich/src/api-v1/album/album.module.ts b/server/apps/immich/src/api-v1/album/album.module.ts index 1e66fd2b2d..68f77a0467 100644 --- a/server/apps/immich/src/api-v1/album/album.module.ts +++ b/server/apps/immich/src/api-v1/album/album.module.ts @@ -2,7 +2,7 @@ import { Module } from '@nestjs/common'; import { AlbumService } from './album.service'; import { AlbumController } from './album.controller'; import { TypeOrmModule } from '@nestjs/typeorm'; -import { AlbumEntity, AssetEntity } from '@app/infra'; +import { AlbumEntity, AssetEntity } from '@app/infra/db/entities'; import { AlbumRepository, IAlbumRepository } from './album-repository'; import { DownloadModule } from '../../modules/download/download.module'; diff --git a/server/apps/immich/src/api-v1/album/album.service.spec.ts b/server/apps/immich/src/api-v1/album/album.service.spec.ts index a7536ace80..2d2b066078 100644 --- a/server/apps/immich/src/api-v1/album/album.service.spec.ts +++ b/server/apps/immich/src/api-v1/album/album.service.spec.ts @@ -1,7 +1,7 @@ import { AlbumService } from './album.service'; import { AuthUserDto } from '../../decorators/auth-user.decorator'; import { BadRequestException, NotFoundException, ForbiddenException } from '@nestjs/common'; -import { AlbumEntity, UserEntity } from '@app/infra'; +import { AlbumEntity, UserEntity } from '@app/infra/db/entities'; import { AlbumResponseDto, ICryptoRepository, IJobRepository, JobName, mapUser } from '@app/domain'; import { AddAssetsResponseDto } from './response-dto/add-assets-response.dto'; import { IAlbumRepository } from './album-repository'; diff --git a/server/apps/immich/src/api-v1/album/album.service.ts b/server/apps/immich/src/api-v1/album/album.service.ts index 1c64df874e..08ab9a951b 100644 --- a/server/apps/immich/src/api-v1/album/album.service.ts +++ b/server/apps/immich/src/api-v1/album/album.service.ts @@ -1,7 +1,7 @@ import { BadRequestException, Inject, Injectable, NotFoundException, ForbiddenException, Logger } from '@nestjs/common'; import { AuthUserDto } from '../../decorators/auth-user.decorator'; import { CreateAlbumDto } from './dto/create-album.dto'; -import { AlbumEntity, SharedLinkType } from '@app/infra'; +import { AlbumEntity, SharedLinkType } from '@app/infra/db/entities'; import { AddUsersDto } from './dto/add-users.dto'; import { RemoveAssetsDto } from './dto/remove-assets.dto'; import { UpdateAlbumDto } from './dto/update-album.dto'; diff --git a/server/apps/immich/src/api-v1/asset/asset-repository.ts b/server/apps/immich/src/api-v1/asset/asset-repository.ts index c4f8e33649..66a8bd6312 100644 --- a/server/apps/immich/src/api-v1/asset/asset-repository.ts +++ b/server/apps/immich/src/api-v1/asset/asset-repository.ts @@ -1,6 +1,6 @@ import { SearchPropertiesDto } from './dto/search-properties.dto'; import { CuratedLocationsResponseDto } from './response-dto/curated-locations-response.dto'; -import { AssetEntity, AssetType } from '@app/infra'; +import { AssetEntity, AssetType } from '@app/infra/db/entities'; import { Inject, Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm/repository/Repository'; diff --git a/server/apps/immich/src/api-v1/asset/asset.module.ts b/server/apps/immich/src/api-v1/asset/asset.module.ts index d3a45d2d34..0b28657c48 100644 --- a/server/apps/immich/src/api-v1/asset/asset.module.ts +++ b/server/apps/immich/src/api-v1/asset/asset.module.ts @@ -2,7 +2,7 @@ import { Module } from '@nestjs/common'; import { AssetService } from './asset.service'; import { AssetController } from './asset.controller'; import { TypeOrmModule } from '@nestjs/typeorm'; -import { AssetEntity } from '@app/infra'; +import { AssetEntity } from '@app/infra/db/entities'; import { AssetRepository, IAssetRepository } from './asset-repository'; import { DownloadModule } from '../../modules/download/download.module'; import { TagModule } from '../tag/tag.module'; diff --git a/server/apps/immich/src/api-v1/asset/asset.service.spec.ts b/server/apps/immich/src/api-v1/asset/asset.service.spec.ts index e88f2651ae..5eefb06202 100644 --- a/server/apps/immich/src/api-v1/asset/asset.service.spec.ts +++ b/server/apps/immich/src/api-v1/asset/asset.service.spec.ts @@ -1,7 +1,7 @@ import { IAssetRepository } from './asset-repository'; import { AssetService } from './asset.service'; import { QueryFailedError, Repository } from 'typeorm'; -import { AssetEntity, AssetType } from '@app/infra'; +import { AssetEntity, AssetType } from '@app/infra/db/entities'; import { CreateAssetDto } from './dto/create-asset.dto'; import { AssetCountByTimeBucket } from './response-dto/asset-count-by-time-group-response.dto'; import { TimeGroupEnum } from './dto/get-asset-count-by-time-bucket.dto'; diff --git a/server/apps/immich/src/api-v1/asset/asset.service.ts b/server/apps/immich/src/api-v1/asset/asset.service.ts index 0c9b2300d8..5927315647 100644 --- a/server/apps/immich/src/api-v1/asset/asset.service.ts +++ b/server/apps/immich/src/api-v1/asset/asset.service.ts @@ -12,7 +12,7 @@ import { import { InjectRepository } from '@nestjs/typeorm'; import { QueryFailedError, Repository } from 'typeorm'; import { AuthUserDto } from '../../decorators/auth-user.decorator'; -import { AssetEntity, AssetType, SharedLinkType, SystemConfig } from '@app/infra'; +import { AssetEntity, AssetType, SharedLinkType, SystemConfig } from '@app/infra/db/entities'; import { constants, createReadStream, stat } from 'fs'; import { ServeFileDto } from './dto/serve-file.dto'; import { Response as Res } from 'express'; diff --git a/server/apps/immich/src/api-v1/asset/dto/create-asset.dto.ts b/server/apps/immich/src/api-v1/asset/dto/create-asset.dto.ts index 66d8ec8835..527d52d85d 100644 --- a/server/apps/immich/src/api-v1/asset/dto/create-asset.dto.ts +++ b/server/apps/immich/src/api-v1/asset/dto/create-asset.dto.ts @@ -1,4 +1,4 @@ -import { AssetType } from '@app/infra'; +import { AssetType } from '@app/infra/db/entities'; import { ApiProperty } from '@nestjs/swagger'; import { IsBoolean, IsEnum, IsNotEmpty, IsOptional } from 'class-validator'; import { ImmichFile } from '../../../config/asset-upload.config'; diff --git a/server/apps/immich/src/api-v1/tag/dto/create-tag.dto.ts b/server/apps/immich/src/api-v1/tag/dto/create-tag.dto.ts index 8e7425da22..beeb9530dd 100644 --- a/server/apps/immich/src/api-v1/tag/dto/create-tag.dto.ts +++ b/server/apps/immich/src/api-v1/tag/dto/create-tag.dto.ts @@ -1,4 +1,4 @@ -import { TagType } from '@app/infra'; +import { TagType } from '@app/infra/db/entities'; import { ApiProperty } from '@nestjs/swagger'; import { IsEnum, IsNotEmpty, IsString } from 'class-validator'; diff --git a/server/apps/immich/src/api-v1/tag/tag.module.ts b/server/apps/immich/src/api-v1/tag/tag.module.ts index a44b055b0a..a7ac3885d9 100644 --- a/server/apps/immich/src/api-v1/tag/tag.module.ts +++ b/server/apps/immich/src/api-v1/tag/tag.module.ts @@ -1,7 +1,7 @@ import { Module } from '@nestjs/common'; import { TagService } from './tag.service'; import { TagController } from './tag.controller'; -import { TagEntity } from '@app/infra'; +import { TagEntity } from '@app/infra/db/entities'; import { TypeOrmModule } from '@nestjs/typeorm'; import { TagRepository, ITagRepository } from './tag.repository'; diff --git a/server/apps/immich/src/api-v1/tag/tag.repository.ts b/server/apps/immich/src/api-v1/tag/tag.repository.ts index 09391d4e27..02750e5891 100644 --- a/server/apps/immich/src/api-v1/tag/tag.repository.ts +++ b/server/apps/immich/src/api-v1/tag/tag.repository.ts @@ -1,4 +1,4 @@ -import { TagEntity, TagType } from '@app/infra'; +import { TagEntity, TagType } from '@app/infra/db/entities'; import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { In, Repository } from 'typeorm'; diff --git a/server/apps/immich/src/api-v1/tag/tag.service.spec.ts b/server/apps/immich/src/api-v1/tag/tag.service.spec.ts index 877f60087d..b17f587f91 100644 --- a/server/apps/immich/src/api-v1/tag/tag.service.spec.ts +++ b/server/apps/immich/src/api-v1/tag/tag.service.spec.ts @@ -1,4 +1,4 @@ -import { TagEntity, TagType, UserEntity } from '@app/infra'; +import { TagEntity, TagType, UserEntity } from '@app/infra/db/entities'; import { AuthUserDto } from '../../decorators/auth-user.decorator'; import { ITagRepository } from './tag.repository'; import { TagService } from './tag.service'; diff --git a/server/apps/immich/src/api-v1/tag/tag.service.ts b/server/apps/immich/src/api-v1/tag/tag.service.ts index 9a7288b1fd..dbb6cf3ed9 100644 --- a/server/apps/immich/src/api-v1/tag/tag.service.ts +++ b/server/apps/immich/src/api-v1/tag/tag.service.ts @@ -1,4 +1,4 @@ -import { TagEntity } from '@app/infra'; +import { TagEntity } from '@app/infra/db/entities'; import { BadRequestException, Inject, Injectable, Logger } from '@nestjs/common'; import { AuthUserDto } from '../../decorators/auth-user.decorator'; import { CreateTagDto } from './dto/create-tag.dto'; diff --git a/server/apps/immich/src/app.module.ts b/server/apps/immich/src/app.module.ts index 1d82ed3d91..a10c13b6e2 100644 --- a/server/apps/immich/src/app.module.ts +++ b/server/apps/immich/src/app.module.ts @@ -1,7 +1,5 @@ -import { immichAppConfig } from '@app/domain'; import { Module, OnModuleInit } from '@nestjs/common'; import { AssetModule } from './api-v1/asset/asset.module'; -import { ConfigModule } from '@nestjs/config'; import { AlbumModule } from './api-v1/album/album.module'; import { AppController } from './app.controller'; import { ScheduleModule } from '@nestjs/schedule'; @@ -27,7 +25,6 @@ import { AppCronJobs } from './app.cron-jobs'; @Module({ imports: [ - ConfigModule.forRoot(immichAppConfig), DomainModule.register({ imports: [InfraModule] }), AssetModule, AlbumModule, diff --git a/server/apps/immich/src/modules/download/download.service.ts b/server/apps/immich/src/modules/download/download.service.ts index 011b173cc9..2413173885 100644 --- a/server/apps/immich/src/modules/download/download.service.ts +++ b/server/apps/immich/src/modules/download/download.service.ts @@ -1,4 +1,4 @@ -import { AssetEntity } from '@app/infra'; +import { AssetEntity } from '@app/infra/db/entities'; import { BadRequestException, Injectable, InternalServerErrorException, Logger, StreamableFile } from '@nestjs/common'; import archiver from 'archiver'; import { extname } from 'path'; diff --git a/server/apps/microservices/src/microservices.module.ts b/server/apps/microservices/src/microservices.module.ts index d315a87776..b3eadfad11 100644 --- a/server/apps/microservices/src/microservices.module.ts +++ b/server/apps/microservices/src/microservices.module.ts @@ -1,8 +1,7 @@ -import { immichAppConfig } from '@app/domain'; import { DomainModule } from '@app/domain'; -import { ExifEntity, InfraModule } from '@app/infra'; +import { InfraModule } from '@app/infra'; +import { ExifEntity } from '@app/infra/db/entities'; import { Module } from '@nestjs/common'; -import { ConfigModule } from '@nestjs/config'; import { TypeOrmModule } from '@nestjs/typeorm'; import { BackgroundTaskProcessor, @@ -17,7 +16,7 @@ import { VideoTranscodeProcessor } from './processors/video-transcode.processor' @Module({ imports: [ - ConfigModule.forRoot(immichAppConfig), + // DomainModule.register({ imports: [InfraModule] }), TypeOrmModule.forFeature([ExifEntity]), ], diff --git a/server/apps/microservices/src/processors/metadata-extraction.processor.ts b/server/apps/microservices/src/processors/metadata-extraction.processor.ts index 095fc2206e..4373ec08b5 100644 --- a/server/apps/microservices/src/processors/metadata-extraction.processor.ts +++ b/server/apps/microservices/src/processors/metadata-extraction.processor.ts @@ -10,7 +10,7 @@ import { QueueName, WithoutProperty, } from '@app/domain'; -import { AssetEntity, AssetType, ExifEntity } from '@app/infra'; +import { AssetEntity, AssetType, ExifEntity } from '@app/infra/db/entities'; import { Process, Processor } from '@nestjs/bull'; import { Inject, Logger } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; diff --git a/server/apps/microservices/src/processors/video-transcode.processor.ts b/server/apps/microservices/src/processors/video-transcode.processor.ts index e02009fcd0..f8fd857597 100644 --- a/server/apps/microservices/src/processors/video-transcode.processor.ts +++ b/server/apps/microservices/src/processors/video-transcode.processor.ts @@ -11,7 +11,7 @@ import { SystemConfigService, WithoutProperty, } from '@app/domain'; -import { AssetEntity, AssetType } from '@app/infra'; +import { AssetEntity, AssetType } from '@app/infra/db/entities'; import { Process, Processor } from '@nestjs/bull'; import { Inject, Logger } from '@nestjs/common'; import { Job } from 'bull'; diff --git a/server/libs/domain/src/album/album.service.ts b/server/libs/domain/src/album/album.service.ts index 5f963e9de3..05789a71e1 100644 --- a/server/libs/domain/src/album/album.service.ts +++ b/server/libs/domain/src/album/album.service.ts @@ -1,4 +1,4 @@ -import { AlbumEntity } from '@app/infra'; +import { AlbumEntity } from '@app/infra/db/entities'; import { Inject, Injectable } from '@nestjs/common'; import { IAssetRepository } from '../asset'; import { AuthUserDto } from '../auth'; diff --git a/server/libs/infra/src/infra.module.ts b/server/libs/infra/src/infra.module.ts index 6633a165e6..c3dcb4987e 100644 --- a/server/libs/infra/src/infra.module.ts +++ b/server/libs/infra/src/infra.module.ts @@ -8,6 +8,7 @@ import { IKeyRepository, IMachineLearningRepository, IMediaRepository, + immichAppConfig, ISearchRepository, ISharedLinkRepository, ISmartInfoRepository, @@ -19,6 +20,7 @@ import { } from '@app/domain'; import { BullModule } from '@nestjs/bull'; import { Global, Module, Provider } from '@nestjs/common'; +import { ConfigModule } from '@nestjs/config'; import { TypeOrmModule } from '@nestjs/typeorm'; import { CryptoRepository } from './auth/crypto.repository'; import { CommunicationGateway, CommunicationRepository } from './communication'; @@ -71,6 +73,8 @@ const providers: Provider[] = [ @Global() @Module({ imports: [ + ConfigModule.forRoot(immichAppConfig), + TypeOrmModule.forRoot(databaseConfig), TypeOrmModule.forFeature([ AssetEntity, @@ -83,6 +87,7 @@ const providers: Provider[] = [ SystemConfigEntity, UserTokenEntity, ]), + BullModule.forRootAsync({ useFactory: async () => ({ prefix: 'immich_bull',