mirror of
https://github.com/immich-app/immich.git
synced 2025-05-31 04:05:39 -04:00
chore(server): rename domain repositories
-> interfaces
(#8147)
rename domain repositories
This commit is contained in:
parent
44ed1f0919
commit
b588a87d4a
@ -5,7 +5,7 @@ import { LoginResponseDto } from 'src/dtos/auth.dto';
|
|||||||
import { LibraryResponseDto } from 'src/dtos/library.dto';
|
import { LibraryResponseDto } from 'src/dtos/library.dto';
|
||||||
import { AssetType } from 'src/entities/asset.entity';
|
import { AssetType } from 'src/entities/asset.entity';
|
||||||
import { LibraryType } from 'src/entities/library.entity';
|
import { LibraryType } from 'src/entities/library.entity';
|
||||||
import { StorageEventType } from 'src/interfaces/storage.repository';
|
import { StorageEventType } from 'src/interfaces/storage.interface';
|
||||||
import { LibraryService } from 'src/services/library.service';
|
import { LibraryService } from 'src/services/library.service';
|
||||||
import {
|
import {
|
||||||
IMMICH_TEST_ASSET_PATH,
|
IMMICH_TEST_ASSET_PATH,
|
||||||
|
@ -8,33 +8,33 @@ import { OpenTelemetryModule } from 'nestjs-otel';
|
|||||||
import { bullConfig, bullQueues, immichAppConfig } from 'src/config';
|
import { bullConfig, bullQueues, immichAppConfig } from 'src/config';
|
||||||
import { databaseConfig } from 'src/database.config';
|
import { databaseConfig } from 'src/database.config';
|
||||||
import { databaseEntities } from 'src/entities';
|
import { databaseEntities } from 'src/entities';
|
||||||
import { IAccessRepository } from 'src/interfaces/access.repository';
|
import { IAccessRepository } from 'src/interfaces/access.interface';
|
||||||
import { IActivityRepository } from 'src/interfaces/activity.repository';
|
import { IActivityRepository } from 'src/interfaces/activity.interface';
|
||||||
import { IAlbumRepository } from 'src/interfaces/album.repository';
|
import { IAlbumRepository } from 'src/interfaces/album.interface';
|
||||||
import { IKeyRepository } from 'src/interfaces/api-key.repository';
|
import { IKeyRepository } from 'src/interfaces/api-key.interface';
|
||||||
import { IAssetStackRepository } from 'src/interfaces/asset-stack.repository';
|
import { IAssetStackRepository } from 'src/interfaces/asset-stack.interface';
|
||||||
import { IAssetRepository } from 'src/interfaces/asset.repository';
|
import { IAssetRepository } from 'src/interfaces/asset.interface';
|
||||||
import { IAuditRepository } from 'src/interfaces/audit.repository';
|
import { IAuditRepository } from 'src/interfaces/audit.interface';
|
||||||
import { ICommunicationRepository } from 'src/interfaces/communication.repository';
|
import { ICommunicationRepository } from 'src/interfaces/communication.interface';
|
||||||
import { ICryptoRepository } from 'src/interfaces/crypto.repository';
|
import { ICryptoRepository } from 'src/interfaces/crypto.interface';
|
||||||
import { IDatabaseRepository } from 'src/interfaces/database.repository';
|
import { IDatabaseRepository } from 'src/interfaces/database.interface';
|
||||||
import { IJobRepository } from 'src/interfaces/job.repository';
|
import { IJobRepository } from 'src/interfaces/job.interface';
|
||||||
import { ILibraryRepository } from 'src/interfaces/library.repository';
|
import { ILibraryRepository } from 'src/interfaces/library.interface';
|
||||||
import { IMachineLearningRepository } from 'src/interfaces/machine-learning.repository';
|
import { IMachineLearningRepository } from 'src/interfaces/machine-learning.interface';
|
||||||
import { IMediaRepository } from 'src/interfaces/media.repository';
|
import { IMediaRepository } from 'src/interfaces/media.interface';
|
||||||
import { IMetadataRepository } from 'src/interfaces/metadata.repository';
|
import { IMetadataRepository } from 'src/interfaces/metadata.interface';
|
||||||
import { IMoveRepository } from 'src/interfaces/move.repository';
|
import { IMoveRepository } from 'src/interfaces/move.interface';
|
||||||
import { IPartnerRepository } from 'src/interfaces/partner.repository';
|
import { IPartnerRepository } from 'src/interfaces/partner.interface';
|
||||||
import { IPersonRepository } from 'src/interfaces/person.repository';
|
import { IPersonRepository } from 'src/interfaces/person.interface';
|
||||||
import { ISearchRepository } from 'src/interfaces/search.repository';
|
import { ISearchRepository } from 'src/interfaces/search.interface';
|
||||||
import { IServerInfoRepository } from 'src/interfaces/server-info.repository';
|
import { IServerInfoRepository } from 'src/interfaces/server-info.interface';
|
||||||
import { ISharedLinkRepository } from 'src/interfaces/shared-link.repository';
|
import { ISharedLinkRepository } from 'src/interfaces/shared-link.interface';
|
||||||
import { IStorageRepository } from 'src/interfaces/storage.repository';
|
import { IStorageRepository } from 'src/interfaces/storage.interface';
|
||||||
import { ISystemConfigRepository } from 'src/interfaces/system-config.repository';
|
import { ISystemConfigRepository } from 'src/interfaces/system-config.interface';
|
||||||
import { ISystemMetadataRepository } from 'src/interfaces/system-metadata.repository';
|
import { ISystemMetadataRepository } from 'src/interfaces/system-metadata.interface';
|
||||||
import { ITagRepository } from 'src/interfaces/tag.repository';
|
import { ITagRepository } from 'src/interfaces/tag.interface';
|
||||||
import { IUserTokenRepository } from 'src/interfaces/user-token.repository';
|
import { IUserTokenRepository } from 'src/interfaces/user-token.interface';
|
||||||
import { IUserRepository } from 'src/interfaces/user.repository';
|
import { IUserRepository } from 'src/interfaces/user.interface';
|
||||||
import { AccessRepository } from 'src/repositories/access.repository';
|
import { AccessRepository } from 'src/repositories/access.repository';
|
||||||
import { ActivityRepository } from 'src/repositories/activity.repository';
|
import { ActivityRepository } from 'src/repositories/activity.repository';
|
||||||
import { AlbumRepository } from 'src/repositories/album.repository';
|
import { AlbumRepository } from 'src/repositories/album.repository';
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { Injectable } from '@nestjs/common';
|
import { Injectable } from '@nestjs/common';
|
||||||
import { IDeleteFilesJob, JobName } from 'src/interfaces/job.repository';
|
import { IDeleteFilesJob, JobName } from 'src/interfaces/job.interface';
|
||||||
import { AssetService } from 'src/services/asset.service';
|
import { AssetService } from 'src/services/asset.service';
|
||||||
import { AuditService } from 'src/services/audit.service';
|
import { AuditService } from 'src/services/audit.service';
|
||||||
import { DatabaseService } from 'src/services/database.service';
|
import { DatabaseService } from 'src/services/database.service';
|
||||||
|
@ -4,7 +4,7 @@ import { QueueOptions } from 'bullmq';
|
|||||||
import { RedisOptions } from 'ioredis';
|
import { RedisOptions } from 'ioredis';
|
||||||
import Joi from 'joi';
|
import Joi from 'joi';
|
||||||
import { LogLevel } from 'src/entities/system-config.entity';
|
import { LogLevel } from 'src/entities/system-config.entity';
|
||||||
import { QueueName } from 'src/interfaces/job.repository';
|
import { QueueName } from 'src/interfaces/job.interface';
|
||||||
|
|
||||||
const WHEN_DB_URL_SET = Joi.when('DB_URL', {
|
const WHEN_DB_URL_SET = Joi.when('DB_URL', {
|
||||||
is: Joi.exist(),
|
is: Joi.exist(),
|
||||||
|
@ -2,7 +2,7 @@ import { Body, Controller, Delete, Get, Param, Post, Put, Query } from '@nestjs/
|
|||||||
import { ApiQuery, ApiTags } from '@nestjs/swagger';
|
import { ApiQuery, ApiTags } from '@nestjs/swagger';
|
||||||
import { AuthDto } from 'src/dtos/auth.dto';
|
import { AuthDto } from 'src/dtos/auth.dto';
|
||||||
import { PartnerResponseDto, UpdatePartnerDto } from 'src/dtos/partner.dto';
|
import { PartnerResponseDto, UpdatePartnerDto } from 'src/dtos/partner.dto';
|
||||||
import { PartnerDirection } from 'src/interfaces/partner.repository';
|
import { PartnerDirection } from 'src/interfaces/partner.interface';
|
||||||
import { Auth, Authenticated } from 'src/middleware/auth.guard';
|
import { Auth, Authenticated } from 'src/middleware/auth.guard';
|
||||||
import { PartnerService } from 'src/services/partner.service';
|
import { PartnerService } from 'src/services/partner.service';
|
||||||
import { UUIDParamDto } from 'src/validation';
|
import { UUIDParamDto } from 'src/validation';
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { BadRequestException, UnauthorizedException } from '@nestjs/common';
|
import { BadRequestException, UnauthorizedException } from '@nestjs/common';
|
||||||
import { AuthDto } from 'src/dtos/auth.dto';
|
import { AuthDto } from 'src/dtos/auth.dto';
|
||||||
import { SharedLinkEntity } from 'src/entities/shared-link.entity';
|
import { SharedLinkEntity } from 'src/entities/shared-link.entity';
|
||||||
import { IAccessRepository } from 'src/interfaces/access.repository';
|
import { IAccessRepository } from 'src/interfaces/access.interface';
|
||||||
import { setDifference, setIsEqual, setUnion } from 'src/utils/set';
|
import { setDifference, setIsEqual, setUnion } from 'src/utils/set';
|
||||||
|
|
||||||
export enum Permission {
|
export enum Permission {
|
||||||
|
@ -4,12 +4,12 @@ import { SystemConfigCore } from 'src/cores/system-config.core';
|
|||||||
import { AssetEntity } from 'src/entities/asset.entity';
|
import { AssetEntity } from 'src/entities/asset.entity';
|
||||||
import { AssetPathType, PathType, PersonPathType } from 'src/entities/move.entity';
|
import { AssetPathType, PathType, PersonPathType } from 'src/entities/move.entity';
|
||||||
import { PersonEntity } from 'src/entities/person.entity';
|
import { PersonEntity } from 'src/entities/person.entity';
|
||||||
import { IAssetRepository } from 'src/interfaces/asset.repository';
|
import { IAssetRepository } from 'src/interfaces/asset.interface';
|
||||||
import { ICryptoRepository } from 'src/interfaces/crypto.repository';
|
import { ICryptoRepository } from 'src/interfaces/crypto.interface';
|
||||||
import { IMoveRepository } from 'src/interfaces/move.repository';
|
import { IMoveRepository } from 'src/interfaces/move.interface';
|
||||||
import { IPersonRepository } from 'src/interfaces/person.repository';
|
import { IPersonRepository } from 'src/interfaces/person.interface';
|
||||||
import { IStorageRepository } from 'src/interfaces/storage.repository';
|
import { IStorageRepository } from 'src/interfaces/storage.interface';
|
||||||
import { ISystemConfigRepository } from 'src/interfaces/system-config.repository';
|
import { ISystemConfigRepository } from 'src/interfaces/system-config.interface';
|
||||||
import { ImmichLogger } from 'src/utils/logger';
|
import { ImmichLogger } from 'src/utils/logger';
|
||||||
|
|
||||||
export enum StorageFolder {
|
export enum StorageFolder {
|
||||||
|
@ -20,8 +20,8 @@ import {
|
|||||||
TranscodePolicy,
|
TranscodePolicy,
|
||||||
VideoCodec,
|
VideoCodec,
|
||||||
} from 'src/entities/system-config.entity';
|
} from 'src/entities/system-config.entity';
|
||||||
import { QueueName } from 'src/interfaces/job.repository';
|
import { QueueName } from 'src/interfaces/job.interface';
|
||||||
import { ISystemConfigRepository } from 'src/interfaces/system-config.repository';
|
import { ISystemConfigRepository } from 'src/interfaces/system-config.interface';
|
||||||
import { ImmichLogger } from 'src/utils/logger';
|
import { ImmichLogger } from 'src/utils/logger';
|
||||||
|
|
||||||
export type SystemConfigValidator = (config: SystemConfig, newConfig: SystemConfig) => void | Promise<void>;
|
export type SystemConfigValidator = (config: SystemConfig, newConfig: SystemConfig) => void | Promise<void>;
|
||||||
|
@ -3,9 +3,9 @@ import sanitize from 'sanitize-filename';
|
|||||||
import { UserResponseDto } from 'src/dtos/user.dto';
|
import { UserResponseDto } from 'src/dtos/user.dto';
|
||||||
import { LibraryType } from 'src/entities/library.entity';
|
import { LibraryType } from 'src/entities/library.entity';
|
||||||
import { UserEntity } from 'src/entities/user.entity';
|
import { UserEntity } from 'src/entities/user.entity';
|
||||||
import { ICryptoRepository } from 'src/interfaces/crypto.repository';
|
import { ICryptoRepository } from 'src/interfaces/crypto.interface';
|
||||||
import { ILibraryRepository } from 'src/interfaces/library.repository';
|
import { ILibraryRepository } from 'src/interfaces/library.interface';
|
||||||
import { IUserRepository } from 'src/interfaces/user.repository';
|
import { IUserRepository } from 'src/interfaces/user.interface';
|
||||||
|
|
||||||
const SALT_ROUNDS = 10;
|
const SALT_ROUNDS = 10;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { DatabaseExtension } from 'src/interfaces/database.repository';
|
import { DatabaseExtension } from 'src/interfaces/database.interface';
|
||||||
import { DataSource } from 'typeorm';
|
import { DataSource } from 'typeorm';
|
||||||
import { PostgresConnectionOptions } from 'typeorm/driver/postgres/PostgresConnectionOptions.js';
|
import { PostgresConnectionOptions } from 'typeorm/driver/postgres/PostgresConnectionOptions.js';
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ import {
|
|||||||
} from 'class-validator';
|
} from 'class-validator';
|
||||||
import { BulkIdsDto } from 'src/dtos/asset-ids.response.dto';
|
import { BulkIdsDto } from 'src/dtos/asset-ids.response.dto';
|
||||||
import { AssetType } from 'src/entities/asset.entity';
|
import { AssetType } from 'src/entities/asset.entity';
|
||||||
import { AssetStats } from 'src/interfaces/asset.repository';
|
import { AssetStats } from 'src/interfaces/asset.interface';
|
||||||
import { Optional, ValidateBoolean, ValidateUUID } from 'src/validation';
|
import { Optional, ValidateBoolean, ValidateUUID } from 'src/validation';
|
||||||
|
|
||||||
export class DeviceIdDto {
|
export class DeviceIdDto {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { ApiProperty } from '@nestjs/swagger';
|
import { ApiProperty } from '@nestjs/swagger';
|
||||||
import { IsEnum, IsNotEmpty } from 'class-validator';
|
import { IsEnum, IsNotEmpty } from 'class-validator';
|
||||||
import { JobCommand, QueueName } from 'src/interfaces/job.repository';
|
import { JobCommand, QueueName } from 'src/interfaces/job.interface';
|
||||||
import { ValidateBoolean } from 'src/validation';
|
import { ValidateBoolean } from 'src/validation';
|
||||||
|
|
||||||
export class JobIdParamDto {
|
export class JobIdParamDto {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { ApiProperty } from '@nestjs/swagger';
|
import { ApiProperty } from '@nestjs/swagger';
|
||||||
import { Type } from 'class-transformer';
|
import { Type } from 'class-transformer';
|
||||||
import { IsEnum, IsNotEmpty, IsNumber, IsString, Max, Min } from 'class-validator';
|
import { IsEnum, IsNotEmpty, IsNumber, IsString, Max, Min } from 'class-validator';
|
||||||
import { CLIPMode, ModelType } from 'src/interfaces/machine-learning.repository';
|
import { CLIPMode, ModelType } from 'src/interfaces/machine-learning.interface';
|
||||||
import { Optional, ValidateBoolean } from 'src/validation';
|
import { Optional, ValidateBoolean } from 'src/validation';
|
||||||
|
|
||||||
export class ModelConfig {
|
export class ModelConfig {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { ApiProperty } from '@nestjs/swagger';
|
import { ApiProperty } from '@nestjs/swagger';
|
||||||
import { Type } from 'class-transformer';
|
import { Type } from 'class-transformer';
|
||||||
import { IsInt, IsObject, IsPositive, ValidateNested } from 'class-validator';
|
import { IsInt, IsObject, IsPositive, ValidateNested } from 'class-validator';
|
||||||
import { ConcurrentQueueName, QueueName } from 'src/interfaces/job.repository';
|
import { ConcurrentQueueName, QueueName } from 'src/interfaces/job.interface';
|
||||||
|
|
||||||
export class JobSettingsDto {
|
export class JobSettingsDto {
|
||||||
@IsInt()
|
@IsInt()
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { ApiProperty } from '@nestjs/swagger';
|
import { ApiProperty } from '@nestjs/swagger';
|
||||||
import { IsEnum, IsNotEmpty, IsString } from 'class-validator';
|
import { IsEnum, IsNotEmpty, IsString } from 'class-validator';
|
||||||
import { AssetOrder } from 'src/entities/album.entity';
|
import { AssetOrder } from 'src/entities/album.entity';
|
||||||
import { TimeBucketSize } from 'src/interfaces/asset.repository';
|
import { TimeBucketSize } from 'src/interfaces/asset.interface';
|
||||||
import { Optional, ValidateBoolean, ValidateUUID } from 'src/validation';
|
import { Optional, ValidateBoolean, ValidateUUID } from 'src/validation';
|
||||||
|
|
||||||
export class TimeBucketDto {
|
export class TimeBucketDto {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { ConcurrentQueueName } from 'src/interfaces/job.repository';
|
import { ConcurrentQueueName } from 'src/interfaces/job.interface';
|
||||||
import { Column, Entity, PrimaryColumn } from 'typeorm';
|
import { Column, Entity, PrimaryColumn } from 'typeorm';
|
||||||
|
|
||||||
@Entity('system_config')
|
@Entity('system_config')
|
||||||
|
@ -5,11 +5,11 @@ import { IAssetRepositoryV1 } from 'src/immich/api-v1/asset/asset-repository';
|
|||||||
import { AssetService } from 'src/immich/api-v1/asset/asset.service';
|
import { AssetService } from 'src/immich/api-v1/asset/asset.service';
|
||||||
import { CreateAssetDto } from 'src/immich/api-v1/asset/dto/create-asset.dto';
|
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 { AssetRejectReason, AssetUploadAction } from 'src/immich/api-v1/asset/response-dto/asset-check-response.dto';
|
||||||
import { IAssetRepository } from 'src/interfaces/asset.repository';
|
import { IAssetRepository } from 'src/interfaces/asset.interface';
|
||||||
import { IJobRepository, JobName } from 'src/interfaces/job.repository';
|
import { IJobRepository, JobName } from 'src/interfaces/job.interface';
|
||||||
import { ILibraryRepository } from 'src/interfaces/library.repository';
|
import { ILibraryRepository } from 'src/interfaces/library.interface';
|
||||||
import { IStorageRepository } from 'src/interfaces/storage.repository';
|
import { IStorageRepository } from 'src/interfaces/storage.interface';
|
||||||
import { IUserRepository } from 'src/interfaces/user.repository';
|
import { IUserRepository } from 'src/interfaces/user.interface';
|
||||||
import { assetStub } from 'test/fixtures/asset.stub';
|
import { assetStub } from 'test/fixtures/asset.stub';
|
||||||
import { authStub } from 'test/fixtures/auth.stub';
|
import { authStub } from 'test/fixtures/auth.stub';
|
||||||
import { fileStub } from 'test/fixtures/file.stub';
|
import { fileStub } from 'test/fixtures/file.stub';
|
||||||
|
@ -26,12 +26,12 @@ import { AssetFileUploadResponseDto } from 'src/immich/api-v1/asset/response-dto
|
|||||||
import { CheckExistingAssetsResponseDto } from 'src/immich/api-v1/asset/response-dto/check-existing-assets-response.dto';
|
import { CheckExistingAssetsResponseDto } from 'src/immich/api-v1/asset/response-dto/check-existing-assets-response.dto';
|
||||||
import { CuratedLocationsResponseDto } from 'src/immich/api-v1/asset/response-dto/curated-locations-response.dto';
|
import { CuratedLocationsResponseDto } from 'src/immich/api-v1/asset/response-dto/curated-locations-response.dto';
|
||||||
import { CuratedObjectsResponseDto } from 'src/immich/api-v1/asset/response-dto/curated-objects-response.dto';
|
import { CuratedObjectsResponseDto } from 'src/immich/api-v1/asset/response-dto/curated-objects-response.dto';
|
||||||
import { IAccessRepository } from 'src/interfaces/access.repository';
|
import { IAccessRepository } from 'src/interfaces/access.interface';
|
||||||
import { IAssetRepository } from 'src/interfaces/asset.repository';
|
import { IAssetRepository } from 'src/interfaces/asset.interface';
|
||||||
import { IJobRepository, JobName } from 'src/interfaces/job.repository';
|
import { IJobRepository, JobName } from 'src/interfaces/job.interface';
|
||||||
import { ILibraryRepository } from 'src/interfaces/library.repository';
|
import { ILibraryRepository } from 'src/interfaces/library.interface';
|
||||||
import { IStorageRepository } from 'src/interfaces/storage.repository';
|
import { IStorageRepository } from 'src/interfaces/storage.interface';
|
||||||
import { IUserRepository } from 'src/interfaces/user.repository';
|
import { IUserRepository } from 'src/interfaces/user.interface';
|
||||||
import { UploadFile } from 'src/services/asset.service';
|
import { UploadFile } from 'src/services/asset.service';
|
||||||
import { CacheControl, ImmichFileResponse, getLivePhotoMotionFilename } from 'src/utils/file';
|
import { CacheControl, ImmichFileResponse, getLivePhotoMotionFilename } from 'src/utils/file';
|
||||||
import { ImmichLogger } from 'src/utils/logger';
|
import { ImmichLogger } from 'src/utils/logger';
|
||||||
|
@ -14,7 +14,7 @@ import { access, constants } from 'node:fs/promises';
|
|||||||
import path, { isAbsolute } from 'node:path';
|
import path, { isAbsolute } from 'node:path';
|
||||||
import { promisify } from 'node:util';
|
import { promisify } from 'node:util';
|
||||||
import { IMMICH_ACCESS_COOKIE, IMMICH_API_KEY_HEADER, IMMICH_API_KEY_NAME, serverVersion } from 'src/constants';
|
import { IMMICH_ACCESS_COOKIE, IMMICH_API_KEY_HEADER, IMMICH_API_KEY_NAME, serverVersion } from 'src/constants';
|
||||||
import { ImmichReadStream } from 'src/interfaces/storage.repository';
|
import { ImmichReadStream } from 'src/interfaces/storage.interface';
|
||||||
import { Metadata } from 'src/middleware/auth.guard';
|
import { Metadata } from 'src/middleware/auth.guard';
|
||||||
import { CacheControl, ImmichFileResponse } from 'src/utils/file';
|
import { CacheControl, ImmichFileResponse } from 'src/utils/file';
|
||||||
import { ImmichLogger } from 'src/utils/logger';
|
import { ImmichLogger } from 'src/utils/logger';
|
||||||
|
@ -2,8 +2,8 @@ import { AssetOrder } from 'src/entities/album.entity';
|
|||||||
import { AssetJobStatusEntity } from 'src/entities/asset-job-status.entity';
|
import { AssetJobStatusEntity } from 'src/entities/asset-job-status.entity';
|
||||||
import { AssetEntity, AssetType } from 'src/entities/asset.entity';
|
import { AssetEntity, AssetType } from 'src/entities/asset.entity';
|
||||||
import { ExifEntity } from 'src/entities/exif.entity';
|
import { ExifEntity } from 'src/entities/exif.entity';
|
||||||
import { ReverseGeocodeResult } from 'src/interfaces/metadata.repository';
|
import { ReverseGeocodeResult } from 'src/interfaces/metadata.interface';
|
||||||
import { AssetSearchOptions, SearchExploreItem } from 'src/interfaces/search.repository';
|
import { AssetSearchOptions, SearchExploreItem } from 'src/interfaces/search.interface';
|
||||||
import { Paginated, PaginationOptions } from 'src/utils/pagination';
|
import { Paginated, PaginationOptions } from 'src/utils/pagination';
|
||||||
import { FindOptionsRelations, FindOptionsSelect } from 'typeorm';
|
import { FindOptionsRelations, FindOptionsSelect } from 'typeorm';
|
||||||
|
|
@ -1,5 +1,5 @@
|
|||||||
import { vectorExt } from 'src/database.config';
|
import { vectorExt } from 'src/database.config';
|
||||||
import { DatabaseExtension } from 'src/interfaces/database.repository';
|
import { DatabaseExtension } from 'src/interfaces/database.interface';
|
||||||
import { MigrationInterface, QueryRunner } from 'typeorm';
|
import { MigrationInterface, QueryRunner } from 'typeorm';
|
||||||
|
|
||||||
export class AddCLIPEmbeddingIndex1700713994428 implements MigrationInterface {
|
export class AddCLIPEmbeddingIndex1700713994428 implements MigrationInterface {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { vectorExt } from 'src/database.config';
|
import { vectorExt } from 'src/database.config';
|
||||||
import { DatabaseExtension } from 'src/interfaces/database.repository';
|
import { DatabaseExtension } from 'src/interfaces/database.interface';
|
||||||
import { MigrationInterface, QueryRunner } from 'typeorm';
|
import { MigrationInterface, QueryRunner } from 'typeorm';
|
||||||
|
|
||||||
export class AddFaceEmbeddingIndex1700714033632 implements MigrationInterface {
|
export class AddFaceEmbeddingIndex1700714033632 implements MigrationInterface {
|
||||||
|
@ -9,7 +9,7 @@ import { PartnerEntity } from 'src/entities/partner.entity';
|
|||||||
import { PersonEntity } from 'src/entities/person.entity';
|
import { PersonEntity } from 'src/entities/person.entity';
|
||||||
import { SharedLinkEntity } from 'src/entities/shared-link.entity';
|
import { SharedLinkEntity } from 'src/entities/shared-link.entity';
|
||||||
import { UserTokenEntity } from 'src/entities/user-token.entity';
|
import { UserTokenEntity } from 'src/entities/user-token.entity';
|
||||||
import { IAccessRepository } from 'src/interfaces/access.repository';
|
import { IAccessRepository } from 'src/interfaces/access.interface';
|
||||||
import { Instrumentation } from 'src/utils/instrumentation';
|
import { Instrumentation } from 'src/utils/instrumentation';
|
||||||
import { Brackets, In, Repository } from 'typeorm';
|
import { Brackets, In, Repository } from 'typeorm';
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@ import { Injectable } from '@nestjs/common';
|
|||||||
import { InjectRepository } from '@nestjs/typeorm';
|
import { InjectRepository } from '@nestjs/typeorm';
|
||||||
import { DummyValue, GenerateSql } from 'src/decorators';
|
import { DummyValue, GenerateSql } from 'src/decorators';
|
||||||
import { ActivityEntity } from 'src/entities/activity.entity';
|
import { ActivityEntity } from 'src/entities/activity.entity';
|
||||||
import { IActivityRepository } from 'src/interfaces/activity.repository';
|
import { IActivityRepository } from 'src/interfaces/activity.interface';
|
||||||
import { Instrumentation } from 'src/utils/instrumentation';
|
import { Instrumentation } from 'src/utils/instrumentation';
|
||||||
import { IsNull, Repository } from 'typeorm';
|
import { IsNull, Repository } from 'typeorm';
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ import {
|
|||||||
AlbumAssets,
|
AlbumAssets,
|
||||||
AlbumInfoOptions,
|
AlbumInfoOptions,
|
||||||
IAlbumRepository,
|
IAlbumRepository,
|
||||||
} from 'src/interfaces/album.repository';
|
} from 'src/interfaces/album.interface';
|
||||||
import { Instrumentation } from 'src/utils/instrumentation';
|
import { Instrumentation } from 'src/utils/instrumentation';
|
||||||
import { setUnion } from 'src/utils/set';
|
import { setUnion } from 'src/utils/set';
|
||||||
import { DataSource, FindOptionsOrder, FindOptionsRelations, In, IsNull, Not, Repository } from 'typeorm';
|
import { DataSource, FindOptionsOrder, FindOptionsRelations, In, IsNull, Not, Repository } from 'typeorm';
|
||||||
|
@ -2,7 +2,7 @@ import { Injectable } from '@nestjs/common';
|
|||||||
import { InjectRepository } from '@nestjs/typeorm';
|
import { InjectRepository } from '@nestjs/typeorm';
|
||||||
import { DummyValue, GenerateSql } from 'src/decorators';
|
import { DummyValue, GenerateSql } from 'src/decorators';
|
||||||
import { APIKeyEntity } from 'src/entities/api-key.entity';
|
import { APIKeyEntity } from 'src/entities/api-key.entity';
|
||||||
import { IKeyRepository } from 'src/interfaces/api-key.repository';
|
import { IKeyRepository } from 'src/interfaces/api-key.interface';
|
||||||
import { Instrumentation } from 'src/utils/instrumentation';
|
import { Instrumentation } from 'src/utils/instrumentation';
|
||||||
import { Repository } from 'typeorm';
|
import { Repository } from 'typeorm';
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { Injectable } from '@nestjs/common';
|
import { Injectable } from '@nestjs/common';
|
||||||
import { InjectRepository } from '@nestjs/typeorm';
|
import { InjectRepository } from '@nestjs/typeorm';
|
||||||
import { AssetStackEntity } from 'src/entities/asset-stack.entity';
|
import { AssetStackEntity } from 'src/entities/asset-stack.entity';
|
||||||
import { IAssetStackRepository } from 'src/interfaces/asset-stack.repository';
|
import { IAssetStackRepository } from 'src/interfaces/asset-stack.interface';
|
||||||
import { Instrumentation } from 'src/utils/instrumentation';
|
import { Instrumentation } from 'src/utils/instrumentation';
|
||||||
import { Repository } from 'typeorm';
|
import { Repository } from 'typeorm';
|
||||||
|
|
||||||
|
@ -28,8 +28,8 @@ import {
|
|||||||
TimeBucketSize,
|
TimeBucketSize,
|
||||||
WithProperty,
|
WithProperty,
|
||||||
WithoutProperty,
|
WithoutProperty,
|
||||||
} from 'src/interfaces/asset.repository';
|
} from 'src/interfaces/asset.interface';
|
||||||
import { AssetSearchOptions, SearchExploreItem } from 'src/interfaces/search.repository';
|
import { AssetSearchOptions, SearchExploreItem } from 'src/interfaces/search.interface';
|
||||||
import { OptionalBetween, searchAssetBuilder } from 'src/utils/database';
|
import { OptionalBetween, searchAssetBuilder } from 'src/utils/database';
|
||||||
import { Instrumentation } from 'src/utils/instrumentation';
|
import { Instrumentation } from 'src/utils/instrumentation';
|
||||||
import { Paginated, PaginationMode, PaginationOptions, paginate, paginatedBuilder } from 'src/utils/pagination';
|
import { Paginated, PaginationMode, PaginationOptions, paginate, paginatedBuilder } from 'src/utils/pagination';
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { InjectRepository } from '@nestjs/typeorm';
|
import { InjectRepository } from '@nestjs/typeorm';
|
||||||
import { AuditEntity } from 'src/entities/audit.entity';
|
import { AuditEntity } from 'src/entities/audit.entity';
|
||||||
import { AuditSearch, IAuditRepository } from 'src/interfaces/audit.repository';
|
import { AuditSearch, IAuditRepository } from 'src/interfaces/audit.interface';
|
||||||
import { Instrumentation } from 'src/utils/instrumentation';
|
import { Instrumentation } from 'src/utils/instrumentation';
|
||||||
import { LessThan, MoreThan, Repository } from 'typeorm';
|
import { LessThan, MoreThan, Repository } from 'typeorm';
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ import {
|
|||||||
OnConnectCallback,
|
OnConnectCallback,
|
||||||
OnServerEventCallback,
|
OnServerEventCallback,
|
||||||
ServerEvent,
|
ServerEvent,
|
||||||
} from 'src/interfaces/communication.repository';
|
} from 'src/interfaces/communication.interface';
|
||||||
import { AuthService } from 'src/services/auth.service';
|
import { AuthService } from 'src/services/auth.service';
|
||||||
import { Instrumentation } from 'src/utils/instrumentation';
|
import { Instrumentation } from 'src/utils/instrumentation';
|
||||||
import { ImmichLogger } from 'src/utils/logger';
|
import { ImmichLogger } from 'src/utils/logger';
|
||||||
|
@ -2,7 +2,7 @@ import { Injectable } from '@nestjs/common';
|
|||||||
import { compareSync, hash } from 'bcrypt';
|
import { compareSync, hash } from 'bcrypt';
|
||||||
import { createHash, randomBytes, randomUUID } from 'node:crypto';
|
import { createHash, randomBytes, randomUUID } from 'node:crypto';
|
||||||
import { createReadStream } from 'node:fs';
|
import { createReadStream } from 'node:fs';
|
||||||
import { ICryptoRepository } from 'src/interfaces/crypto.repository';
|
import { ICryptoRepository } from 'src/interfaces/crypto.interface';
|
||||||
import { Instrumentation } from 'src/utils/instrumentation';
|
import { Instrumentation } from 'src/utils/instrumentation';
|
||||||
|
|
||||||
@Instrumentation()
|
@Instrumentation()
|
||||||
|
@ -10,7 +10,7 @@ import {
|
|||||||
VectorIndex,
|
VectorIndex,
|
||||||
VectorUpdateResult,
|
VectorUpdateResult,
|
||||||
extName,
|
extName,
|
||||||
} from 'src/interfaces/database.repository';
|
} from 'src/interfaces/database.interface';
|
||||||
import { Instrumentation } from 'src/utils/instrumentation';
|
import { Instrumentation } from 'src/utils/instrumentation';
|
||||||
import { ImmichLogger } from 'src/utils/logger';
|
import { ImmichLogger } from 'src/utils/logger';
|
||||||
import { Version, VersionType } from 'src/utils/version';
|
import { Version, VersionType } from 'src/utils/version';
|
||||||
|
@ -12,7 +12,7 @@ import {
|
|||||||
ImmichZipStream,
|
ImmichZipStream,
|
||||||
StorageEventType,
|
StorageEventType,
|
||||||
WatchEvents,
|
WatchEvents,
|
||||||
} from 'src/interfaces/storage.repository';
|
} from 'src/interfaces/storage.interface';
|
||||||
import { Instrumentation } from 'src/utils/instrumentation';
|
import { Instrumentation } from 'src/utils/instrumentation';
|
||||||
import { ImmichLogger } from 'src/utils/logger';
|
import { ImmichLogger } from 'src/utils/logger';
|
||||||
import { mimeTypes } from 'src/utils/mime-types';
|
import { mimeTypes } from 'src/utils/mime-types';
|
||||||
|
@ -14,7 +14,7 @@ import {
|
|||||||
QueueCleanType,
|
QueueCleanType,
|
||||||
QueueName,
|
QueueName,
|
||||||
QueueStatus,
|
QueueStatus,
|
||||||
} from 'src/interfaces/job.repository';
|
} from 'src/interfaces/job.interface';
|
||||||
import { Instrumentation } from 'src/utils/instrumentation';
|
import { Instrumentation } from 'src/utils/instrumentation';
|
||||||
import { ImmichLogger } from 'src/utils/logger';
|
import { ImmichLogger } from 'src/utils/logger';
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ import { InjectRepository } from '@nestjs/typeorm';
|
|||||||
import { DummyValue, GenerateSql } from 'src/decorators';
|
import { DummyValue, GenerateSql } from 'src/decorators';
|
||||||
import { LibraryStatsResponseDto } from 'src/dtos/library.dto';
|
import { LibraryStatsResponseDto } from 'src/dtos/library.dto';
|
||||||
import { LibraryEntity, LibraryType } from 'src/entities/library.entity';
|
import { LibraryEntity, LibraryType } from 'src/entities/library.entity';
|
||||||
import { ILibraryRepository } from 'src/interfaces/library.repository';
|
import { ILibraryRepository } from 'src/interfaces/library.interface';
|
||||||
import { Instrumentation } from 'src/utils/instrumentation';
|
import { Instrumentation } from 'src/utils/instrumentation';
|
||||||
import { IsNull, Not } from 'typeorm';
|
import { IsNull, Not } from 'typeorm';
|
||||||
import { Repository } from 'typeorm/repository/Repository.js';
|
import { Repository } from 'typeorm/repository/Repository.js';
|
||||||
|
@ -8,7 +8,7 @@ import {
|
|||||||
ModelType,
|
ModelType,
|
||||||
TextModelInput,
|
TextModelInput,
|
||||||
VisionModelInput,
|
VisionModelInput,
|
||||||
} from 'src/interfaces/machine-learning.repository';
|
} from 'src/interfaces/machine-learning.interface';
|
||||||
import { Instrumentation } from 'src/utils/instrumentation';
|
import { Instrumentation } from 'src/utils/instrumentation';
|
||||||
|
|
||||||
const errorPrefix = 'Machine learning request';
|
const errorPrefix = 'Machine learning request';
|
||||||
|
@ -10,7 +10,7 @@ import {
|
|||||||
ResizeOptions,
|
ResizeOptions,
|
||||||
TranscodeOptions,
|
TranscodeOptions,
|
||||||
VideoInfo,
|
VideoInfo,
|
||||||
} from 'src/interfaces/media.repository';
|
} from 'src/interfaces/media.interface';
|
||||||
import { Instrumentation } from 'src/utils/instrumentation';
|
import { Instrumentation } from 'src/utils/instrumentation';
|
||||||
import { ImmichLogger } from 'src/utils/logger';
|
import { ImmichLogger } from 'src/utils/logger';
|
||||||
import { handlePromiseError } from 'src/utils/misc';
|
import { handlePromiseError } from 'src/utils/misc';
|
||||||
|
@ -11,8 +11,8 @@ import { DummyValue, GenerateSql } from 'src/decorators';
|
|||||||
import { ExifEntity } from 'src/entities/exif.entity';
|
import { ExifEntity } from 'src/entities/exif.entity';
|
||||||
import { GeodataPlacesEntity } from 'src/entities/geodata-places.entity';
|
import { GeodataPlacesEntity } from 'src/entities/geodata-places.entity';
|
||||||
import { SystemMetadataKey } from 'src/entities/system-metadata.entity';
|
import { SystemMetadataKey } from 'src/entities/system-metadata.entity';
|
||||||
import { GeoPoint, IMetadataRepository, ImmichTags, ReverseGeocodeResult } from 'src/interfaces/metadata.repository';
|
import { GeoPoint, IMetadataRepository, ImmichTags, ReverseGeocodeResult } from 'src/interfaces/metadata.interface';
|
||||||
import { ISystemMetadataRepository } from 'src/interfaces/system-metadata.repository';
|
import { ISystemMetadataRepository } from 'src/interfaces/system-metadata.interface';
|
||||||
import { Instrumentation } from 'src/utils/instrumentation';
|
import { Instrumentation } from 'src/utils/instrumentation';
|
||||||
import { ImmichLogger } from 'src/utils/logger';
|
import { ImmichLogger } from 'src/utils/logger';
|
||||||
import { DataSource, QueryRunner, Repository } from 'typeorm';
|
import { DataSource, QueryRunner, Repository } from 'typeorm';
|
||||||
|
@ -2,7 +2,7 @@ import { Injectable } from '@nestjs/common';
|
|||||||
import { InjectRepository } from '@nestjs/typeorm';
|
import { InjectRepository } from '@nestjs/typeorm';
|
||||||
import { DummyValue, GenerateSql } from 'src/decorators';
|
import { DummyValue, GenerateSql } from 'src/decorators';
|
||||||
import { MoveEntity, PathType } from 'src/entities/move.entity';
|
import { MoveEntity, PathType } from 'src/entities/move.entity';
|
||||||
import { IMoveRepository, MoveCreate } from 'src/interfaces/move.repository';
|
import { IMoveRepository, MoveCreate } from 'src/interfaces/move.interface';
|
||||||
import { Instrumentation } from 'src/utils/instrumentation';
|
import { Instrumentation } from 'src/utils/instrumentation';
|
||||||
import { Repository } from 'typeorm';
|
import { Repository } from 'typeorm';
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { Injectable } from '@nestjs/common';
|
import { Injectable } from '@nestjs/common';
|
||||||
import { InjectRepository } from '@nestjs/typeorm';
|
import { InjectRepository } from '@nestjs/typeorm';
|
||||||
import { PartnerEntity } from 'src/entities/partner.entity';
|
import { PartnerEntity } from 'src/entities/partner.entity';
|
||||||
import { IPartnerRepository, PartnerIds } from 'src/interfaces/partner.repository';
|
import { IPartnerRepository, PartnerIds } from 'src/interfaces/partner.interface';
|
||||||
import { Instrumentation } from 'src/utils/instrumentation';
|
import { Instrumentation } from 'src/utils/instrumentation';
|
||||||
import { DeepPartial, Repository } from 'typeorm';
|
import { DeepPartial, Repository } from 'typeorm';
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ import {
|
|||||||
PersonSearchOptions,
|
PersonSearchOptions,
|
||||||
PersonStatistics,
|
PersonStatistics,
|
||||||
UpdateFacesData,
|
UpdateFacesData,
|
||||||
} from 'src/interfaces/person.repository';
|
} from 'src/interfaces/person.interface';
|
||||||
import { asVector } from 'src/utils/database';
|
import { asVector } from 'src/utils/database';
|
||||||
import { Instrumentation } from 'src/utils/instrumentation';
|
import { Instrumentation } from 'src/utils/instrumentation';
|
||||||
import { Paginated, PaginationOptions, paginate } from 'src/utils/pagination';
|
import { Paginated, PaginationOptions, paginate } from 'src/utils/pagination';
|
||||||
|
@ -7,7 +7,7 @@ import { AssetEntity, AssetType } from 'src/entities/asset.entity';
|
|||||||
import { GeodataPlacesEntity } from 'src/entities/geodata-places.entity';
|
import { GeodataPlacesEntity } from 'src/entities/geodata-places.entity';
|
||||||
import { SmartInfoEntity } from 'src/entities/smart-info.entity';
|
import { SmartInfoEntity } from 'src/entities/smart-info.entity';
|
||||||
import { SmartSearchEntity } from 'src/entities/smart-search.entity';
|
import { SmartSearchEntity } from 'src/entities/smart-search.entity';
|
||||||
import { DatabaseExtension } from 'src/interfaces/database.repository';
|
import { DatabaseExtension } from 'src/interfaces/database.interface';
|
||||||
import {
|
import {
|
||||||
AssetSearchOptions,
|
AssetSearchOptions,
|
||||||
Embedding,
|
Embedding,
|
||||||
@ -16,7 +16,7 @@ import {
|
|||||||
ISearchRepository,
|
ISearchRepository,
|
||||||
SearchPaginationOptions,
|
SearchPaginationOptions,
|
||||||
SmartSearchOptions,
|
SmartSearchOptions,
|
||||||
} from 'src/interfaces/search.repository';
|
} from 'src/interfaces/search.interface';
|
||||||
import { asVector, searchAssetBuilder } from 'src/utils/database';
|
import { asVector, searchAssetBuilder } from 'src/utils/database';
|
||||||
import { Instrumentation } from 'src/utils/instrumentation';
|
import { Instrumentation } from 'src/utils/instrumentation';
|
||||||
import { ImmichLogger } from 'src/utils/logger';
|
import { ImmichLogger } from 'src/utils/logger';
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { Injectable } from '@nestjs/common';
|
import { Injectable } from '@nestjs/common';
|
||||||
import { GitHubRelease, IServerInfoRepository } from 'src/interfaces/server-info.repository';
|
import { GitHubRelease, IServerInfoRepository } from 'src/interfaces/server-info.interface';
|
||||||
import { Instrumentation } from 'src/utils/instrumentation';
|
import { Instrumentation } from 'src/utils/instrumentation';
|
||||||
|
|
||||||
@Instrumentation()
|
@Instrumentation()
|
||||||
|
@ -2,7 +2,7 @@ import { Injectable } from '@nestjs/common';
|
|||||||
import { InjectRepository } from '@nestjs/typeorm';
|
import { InjectRepository } from '@nestjs/typeorm';
|
||||||
import { DummyValue, GenerateSql } from 'src/decorators';
|
import { DummyValue, GenerateSql } from 'src/decorators';
|
||||||
import { SharedLinkEntity } from 'src/entities/shared-link.entity';
|
import { SharedLinkEntity } from 'src/entities/shared-link.entity';
|
||||||
import { ISharedLinkRepository } from 'src/interfaces/shared-link.repository';
|
import { ISharedLinkRepository } from 'src/interfaces/shared-link.interface';
|
||||||
import { Instrumentation } from 'src/utils/instrumentation';
|
import { Instrumentation } from 'src/utils/instrumentation';
|
||||||
import { Repository } from 'typeorm';
|
import { Repository } from 'typeorm';
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@ import { InjectRepository } from '@nestjs/typeorm';
|
|||||||
import { readFile } from 'node:fs/promises';
|
import { readFile } from 'node:fs/promises';
|
||||||
import { Chunked, DummyValue, GenerateSql } from 'src/decorators';
|
import { Chunked, DummyValue, GenerateSql } from 'src/decorators';
|
||||||
import { SystemConfigEntity } from 'src/entities/system-config.entity';
|
import { SystemConfigEntity } from 'src/entities/system-config.entity';
|
||||||
import { ISystemConfigRepository } from 'src/interfaces/system-config.repository';
|
import { ISystemConfigRepository } from 'src/interfaces/system-config.interface';
|
||||||
import { Instrumentation } from 'src/utils/instrumentation';
|
import { Instrumentation } from 'src/utils/instrumentation';
|
||||||
import { In, Repository } from 'typeorm';
|
import { In, Repository } from 'typeorm';
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { InjectRepository } from '@nestjs/typeorm';
|
import { InjectRepository } from '@nestjs/typeorm';
|
||||||
import { SystemMetadata, SystemMetadataEntity } from 'src/entities/system-metadata.entity';
|
import { SystemMetadata, SystemMetadataEntity } from 'src/entities/system-metadata.entity';
|
||||||
import { ISystemMetadataRepository } from 'src/interfaces/system-metadata.repository';
|
import { ISystemMetadataRepository } from 'src/interfaces/system-metadata.interface';
|
||||||
import { Instrumentation } from 'src/utils/instrumentation';
|
import { Instrumentation } from 'src/utils/instrumentation';
|
||||||
import { Repository } from 'typeorm';
|
import { Repository } from 'typeorm';
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@ import { Injectable } from '@nestjs/common';
|
|||||||
import { InjectRepository } from '@nestjs/typeorm';
|
import { InjectRepository } from '@nestjs/typeorm';
|
||||||
import { AssetEntity } from 'src/entities/asset.entity';
|
import { AssetEntity } from 'src/entities/asset.entity';
|
||||||
import { TagEntity } from 'src/entities/tag.entity';
|
import { TagEntity } from 'src/entities/tag.entity';
|
||||||
import { ITagRepository } from 'src/interfaces/tag.repository';
|
import { ITagRepository } from 'src/interfaces/tag.interface';
|
||||||
import { Instrumentation } from 'src/utils/instrumentation';
|
import { Instrumentation } from 'src/utils/instrumentation';
|
||||||
import { Repository } from 'typeorm';
|
import { Repository } from 'typeorm';
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@ import { Injectable } from '@nestjs/common';
|
|||||||
import { InjectRepository } from '@nestjs/typeorm';
|
import { InjectRepository } from '@nestjs/typeorm';
|
||||||
import { DummyValue, GenerateSql } from 'src/decorators';
|
import { DummyValue, GenerateSql } from 'src/decorators';
|
||||||
import { UserTokenEntity } from 'src/entities/user-token.entity';
|
import { UserTokenEntity } from 'src/entities/user-token.entity';
|
||||||
import { IUserTokenRepository } from 'src/interfaces/user-token.repository';
|
import { IUserTokenRepository } from 'src/interfaces/user-token.interface';
|
||||||
import { Instrumentation } from 'src/utils/instrumentation';
|
import { Instrumentation } from 'src/utils/instrumentation';
|
||||||
import { Repository } from 'typeorm';
|
import { Repository } from 'typeorm';
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ import {
|
|||||||
UserFindOptions,
|
UserFindOptions,
|
||||||
UserListFilter,
|
UserListFilter,
|
||||||
UserStatsQueryResponse,
|
UserStatsQueryResponse,
|
||||||
} from 'src/interfaces/user.repository';
|
} from 'src/interfaces/user.interface';
|
||||||
import { Instrumentation } from 'src/utils/instrumentation';
|
import { Instrumentation } from 'src/utils/instrumentation';
|
||||||
import { IsNull, Not, Repository } from 'typeorm';
|
import { IsNull, Not, Repository } from 'typeorm';
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { BadRequestException } from '@nestjs/common';
|
import { BadRequestException } from '@nestjs/common';
|
||||||
import { ReactionType } from 'src/dtos/activity.dto';
|
import { ReactionType } from 'src/dtos/activity.dto';
|
||||||
import { IActivityRepository } from 'src/interfaces/activity.repository';
|
import { IActivityRepository } from 'src/interfaces/activity.interface';
|
||||||
import { ActivityService } from 'src/services/activity.service';
|
import { ActivityService } from 'src/services/activity.service';
|
||||||
import { activityStub } from 'test/fixtures/activity.stub';
|
import { activityStub } from 'test/fixtures/activity.stub';
|
||||||
import { authStub } from 'test/fixtures/auth.stub';
|
import { authStub } from 'test/fixtures/auth.stub';
|
||||||
|
@ -13,8 +13,8 @@ import {
|
|||||||
} from 'src/dtos/activity.dto';
|
} from 'src/dtos/activity.dto';
|
||||||
import { AuthDto } from 'src/dtos/auth.dto';
|
import { AuthDto } from 'src/dtos/auth.dto';
|
||||||
import { ActivityEntity } from 'src/entities/activity.entity';
|
import { ActivityEntity } from 'src/entities/activity.entity';
|
||||||
import { IAccessRepository } from 'src/interfaces/access.repository';
|
import { IAccessRepository } from 'src/interfaces/access.interface';
|
||||||
import { IActivityRepository } from 'src/interfaces/activity.repository';
|
import { IActivityRepository } from 'src/interfaces/activity.interface';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class ActivityService {
|
export class ActivityService {
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import { BadRequestException } from '@nestjs/common';
|
import { BadRequestException } from '@nestjs/common';
|
||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
import { BulkIdErrorReason } from 'src/dtos/asset-ids.response.dto';
|
import { BulkIdErrorReason } from 'src/dtos/asset-ids.response.dto';
|
||||||
import { IAlbumRepository } from 'src/interfaces/album.repository';
|
import { IAlbumRepository } from 'src/interfaces/album.interface';
|
||||||
import { IAssetRepository } from 'src/interfaces/asset.repository';
|
import { IAssetRepository } from 'src/interfaces/asset.interface';
|
||||||
import { IUserRepository } from 'src/interfaces/user.repository';
|
import { IUserRepository } from 'src/interfaces/user.interface';
|
||||||
import { AlbumService } from 'src/services/album.service';
|
import { AlbumService } from 'src/services/album.service';
|
||||||
import { albumStub } from 'test/fixtures/album.stub';
|
import { albumStub } from 'test/fixtures/album.stub';
|
||||||
import { authStub } from 'test/fixtures/auth.stub';
|
import { authStub } from 'test/fixtures/auth.stub';
|
||||||
|
@ -17,10 +17,10 @@ import { AuthDto } from 'src/dtos/auth.dto';
|
|||||||
import { AlbumEntity } from 'src/entities/album.entity';
|
import { AlbumEntity } from 'src/entities/album.entity';
|
||||||
import { AssetEntity } from 'src/entities/asset.entity';
|
import { AssetEntity } from 'src/entities/asset.entity';
|
||||||
import { UserEntity } from 'src/entities/user.entity';
|
import { UserEntity } from 'src/entities/user.entity';
|
||||||
import { IAccessRepository } from 'src/interfaces/access.repository';
|
import { IAccessRepository } from 'src/interfaces/access.interface';
|
||||||
import { AlbumAssetCount, AlbumInfoOptions, IAlbumRepository } from 'src/interfaces/album.repository';
|
import { AlbumAssetCount, AlbumInfoOptions, IAlbumRepository } from 'src/interfaces/album.interface';
|
||||||
import { IAssetRepository } from 'src/interfaces/asset.repository';
|
import { IAssetRepository } from 'src/interfaces/asset.interface';
|
||||||
import { IUserRepository } from 'src/interfaces/user.repository';
|
import { IUserRepository } from 'src/interfaces/user.interface';
|
||||||
import { setUnion } from 'src/utils/set';
|
import { setUnion } from 'src/utils/set';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { BadRequestException } from '@nestjs/common';
|
import { BadRequestException } from '@nestjs/common';
|
||||||
import { IKeyRepository } from 'src/interfaces/api-key.repository';
|
import { IKeyRepository } from 'src/interfaces/api-key.interface';
|
||||||
import { ICryptoRepository } from 'src/interfaces/crypto.repository';
|
import { ICryptoRepository } from 'src/interfaces/crypto.interface';
|
||||||
import { APIKeyService } from 'src/services/api-key.service';
|
import { APIKeyService } from 'src/services/api-key.service';
|
||||||
import { keyStub } from 'test/fixtures/api-key.stub';
|
import { keyStub } from 'test/fixtures/api-key.stub';
|
||||||
import { authStub } from 'test/fixtures/auth.stub';
|
import { authStub } from 'test/fixtures/auth.stub';
|
||||||
|
@ -2,8 +2,8 @@ import { BadRequestException, Inject, Injectable } from '@nestjs/common';
|
|||||||
import { APIKeyCreateDto, APIKeyCreateResponseDto, APIKeyResponseDto } from 'src/dtos/api-key.dto';
|
import { APIKeyCreateDto, APIKeyCreateResponseDto, APIKeyResponseDto } from 'src/dtos/api-key.dto';
|
||||||
import { AuthDto } from 'src/dtos/auth.dto';
|
import { AuthDto } from 'src/dtos/auth.dto';
|
||||||
import { APIKeyEntity } from 'src/entities/api-key.entity';
|
import { APIKeyEntity } from 'src/entities/api-key.entity';
|
||||||
import { IKeyRepository } from 'src/interfaces/api-key.repository';
|
import { IKeyRepository } from 'src/interfaces/api-key.interface';
|
||||||
import { ICryptoRepository } from 'src/interfaces/crypto.repository';
|
import { ICryptoRepository } from 'src/interfaces/crypto.interface';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class APIKeyService {
|
export class APIKeyService {
|
||||||
|
@ -3,14 +3,14 @@ import { when } from 'jest-when';
|
|||||||
import { mapAsset } from 'src/dtos/asset-response.dto';
|
import { mapAsset } from 'src/dtos/asset-response.dto';
|
||||||
import { AssetJobName, AssetStatsResponseDto, UploadFieldName } from 'src/dtos/asset.dto';
|
import { AssetJobName, AssetStatsResponseDto, UploadFieldName } from 'src/dtos/asset.dto';
|
||||||
import { AssetEntity, AssetType } from 'src/entities/asset.entity';
|
import { AssetEntity, AssetType } from 'src/entities/asset.entity';
|
||||||
import { IAssetStackRepository } from 'src/interfaces/asset-stack.repository';
|
import { IAssetStackRepository } from 'src/interfaces/asset-stack.interface';
|
||||||
import { AssetStats, IAssetRepository, TimeBucketSize } from 'src/interfaces/asset.repository';
|
import { AssetStats, IAssetRepository, TimeBucketSize } from 'src/interfaces/asset.interface';
|
||||||
import { ClientEvent, ICommunicationRepository } from 'src/interfaces/communication.repository';
|
import { ClientEvent, ICommunicationRepository } from 'src/interfaces/communication.interface';
|
||||||
import { IJobRepository, JobItem, JobName } from 'src/interfaces/job.repository';
|
import { IJobRepository, JobItem, JobName } from 'src/interfaces/job.interface';
|
||||||
import { IPartnerRepository } from 'src/interfaces/partner.repository';
|
import { IPartnerRepository } from 'src/interfaces/partner.interface';
|
||||||
import { IStorageRepository } from 'src/interfaces/storage.repository';
|
import { IStorageRepository } from 'src/interfaces/storage.interface';
|
||||||
import { ISystemConfigRepository } from 'src/interfaces/system-config.repository';
|
import { ISystemConfigRepository } from 'src/interfaces/system-config.interface';
|
||||||
import { IUserRepository } from 'src/interfaces/user.repository';
|
import { IUserRepository } from 'src/interfaces/user.interface';
|
||||||
import { AssetService } from 'src/services/asset.service';
|
import { AssetService } from 'src/services/asset.service';
|
||||||
import { assetStackStub, assetStub } from 'test/fixtures/asset.stub';
|
import { assetStackStub, assetStub } from 'test/fixtures/asset.stub';
|
||||||
import { authStub } from 'test/fixtures/auth.stub';
|
import { authStub } from 'test/fixtures/auth.stub';
|
||||||
|
@ -28,10 +28,10 @@ import { UpdateStackParentDto } from 'src/dtos/stack.dto';
|
|||||||
import { TimeBucketAssetDto, TimeBucketDto, TimeBucketResponseDto } from 'src/dtos/time-bucket.dto';
|
import { TimeBucketAssetDto, TimeBucketDto, TimeBucketResponseDto } from 'src/dtos/time-bucket.dto';
|
||||||
import { AssetEntity } from 'src/entities/asset.entity';
|
import { AssetEntity } from 'src/entities/asset.entity';
|
||||||
import { LibraryType } from 'src/entities/library.entity';
|
import { LibraryType } from 'src/entities/library.entity';
|
||||||
import { IAccessRepository } from 'src/interfaces/access.repository';
|
import { IAccessRepository } from 'src/interfaces/access.interface';
|
||||||
import { IAssetStackRepository } from 'src/interfaces/asset-stack.repository';
|
import { IAssetStackRepository } from 'src/interfaces/asset-stack.interface';
|
||||||
import { IAssetRepository, TimeBucketOptions } from 'src/interfaces/asset.repository';
|
import { IAssetRepository, TimeBucketOptions } from 'src/interfaces/asset.interface';
|
||||||
import { ClientEvent, ICommunicationRepository } from 'src/interfaces/communication.repository';
|
import { ClientEvent, ICommunicationRepository } from 'src/interfaces/communication.interface';
|
||||||
import {
|
import {
|
||||||
IAssetDeletionJob,
|
IAssetDeletionJob,
|
||||||
IJobRepository,
|
IJobRepository,
|
||||||
@ -40,11 +40,11 @@ import {
|
|||||||
JobItem,
|
JobItem,
|
||||||
JobName,
|
JobName,
|
||||||
JobStatus,
|
JobStatus,
|
||||||
} from 'src/interfaces/job.repository';
|
} from 'src/interfaces/job.interface';
|
||||||
import { IPartnerRepository } from 'src/interfaces/partner.repository';
|
import { IPartnerRepository } from 'src/interfaces/partner.interface';
|
||||||
import { IStorageRepository } from 'src/interfaces/storage.repository';
|
import { IStorageRepository } from 'src/interfaces/storage.interface';
|
||||||
import { ISystemConfigRepository } from 'src/interfaces/system-config.repository';
|
import { ISystemConfigRepository } from 'src/interfaces/system-config.interface';
|
||||||
import { IUserRepository } from 'src/interfaces/user.repository';
|
import { IUserRepository } from 'src/interfaces/user.interface';
|
||||||
import { ImmichLogger } from 'src/utils/logger';
|
import { ImmichLogger } from 'src/utils/logger';
|
||||||
import { mimeTypes } from 'src/utils/mime-types';
|
import { mimeTypes } from 'src/utils/mime-types';
|
||||||
import { usePagination } from 'src/utils/pagination';
|
import { usePagination } from 'src/utils/pagination';
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
import { DatabaseAction, EntityType } from 'src/entities/audit.entity';
|
import { DatabaseAction, EntityType } from 'src/entities/audit.entity';
|
||||||
import { IAssetRepository } from 'src/interfaces/asset.repository';
|
import { IAssetRepository } from 'src/interfaces/asset.interface';
|
||||||
import { IAuditRepository } from 'src/interfaces/audit.repository';
|
import { IAuditRepository } from 'src/interfaces/audit.interface';
|
||||||
import { ICryptoRepository } from 'src/interfaces/crypto.repository';
|
import { ICryptoRepository } from 'src/interfaces/crypto.interface';
|
||||||
import { JobStatus } from 'src/interfaces/job.repository';
|
import { JobStatus } from 'src/interfaces/job.interface';
|
||||||
import { IPersonRepository } from 'src/interfaces/person.repository';
|
import { IPersonRepository } from 'src/interfaces/person.interface';
|
||||||
import { IStorageRepository } from 'src/interfaces/storage.repository';
|
import { IStorageRepository } from 'src/interfaces/storage.interface';
|
||||||
import { IUserRepository } from 'src/interfaces/user.repository';
|
import { IUserRepository } from 'src/interfaces/user.interface';
|
||||||
import { AuditService } from 'src/services/audit.service';
|
import { AuditService } from 'src/services/audit.service';
|
||||||
import { auditStub } from 'test/fixtures/audit.stub';
|
import { auditStub } from 'test/fixtures/audit.stub';
|
||||||
import { authStub } from 'test/fixtures/auth.stub';
|
import { authStub } from 'test/fixtures/auth.stub';
|
||||||
|
@ -15,14 +15,14 @@ import {
|
|||||||
import { AuthDto } from 'src/dtos/auth.dto';
|
import { AuthDto } from 'src/dtos/auth.dto';
|
||||||
import { DatabaseAction } from 'src/entities/audit.entity';
|
import { DatabaseAction } from 'src/entities/audit.entity';
|
||||||
import { AssetPathType, PersonPathType, UserPathType } from 'src/entities/move.entity';
|
import { AssetPathType, PersonPathType, UserPathType } from 'src/entities/move.entity';
|
||||||
import { IAccessRepository } from 'src/interfaces/access.repository';
|
import { IAccessRepository } from 'src/interfaces/access.interface';
|
||||||
import { IAssetRepository } from 'src/interfaces/asset.repository';
|
import { IAssetRepository } from 'src/interfaces/asset.interface';
|
||||||
import { IAuditRepository } from 'src/interfaces/audit.repository';
|
import { IAuditRepository } from 'src/interfaces/audit.interface';
|
||||||
import { ICryptoRepository } from 'src/interfaces/crypto.repository';
|
import { ICryptoRepository } from 'src/interfaces/crypto.interface';
|
||||||
import { JOBS_ASSET_PAGINATION_SIZE, JobStatus } from 'src/interfaces/job.repository';
|
import { JOBS_ASSET_PAGINATION_SIZE, JobStatus } from 'src/interfaces/job.interface';
|
||||||
import { IPersonRepository } from 'src/interfaces/person.repository';
|
import { IPersonRepository } from 'src/interfaces/person.interface';
|
||||||
import { IStorageRepository } from 'src/interfaces/storage.repository';
|
import { IStorageRepository } from 'src/interfaces/storage.interface';
|
||||||
import { IUserRepository } from 'src/interfaces/user.repository';
|
import { IUserRepository } from 'src/interfaces/user.interface';
|
||||||
import { ImmichLogger } from 'src/utils/logger';
|
import { ImmichLogger } from 'src/utils/logger';
|
||||||
import { usePagination } from 'src/utils/pagination';
|
import { usePagination } from 'src/utils/pagination';
|
||||||
|
|
||||||
|
@ -5,13 +5,13 @@ import { Socket } from 'socket.io';
|
|||||||
import { AuthType } from 'src/constants';
|
import { AuthType } from 'src/constants';
|
||||||
import { AuthDto, SignUpDto } from 'src/dtos/auth.dto';
|
import { AuthDto, SignUpDto } from 'src/dtos/auth.dto';
|
||||||
import { UserEntity } from 'src/entities/user.entity';
|
import { UserEntity } from 'src/entities/user.entity';
|
||||||
import { IKeyRepository } from 'src/interfaces/api-key.repository';
|
import { IKeyRepository } from 'src/interfaces/api-key.interface';
|
||||||
import { ICryptoRepository } from 'src/interfaces/crypto.repository';
|
import { ICryptoRepository } from 'src/interfaces/crypto.interface';
|
||||||
import { ILibraryRepository } from 'src/interfaces/library.repository';
|
import { ILibraryRepository } from 'src/interfaces/library.interface';
|
||||||
import { ISharedLinkRepository } from 'src/interfaces/shared-link.repository';
|
import { ISharedLinkRepository } from 'src/interfaces/shared-link.interface';
|
||||||
import { ISystemConfigRepository } from 'src/interfaces/system-config.repository';
|
import { ISystemConfigRepository } from 'src/interfaces/system-config.interface';
|
||||||
import { IUserTokenRepository } from 'src/interfaces/user-token.repository';
|
import { IUserTokenRepository } from 'src/interfaces/user-token.interface';
|
||||||
import { IUserRepository } from 'src/interfaces/user.repository';
|
import { IUserRepository } from 'src/interfaces/user.interface';
|
||||||
import { AuthService } from 'src/services/auth.service';
|
import { AuthService } from 'src/services/auth.service';
|
||||||
import { keyStub } from 'test/fixtures/api-key.stub';
|
import { keyStub } from 'test/fixtures/api-key.stub';
|
||||||
import { authStub, loginResponseStub } from 'test/fixtures/auth.stub';
|
import { authStub, loginResponseStub } from 'test/fixtures/auth.stub';
|
||||||
|
@ -39,14 +39,14 @@ import {
|
|||||||
import { UserResponseDto, mapUser } from 'src/dtos/user.dto';
|
import { UserResponseDto, mapUser } from 'src/dtos/user.dto';
|
||||||
import { SystemConfig } from 'src/entities/system-config.entity';
|
import { SystemConfig } from 'src/entities/system-config.entity';
|
||||||
import { UserEntity } from 'src/entities/user.entity';
|
import { UserEntity } from 'src/entities/user.entity';
|
||||||
import { IAccessRepository } from 'src/interfaces/access.repository';
|
import { IAccessRepository } from 'src/interfaces/access.interface';
|
||||||
import { IKeyRepository } from 'src/interfaces/api-key.repository';
|
import { IKeyRepository } from 'src/interfaces/api-key.interface';
|
||||||
import { ICryptoRepository } from 'src/interfaces/crypto.repository';
|
import { ICryptoRepository } from 'src/interfaces/crypto.interface';
|
||||||
import { ILibraryRepository } from 'src/interfaces/library.repository';
|
import { ILibraryRepository } from 'src/interfaces/library.interface';
|
||||||
import { ISharedLinkRepository } from 'src/interfaces/shared-link.repository';
|
import { ISharedLinkRepository } from 'src/interfaces/shared-link.interface';
|
||||||
import { ISystemConfigRepository } from 'src/interfaces/system-config.repository';
|
import { ISystemConfigRepository } from 'src/interfaces/system-config.interface';
|
||||||
import { IUserTokenRepository } from 'src/interfaces/user-token.repository';
|
import { IUserTokenRepository } from 'src/interfaces/user-token.interface';
|
||||||
import { IUserRepository } from 'src/interfaces/user.repository';
|
import { IUserRepository } from 'src/interfaces/user.interface';
|
||||||
import { HumanReadableSize } from 'src/utils/bytes';
|
import { HumanReadableSize } from 'src/utils/bytes';
|
||||||
import { ImmichLogger } from 'src/utils/logger';
|
import { ImmichLogger } from 'src/utils/logger';
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { DatabaseExtension, IDatabaseRepository, VectorIndex } from 'src/interfaces/database.repository';
|
import { DatabaseExtension, IDatabaseRepository, VectorIndex } from 'src/interfaces/database.interface';
|
||||||
import { DatabaseService } from 'src/services/database.service';
|
import { DatabaseService } from 'src/services/database.service';
|
||||||
import { ImmichLogger } from 'src/utils/logger';
|
import { ImmichLogger } from 'src/utils/logger';
|
||||||
import { Version, VersionType } from 'src/utils/version';
|
import { Version, VersionType } from 'src/utils/version';
|
||||||
|
@ -6,7 +6,7 @@ import {
|
|||||||
VectorExtension,
|
VectorExtension,
|
||||||
VectorIndex,
|
VectorIndex,
|
||||||
extName,
|
extName,
|
||||||
} from 'src/interfaces/database.repository';
|
} from 'src/interfaces/database.interface';
|
||||||
import { ImmichLogger } from 'src/utils/logger';
|
import { ImmichLogger } from 'src/utils/logger';
|
||||||
import { Version, VersionType } from 'src/utils/version';
|
import { Version, VersionType } from 'src/utils/version';
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import { BadRequestException } from '@nestjs/common';
|
import { BadRequestException } from '@nestjs/common';
|
||||||
import { when } from 'jest-when';
|
import { when } from 'jest-when';
|
||||||
import { DownloadResponseDto } from 'src/dtos/download.dto';
|
import { DownloadResponseDto } from 'src/dtos/download.dto';
|
||||||
import { IAssetRepository } from 'src/interfaces/asset.repository';
|
import { IAssetRepository } from 'src/interfaces/asset.interface';
|
||||||
import { IStorageRepository } from 'src/interfaces/storage.repository';
|
import { IStorageRepository } from 'src/interfaces/storage.interface';
|
||||||
import { DownloadService } from 'src/services/download.service';
|
import { DownloadService } from 'src/services/download.service';
|
||||||
import { CacheControl, ImmichFileResponse } from 'src/utils/file';
|
import { CacheControl, ImmichFileResponse } from 'src/utils/file';
|
||||||
import { assetStub } from 'test/fixtures/asset.stub';
|
import { assetStub } from 'test/fixtures/asset.stub';
|
||||||
|
@ -5,9 +5,9 @@ import { AssetIdsDto } from 'src/dtos/asset.dto';
|
|||||||
import { AuthDto } from 'src/dtos/auth.dto';
|
import { AuthDto } from 'src/dtos/auth.dto';
|
||||||
import { DownloadArchiveInfo, DownloadInfoDto, DownloadResponseDto } from 'src/dtos/download.dto';
|
import { DownloadArchiveInfo, DownloadInfoDto, DownloadResponseDto } from 'src/dtos/download.dto';
|
||||||
import { AssetEntity } from 'src/entities/asset.entity';
|
import { AssetEntity } from 'src/entities/asset.entity';
|
||||||
import { IAccessRepository } from 'src/interfaces/access.repository';
|
import { IAccessRepository } from 'src/interfaces/access.interface';
|
||||||
import { IAssetRepository } from 'src/interfaces/asset.repository';
|
import { IAssetRepository } from 'src/interfaces/asset.interface';
|
||||||
import { IStorageRepository, ImmichReadStream } from 'src/interfaces/storage.repository';
|
import { IStorageRepository, ImmichReadStream } from 'src/interfaces/storage.interface';
|
||||||
import { HumanReadableSize } from 'src/utils/bytes';
|
import { HumanReadableSize } from 'src/utils/bytes';
|
||||||
import { CacheControl, ImmichFileResponse } from 'src/utils/file';
|
import { CacheControl, ImmichFileResponse } from 'src/utils/file';
|
||||||
import { mimeTypes } from 'src/utils/mime-types';
|
import { mimeTypes } from 'src/utils/mime-types';
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import { BadRequestException } from '@nestjs/common';
|
import { BadRequestException } from '@nestjs/common';
|
||||||
import { FeatureFlag, SystemConfigCore } from 'src/cores/system-config.core';
|
import { FeatureFlag, SystemConfigCore } from 'src/cores/system-config.core';
|
||||||
import { SystemConfig, SystemConfigKey } from 'src/entities/system-config.entity';
|
import { SystemConfig, SystemConfigKey } from 'src/entities/system-config.entity';
|
||||||
import { IAssetRepository } from 'src/interfaces/asset.repository';
|
import { IAssetRepository } from 'src/interfaces/asset.interface';
|
||||||
import { ICommunicationRepository } from 'src/interfaces/communication.repository';
|
import { ICommunicationRepository } from 'src/interfaces/communication.interface';
|
||||||
import {
|
import {
|
||||||
IJobRepository,
|
IJobRepository,
|
||||||
JobCommand,
|
JobCommand,
|
||||||
@ -11,9 +11,9 @@ import {
|
|||||||
JobName,
|
JobName,
|
||||||
JobStatus,
|
JobStatus,
|
||||||
QueueName,
|
QueueName,
|
||||||
} from 'src/interfaces/job.repository';
|
} from 'src/interfaces/job.interface';
|
||||||
import { IPersonRepository } from 'src/interfaces/person.repository';
|
import { IPersonRepository } from 'src/interfaces/person.interface';
|
||||||
import { ISystemConfigRepository } from 'src/interfaces/system-config.repository';
|
import { ISystemConfigRepository } from 'src/interfaces/system-config.interface';
|
||||||
import { JobService } from 'src/services/job.service';
|
import { JobService } from 'src/services/job.service';
|
||||||
import { assetStub } from 'test/fixtures/asset.stub';
|
import { assetStub } from 'test/fixtures/asset.stub';
|
||||||
import { newAssetRepositoryMock } from 'test/repositories/asset.repository.mock';
|
import { newAssetRepositoryMock } from 'test/repositories/asset.repository.mock';
|
||||||
|
@ -3,8 +3,8 @@ import { FeatureFlag, SystemConfigCore } from 'src/cores/system-config.core';
|
|||||||
import { mapAsset } from 'src/dtos/asset-response.dto';
|
import { mapAsset } from 'src/dtos/asset-response.dto';
|
||||||
import { AllJobStatusResponseDto, JobCommandDto, JobStatusDto } from 'src/dtos/job.dto';
|
import { AllJobStatusResponseDto, JobCommandDto, JobStatusDto } from 'src/dtos/job.dto';
|
||||||
import { AssetType } from 'src/entities/asset.entity';
|
import { AssetType } from 'src/entities/asset.entity';
|
||||||
import { IAssetRepository } from 'src/interfaces/asset.repository';
|
import { IAssetRepository } from 'src/interfaces/asset.interface';
|
||||||
import { ClientEvent, ICommunicationRepository } from 'src/interfaces/communication.repository';
|
import { ClientEvent, ICommunicationRepository } from 'src/interfaces/communication.interface';
|
||||||
import {
|
import {
|
||||||
ConcurrentQueueName,
|
ConcurrentQueueName,
|
||||||
IJobRepository,
|
IJobRepository,
|
||||||
@ -15,9 +15,9 @@ import {
|
|||||||
JobStatus,
|
JobStatus,
|
||||||
QueueCleanType,
|
QueueCleanType,
|
||||||
QueueName,
|
QueueName,
|
||||||
} from 'src/interfaces/job.repository';
|
} from 'src/interfaces/job.interface';
|
||||||
import { IPersonRepository } from 'src/interfaces/person.repository';
|
import { IPersonRepository } from 'src/interfaces/person.interface';
|
||||||
import { ISystemConfigRepository } from 'src/interfaces/system-config.repository';
|
import { ISystemConfigRepository } from 'src/interfaces/system-config.interface';
|
||||||
import { ImmichLogger } from 'src/utils/logger';
|
import { ImmichLogger } from 'src/utils/logger';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
|
@ -8,13 +8,13 @@ import { AssetType } from 'src/entities/asset.entity';
|
|||||||
import { LibraryType } from 'src/entities/library.entity';
|
import { LibraryType } from 'src/entities/library.entity';
|
||||||
import { SystemConfig, SystemConfigKey } from 'src/entities/system-config.entity';
|
import { SystemConfig, SystemConfigKey } from 'src/entities/system-config.entity';
|
||||||
import { UserEntity } from 'src/entities/user.entity';
|
import { UserEntity } from 'src/entities/user.entity';
|
||||||
import { IAssetRepository } from 'src/interfaces/asset.repository';
|
import { IAssetRepository } from 'src/interfaces/asset.interface';
|
||||||
import { ICryptoRepository } from 'src/interfaces/crypto.repository';
|
import { ICryptoRepository } from 'src/interfaces/crypto.interface';
|
||||||
import { IDatabaseRepository } from 'src/interfaces/database.repository';
|
import { IDatabaseRepository } from 'src/interfaces/database.interface';
|
||||||
import { IJobRepository, ILibraryFileJob, ILibraryRefreshJob, JobName, JobStatus } from 'src/interfaces/job.repository';
|
import { IJobRepository, ILibraryFileJob, ILibraryRefreshJob, JobName, JobStatus } from 'src/interfaces/job.interface';
|
||||||
import { ILibraryRepository } from 'src/interfaces/library.repository';
|
import { ILibraryRepository } from 'src/interfaces/library.interface';
|
||||||
import { IStorageRepository, StorageEventType } from 'src/interfaces/storage.repository';
|
import { IStorageRepository, StorageEventType } from 'src/interfaces/storage.interface';
|
||||||
import { ISystemConfigRepository } from 'src/interfaces/system-config.repository';
|
import { ISystemConfigRepository } from 'src/interfaces/system-config.interface';
|
||||||
import { LibraryService } from 'src/services/library.service';
|
import { LibraryService } from 'src/services/library.service';
|
||||||
import { assetStub } from 'test/fixtures/asset.stub';
|
import { assetStub } from 'test/fixtures/asset.stub';
|
||||||
import { authStub } from 'test/fixtures/auth.stub';
|
import { authStub } from 'test/fixtures/auth.stub';
|
||||||
|
@ -22,10 +22,10 @@ import {
|
|||||||
} from 'src/dtos/library.dto';
|
} from 'src/dtos/library.dto';
|
||||||
import { AssetType } from 'src/entities/asset.entity';
|
import { AssetType } from 'src/entities/asset.entity';
|
||||||
import { LibraryEntity, LibraryType } from 'src/entities/library.entity';
|
import { LibraryEntity, LibraryType } from 'src/entities/library.entity';
|
||||||
import { IAssetRepository, WithProperty } from 'src/interfaces/asset.repository';
|
import { IAssetRepository, WithProperty } from 'src/interfaces/asset.interface';
|
||||||
import { InternalEvent, InternalEventMap } from 'src/interfaces/communication.repository';
|
import { InternalEvent, InternalEventMap } from 'src/interfaces/communication.interface';
|
||||||
import { ICryptoRepository } from 'src/interfaces/crypto.repository';
|
import { ICryptoRepository } from 'src/interfaces/crypto.interface';
|
||||||
import { DatabaseLock, IDatabaseRepository } from 'src/interfaces/database.repository';
|
import { DatabaseLock, IDatabaseRepository } from 'src/interfaces/database.interface';
|
||||||
import {
|
import {
|
||||||
IBaseJob,
|
IBaseJob,
|
||||||
IEntityJob,
|
IEntityJob,
|
||||||
@ -35,10 +35,10 @@ import {
|
|||||||
JOBS_ASSET_PAGINATION_SIZE,
|
JOBS_ASSET_PAGINATION_SIZE,
|
||||||
JobName,
|
JobName,
|
||||||
JobStatus,
|
JobStatus,
|
||||||
} from 'src/interfaces/job.repository';
|
} from 'src/interfaces/job.interface';
|
||||||
import { ILibraryRepository } from 'src/interfaces/library.repository';
|
import { ILibraryRepository } from 'src/interfaces/library.interface';
|
||||||
import { IStorageRepository, StorageEventType } from 'src/interfaces/storage.repository';
|
import { IStorageRepository, StorageEventType } from 'src/interfaces/storage.interface';
|
||||||
import { ISystemConfigRepository } from 'src/interfaces/system-config.repository';
|
import { ISystemConfigRepository } from 'src/interfaces/system-config.interface';
|
||||||
import { ImmichLogger } from 'src/utils/logger';
|
import { ImmichLogger } from 'src/utils/logger';
|
||||||
import { mimeTypes } from 'src/utils/mime-types';
|
import { mimeTypes } from 'src/utils/mime-types';
|
||||||
import { handlePromiseError } from 'src/utils/misc';
|
import { handlePromiseError } from 'src/utils/misc';
|
||||||
|
@ -10,14 +10,14 @@ import {
|
|||||||
TranscodePolicy,
|
TranscodePolicy,
|
||||||
VideoCodec,
|
VideoCodec,
|
||||||
} from 'src/entities/system-config.entity';
|
} from 'src/entities/system-config.entity';
|
||||||
import { IAssetRepository, WithoutProperty } from 'src/interfaces/asset.repository';
|
import { IAssetRepository, WithoutProperty } from 'src/interfaces/asset.interface';
|
||||||
import { ICryptoRepository } from 'src/interfaces/crypto.repository';
|
import { ICryptoRepository } from 'src/interfaces/crypto.interface';
|
||||||
import { IJobRepository, JobName, JobStatus } from 'src/interfaces/job.repository';
|
import { IJobRepository, JobName, JobStatus } from 'src/interfaces/job.interface';
|
||||||
import { IMediaRepository } from 'src/interfaces/media.repository';
|
import { IMediaRepository } from 'src/interfaces/media.interface';
|
||||||
import { IMoveRepository } from 'src/interfaces/move.repository';
|
import { IMoveRepository } from 'src/interfaces/move.interface';
|
||||||
import { IPersonRepository } from 'src/interfaces/person.repository';
|
import { IPersonRepository } from 'src/interfaces/person.interface';
|
||||||
import { IStorageRepository } from 'src/interfaces/storage.repository';
|
import { IStorageRepository } from 'src/interfaces/storage.interface';
|
||||||
import { ISystemConfigRepository } from 'src/interfaces/system-config.repository';
|
import { ISystemConfigRepository } from 'src/interfaces/system-config.interface';
|
||||||
import { MediaService } from 'src/services/media.service';
|
import { MediaService } from 'src/services/media.service';
|
||||||
import { assetStub } from 'test/fixtures/asset.stub';
|
import { assetStub } from 'test/fixtures/asset.stub';
|
||||||
import { faceStub } from 'test/fixtures/face.stub';
|
import { faceStub } from 'test/fixtures/face.stub';
|
||||||
|
@ -12,8 +12,8 @@ import {
|
|||||||
TranscodeTarget,
|
TranscodeTarget,
|
||||||
VideoCodec,
|
VideoCodec,
|
||||||
} from 'src/entities/system-config.entity';
|
} from 'src/entities/system-config.entity';
|
||||||
import { IAssetRepository, WithoutProperty } from 'src/interfaces/asset.repository';
|
import { IAssetRepository, WithoutProperty } from 'src/interfaces/asset.interface';
|
||||||
import { ICryptoRepository } from 'src/interfaces/crypto.repository';
|
import { ICryptoRepository } from 'src/interfaces/crypto.interface';
|
||||||
import {
|
import {
|
||||||
IBaseJob,
|
IBaseJob,
|
||||||
IEntityJob,
|
IEntityJob,
|
||||||
@ -23,17 +23,12 @@ import {
|
|||||||
JobName,
|
JobName,
|
||||||
JobStatus,
|
JobStatus,
|
||||||
QueueName,
|
QueueName,
|
||||||
} from 'src/interfaces/job.repository';
|
} from 'src/interfaces/job.interface';
|
||||||
import {
|
import { AudioStreamInfo, IMediaRepository, VideoCodecHWConfig, VideoStreamInfo } from 'src/interfaces/media.interface';
|
||||||
AudioStreamInfo,
|
import { IMoveRepository } from 'src/interfaces/move.interface';
|
||||||
IMediaRepository,
|
import { IPersonRepository } from 'src/interfaces/person.interface';
|
||||||
VideoCodecHWConfig,
|
import { IStorageRepository } from 'src/interfaces/storage.interface';
|
||||||
VideoStreamInfo,
|
import { ISystemConfigRepository } from 'src/interfaces/system-config.interface';
|
||||||
} 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 { ImmichLogger } from 'src/utils/logger';
|
import { ImmichLogger } from 'src/utils/logger';
|
||||||
import {
|
import {
|
||||||
H264Config,
|
H264Config,
|
||||||
|
@ -6,18 +6,18 @@ import { constants } from 'node:fs/promises';
|
|||||||
import { AssetType } from 'src/entities/asset.entity';
|
import { AssetType } from 'src/entities/asset.entity';
|
||||||
import { ExifEntity } from 'src/entities/exif.entity';
|
import { ExifEntity } from 'src/entities/exif.entity';
|
||||||
import { SystemConfigKey } from 'src/entities/system-config.entity';
|
import { SystemConfigKey } from 'src/entities/system-config.entity';
|
||||||
import { IAlbumRepository } from 'src/interfaces/album.repository';
|
import { IAlbumRepository } from 'src/interfaces/album.interface';
|
||||||
import { IAssetRepository, WithoutProperty } from 'src/interfaces/asset.repository';
|
import { IAssetRepository, WithoutProperty } from 'src/interfaces/asset.interface';
|
||||||
import { ClientEvent, ICommunicationRepository } from 'src/interfaces/communication.repository';
|
import { ClientEvent, ICommunicationRepository } from 'src/interfaces/communication.interface';
|
||||||
import { ICryptoRepository } from 'src/interfaces/crypto.repository';
|
import { ICryptoRepository } from 'src/interfaces/crypto.interface';
|
||||||
import { IDatabaseRepository } from 'src/interfaces/database.repository';
|
import { IDatabaseRepository } from 'src/interfaces/database.interface';
|
||||||
import { IJobRepository, JobName, JobStatus } from 'src/interfaces/job.repository';
|
import { IJobRepository, JobName, JobStatus } from 'src/interfaces/job.interface';
|
||||||
import { IMediaRepository } from 'src/interfaces/media.repository';
|
import { IMediaRepository } from 'src/interfaces/media.interface';
|
||||||
import { IMetadataRepository, ImmichTags } from 'src/interfaces/metadata.repository';
|
import { IMetadataRepository, ImmichTags } from 'src/interfaces/metadata.interface';
|
||||||
import { IMoveRepository } from 'src/interfaces/move.repository';
|
import { IMoveRepository } from 'src/interfaces/move.interface';
|
||||||
import { IPersonRepository } from 'src/interfaces/person.repository';
|
import { IPersonRepository } from 'src/interfaces/person.interface';
|
||||||
import { IStorageRepository } from 'src/interfaces/storage.repository';
|
import { IStorageRepository } from 'src/interfaces/storage.interface';
|
||||||
import { ISystemConfigRepository } from 'src/interfaces/system-config.repository';
|
import { ISystemConfigRepository } from 'src/interfaces/system-config.interface';
|
||||||
import { MetadataService, Orientation } from 'src/services/metadata.service';
|
import { MetadataService, Orientation } from 'src/services/metadata.service';
|
||||||
import { assetStub } from 'test/fixtures/asset.stub';
|
import { assetStub } from 'test/fixtures/asset.stub';
|
||||||
import { fileStub } from 'test/fixtures/file.stub';
|
import { fileStub } from 'test/fixtures/file.stub';
|
||||||
|
@ -10,11 +10,11 @@ import { StorageCore } from 'src/cores/storage.core';
|
|||||||
import { FeatureFlag, SystemConfigCore } from 'src/cores/system-config.core';
|
import { FeatureFlag, SystemConfigCore } from 'src/cores/system-config.core';
|
||||||
import { AssetEntity, AssetType } from 'src/entities/asset.entity';
|
import { AssetEntity, AssetType } from 'src/entities/asset.entity';
|
||||||
import { ExifEntity } from 'src/entities/exif.entity';
|
import { ExifEntity } from 'src/entities/exif.entity';
|
||||||
import { IAlbumRepository } from 'src/interfaces/album.repository';
|
import { IAlbumRepository } from 'src/interfaces/album.interface';
|
||||||
import { IAssetRepository, WithoutProperty } from 'src/interfaces/asset.repository';
|
import { IAssetRepository, WithoutProperty } from 'src/interfaces/asset.interface';
|
||||||
import { ClientEvent, ICommunicationRepository } from 'src/interfaces/communication.repository';
|
import { ClientEvent, ICommunicationRepository } from 'src/interfaces/communication.interface';
|
||||||
import { ICryptoRepository } from 'src/interfaces/crypto.repository';
|
import { ICryptoRepository } from 'src/interfaces/crypto.interface';
|
||||||
import { DatabaseLock, IDatabaseRepository } from 'src/interfaces/database.repository';
|
import { DatabaseLock, IDatabaseRepository } from 'src/interfaces/database.interface';
|
||||||
import {
|
import {
|
||||||
IBaseJob,
|
IBaseJob,
|
||||||
IEntityJob,
|
IEntityJob,
|
||||||
@ -24,13 +24,13 @@ import {
|
|||||||
JobName,
|
JobName,
|
||||||
JobStatus,
|
JobStatus,
|
||||||
QueueName,
|
QueueName,
|
||||||
} from 'src/interfaces/job.repository';
|
} from 'src/interfaces/job.interface';
|
||||||
import { IMediaRepository } from 'src/interfaces/media.repository';
|
import { IMediaRepository } from 'src/interfaces/media.interface';
|
||||||
import { IMetadataRepository, ImmichTags } from 'src/interfaces/metadata.repository';
|
import { IMetadataRepository, ImmichTags } from 'src/interfaces/metadata.interface';
|
||||||
import { IMoveRepository } from 'src/interfaces/move.repository';
|
import { IMoveRepository } from 'src/interfaces/move.interface';
|
||||||
import { IPersonRepository } from 'src/interfaces/person.repository';
|
import { IPersonRepository } from 'src/interfaces/person.interface';
|
||||||
import { IStorageRepository } from 'src/interfaces/storage.repository';
|
import { IStorageRepository } from 'src/interfaces/storage.interface';
|
||||||
import { ISystemConfigRepository } from 'src/interfaces/system-config.repository';
|
import { ISystemConfigRepository } from 'src/interfaces/system-config.interface';
|
||||||
import { ImmichLogger } from 'src/utils/logger';
|
import { ImmichLogger } from 'src/utils/logger';
|
||||||
import { handlePromiseError } from 'src/utils/misc';
|
import { handlePromiseError } from 'src/utils/misc';
|
||||||
import { usePagination } from 'src/utils/pagination';
|
import { usePagination } from 'src/utils/pagination';
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import { BadRequestException } from '@nestjs/common';
|
import { BadRequestException } from '@nestjs/common';
|
||||||
import { PartnerResponseDto } from 'src/dtos/partner.dto';
|
import { PartnerResponseDto } from 'src/dtos/partner.dto';
|
||||||
import { UserAvatarColor } from 'src/entities/user.entity';
|
import { UserAvatarColor } from 'src/entities/user.entity';
|
||||||
import { IAccessRepository } from 'src/interfaces/access.repository';
|
import { IAccessRepository } from 'src/interfaces/access.interface';
|
||||||
import { IPartnerRepository, PartnerDirection } from 'src/interfaces/partner.repository';
|
import { IPartnerRepository, PartnerDirection } from 'src/interfaces/partner.interface';
|
||||||
import { PartnerService } from 'src/services/partner.service';
|
import { PartnerService } from 'src/services/partner.service';
|
||||||
import { authStub } from 'test/fixtures/auth.stub';
|
import { authStub } from 'test/fixtures/auth.stub';
|
||||||
import { partnerStub } from 'test/fixtures/partner.stub';
|
import { partnerStub } from 'test/fixtures/partner.stub';
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user