feat: server imports linting (#31537)

This commit is contained in:
Daniel Dietzler
2026-09-14 14:51:31 +02:00
committed by GitHub
parent eb84a5ad7f
commit 221ddd31c4
319 changed files with 1844 additions and 552 deletions
+2 -2
View File
@@ -13,7 +13,7 @@
"editor.wordBasedSuggestions": "off" "editor.wordBasedSuggestions": "off"
}, },
"[javascript]": { "[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode", "editor.defaultFormatter": "dbaeumer.vscode-eslint",
"editor.formatOnSave": true "editor.formatOnSave": true
}, },
"[json]": { "[json]": {
@@ -30,7 +30,7 @@
"tailwindCSS.lint.suggestCanonicalClasses": "ignore" "tailwindCSS.lint.suggestCanonicalClasses": "ignore"
}, },
"[typescript]": { "[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode", "editor.defaultFormatter": "dbaeumer.vscode-eslint",
"editor.formatOnSave": true "editor.formatOnSave": true
}, },
"cSpell.words": ["immich"], "cSpell.words": ["immich"],
+1270 -10
View File
File diff suppressed because it is too large Load Diff
+1
View File
@@ -27,6 +27,7 @@ allowBuilds:
'@tailwindcss/oxide': true '@tailwindcss/oxide': true
core-js-pure: false core-js-pure: false
postman-code-generators: false postman-code-generators: false
unrs-resolver: false
overrides: overrides:
canvas: 3.2.3 canvas: 3.2.3
sharp: ^0.35.3 sharp: ^0.35.3
+1 -3
View File
@@ -2,7 +2,5 @@
"singleQuote": true, "singleQuote": true,
"trailingComma": "all", "trailingComma": "all",
"printWidth": 120, "printWidth": 120,
"semi": true, "semi": true
"organizeImportsSkipDestructiveCodeActions": true,
"plugins": ["prettier-plugin-organize-imports"]
} }
+17 -3
View File
@@ -1,14 +1,17 @@
import js from '@eslint/js'; import js from '@eslint/js';
import { importX } from 'eslint-plugin-import-x';
import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended'; import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended';
import eslintPluginUnicorn from 'eslint-plugin-unicorn'; import eslintPluginUnicorn from 'eslint-plugin-unicorn';
import { defineConfig } from 'eslint/config';
import globals from 'globals'; import globals from 'globals';
import typescriptEslint from 'typescript-eslint'; import typescriptEslint from 'typescript-eslint';
export default typescriptEslint.config([ export default defineConfig([
eslintPluginUnicorn.configs.recommended, eslintPluginUnicorn.configs.recommended,
eslintPluginPrettierRecommended,
js.configs.recommended, js.configs.recommended,
typescriptEslint.configs.recommended, typescriptEslint.configs.recommended,
importX.flatConfigs.recommended,
importX.flatConfigs.typescript,
{ {
ignores: ['eslint.config.mjs'], ignores: ['eslint.config.mjs'],
}, },
@@ -70,9 +73,19 @@ export default typescriptEslint.config([
'require-await': 'off', 'require-await': 'off',
'@typescript-eslint/require-await': 'error', '@typescript-eslint/require-await': 'error',
curly: 2, curly: 2,
'prettier/prettier': 0,
'object-shorthand': ['error', 'always'], 'object-shorthand': ['error', 'always'],
eqeqeq: 'error', eqeqeq: 'error',
'import-x/no-named-as-default': 'off',
'import-x/order': [
'error',
{
groups: [['builtin', 'external'], 'index', ['parent', 'sibling', 'type']],
alphabetize: { order: 'asc' },
named: true,
},
],
'import-x/newline-after-import': 'error',
'import-x/no-empty-named-blocks': 'error',
'no-restricted-imports': [ 'no-restricted-imports': [
'error', 'error',
@@ -95,4 +108,5 @@ export default typescriptEslint.config([
], ],
}, },
}, },
eslintPluginPrettierRecommended,
]); ]);
+2 -1
View File
@@ -154,13 +154,14 @@
"@vitest/coverage-v8": "^4.0.0", "@vitest/coverage-v8": "^4.0.0",
"eslint": "^10.0.0", "eslint": "^10.0.0",
"eslint-config-prettier": "^10.1.8", "eslint-config-prettier": "^10.1.8",
"eslint-import-resolver-typescript": "^4.4.5",
"eslint-plugin-import-x": "^4.17.1",
"eslint-plugin-prettier": "^5.1.3", "eslint-plugin-prettier": "^5.1.3",
"eslint-plugin-unicorn": "^73.0.0", "eslint-plugin-unicorn": "^73.0.0",
"globals": "^17.0.0", "globals": "^17.0.0",
"mock-fs": "^5.2.0", "mock-fs": "^5.2.0",
"pngjs": "^7.0.0", "pngjs": "^7.0.0",
"prettier": "^3.7.4", "prettier": "^3.7.4",
"prettier-plugin-organize-imports": "^4.0.0",
"sql-formatter": "^15.0.0", "sql-formatter": "^15.0.0",
"supertest": "^7.1.0", "supertest": "^7.1.0",
"tailwindcss": "^3.4.0", "tailwindcss": "^3.4.0",
+1 -1
View File
@@ -29,7 +29,7 @@ import { LoggingRepository } from 'src/repositories/logging.repository.js';
import { ProcessRepository } from 'src/repositories/process.repository.js'; import { ProcessRepository } from 'src/repositories/process.repository.js';
import { StorageRepository } from 'src/repositories/storage.repository.js'; import { StorageRepository } from 'src/repositories/storage.repository.js';
import { SystemMetadataRepository } from 'src/repositories/system-metadata.repository.js'; import { SystemMetadataRepository } from 'src/repositories/system-metadata.repository.js';
import { teardownTelemetry, TelemetryRepository } from 'src/repositories/telemetry.repository.js'; import { TelemetryRepository, teardownTelemetry } from 'src/repositories/telemetry.repository.js';
import { UserRepository } from 'src/repositories/user.repository.js'; import { UserRepository } from 'src/repositories/user.repository.js';
import { WebsocketRepository } from 'src/repositories/websocket.repository.js'; import { WebsocketRepository } from 'src/repositories/websocket.repository.js';
import { AuthService } from 'src/services/auth.service.js'; import { AuthService } from 'src/services/auth.service.js';
@@ -1,6 +1,6 @@
import request from 'supertest';
import { ActivityController } from 'src/controllers/activity.controller.js'; import { ActivityController } from 'src/controllers/activity.controller.js';
import { ActivityService } from 'src/services/activity.service.js'; import { ActivityService } from 'src/services/activity.service.js';
import request from 'supertest';
import { factory } from 'test/small.factory.js'; import { factory } from 'test/small.factory.js';
import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js';
@@ -1,6 +1,7 @@
import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Post, Query, Res } from '@nestjs/common'; import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Post, Query, Res } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
import type { Response } from 'express'; import type { Response } from 'express';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js'; import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { import {
ActivityCreateDto, ActivityCreateDto,
@@ -9,7 +10,6 @@ import {
ActivitySearchDto, ActivitySearchDto,
ActivityStatisticsResponseDto, ActivityStatisticsResponseDto,
} from 'src/dtos/activity.dto.js'; } from 'src/dtos/activity.dto.js';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { ApiTag, Permission } from 'src/enum.js'; import { ApiTag, Permission } from 'src/enum.js';
import { Auth, Authenticated } from 'src/middleware/auth.guard.js'; import { Auth, Authenticated } from 'src/middleware/auth.guard.js';
import { ActivityService } from 'src/services/activity.service.js'; import { ActivityService } from 'src/services/activity.service.js';
@@ -1,6 +1,6 @@
import request from 'supertest';
import { AlbumController } from 'src/controllers/album.controller.js'; import { AlbumController } from 'src/controllers/album.controller.js';
import { AlbumService } from 'src/services/album.service.js'; import { AlbumService } from 'src/services/album.service.js';
import request from 'supertest';
import { factory } from 'test/small.factory.js'; import { factory } from 'test/small.factory.js';
import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js';
+3 -3
View File
@@ -1,20 +1,20 @@
import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Patch, Post, Put, Query } from '@nestjs/common'; import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Patch, Post, Put, Query } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js'; import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { import {
AddUsersDto, AddUsersDto,
AlbumResponseDto, AlbumResponseDto,
AlbumsAddAssetsDto,
AlbumsAddAssetsResponseDto,
AlbumStatisticsResponseDto, AlbumStatisticsResponseDto,
AlbumUserParamDto, AlbumUserParamDto,
AlbumsAddAssetsDto,
AlbumsAddAssetsResponseDto,
CreateAlbumDto, CreateAlbumDto,
GetAlbumsDto, GetAlbumsDto,
UpdateAlbumDto, UpdateAlbumDto,
UpdateAlbumUserDto, UpdateAlbumUserDto,
} from 'src/dtos/album.dto.js'; } from 'src/dtos/album.dto.js';
import { BulkIdResponseDto, BulkIdsDto } from 'src/dtos/asset-ids.response.dto.js'; import { BulkIdResponseDto, BulkIdsDto } from 'src/dtos/asset-ids.response.dto.js';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { MapMarkerResponseDto } from 'src/dtos/map.dto.js'; import { MapMarkerResponseDto } from 'src/dtos/map.dto.js';
import { ApiTag, Permission } from 'src/enum.js'; import { ApiTag, Permission } from 'src/enum.js';
import { Auth, Authenticated } from 'src/middleware/auth.guard.js'; import { Auth, Authenticated } from 'src/middleware/auth.guard.js';
@@ -1,7 +1,7 @@
import request from 'supertest';
import { ApiKeyController } from 'src/controllers/api-key.controller.js'; import { ApiKeyController } from 'src/controllers/api-key.controller.js';
import { Permission } from 'src/enum.js'; import { Permission } from 'src/enum.js';
import { ApiKeyService } from 'src/services/api-key.service.js'; import { ApiKeyService } from 'src/services/api-key.service.js';
import request from 'supertest';
import { factory } from 'test/small.factory.js'; import { factory } from 'test/small.factory.js';
import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js';
+1 -1
View File
@@ -1,8 +1,8 @@
import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Patch, Post, Put } from '@nestjs/common'; import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Patch, Post, Put } from '@nestjs/common';
import { ApiExcludeEndpoint, ApiTags } from '@nestjs/swagger'; import { ApiExcludeEndpoint, ApiTags } from '@nestjs/swagger';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js'; import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { ApiKeyCreateDto, ApiKeyCreateResponseDto, ApiKeyResponseDto, ApiKeyUpdateDto } from 'src/dtos/api-key.dto.js'; import { ApiKeyCreateDto, ApiKeyCreateResponseDto, ApiKeyResponseDto, ApiKeyUpdateDto } from 'src/dtos/api-key.dto.js';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { ApiTag, Permission } from 'src/enum.js'; import { ApiTag, Permission } from 'src/enum.js';
import { Auth, Authenticated } from 'src/middleware/auth.guard.js'; import { Auth, Authenticated } from 'src/middleware/auth.guard.js';
import { ApiKeyService } from 'src/services/api-key.service.js'; import { ApiKeyService } from 'src/services/api-key.service.js';
@@ -1,6 +1,6 @@
import request from 'supertest';
import { AppController } from 'src/controllers/app.controller.js'; import { AppController } from 'src/controllers/app.controller.js';
import { SystemConfigService } from 'src/services/system-config.service.js'; import { SystemConfigService } from 'src/services/system-config.service.js';
import request from 'supertest';
import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js';
describe(AppController.name, () => { describe(AppController.name, () => {
@@ -1,9 +1,9 @@
import { Controller, Delete, Get, HttpCode, HttpStatus, Next, Param, Query, Res } from '@nestjs/common'; import { Controller, Delete, Get, HttpCode, HttpStatus, Next, Param, Query, Res } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
import type { NextFunction, Response } from 'express'; import type { NextFunction, Response } from 'express';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js'; import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { AssetFileResponseDto, AssetFileSearchDto } from 'src/dtos/asset-file.dto.js'; import { AssetFileResponseDto, AssetFileSearchDto } from 'src/dtos/asset-file.dto.js';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { ApiTag, Permission } from 'src/enum.js'; import { ApiTag, Permission } from 'src/enum.js';
import { Auth, Authenticated, FileResponse } from 'src/middleware/auth.guard.js'; import { Auth, Authenticated, FileResponse } from 'src/middleware/auth.guard.js';
import { LoggingRepository } from 'src/repositories/logging.repository.js'; import { LoggingRepository } from 'src/repositories/logging.repository.js';
@@ -1,11 +1,11 @@
import request from 'supertest';
import { AssetMediaController } from 'src/controllers/asset-media.controller.js'; import { AssetMediaController } from 'src/controllers/asset-media.controller.js';
import { AssetMediaStatus } from 'src/dtos/asset-media-response.dto.js'; import { AssetMediaStatus } from 'src/dtos/asset-media-response.dto.js';
import { AssetMetadataKey } from 'src/enum.js'; import { AssetMetadataKey } from 'src/enum.js';
import { LoggingRepository } from 'src/repositories/logging.repository.js'; import { LoggingRepository } from 'src/repositories/logging.repository.js';
import { AssetMediaService } from 'src/services/asset-media.service.js'; import { AssetMediaService } from 'src/services/asset-media.service.js';
import request from 'supertest';
import { factory } from 'test/small.factory.js'; import { factory } from 'test/small.factory.js';
import { automock, ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, automock, controllerSetup, mockBaseService } from 'test/utils.js';
const makeUploadDto = (options?: { omit: string }): Record<string, any> => { const makeUploadDto = (options?: { omit: string }): Record<string, any> => {
const dto: Record<string, any> = { const dto: Record<string, any> = {
@@ -16,6 +16,7 @@ import {
} from '@nestjs/common'; } from '@nestjs/common';
import { ApiBody, ApiConsumes, ApiHeader, ApiResponse, ApiTags } from '@nestjs/swagger'; import { ApiBody, ApiConsumes, ApiHeader, ApiResponse, ApiTags } from '@nestjs/swagger';
import { type NextFunction, type Request, type Response } from 'express'; import { type NextFunction, type Request, type Response } from 'express';
import type { UploadFiles } from 'src/types.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js'; import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { import {
AssetBulkUploadCheckResponseDto, AssetBulkUploadCheckResponseDto,
@@ -36,7 +37,6 @@ import { Auth, Authenticated, FileResponse } from 'src/middleware/auth.guard.js'
import { FileUploadInterceptor, getFiles } from 'src/middleware/file-upload.interceptor.js'; import { FileUploadInterceptor, getFiles } from 'src/middleware/file-upload.interceptor.js';
import { LoggingRepository } from 'src/repositories/logging.repository.js'; import { LoggingRepository } from 'src/repositories/logging.repository.js';
import { AssetMediaService } from 'src/services/asset-media.service.js'; import { AssetMediaService } from 'src/services/asset-media.service.js';
import type { UploadFiles } from 'src/types.js';
import { ImmichFileResponse, sendFile } from 'src/utils/file.js'; import { ImmichFileResponse, sendFile } from 'src/utils/file.js';
import { FileNotEmptyValidator, UUIDParamDto } from 'src/validation.js'; import { FileNotEmptyValidator, UUIDParamDto } from 'src/validation.js';
@@ -1,7 +1,7 @@
import request from 'supertest';
import { AssetController } from 'src/controllers/asset.controller.js'; import { AssetController } from 'src/controllers/asset.controller.js';
import { AssetMetadataKey } from 'src/enum.js'; import { AssetMetadataKey } from 'src/enum.js';
import { AssetService } from 'src/services/asset.service.js'; import { AssetService } from 'src/services/asset.service.js';
import request from 'supertest';
import { factory } from 'test/small.factory.js'; import { factory } from 'test/small.factory.js';
import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js';
+1 -1
View File
@@ -1,5 +1,6 @@
import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Patch, Post, Put, Query } from '@nestjs/common'; import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Patch, Post, Put, Query } from '@nestjs/common';
import { ApiExcludeEndpoint, ApiTags } from '@nestjs/swagger'; import { ApiExcludeEndpoint, ApiTags } from '@nestjs/swagger';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js'; import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { AssetResponseDto } from 'src/dtos/asset-response.dto.js'; import { AssetResponseDto } from 'src/dtos/asset-response.dto.js';
import { import {
@@ -17,7 +18,6 @@ import {
AssetStatsResponseDto, AssetStatsResponseDto,
UpdateAssetDto, UpdateAssetDto,
} from 'src/dtos/asset.dto.js'; } from 'src/dtos/asset.dto.js';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { AssetEditsCreateDto, AssetEditsResponseDto } from 'src/dtos/editing.dto.js'; import { AssetEditsCreateDto, AssetEditsResponseDto } from 'src/dtos/editing.dto.js';
import { AssetOcrResponseDto } from 'src/dtos/ocr.dto.js'; import { AssetOcrResponseDto } from 'src/dtos/ocr.dto.js';
import { ApiTag, Permission, RouteKey } from 'src/enum.js'; import { ApiTag, Permission, RouteKey } from 'src/enum.js';
@@ -1,7 +1,7 @@
import { Controller, HttpCode, HttpStatus, Post } from '@nestjs/common'; import { Controller, HttpCode, HttpStatus, Post } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import type { AuthDto } from 'src/dtos/auth.dto.js'; import type { AuthDto } from 'src/dtos/auth.dto.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { ApiTag, Permission } from 'src/enum.js'; import { ApiTag, Permission } from 'src/enum.js';
import { Auth, Authenticated } from 'src/middleware/auth.guard.js'; import { Auth, Authenticated } from 'src/middleware/auth.guard.js';
import { AuthAdminService } from 'src/services/auth-admin.service.js'; import { AuthAdminService } from 'src/services/auth-admin.service.js';
@@ -1,10 +1,10 @@
import { BadRequestException } from '@nestjs/common'; import { BadRequestException } from '@nestjs/common';
import request from 'supertest';
import { AuthController } from 'src/controllers/auth.controller.js'; import { AuthController } from 'src/controllers/auth.controller.js';
import { LoginResponseDto } from 'src/dtos/auth.dto.js'; import { LoginResponseDto } from 'src/dtos/auth.dto.js';
import { AuthService } from 'src/services/auth.service.js'; import { AuthService } from 'src/services/auth.service.js';
import request from 'supertest';
import { mediumFactory } from 'test/medium.factory.js';
import { errorDto } from 'test/medium/responses.js'; import { errorDto } from 'test/medium/responses.js';
import { mediumFactory } from 'test/medium.factory.js';
import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js';
describe(AuthController.name, () => { describe(AuthController.name, () => {
@@ -1,8 +1,8 @@
import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Post, Put, Res } from '@nestjs/common'; import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Post, Put, Res } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
import type { Response } from 'express'; import type { Response } from 'express';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import type { AuthDto } from 'src/dtos/auth.dto.js'; import type { AuthDto } from 'src/dtos/auth.dto.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { ClusterGroupRequestCreateDto, ClusterGroupRequestResponseDto } from 'src/dtos/cluster-group.dto.js'; import { ClusterGroupRequestCreateDto, ClusterGroupRequestResponseDto } from 'src/dtos/cluster-group.dto.js';
import { UserResponseDto } from 'src/dtos/user.dto.js'; import { UserResponseDto } from 'src/dtos/user.dto.js';
import { ApiTag, Permission } from 'src/enum.js'; import { ApiTag, Permission } from 'src/enum.js';
@@ -1,10 +1,10 @@
import { cloneDeep } from 'lodash-es'; import { cloneDeep } from 'lodash-es';
import request from 'supertest';
import { ConfigAdminController } from 'src/controllers/config-admin.controller.js'; import { ConfigAdminController } from 'src/controllers/config-admin.controller.js';
import { ConfigPublicController } from 'src/controllers/config-public.controller.js'; import { ConfigPublicController } from 'src/controllers/config-public.controller.js';
import { ConfigUserController } from 'src/controllers/config-user.controller.js'; import { ConfigUserController } from 'src/controllers/config-user.controller.js';
import { defaults, mapPublicConfig, mapUserConfig } from 'src/dtos/config.dto.js'; import { defaults, mapPublicConfig, mapUserConfig } from 'src/dtos/config.dto.js';
import { SystemConfigService } from 'src/services/system-config.service.js'; import { SystemConfigService } from 'src/services/system-config.service.js';
import request from 'supertest';
import { errorDto } from 'test/medium/responses.js'; import { errorDto } from 'test/medium/responses.js';
import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js';
@@ -1,10 +1,10 @@
import { BadRequestException } from '@nestjs/common'; import { BadRequestException } from '@nestjs/common';
import request from 'supertest';
import { DatabaseBackupController } from 'src/controllers/database-backup.controller.js'; import { DatabaseBackupController } from 'src/controllers/database-backup.controller.js';
import { DatabaseBackupService } from 'src/services/database-backup.service.js'; import { DatabaseBackupService } from 'src/services/database-backup.service.js';
import { MaintenanceService } from 'src/services/maintenance.service.js'; import { MaintenanceService } from 'src/services/maintenance.service.js';
import request from 'supertest';
import { errorDto } from 'test/medium/responses.js'; import { errorDto } from 'test/medium/responses.js';
import { automock, ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, automock, controllerSetup, mockBaseService } from 'test/utils.js';
describe(DatabaseBackupController.name, () => { describe(DatabaseBackupController.name, () => {
let ctx: ControllerContext; let ctx: ControllerContext;
@@ -2,6 +2,7 @@ import { Body, Controller, Delete, Get, Next, Param, Post, Res, UploadedFile, Us
import { FileInterceptor } from '@nestjs/platform-express'; import { FileInterceptor } from '@nestjs/platform-express';
import { ApiBody, ApiConsumes, ApiTags } from '@nestjs/swagger'; import { ApiBody, ApiConsumes, ApiTags } from '@nestjs/swagger';
import type { NextFunction, Response } from 'express'; import type { NextFunction, Response } from 'express';
import type { LoginDetails } from 'src/services/auth.service.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js'; import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { import {
DatabaseBackupDeleteDto, DatabaseBackupDeleteDto,
@@ -11,7 +12,6 @@ import {
import { ApiTag, ImmichCookie, Permission } from 'src/enum.js'; import { ApiTag, ImmichCookie, Permission } from 'src/enum.js';
import { Authenticated, FileResponse, GetLoginDetails } from 'src/middleware/auth.guard.js'; import { Authenticated, FileResponse, GetLoginDetails } from 'src/middleware/auth.guard.js';
import { LoggingRepository } from 'src/repositories/logging.repository.js'; import { LoggingRepository } from 'src/repositories/logging.repository.js';
import type { LoginDetails } from 'src/services/auth.service.js';
import { DatabaseBackupService } from 'src/services/database-backup.service.js'; import { DatabaseBackupService } from 'src/services/database-backup.service.js';
import { MaintenanceService } from 'src/services/maintenance.service.js'; import { MaintenanceService } from 'src/services/maintenance.service.js';
import { sendFile } from 'src/utils/file.js'; import { sendFile } from 'src/utils/file.js';
@@ -1,7 +1,7 @@
import { Readable } from 'node:stream'; import { Readable } from 'node:stream';
import request from 'supertest';
import { DownloadController } from 'src/controllers/download.controller.js'; import { DownloadController } from 'src/controllers/download.controller.js';
import { DownloadService } from 'src/services/download.service.js'; import { DownloadService } from 'src/services/download.service.js';
import request from 'supertest';
import { factory } from 'test/small.factory.js'; import { factory } from 'test/small.factory.js';
import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js';
@@ -1,7 +1,7 @@
import { Body, Controller, HttpCode, HttpStatus, Post, StreamableFile } from '@nestjs/common'; import { Body, Controller, HttpCode, HttpStatus, Post, StreamableFile } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import type { AuthDto } from 'src/dtos/auth.dto.js'; import type { AuthDto } from 'src/dtos/auth.dto.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { DownloadArchiveDto, DownloadInfoDto, DownloadResponseDto } from 'src/dtos/download.dto.js'; import { DownloadArchiveDto, DownloadInfoDto, DownloadResponseDto } from 'src/dtos/download.dto.js';
import { ApiTag, Permission } from 'src/enum.js'; import { ApiTag, Permission } from 'src/enum.js';
import { Auth, Authenticated, FileResponse } from 'src/middleware/auth.guard.js'; import { Auth, Authenticated, FileResponse } from 'src/middleware/auth.guard.js';
@@ -1,6 +1,6 @@
import request from 'supertest';
import { DuplicateController } from 'src/controllers/duplicate.controller.js'; import { DuplicateController } from 'src/controllers/duplicate.controller.js';
import { DuplicateService } from 'src/services/duplicate.service.js'; import { DuplicateService } from 'src/services/duplicate.service.js';
import request from 'supertest';
import { factory } from 'test/small.factory.js'; import { factory } from 'test/small.factory.js';
import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js';
@@ -1,8 +1,8 @@
import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Post } from '@nestjs/common'; import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Post } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js'; import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { BulkIdResponseDto, BulkIdsDto } from 'src/dtos/asset-ids.response.dto.js'; import { BulkIdResponseDto, BulkIdsDto } from 'src/dtos/asset-ids.response.dto.js';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { DuplicateResolveDto, DuplicateResponseDto } from 'src/dtos/duplicate.dto.js'; import { DuplicateResolveDto, DuplicateResponseDto } from 'src/dtos/duplicate.dto.js';
import { ApiTag, Permission } from 'src/enum.js'; import { ApiTag, Permission } from 'src/enum.js';
import { Auth, Authenticated } from 'src/middleware/auth.guard.js'; import { Auth, Authenticated } from 'src/middleware/auth.guard.js';
+1 -1
View File
@@ -1,7 +1,7 @@
import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Post, Put, Query } from '@nestjs/common'; import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Post, Put, Query } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import type { AuthDto } from 'src/dtos/auth.dto.js'; import type { AuthDto } from 'src/dtos/auth.dto.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { import {
AssetFaceCreateDto, AssetFaceCreateDto,
AssetFaceDeleteDto, AssetFaceDeleteDto,
@@ -1,8 +1,8 @@
import { Controller, Delete, Get, HttpCode, HttpStatus, Next, Param, Query, Res } from '@nestjs/common'; import { Controller, Delete, Get, HttpCode, HttpStatus, Next, Param, Query, Res } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
import type { NextFunction, Response } from 'express'; import type { NextFunction, Response } from 'express';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import type { AuthDto } from 'src/dtos/auth.dto.js'; import type { AuthDto } from 'src/dtos/auth.dto.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { import {
IntegrityGetReportDto, IntegrityGetReportDto,
IntegrityReportResponseDto, IntegrityReportResponseDto,
@@ -1,7 +1,7 @@
import request from 'supertest';
import { JobController } from 'src/controllers/job.controller.js'; import { JobController } from 'src/controllers/job.controller.js';
import { JobService } from 'src/services/job.service.js'; import { JobService } from 'src/services/job.service.js';
import { QueueService } from 'src/services/queue.service.js'; import { QueueService } from 'src/services/queue.service.js';
import request from 'supertest';
import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js';
describe(JobController.name, () => { describe(JobController.name, () => {
+1 -1
View File
@@ -1,7 +1,7 @@
import { Body, Controller, Get, HttpCode, HttpStatus, Param, Post, Put } from '@nestjs/common'; import { Body, Controller, Get, HttpCode, HttpStatus, Param, Post, Put } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import type { AuthDto } from 'src/dtos/auth.dto.js'; import type { AuthDto } from 'src/dtos/auth.dto.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { JobCreateDto } from 'src/dtos/job.dto.js'; import { JobCreateDto } from 'src/dtos/job.dto.js';
import { QueueResponseLegacyDto, QueuesResponseLegacyDto } from 'src/dtos/queue-legacy.dto.js'; import { QueueResponseLegacyDto, QueuesResponseLegacyDto } from 'src/dtos/queue-legacy.dto.js';
import { QueueCommandDto, QueueNameParamDto } from 'src/dtos/queue.dto.js'; import { QueueCommandDto, QueueNameParamDto } from 'src/dtos/queue.dto.js';
@@ -1,6 +1,6 @@
import request from 'supertest';
import { LibraryController } from 'src/controllers/library.controller.js'; import { LibraryController } from 'src/controllers/library.controller.js';
import { LibraryService } from 'src/services/library.service.js'; import { LibraryService } from 'src/services/library.service.js';
import request from 'supertest';
import { factory } from 'test/small.factory.js'; import { factory } from 'test/small.factory.js';
import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js';
@@ -1,7 +1,7 @@
import request from 'supertest';
import { MaintenanceController } from 'src/controllers/maintenance.controller.js'; import { MaintenanceController } from 'src/controllers/maintenance.controller.js';
import { MaintenanceAction } from 'src/enum.js'; import { MaintenanceAction } from 'src/enum.js';
import { MaintenanceService } from 'src/services/maintenance.service.js'; import { MaintenanceService } from 'src/services/maintenance.service.js';
import request from 'supertest';
import { errorDto } from 'test/medium/responses.js'; import { errorDto } from 'test/medium/responses.js';
import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js';
@@ -1,8 +1,9 @@
import { BadRequestException, Body, Controller, Get, Post, Res } from '@nestjs/common'; import { BadRequestException, Body, Controller, Get, Post, Res } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
import type { Response } from 'express'; import type { Response } from 'express';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import type { AuthDto } from 'src/dtos/auth.dto.js'; import type { AuthDto } from 'src/dtos/auth.dto.js';
import type { LoginDetails } from 'src/services/auth.service.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { import {
MaintenanceAuthDto, MaintenanceAuthDto,
MaintenanceDetectInstallResponseDto, MaintenanceDetectInstallResponseDto,
@@ -12,7 +13,6 @@ import {
} from 'src/dtos/maintenance.dto.js'; } from 'src/dtos/maintenance.dto.js';
import { ApiTag, ImmichCookie, MaintenanceAction, Permission } from 'src/enum.js'; import { ApiTag, ImmichCookie, MaintenanceAction, Permission } from 'src/enum.js';
import { Auth, Authenticated, GetLoginDetails } from 'src/middleware/auth.guard.js'; import { Auth, Authenticated, GetLoginDetails } from 'src/middleware/auth.guard.js';
import type { LoginDetails } from 'src/services/auth.service.js';
import { MaintenanceService } from 'src/services/maintenance.service.js'; import { MaintenanceService } from 'src/services/maintenance.service.js';
import { respondWithCookie } from 'src/utils/response.js'; import { respondWithCookie } from 'src/utils/response.js';
@@ -1,6 +1,6 @@
import request from 'supertest';
import { MapController } from 'src/controllers/map.controller.js'; import { MapController } from 'src/controllers/map.controller.js';
import { MapService } from 'src/services/map.service.js'; import { MapService } from 'src/services/map.service.js';
import request from 'supertest';
import { factory } from 'test/small.factory.js'; import { factory } from 'test/small.factory.js';
import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js';
+1 -1
View File
@@ -1,7 +1,7 @@
import { Controller, Get, HttpCode, HttpStatus, Query } from '@nestjs/common'; import { Controller, Get, HttpCode, HttpStatus, Query } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import type { AuthDto } from 'src/dtos/auth.dto.js'; import type { AuthDto } from 'src/dtos/auth.dto.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { import {
MapMarkerDto, MapMarkerDto,
MapMarkerResponseDto, MapMarkerResponseDto,
@@ -1,6 +1,6 @@
import request from 'supertest';
import { MemoryController } from 'src/controllers/memory.controller.js'; import { MemoryController } from 'src/controllers/memory.controller.js';
import { MemoryService } from 'src/services/memory.service.js'; import { MemoryService } from 'src/services/memory.service.js';
import request from 'supertest';
import { errorDto } from 'test/medium/responses.js'; import { errorDto } from 'test/medium/responses.js';
import { factory } from 'test/small.factory.js'; import { factory } from 'test/small.factory.js';
import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js';
+1 -1
View File
@@ -1,8 +1,8 @@
import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Patch, Post, Put, Query } from '@nestjs/common'; import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Patch, Post, Put, Query } from '@nestjs/common';
import { ApiExcludeEndpoint, ApiTags } from '@nestjs/swagger'; import { ApiExcludeEndpoint, ApiTags } from '@nestjs/swagger';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js'; import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { BulkIdResponseDto, BulkIdsDto } from 'src/dtos/asset-ids.response.dto.js'; import { BulkIdResponseDto, BulkIdsDto } from 'src/dtos/asset-ids.response.dto.js';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { import {
MemoryCreateDto, MemoryCreateDto,
MemoryResponseDto, MemoryResponseDto,
@@ -1,6 +1,6 @@
import request from 'supertest';
import { NotificationAdminController } from 'src/controllers/notification-admin.controller.js'; import { NotificationAdminController } from 'src/controllers/notification-admin.controller.js';
import { NotificationAdminService } from 'src/services/notification-admin.service.js'; import { NotificationAdminService } from 'src/services/notification-admin.service.js';
import request from 'supertest';
import { factory } from 'test/small.factory.js'; import { factory } from 'test/small.factory.js';
import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js';
@@ -1,7 +1,7 @@
import { Body, Controller, HttpCode, HttpStatus, Param, Post } from '@nestjs/common'; import { Body, Controller, HttpCode, HttpStatus, Param, Post } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import type { AuthDto } from 'src/dtos/auth.dto.js'; import type { AuthDto } from 'src/dtos/auth.dto.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { SystemConfigSmtpDto } from 'src/dtos/config.dto.js'; import { SystemConfigSmtpDto } from 'src/dtos/config.dto.js';
import { import {
NotificationCreateDto, NotificationCreateDto,
@@ -1,6 +1,6 @@
import request from 'supertest';
import { NotificationController } from 'src/controllers/notification.controller.js'; import { NotificationController } from 'src/controllers/notification.controller.js';
import { NotificationService } from 'src/services/notification.service.js'; import { NotificationService } from 'src/services/notification.service.js';
import request from 'supertest';
import { errorDto } from 'test/medium/responses.js'; import { errorDto } from 'test/medium/responses.js';
import { factory } from 'test/small.factory.js'; import { factory } from 'test/small.factory.js';
import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js';
@@ -1,7 +1,7 @@
import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Put, Query } from '@nestjs/common'; import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Put, Query } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import type { AuthDto } from 'src/dtos/auth.dto.js'; import type { AuthDto } from 'src/dtos/auth.dto.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { import {
NotificationDeleteAllDto, NotificationDeleteAllDto,
NotificationDto, NotificationDto,
@@ -1,6 +1,6 @@
import request from 'supertest';
import { OAuthController } from 'src/controllers/oauth.controller.js'; import { OAuthController } from 'src/controllers/oauth.controller.js';
import { AuthService } from 'src/services/auth.service.js'; import { AuthService } from 'src/services/auth.service.js';
import request from 'supertest';
import { factory } from 'test/small.factory.js'; import { factory } from 'test/small.factory.js';
import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js';
@@ -1,9 +1,9 @@
import request from 'supertest';
import { PartnerController } from 'src/controllers/partner.controller.js'; import { PartnerController } from 'src/controllers/partner.controller.js';
import { LoggingRepository } from 'src/repositories/logging.repository.js'; import { LoggingRepository } from 'src/repositories/logging.repository.js';
import { PartnerService } from 'src/services/partner.service.js'; import { PartnerService } from 'src/services/partner.service.js';
import request from 'supertest';
import { errorDto } from 'test/medium/responses.js'; import { errorDto } from 'test/medium/responses.js';
import { automock, ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, automock, controllerSetup, mockBaseService } from 'test/utils.js';
describe(PartnerController.name, () => { describe(PartnerController.name, () => {
let ctx: ControllerContext; let ctx: ControllerContext;
+1 -1
View File
@@ -1,7 +1,7 @@
import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Post, Put, Query } from '@nestjs/common'; import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Post, Put, Query } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import type { AuthDto } from 'src/dtos/auth.dto.js'; import type { AuthDto } from 'src/dtos/auth.dto.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { PartnerCreateDto, PartnerResponseDto, PartnerSearchDto, PartnerUpdateDto } from 'src/dtos/partner.dto.js'; import { PartnerCreateDto, PartnerResponseDto, PartnerSearchDto, PartnerUpdateDto } from 'src/dtos/partner.dto.js';
import { ApiTag, Permission } from 'src/enum.js'; import { ApiTag, Permission } from 'src/enum.js';
import { Auth, Authenticated } from 'src/middleware/auth.guard.js'; import { Auth, Authenticated } from 'src/middleware/auth.guard.js';
@@ -1,10 +1,10 @@
import request from 'supertest';
import { PersonController } from 'src/controllers/person.controller.js'; import { PersonController } from 'src/controllers/person.controller.js';
import { LoggingRepository } from 'src/repositories/logging.repository.js'; import { LoggingRepository } from 'src/repositories/logging.repository.js';
import { PersonService } from 'src/services/person.service.js'; import { PersonService } from 'src/services/person.service.js';
import request from 'supertest';
import { errorDto } from 'test/medium/responses.js'; import { errorDto } from 'test/medium/responses.js';
import { factory } from 'test/small.factory.js'; import { factory } from 'test/small.factory.js';
import { automock, ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, automock, controllerSetup, mockBaseService } from 'test/utils.js';
describe(PersonController.name, () => { describe(PersonController.name, () => {
let ctx: ControllerContext; let ctx: ControllerContext;
+1 -1
View File
@@ -15,9 +15,9 @@ import {
} from '@nestjs/common'; } from '@nestjs/common';
import { ApiExcludeEndpoint, ApiTags } from '@nestjs/swagger'; import { ApiExcludeEndpoint, ApiTags } from '@nestjs/swagger';
import type { NextFunction, Response } from 'express'; import type { NextFunction, Response } from 'express';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js'; import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { BulkIdResponseDto, BulkIdsDto } from 'src/dtos/asset-ids.response.dto.js'; import { BulkIdResponseDto, BulkIdsDto } from 'src/dtos/asset-ids.response.dto.js';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { import {
AssetFaceUpdateDto, AssetFaceUpdateDto,
MergePersonDto, MergePersonDto,
@@ -1,9 +1,9 @@
import request from 'supertest';
import { PluginController } from 'src/controllers/plugin.controller.js'; import { PluginController } from 'src/controllers/plugin.controller.js';
import { LoggingRepository } from 'src/repositories/logging.repository.js'; import { LoggingRepository } from 'src/repositories/logging.repository.js';
import { PluginService } from 'src/services/plugin.service.js'; import { PluginService } from 'src/services/plugin.service.js';
import request from 'supertest';
import { errorDto } from 'test/medium/responses.js'; import { errorDto } from 'test/medium/responses.js';
import { automock, ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, automock, controllerSetup, mockBaseService } from 'test/utils.js';
describe(PluginController.name, () => { describe(PluginController.name, () => {
let ctx: ControllerContext; let ctx: ControllerContext;
+1 -1
View File
@@ -1,7 +1,7 @@
import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Put, Query } from '@nestjs/common'; import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Put, Query } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import type { AuthDto } from 'src/dtos/auth.dto.js'; import type { AuthDto } from 'src/dtos/auth.dto.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { import {
QueueDeleteDto, QueueDeleteDto,
QueueJobResponseDto, QueueJobResponseDto,
@@ -1,6 +1,6 @@
import request from 'supertest';
import { SearchController } from 'src/controllers/search.controller.js'; import { SearchController } from 'src/controllers/search.controller.js';
import { SearchService } from 'src/services/search.service.js'; import { SearchService } from 'src/services/search.service.js';
import request from 'supertest';
import { errorDto } from 'test/medium/responses.js'; import { errorDto } from 'test/medium/responses.js';
import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js';
+1 -1
View File
@@ -1,8 +1,8 @@
import { Body, Controller, Get, HttpCode, HttpStatus, Post, Query } from '@nestjs/common'; import { Body, Controller, Get, HttpCode, HttpStatus, Post, Query } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js'; import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { AssetResponseDto } from 'src/dtos/asset-response.dto.js'; import { AssetResponseDto } from 'src/dtos/asset-response.dto.js';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { PersonResponseDto } from 'src/dtos/person.dto.js'; import { PersonResponseDto } from 'src/dtos/person.dto.js';
import { import {
LargeAssetSearchDto, LargeAssetSearchDto,
+1 -1
View File
@@ -1,7 +1,7 @@
import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Patch, Post, Put } from '@nestjs/common'; import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Patch, Post, Put } from '@nestjs/common';
import { ApiExcludeEndpoint, ApiTags } from '@nestjs/swagger'; import { ApiExcludeEndpoint, ApiTags } from '@nestjs/swagger';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import type { AuthDto } from 'src/dtos/auth.dto.js'; import type { AuthDto } from 'src/dtos/auth.dto.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { import {
SessionCreateDto, SessionCreateDto,
SessionCreateResponseDto, SessionCreateResponseDto,
@@ -1,7 +1,7 @@
import request from 'supertest';
import { SharedLinkController } from 'src/controllers/shared-link.controller.js'; import { SharedLinkController } from 'src/controllers/shared-link.controller.js';
import { Permission, SharedLinkType } from 'src/enum.js'; import { Permission, SharedLinkType } from 'src/enum.js';
import { SharedLinkService } from 'src/services/shared-link.service.js'; import { SharedLinkService } from 'src/services/shared-link.service.js';
import request from 'supertest';
import { errorDto } from 'test/medium/responses.js'; import { errorDto } from 'test/medium/responses.js';
import { factory, newUuid } from 'test/small.factory.js'; import { factory, newUuid } from 'test/small.factory.js';
import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js';
@@ -15,10 +15,11 @@ import {
} from '@nestjs/common'; } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
import type { Request, Response } from 'express'; import type { Request, Response } from 'express';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import type { LoginDetails } from 'src/services/auth.service.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js'; import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { AssetIdsResponseDto } from 'src/dtos/asset-ids.response.dto.js'; import { AssetIdsResponseDto } from 'src/dtos/asset-ids.response.dto.js';
import { AssetIdsDto } from 'src/dtos/asset.dto.js'; import { AssetIdsDto } from 'src/dtos/asset.dto.js';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { import {
SharedLinkCreateDto, SharedLinkCreateDto,
SharedLinkEditDto, SharedLinkEditDto,
@@ -29,7 +30,6 @@ import {
import { ApiTag, ImmichCookie, Permission } from 'src/enum.js'; import { ApiTag, ImmichCookie, Permission } from 'src/enum.js';
import { Auth, Authenticated, GetLoginDetails } from 'src/middleware/auth.guard.js'; import { Auth, Authenticated, GetLoginDetails } from 'src/middleware/auth.guard.js';
import { LoggingRepository } from 'src/repositories/logging.repository.js'; import { LoggingRepository } from 'src/repositories/logging.repository.js';
import type { LoginDetails } from 'src/services/auth.service.js';
import { SharedLinkService } from 'src/services/shared-link.service.js'; import { SharedLinkService } from 'src/services/shared-link.service.js';
import { respondWithCookie } from 'src/utils/response.js'; import { respondWithCookie } from 'src/utils/response.js';
import { UUIDParamDto } from 'src/validation.js'; import { UUIDParamDto } from 'src/validation.js';
@@ -1,6 +1,6 @@
import request from 'supertest';
import { StackController } from 'src/controllers/stack.controller.js'; import { StackController } from 'src/controllers/stack.controller.js';
import { StackService } from 'src/services/stack.service.js'; import { StackService } from 'src/services/stack.service.js';
import request from 'supertest';
import { errorDto } from 'test/medium/responses.js'; import { errorDto } from 'test/medium/responses.js';
import { factory } from 'test/small.factory.js'; import { factory } from 'test/small.factory.js';
import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js';
+1 -1
View File
@@ -1,8 +1,8 @@
import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Patch, Post, Put, Query } from '@nestjs/common'; import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Patch, Post, Put, Query } from '@nestjs/common';
import { ApiExcludeEndpoint, ApiTags } from '@nestjs/swagger'; import { ApiExcludeEndpoint, ApiTags } from '@nestjs/swagger';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js'; import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { BulkIdsDto } from 'src/dtos/asset-ids.response.dto.js'; import { BulkIdsDto } from 'src/dtos/asset-ids.response.dto.js';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { StackCreateDto, StackResponseDto, StackSearchDto, StackUpdateDto } from 'src/dtos/stack.dto.js'; import { StackCreateDto, StackResponseDto, StackSearchDto, StackUpdateDto } from 'src/dtos/stack.dto.js';
import { ApiTag, Permission } from 'src/enum.js'; import { ApiTag, Permission } from 'src/enum.js';
import { Auth, Authenticated } from 'src/middleware/auth.guard.js'; import { Auth, Authenticated } from 'src/middleware/auth.guard.js';
@@ -1,7 +1,7 @@
import request from 'supertest';
import { SyncController } from 'src/controllers/sync.controller.js'; import { SyncController } from 'src/controllers/sync.controller.js';
import { GlobalExceptionFilter } from 'src/middleware/global-exception.filter.js'; import { GlobalExceptionFilter } from 'src/middleware/global-exception.filter.js';
import { SyncService } from 'src/services/sync.service.js'; import { SyncService } from 'src/services/sync.service.js';
import request from 'supertest';
import { errorDto } from 'test/medium/responses.js'; import { errorDto } from 'test/medium/responses.js';
import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js';
+1 -1
View File
@@ -1,8 +1,8 @@
import { Body, Controller, Delete, Get, Header, HttpCode, HttpStatus, Post, Req, Res } from '@nestjs/common'; import { Body, Controller, Delete, Get, Header, HttpCode, HttpStatus, Post, Req, Res } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
import type { Request, Response } from 'express'; import type { Request, Response } from 'express';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import type { AuthDto } from 'src/dtos/auth.dto.js'; import type { AuthDto } from 'src/dtos/auth.dto.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { SyncAckDeleteDto, SyncAckDto, SyncAckSetDto, SyncStreamDto } from 'src/dtos/sync.dto.js'; import { SyncAckDeleteDto, SyncAckDto, SyncAckSetDto, SyncStreamDto } from 'src/dtos/sync.dto.js';
import { ApiTag, Permission } from 'src/enum.js'; import { ApiTag, Permission } from 'src/enum.js';
import { Auth, Authenticated } from 'src/middleware/auth.guard.js'; import { Auth, Authenticated } from 'src/middleware/auth.guard.js';
@@ -1,9 +1,9 @@
import { cloneDeep } from 'lodash-es'; import { cloneDeep } from 'lodash-es';
import request from 'supertest';
import { SystemConfigController } from 'src/controllers/system-config.controller.js'; import { SystemConfigController } from 'src/controllers/system-config.controller.js';
import { defaults } from 'src/dtos/config.dto.js'; import { defaults } from 'src/dtos/config.dto.js';
import { StorageTemplateService } from 'src/services/storage-template.service.js'; import { StorageTemplateService } from 'src/services/storage-template.service.js';
import { SystemConfigService } from 'src/services/system-config.service.js'; import { SystemConfigService } from 'src/services/system-config.service.js';
import request from 'supertest';
import { errorDto } from 'test/medium/responses.js'; import { errorDto } from 'test/medium/responses.js';
import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js';
@@ -1,6 +1,6 @@
import request from 'supertest';
import { SystemMetadataController } from 'src/controllers/system-metadata.controller.js'; import { SystemMetadataController } from 'src/controllers/system-metadata.controller.js';
import { SystemMetadataService } from 'src/services/system-metadata.service.js'; import { SystemMetadataService } from 'src/services/system-metadata.service.js';
import request from 'supertest';
import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js';
describe(SystemMetadataController.name, () => { describe(SystemMetadataController.name, () => {
@@ -1,6 +1,6 @@
import request from 'supertest';
import { TagController } from 'src/controllers/tag.controller.js'; import { TagController } from 'src/controllers/tag.controller.js';
import { TagService } from 'src/services/tag.service.js'; import { TagService } from 'src/services/tag.service.js';
import request from 'supertest';
import { errorDto } from 'test/medium/responses.js'; import { errorDto } from 'test/medium/responses.js';
import { factory } from 'test/small.factory.js'; import { factory } from 'test/small.factory.js';
import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js';
+1 -1
View File
@@ -1,8 +1,8 @@
import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Patch, Post, Put } from '@nestjs/common'; import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Patch, Post, Put } from '@nestjs/common';
import { ApiExcludeEndpoint, ApiTags } from '@nestjs/swagger'; import { ApiExcludeEndpoint, ApiTags } from '@nestjs/swagger';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js'; import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { BulkIdResponseDto, BulkIdsDto } from 'src/dtos/asset-ids.response.dto.js'; import { BulkIdResponseDto, BulkIdsDto } from 'src/dtos/asset-ids.response.dto.js';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { import {
TagBulkAssetsDto, TagBulkAssetsDto,
TagBulkAssetsResponseDto, TagBulkAssetsResponseDto,
@@ -1,6 +1,6 @@
import request from 'supertest';
import { TimelineController } from 'src/controllers/timeline.controller.js'; import { TimelineController } from 'src/controllers/timeline.controller.js';
import { TimelineService } from 'src/services/timeline.service.js'; import { TimelineService } from 'src/services/timeline.service.js';
import request from 'supertest';
import { errorDto } from 'test/medium/responses.js'; import { errorDto } from 'test/medium/responses.js';
import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js';
@@ -1,7 +1,7 @@
import { Controller, Get, Header, Query } from '@nestjs/common'; import { Controller, Get, Header, Query } from '@nestjs/common';
import { ApiOkResponse, ApiTags } from '@nestjs/swagger'; import { ApiOkResponse, ApiTags } from '@nestjs/swagger';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import type { AuthDto } from 'src/dtos/auth.dto.js'; import type { AuthDto } from 'src/dtos/auth.dto.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { TimeBucketAssetDto, TimeBucketAssetResponseDto, TimeBucketDto } from 'src/dtos/time-bucket.dto.js'; import { TimeBucketAssetDto, TimeBucketAssetResponseDto, TimeBucketDto } from 'src/dtos/time-bucket.dto.js';
import { ApiTag, Permission } from 'src/enum.js'; import { ApiTag, Permission } from 'src/enum.js';
import { Auth, Authenticated } from 'src/middleware/auth.guard.js'; import { Auth, Authenticated } from 'src/middleware/auth.guard.js';
@@ -1,6 +1,6 @@
import request from 'supertest';
import { TrashController } from 'src/controllers/trash.controller.js'; import { TrashController } from 'src/controllers/trash.controller.js';
import { TrashService } from 'src/services/trash.service.js'; import { TrashService } from 'src/services/trash.service.js';
import request from 'supertest';
import { factory } from 'test/small.factory.js'; import { factory } from 'test/small.factory.js';
import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js';
+1 -1
View File
@@ -1,8 +1,8 @@
import { Body, Controller, HttpCode, HttpStatus, Post } from '@nestjs/common'; import { Body, Controller, HttpCode, HttpStatus, Post } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js'; import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { BulkIdsDto } from 'src/dtos/asset-ids.response.dto.js'; import { BulkIdsDto } from 'src/dtos/asset-ids.response.dto.js';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { TrashResponseDto } from 'src/dtos/trash.dto.js'; import { TrashResponseDto } from 'src/dtos/trash.dto.js';
import { ApiTag, Permission } from 'src/enum.js'; import { ApiTag, Permission } from 'src/enum.js';
import { Auth, Authenticated } from 'src/middleware/auth.guard.js'; import { Auth, Authenticated } from 'src/middleware/auth.guard.js';
@@ -1,11 +1,11 @@
import request from 'supertest';
import { UserAdminController } from 'src/controllers/user-admin.controller.js'; import { UserAdminController } from 'src/controllers/user-admin.controller.js';
import { UserAdminCreateDto } from 'src/dtos/user.dto.js'; import { UserAdminCreateDto } from 'src/dtos/user.dto.js';
import { LoggingRepository } from 'src/repositories/logging.repository.js'; import { LoggingRepository } from 'src/repositories/logging.repository.js';
import { UserAdminService } from 'src/services/user-admin.service.js'; import { UserAdminService } from 'src/services/user-admin.service.js';
import request from 'supertest';
import { errorDto } from 'test/medium/responses.js'; import { errorDto } from 'test/medium/responses.js';
import { factory } from 'test/small.factory.js'; import { factory } from 'test/small.factory.js';
import { automock, ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, automock, controllerSetup, mockBaseService } from 'test/utils.js';
describe(UserAdminController.name, () => { describe(UserAdminController.name, () => {
let ctx: ControllerContext; let ctx: ControllerContext;
@@ -1,8 +1,8 @@
import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Patch, Post, Put, Query } from '@nestjs/common'; import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Patch, Post, Put, Query } from '@nestjs/common';
import { ApiExcludeEndpoint, ApiTags } from '@nestjs/swagger'; import { ApiExcludeEndpoint, ApiTags } from '@nestjs/swagger';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js'; import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { AssetStatsDto, AssetStatsResponseDto } from 'src/dtos/asset.dto.js'; import { AssetStatsDto, AssetStatsResponseDto } from 'src/dtos/asset.dto.js';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { CalendarHeatmapDto, CalendarHeatmapResponseDto } from 'src/dtos/calendar-heatmap.dto.js'; import { CalendarHeatmapDto, CalendarHeatmapResponseDto } from 'src/dtos/calendar-heatmap.dto.js';
import { SessionResponseDto } from 'src/dtos/session.dto.js'; import { SessionResponseDto } from 'src/dtos/session.dto.js';
import { UserPreferencesResponseDto, UserPreferencesUpdateDto } from 'src/dtos/user-preferences.dto.js'; import { UserPreferencesResponseDto, UserPreferencesUpdateDto } from 'src/dtos/user-preferences.dto.js';
@@ -1,9 +1,9 @@
import request from 'supertest';
import { UserController } from 'src/controllers/user.controller.js'; import { UserController } from 'src/controllers/user.controller.js';
import { LoggingRepository } from 'src/repositories/logging.repository.js'; import { LoggingRepository } from 'src/repositories/logging.repository.js';
import { UserService } from 'src/services/user.service.js'; import { UserService } from 'src/services/user.service.js';
import request from 'supertest';
import { errorDto } from 'test/medium/responses.js'; import { errorDto } from 'test/medium/responses.js';
import { automock, ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, automock, controllerSetup, mockBaseService } from 'test/utils.js';
describe(UserController.name, () => { describe(UserController.name, () => {
let ctx: ControllerContext; let ctx: ControllerContext;
+1 -1
View File
@@ -17,8 +17,8 @@ import {
} from '@nestjs/common'; } from '@nestjs/common';
import { ApiBody, ApiConsumes, ApiExcludeEndpoint, ApiTags } from '@nestjs/swagger'; import { ApiBody, ApiConsumes, ApiExcludeEndpoint, ApiTags } from '@nestjs/swagger';
import type { NextFunction, Response } from 'express'; import type { NextFunction, Response } from 'express';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import type { AuthDto } from 'src/dtos/auth.dto.js'; import type { AuthDto } from 'src/dtos/auth.dto.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { CalendarHeatmapDto, CalendarHeatmapResponseDto } from 'src/dtos/calendar-heatmap.dto.js'; import { CalendarHeatmapDto, CalendarHeatmapResponseDto } from 'src/dtos/calendar-heatmap.dto.js';
import { LicenseKeyDto, LicenseResponseDto } from 'src/dtos/license.dto.js'; import { LicenseKeyDto, LicenseResponseDto } from 'src/dtos/license.dto.js';
import { OnboardingDto, OnboardingResponseDto } from 'src/dtos/onboarding.dto.js'; import { OnboardingDto, OnboardingResponseDto } from 'src/dtos/onboarding.dto.js';
@@ -1,10 +1,10 @@
import { Controller, Delete, Get, Header, Headers, HttpCode, HttpStatus, Next, Param, Res } from '@nestjs/common'; import { Controller, Delete, Get, Header, Headers, HttpCode, HttpStatus, Next, Param, Res } from '@nestjs/common';
import { ApiProduces, ApiTags } from '@nestjs/swagger'; import { ApiProduces, ApiTags } from '@nestjs/swagger';
import type { NextFunction, Response } from 'express';
import { ZodValidationException } from 'nestjs-zod'; import { ZodValidationException } from 'nestjs-zod';
import type { NextFunction, Response } from 'express';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { HLS_PLAYLIST_CONTENT_TYPE } from 'src/constants.js'; import { HLS_PLAYLIST_CONTENT_TYPE } from 'src/constants.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js'; import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { import {
HlsPlaylistHeaderDto, HlsPlaylistHeaderDto,
HlsSegmentHeaderDto, HlsSegmentHeaderDto,
+1 -1
View File
@@ -1,8 +1,8 @@
import { Controller, Get, Query } from '@nestjs/common'; import { Controller, Get, Query } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js'; import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { AssetResponseDto } from 'src/dtos/asset-response.dto.js'; import { AssetResponseDto } from 'src/dtos/asset-response.dto.js';
import type { AuthDto } from 'src/dtos/auth.dto.js';
import { ApiTag, Permission } from 'src/enum.js'; import { ApiTag, Permission } from 'src/enum.js';
import { Auth, Authenticated } from 'src/middleware/auth.guard.js'; import { Auth, Authenticated } from 'src/middleware/auth.guard.js';
import { ViewService } from 'src/services/view.service.js'; import { ViewService } from 'src/services/view.service.js';
@@ -1,10 +1,10 @@
import { WorkflowTrigger } from '@immich/plugin-sdk'; import { WorkflowTrigger } from '@immich/plugin-sdk';
import request from 'supertest';
import { WorkflowController } from 'src/controllers/workflow.controller.js'; import { WorkflowController } from 'src/controllers/workflow.controller.js';
import { LoggingRepository } from 'src/repositories/logging.repository.js'; import { LoggingRepository } from 'src/repositories/logging.repository.js';
import { WorkflowService } from 'src/services/workflow.service.js'; import { WorkflowService } from 'src/services/workflow.service.js';
import request from 'supertest';
import { errorDto } from 'test/medium/responses.js'; import { errorDto } from 'test/medium/responses.js';
import { automock, ControllerContext, controllerSetup, mockBaseService } from 'test/utils.js'; import { ControllerContext, automock, controllerSetup, mockBaseService } from 'test/utils.js';
describe(WorkflowController.name, () => { describe(WorkflowController.name, () => {
let ctx: ControllerContext; let ctx: ControllerContext;
@@ -1,7 +1,7 @@
import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Patch, Post, Put, Query } from '@nestjs/common'; import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Patch, Post, Put, Query } from '@nestjs/common';
import { ApiExcludeEndpoint, ApiTags } from '@nestjs/swagger'; import { ApiExcludeEndpoint, ApiTags } from '@nestjs/swagger';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import type { AuthDto } from 'src/dtos/auth.dto.js'; import type { AuthDto } from 'src/dtos/auth.dto.js';
import { Endpoint, HistoryBuilder } from 'src/decorators.js';
import { import {
WorkflowCreateDto, WorkflowCreateDto,
WorkflowGetLogsDto, WorkflowGetLogsDto,
+1 -1
View File
@@ -1,5 +1,5 @@
import { StorageCore } from 'src/cores/storage.core.js';
import { vitest } from 'vitest'; import { vitest } from 'vitest';
import { StorageCore } from 'src/cores/storage.core.js';
vitest.mock('src/constants', () => ({ vitest.mock('src/constants', () => ({
IWorker: 'IWorker', IWorker: 'IWorker',
+1 -1
View File
@@ -1,4 +1,5 @@
import { dirname, join, resolve } from 'node:path'; import { dirname, join, resolve } from 'node:path';
import type { VideoInterfaces } from 'src/types.js';
import { StorageAsset } from 'src/database.js'; import { StorageAsset } from 'src/database.js';
import { import {
AssetFileType, AssetFileType,
@@ -18,7 +19,6 @@ import { MoveRepository } from 'src/repositories/move.repository.js';
import { PersonRepository } from 'src/repositories/person.repository.js'; import { PersonRepository } from 'src/repositories/person.repository.js';
import { StorageRepository } from 'src/repositories/storage.repository.js'; import { StorageRepository } from 'src/repositories/storage.repository.js';
import { SystemMetadataRepository } from 'src/repositories/system-metadata.repository.js'; import { SystemMetadataRepository } from 'src/repositories/system-metadata.repository.js';
import type { VideoInterfaces } from 'src/types.js';
import { getAssetFile } from 'src/utils/asset.util.js'; import { getAssetFile } from 'src/utils/asset.util.js';
import { getConfig } from 'src/utils/config.js'; import { getConfig } from 'src/utils/config.js';
+1 -1
View File
@@ -1,4 +1,5 @@
import { Selectable, ShallowDehydrateObject } from 'kysely'; import { Selectable, ShallowDehydrateObject } from 'kysely';
import type { UserMetadataItem } from 'src/types.js';
import { MapAsset } from 'src/dtos/asset-response.dto.js'; import { MapAsset } from 'src/dtos/asset-response.dto.js';
import { import {
AlbumUserRole, AlbumUserRole,
@@ -17,7 +18,6 @@ import { AlbumTable } from 'src/schema/tables/album.table.js';
import { AssetExifTable } from 'src/schema/tables/asset-exif.table.js'; import { AssetExifTable } from 'src/schema/tables/asset-exif.table.js';
import { AssetTable } from 'src/schema/tables/asset.table.js'; import { AssetTable } from 'src/schema/tables/asset.table.js';
import { PluginTable } from 'src/schema/tables/plugin.table.js'; import { PluginTable } from 'src/schema/tables/plugin.table.js';
import type { UserMetadataItem } from 'src/types.js';
export type AuthUser = { export type AuthUser = {
id: string; id: string;
+3 -3
View File
@@ -1,8 +1,8 @@
import { createZodDto } from 'nestjs-zod'; import { createZodDto } from 'nestjs-zod';
import { Activity } from 'src/database.js';
import { mapUser, UserResponseSchema } from 'src/dtos/user.dto.js';
import { isoDatetimeToDate } from 'src/validation.js';
import z from 'zod'; import z from 'zod';
import { Activity } from 'src/database.js';
import { UserResponseSchema, mapUser } from 'src/dtos/user.dto.js';
import { isoDatetimeToDate } from 'src/validation.js';
export enum ReactionLevel { export enum ReactionLevel {
ALBUM = 'album', ALBUM = 'album',
+2 -2
View File
@@ -1,15 +1,15 @@
import { ShallowDehydrateObject } from 'kysely'; import { ShallowDehydrateObject } from 'kysely';
import { createZodDto } from 'nestjs-zod'; import { createZodDto } from 'nestjs-zod';
import z from 'zod';
import type { MaybeDehydrated } from 'src/types.js';
import { AlbumUser, AuthSharedLink } from 'src/database.js'; import { AlbumUser, AuthSharedLink } from 'src/database.js';
import { HistoryBuilder } from 'src/decorators.js'; import { HistoryBuilder } from 'src/decorators.js';
import { BulkIdErrorReasonSchema } from 'src/dtos/asset-ids.response.dto.js'; import { BulkIdErrorReasonSchema } from 'src/dtos/asset-ids.response.dto.js';
import { MapAsset } from 'src/dtos/asset-response.dto.js'; import { MapAsset } from 'src/dtos/asset-response.dto.js';
import { UserResponseSchema, mapUser } from 'src/dtos/user.dto.js'; import { UserResponseSchema, mapUser } from 'src/dtos/user.dto.js';
import { AlbumUserRole, AlbumUserRoleSchema, AssetOrder, AssetOrderSchema } from 'src/enum.js'; import { AlbumUserRole, AlbumUserRoleSchema, AssetOrder, AssetOrderSchema } from 'src/enum.js';
import type { MaybeDehydrated } from 'src/types.js';
import { asDateTimeString } from 'src/utils/date.js'; import { asDateTimeString } from 'src/utils/date.js';
import { stringToBool } from 'src/validation.js'; import { stringToBool } from 'src/validation.js';
import z from 'zod';
const AlbumUserAddSchema = z const AlbumUserAddSchema = z
.object({ .object({
+1 -1
View File
@@ -1,8 +1,8 @@
import { createZodDto } from 'nestjs-zod'; import { createZodDto } from 'nestjs-zod';
import z from 'zod';
import { HistoryBuilder } from 'src/decorators.js'; import { HistoryBuilder } from 'src/decorators.js';
import { Permission } from 'src/enum.js'; import { Permission } from 'src/enum.js';
import { isoDatetimeToDate } from 'src/validation.js'; import { isoDatetimeToDate } from 'src/validation.js';
import z from 'zod';
const PermissionSchema = z.enum(Permission).describe('List of permissions').meta({ id: 'Permission' }); const PermissionSchema = z.enum(Permission).describe('List of permissions').meta({ id: 'Permission' });
+1 -1
View File
@@ -1,9 +1,9 @@
import { Selectable } from 'kysely'; import { Selectable } from 'kysely';
import { createZodDto } from 'nestjs-zod'; import { createZodDto } from 'nestjs-zod';
import z from 'zod';
import { AssetFileTypeSchema } from 'src/enum.js'; import { AssetFileTypeSchema } from 'src/enum.js';
import { AssetFileTable } from 'src/schema/tables/asset-file.table.js'; import { AssetFileTable } from 'src/schema/tables/asset-file.table.js';
import { isoDatetimeToDate, stringToBool } from 'src/validation.js'; import { isoDatetimeToDate, stringToBool } from 'src/validation.js';
import z from 'zod';
const AssetFileSearchSchema = z const AssetFileSearchSchema = z
.object({ .object({
+2 -2
View File
@@ -1,9 +1,9 @@
import { createZodDto } from 'nestjs-zod'; import { createZodDto } from 'nestjs-zod';
import z from 'zod';
import { HistoryBuilder } from 'src/decorators.js'; import { HistoryBuilder } from 'src/decorators.js';
import { AssetMetadataUpsertItemSchema } from 'src/dtos/asset.dto.js'; import { AssetMetadataUpsertItemSchema } from 'src/dtos/asset.dto.js';
import { ApiCustomExtension, AssetVisibilitySchema } from 'src/enum.js'; import { ApiCustomExtension, AssetVisibilitySchema } from 'src/enum.js';
import { isoDatetimeToDate, JsonParsed, stringToBool } from 'src/validation.js'; import { JsonParsed, isoDatetimeToDate, stringToBool } from 'src/validation.js';
import z from 'zod';
export enum AssetMediaSize { export enum AssetMediaSize {
Original = 'original', Original = 'original',
+2 -2
View File
@@ -1,5 +1,7 @@
import { Selectable, ShallowDehydrateObject } from 'kysely'; import { Selectable, ShallowDehydrateObject } from 'kysely';
import { createZodDto } from 'nestjs-zod'; import { createZodDto } from 'nestjs-zod';
import z from 'zod';
import type { MaybeDehydrated } from 'src/types.js';
import { AssetFace, AssetFile, Exif, Stack, Tag, User } from 'src/database.js'; import { AssetFace, AssetFile, Exif, Stack, Tag, User } from 'src/database.js';
import { HistoryBuilder } from 'src/decorators.js'; import { HistoryBuilder } from 'src/decorators.js';
import { AuthDto } from 'src/dtos/auth.dto.js'; import { AuthDto } from 'src/dtos/auth.dto.js';
@@ -16,11 +18,9 @@ import {
AssetVisibilitySchema, AssetVisibilitySchema,
ChecksumAlgorithm, ChecksumAlgorithm,
} from 'src/enum.js'; } from 'src/enum.js';
import type { MaybeDehydrated } from 'src/types.js';
import { hexOrBufferToBase64 } from 'src/utils/bytes.js'; import { hexOrBufferToBase64 } from 'src/utils/bytes.js';
import { asDateTimeString } from 'src/utils/date.js'; import { asDateTimeString } from 'src/utils/date.js';
import { mimeTypes } from 'src/utils/mime-types.js'; import { mimeTypes } from 'src/utils/mime-types.js';
import z from 'zod';
const SanitizedAssetResponseSchema = z const SanitizedAssetResponseSchema = z
.object({ .object({
+1 -1
View File
@@ -1,10 +1,10 @@
import { createZodDto } from 'nestjs-zod'; import { createZodDto } from 'nestjs-zod';
import z from 'zod';
import { HistoryBuilder } from 'src/decorators.js'; import { HistoryBuilder } from 'src/decorators.js';
import { BulkIdsSchema } from 'src/dtos/asset-ids.response.dto.js'; import { BulkIdsSchema } from 'src/dtos/asset-ids.response.dto.js';
import { AssetType, AssetVisibilitySchema } from 'src/enum.js'; import { AssetType, AssetVisibilitySchema } from 'src/enum.js';
import { AssetStats } from 'src/repositories/asset.repository.js'; import { AssetStats } from 'src/repositories/asset.repository.js';
import { IsNotSiblingOf, isoDatetimeToDate, latitudeSchema, longitudeSchema, stringToBool } from 'src/validation.js'; import { IsNotSiblingOf, isoDatetimeToDate, latitudeSchema, longitudeSchema, stringToBool } from 'src/validation.js';
import z from 'zod';
const UpdateAssetBaseSchema = z const UpdateAssetBaseSchema = z
.object({ .object({
+2 -2
View File
@@ -1,9 +1,9 @@
import { createZodDto } from 'nestjs-zod'; import { createZodDto } from 'nestjs-zod';
import z from 'zod';
import type { UserMetadataItem } from 'src/types.js';
import { AuthApiKey, AuthSession, AuthSharedLink, AuthUser, UserAdmin } from 'src/database.js'; import { AuthApiKey, AuthSession, AuthSharedLink, AuthUser, UserAdmin } from 'src/database.js';
import { ImmichCookie, UserMetadataKey } from 'src/enum.js'; import { ImmichCookie, UserMetadataKey } from 'src/enum.js';
import type { UserMetadataItem } from 'src/types.js';
import { toEmail } from 'src/validation.js'; import { toEmail } from 'src/validation.js';
import z from 'zod';
export type CookieResponse = { export type CookieResponse = {
isSecure: boolean; isSecure: boolean;
+1 -1
View File
@@ -1,5 +1,5 @@
import { latitudeSchema, longitudeSchema } from 'src/validation.js';
import z from 'zod'; import z from 'zod';
import { latitudeSchema, longitudeSchema } from 'src/validation.js';
export const BBoxSchema = z export const BBoxSchema = z
.object({ .object({
+1 -1
View File
@@ -1,7 +1,7 @@
import { createZodDto } from 'nestjs-zod'; import { createZodDto } from 'nestjs-zod';
import z from 'zod';
import { CalendarHeatmapType } from 'src/enum.js'; import { CalendarHeatmapType } from 'src/enum.js';
import { isoDateToDate } from 'src/validation.js'; import { isoDateToDate } from 'src/validation.js';
import z from 'zod';
const CalendarHeatmapTypeSchema = z const CalendarHeatmapTypeSchema = z
.enum(CalendarHeatmapType) .enum(CalendarHeatmapType)
+1 -1
View File
@@ -1,8 +1,8 @@
import { Selectable } from 'kysely'; import { Selectable } from 'kysely';
import { createZodDto } from 'nestjs-zod'; import { createZodDto } from 'nestjs-zod';
import z from 'zod';
import { ClusterGroupRequestTable } from 'src/schema/tables/cluster-group-request.table.js'; import { ClusterGroupRequestTable } from 'src/schema/tables/cluster-group-request.table.js';
import { isoDatetimeToDate } from 'src/validation.js'; import { isoDatetimeToDate } from 'src/validation.js';
import z from 'zod';
const ClusterGroupRequestCreateSchema = z const ClusterGroupRequestCreateSchema = z
.object({ .object({
+3 -3
View File
@@ -1,13 +1,13 @@
import z from 'zod';
import { import {
AdminConfigDto, AdminConfigDto,
PublicConfigDto,
UserConfigDto,
defaults, defaults,
mapPublicConfig, mapPublicConfig,
mapUserConfig, mapUserConfig,
PublicConfigDto,
UserConfigDto,
} from 'src/dtos/config.dto.js'; } from 'src/dtos/config.dto.js';
import { getKeysDeep } from 'src/utils/misc.js'; import { getKeysDeep } from 'src/utils/misc.js';
import z from 'zod';
const PUBLIC_PROPERTIES = [ const PUBLIC_PROPERTIES = [
'oauth.autoLaunch', 'oauth.autoLaunch',
+4 -4
View File
@@ -1,14 +1,16 @@
import { CronExpression } from '@nestjs/schedule'; import { CronExpression } from '@nestjs/schedule';
import { validateCronExpression } from 'cron'; import { validateCronExpression } from 'cron';
import { createZodDto } from 'nestjs-zod'; import { createZodDto } from 'nestjs-zod';
import z from 'zod';
import type { DeepPartial } from 'src/types.js';
import { import {
AudioCodec, AudioCodec,
AudioCodecSchema, AudioCodecSchema,
CQMode,
CQModeSchema,
Colorspace, Colorspace,
ColorspaceSchema, ColorspaceSchema,
ConfigVisibility, ConfigVisibility,
CQMode,
CQModeSchema,
HlsVideoResolution, HlsVideoResolution,
HlsVideoResolutionSchema, HlsVideoResolutionSchema,
ImageFormat, ImageFormat,
@@ -30,8 +32,6 @@ import {
VideoContainer, VideoContainer,
VideoContainerSchema, VideoContainerSchema,
} from 'src/enum.js'; } from 'src/enum.js';
import type { DeepPartial } from 'src/types.js';
import z from 'zod';
const { Admin, User, Public } = ConfigVisibility; const { Admin, User, Public } = ConfigVisibility;
+1 -1
View File
@@ -1,6 +1,6 @@
import { createZodDto } from 'nestjs-zod'; import { createZodDto } from 'nestjs-zod';
import { AssetResponseSchema } from 'src/dtos/asset-response.dto.js';
import z from 'zod'; import z from 'zod';
import { AssetResponseSchema } from 'src/dtos/asset-response.dto.js';
const DuplicateResponseSchema = z const DuplicateResponseSchema = z
.object({ .object({
+1 -1
View File
@@ -1,6 +1,6 @@
import z from 'zod';
import { ImmichEnvironmentSchema, LogFormatSchema, LogLevelSchema } from 'src/enum.js'; import { ImmichEnvironmentSchema, LogFormatSchema, LogLevelSchema } from 'src/enum.js';
import { IsIPRange } from 'src/validation.js'; import { IsIPRange } from 'src/validation.js';
import z from 'zod';
// TODO import from sql-tools once the swagger plugin supports external enums // TODO import from sql-tools once the swagger plugin supports external enums
enum DatabaseSslMode { enum DatabaseSslMode {
+3 -3
View File
@@ -1,8 +1,8 @@
import { createZodDto } from 'nestjs-zod'; import { createZodDto } from 'nestjs-zod';
import { Exif } from 'src/database.js';
import type { MaybeDehydrated } from 'src/types.js';
import { asDateTimeString } from 'src/utils/date.js';
import z from 'zod'; import z from 'zod';
import type { MaybeDehydrated } from 'src/types.js';
import { Exif } from 'src/database.js';
import { asDateTimeString } from 'src/utils/date.js';
export const ExifResponseSchema = z export const ExifResponseSchema = z
.object({ .object({
+1 -1
View File
@@ -1,6 +1,6 @@
import { createZodDto } from 'nestjs-zod'; import { createZodDto } from 'nestjs-zod';
import { IntegrityReport, IntegrityReportSchema } from 'src/enum.js';
import z from 'zod'; import z from 'zod';
import { IntegrityReport, IntegrityReportSchema } from 'src/enum.js';
const IntegrityReportSummaryResponseSchema = z const IntegrityReportSummaryResponseSchema = z
.object({ .object({
+1 -1
View File
@@ -1,6 +1,6 @@
import { createZodDto } from 'nestjs-zod'; import { createZodDto } from 'nestjs-zod';
import { ManualJobNameSchema } from 'src/enum.js';
import z from 'zod'; import z from 'zod';
import { ManualJobNameSchema } from 'src/enum.js';
const JobCreateSchema = z const JobCreateSchema = z
.object({ .object({
+1 -1
View File
@@ -1,7 +1,7 @@
import { createZodDto } from 'nestjs-zod'; import { createZodDto } from 'nestjs-zod';
import z from 'zod';
import { Library } from 'src/database.js'; import { Library } from 'src/database.js';
import { isoDatetimeToDate } from 'src/validation.js'; import { isoDatetimeToDate } from 'src/validation.js';
import z from 'zod';
const stringArrayMax128 = z const stringArrayMax128 = z
.array(z.string()) .array(z.string())
+1 -1
View File
@@ -1,6 +1,6 @@
import { createZodDto } from 'nestjs-zod'; import { createZodDto } from 'nestjs-zod';
import { MaintenanceAction, MaintenanceActionSchema, StorageFolderSchema } from 'src/enum.js';
import z from 'zod'; import z from 'zod';
import { MaintenanceAction, MaintenanceActionSchema, StorageFolderSchema } from 'src/enum.js';
const SetMaintenanceModeSchema = z const SetMaintenanceModeSchema = z
.object({ .object({
+1 -1
View File
@@ -1,6 +1,6 @@
import { createZodDto } from 'nestjs-zod'; import { createZodDto } from 'nestjs-zod';
import { isoDatetimeToDate, latitudeSchema, longitudeSchema, stringToBool } from 'src/validation.js';
import z from 'zod'; import z from 'zod';
import { isoDatetimeToDate, latitudeSchema, longitudeSchema, stringToBool } from 'src/validation.js';
const MapReverseGeocodeSchema = z const MapReverseGeocodeSchema = z
.object({ .object({

Some files were not shown because too many files have changed in this diff Show More