mirror of
https://github.com/CaramelFur/Picsur.git
synced 2025-10-25 23:46:06 +02:00
Make backend work with nodenext
This commit is contained in:
@@ -3,15 +3,15 @@ import { ScheduleModule } from '@nestjs/schedule';
|
||||
import { ServeStaticModule } from '@nestjs/serve-static';
|
||||
import cors from 'cors';
|
||||
import { IncomingMessage, ServerResponse } from 'http';
|
||||
import { EarlyConfigModule } from './config/early/early-config.module';
|
||||
import { ServeStaticConfigService } from './config/early/serve-static.config.service';
|
||||
import { DatabaseModule } from './database/database.module';
|
||||
import { PicsurLayersModule } from './layers/PicsurLayers.module';
|
||||
import { PicsurLoggerModule } from './logger/logger.module';
|
||||
import { AuthManagerModule } from './managers/auth/auth.module';
|
||||
import { DemoManagerModule } from './managers/demo/demo.module';
|
||||
import { UsageManagerModule } from './managers/usage/usage.module';
|
||||
import { PicsurRoutesModule } from './routes/routes.module';
|
||||
import { EarlyConfigModule } from './config/early/early-config.module.js';
|
||||
import { ServeStaticConfigService } from './config/early/serve-static.config.service.js';
|
||||
import { DatabaseModule } from './database/database.module.js';
|
||||
import { PicsurLayersModule } from './layers/PicsurLayers.module.js';
|
||||
import { PicsurLoggerModule } from './logger/logger.module.js';
|
||||
import { AuthManagerModule } from './managers/auth/auth.module.js';
|
||||
import { DemoManagerModule } from './managers/demo/demo.module.js';
|
||||
import { UsageManagerModule } from './managers/usage/usage.module.js';
|
||||
import { PicsurRoutesModule } from './routes/routes.module.js';
|
||||
|
||||
const mainCorsConfig = cors({
|
||||
origin: '<origin>',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import { EApiKeyBackend } from '../../database/entities/apikey.entity';
|
||||
import { ApiKeyDbService } from './apikey-db.service';
|
||||
import { EApiKeyBackend } from '../../database/entities/apikey.entity.js';
|
||||
import { ApiKeyDbService } from './apikey-db.service.js';
|
||||
|
||||
@Module({
|
||||
imports: [TypeOrmModule.forFeature([EApiKeyBackend])],
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
import { Injectable, Logger } from '@nestjs/common';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import {
|
||||
AsyncFailable,
|
||||
Fail,
|
||||
FT,
|
||||
HasFailed,
|
||||
AsyncFailable,
|
||||
Fail,
|
||||
FT,
|
||||
HasFailed,
|
||||
} from 'picsur-shared/dist/types/failable';
|
||||
import { FindResult } from 'picsur-shared/dist/types/find-result';
|
||||
import { generateRandomString } from 'picsur-shared/dist/util/random';
|
||||
import { Repository } from 'typeorm';
|
||||
import { EApiKeyBackend } from '../../database/entities/apikey.entity';
|
||||
import { EUserBackend } from '../../database/entities/users/user.entity';
|
||||
import { EApiKeyBackend } from '../../database/entities/apikey.entity.js';
|
||||
import { EUserBackend } from '../../database/entities/users/user.entity.js';
|
||||
|
||||
@Injectable()
|
||||
export class ApiKeyDbService {
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import { EImageDerivativeBackend } from '../../database/entities/images/image-derivative.entity';
|
||||
import { EImageFileBackend } from '../../database/entities/images/image-file.entity';
|
||||
import { EImageBackend } from '../../database/entities/images/image.entity';
|
||||
import { ImageDBService } from './image-db.service';
|
||||
import { ImageFileDBService } from './image-file-db.service';
|
||||
import { EImageDerivativeBackend } from '../../database/entities/images/image-derivative.entity.js';
|
||||
import { EImageFileBackend } from '../../database/entities/images/image-file.entity.js';
|
||||
import { EImageBackend } from '../../database/entities/images/image.entity.js';
|
||||
import { ImageDBService } from './image-db.service.js';
|
||||
import { ImageFileDBService } from './image-file-db.service.js';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
|
||||
@@ -4,7 +4,7 @@ import { AsyncFailable, Fail, FT } from 'picsur-shared/dist/types/failable';
|
||||
import { FindResult } from 'picsur-shared/dist/types/find-result';
|
||||
import { generateRandomString } from 'picsur-shared/dist/util/random';
|
||||
import { In, LessThan, Repository } from 'typeorm';
|
||||
import { EImageBackend } from '../../database/entities/images/image.entity';
|
||||
import { EImageBackend } from '../../database/entities/images/image.entity.js';
|
||||
|
||||
@Injectable()
|
||||
export class ImageDBService {
|
||||
|
||||
@@ -2,14 +2,14 @@ import { Injectable } from '@nestjs/common';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { ImageEntryVariant } from 'picsur-shared/dist/dto/image-entry-variant.enum';
|
||||
import {
|
||||
AsyncFailable,
|
||||
Fail,
|
||||
FT,
|
||||
HasFailed,
|
||||
AsyncFailable,
|
||||
Fail,
|
||||
FT,
|
||||
HasFailed,
|
||||
} from 'picsur-shared/dist/types/failable';
|
||||
import { LessThan, Repository } from 'typeorm';
|
||||
import { EImageDerivativeBackend } from '../../database/entities/images/image-derivative.entity';
|
||||
import { EImageFileBackend } from '../../database/entities/images/image-file.entity';
|
||||
import { EImageDerivativeBackend } from '../../database/entities/images/image-derivative.entity.js';
|
||||
import { EImageFileBackend } from '../../database/entities/images/image-file.entity.js';
|
||||
|
||||
const A_DAY_IN_SECONDS = 24 * 60 * 60;
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import { EarlyConfigModule } from '../../config/early/early-config.module';
|
||||
import { ESysPreferenceBackend } from '../../database/entities/system/sys-preference.entity';
|
||||
import { EUsrPreferenceBackend } from '../../database/entities/system/usr-preference.entity';
|
||||
import { PreferenceCommonService } from './preference-common.service';
|
||||
import { PreferenceDefaultsService } from './preference-defaults.service';
|
||||
import { SysPreferenceDbService } from './sys-preference-db.service';
|
||||
import { UsrPreferenceDbService } from './usr-preference-db.service';
|
||||
import { EarlyConfigModule } from '../../config/early/early-config.module.js';
|
||||
import { ESysPreferenceBackend } from '../../database/entities/system/sys-preference.entity.js';
|
||||
import { EUsrPreferenceBackend } from '../../database/entities/system/usr-preference.entity.js';
|
||||
import { PreferenceCommonService } from './preference-common.service.js';
|
||||
import { PreferenceDefaultsService } from './preference-defaults.service.js';
|
||||
import { SysPreferenceDbService } from './sys-preference-db.service.js';
|
||||
import { UsrPreferenceDbService } from './usr-preference-db.service.js';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
|
||||
@@ -3,7 +3,7 @@ import { PrefValueType } from 'picsur-shared/dist/dto/preferences.dto';
|
||||
import { SysPreference } from 'picsur-shared/dist/dto/sys-preferences.enum';
|
||||
import { UsrPreference } from 'picsur-shared/dist/dto/usr-preferences.enum';
|
||||
import { generateRandomString } from 'picsur-shared/dist/util/random';
|
||||
import { EarlyJwtConfigService } from '../../config/early/early-jwt.config.service';
|
||||
import { EarlyJwtConfigService } from '../../config/early/early-jwt.config.service.js';
|
||||
|
||||
// This specific service holds the default values for system and user preferences
|
||||
// It needs to be in a service because the values depend on the environment
|
||||
|
||||
@@ -1,30 +1,30 @@
|
||||
import { Injectable, Logger } from '@nestjs/common';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import {
|
||||
DecodedSysPref,
|
||||
PrefValueType,
|
||||
PrefValueTypeStrings,
|
||||
DecodedSysPref,
|
||||
PrefValueType,
|
||||
PrefValueTypeStrings,
|
||||
} from 'picsur-shared/dist/dto/preferences.dto';
|
||||
import {
|
||||
SysPreference,
|
||||
SysPreferenceList,
|
||||
SysPreferenceValidators,
|
||||
SysPreferenceValueTypes,
|
||||
SysPreference,
|
||||
SysPreferenceList,
|
||||
SysPreferenceValidators,
|
||||
SysPreferenceValueTypes,
|
||||
} from 'picsur-shared/dist/dto/sys-preferences.enum';
|
||||
import {
|
||||
AsyncFailable,
|
||||
Fail,
|
||||
FT,
|
||||
HasFailed,
|
||||
AsyncFailable,
|
||||
Fail,
|
||||
FT,
|
||||
HasFailed,
|
||||
} from 'picsur-shared/dist/types/failable';
|
||||
import { Repository } from 'typeorm';
|
||||
import {
|
||||
ESysPreferenceBackend,
|
||||
ESysPreferenceSchema,
|
||||
} from '../../database/entities/system/sys-preference.entity';
|
||||
import { MutexFallBack } from '../../util/mutex-fallback';
|
||||
import { PreferenceCommonService } from './preference-common.service';
|
||||
import { PreferenceDefaultsService } from './preference-defaults.service';
|
||||
ESysPreferenceBackend,
|
||||
ESysPreferenceSchema,
|
||||
} from '../../database/entities/system/sys-preference.entity.js';
|
||||
import { MutexFallBack } from '../../util/mutex-fallback.js';
|
||||
import { PreferenceCommonService } from './preference-common.service.js';
|
||||
import { PreferenceDefaultsService } from './preference-defaults.service.js';
|
||||
|
||||
@Injectable()
|
||||
export class SysPreferenceDbService {
|
||||
|
||||
@@ -1,30 +1,30 @@
|
||||
import { Injectable, Logger } from '@nestjs/common';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import {
|
||||
DecodedUsrPref,
|
||||
PrefValueType,
|
||||
PrefValueTypeStrings,
|
||||
DecodedUsrPref,
|
||||
PrefValueType,
|
||||
PrefValueTypeStrings,
|
||||
} from 'picsur-shared/dist/dto/preferences.dto';
|
||||
import {
|
||||
UsrPreference,
|
||||
UsrPreferenceList,
|
||||
UsrPreferenceValidators,
|
||||
UsrPreferenceValueTypes,
|
||||
UsrPreference,
|
||||
UsrPreferenceList,
|
||||
UsrPreferenceValidators,
|
||||
UsrPreferenceValueTypes,
|
||||
} from 'picsur-shared/dist/dto/usr-preferences.enum';
|
||||
import {
|
||||
AsyncFailable,
|
||||
Fail,
|
||||
FT,
|
||||
HasFailed,
|
||||
AsyncFailable,
|
||||
Fail,
|
||||
FT,
|
||||
HasFailed,
|
||||
} from 'picsur-shared/dist/types/failable';
|
||||
import { Repository } from 'typeorm';
|
||||
import {
|
||||
EUsrPreferenceBackend,
|
||||
EUsrPreferenceSchema,
|
||||
} from '../../database/entities/system/usr-preference.entity';
|
||||
import { MutexFallBack } from '../../util/mutex-fallback';
|
||||
import { PreferenceCommonService } from './preference-common.service';
|
||||
import { PreferenceDefaultsService } from './preference-defaults.service';
|
||||
EUsrPreferenceBackend,
|
||||
EUsrPreferenceSchema,
|
||||
} from '../../database/entities/system/usr-preference.entity.js';
|
||||
import { MutexFallBack } from '../../util/mutex-fallback.js';
|
||||
import { PreferenceCommonService } from './preference-common.service.js';
|
||||
import { PreferenceDefaultsService } from './preference-defaults.service.js';
|
||||
|
||||
@Injectable()
|
||||
export class UsrPreferenceDbService {
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
import { Logger, Module, OnModuleInit } from '@nestjs/common';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import { HasFailed } from 'picsur-shared/dist/types/failable';
|
||||
import { EarlyConfigModule } from '../../config/early/early-config.module';
|
||||
import { HostConfigService } from '../../config/early/host.config.service';
|
||||
import { ERoleBackend } from '../../database/entities/users/role.entity';
|
||||
import { EarlyConfigModule } from '../../config/early/early-config.module.js';
|
||||
import { HostConfigService } from '../../config/early/host.config.service.js';
|
||||
import { ERoleBackend } from '../../database/entities/users/role.entity.js';
|
||||
import {
|
||||
ImmutableRolesList,
|
||||
SystemRoleDefaults,
|
||||
SystemRolesList,
|
||||
} from '../../models/constants/roles.const';
|
||||
import { RoleDbService } from './role-db.service';
|
||||
ImmutableRolesList,
|
||||
SystemRoleDefaults,
|
||||
SystemRolesList,
|
||||
} from '../../models/constants/roles.const.js';
|
||||
import { RoleDbService } from './role-db.service.js';
|
||||
|
||||
@Module({
|
||||
imports: [EarlyConfigModule, TypeOrmModule.forFeature([ERoleBackend])],
|
||||
|
||||
@@ -2,21 +2,21 @@ import { Injectable, Logger } from '@nestjs/common';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { ERoleSchema } from 'picsur-shared/dist/entities/role.entity';
|
||||
import {
|
||||
AsyncFailable,
|
||||
Fail,
|
||||
FT,
|
||||
HasFailed,
|
||||
HasSuccess,
|
||||
AsyncFailable,
|
||||
Fail,
|
||||
FT,
|
||||
HasFailed,
|
||||
HasSuccess,
|
||||
} from 'picsur-shared/dist/types/failable';
|
||||
import { makeUnique } from 'picsur-shared/dist/util/unique';
|
||||
import { In, Repository } from 'typeorm';
|
||||
import { ERoleBackend } from '../../database/entities/users/role.entity';
|
||||
import { Permissions } from '../../models/constants/permissions.const';
|
||||
import { ERoleBackend } from '../../database/entities/users/role.entity.js';
|
||||
import { Permissions } from '../../models/constants/permissions.const.js';
|
||||
import {
|
||||
ImmutableRolesList,
|
||||
RolePermissionsLocks,
|
||||
UndeletableRolesList,
|
||||
} from '../../models/constants/roles.const';
|
||||
ImmutableRolesList,
|
||||
RolePermissionsLocks,
|
||||
UndeletableRolesList,
|
||||
} from '../../models/constants/roles.const.js';
|
||||
|
||||
@Injectable()
|
||||
export class RoleDbService {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import { ESystemStateBackend } from '../../database/entities/system/system-state.entity';
|
||||
import { SystemStateDbService } from './system-state-db.service';
|
||||
import { ESystemStateBackend } from '../../database/entities/system/system-state.entity.js';
|
||||
import { SystemStateDbService } from './system-state-db.service.js';
|
||||
|
||||
@Module({
|
||||
imports: [TypeOrmModule.forFeature([ESystemStateBackend])],
|
||||
|
||||
@@ -2,7 +2,7 @@ import { Injectable, Logger } from '@nestjs/common';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { AsyncFailable, Fail, FT } from 'picsur-shared/dist/types/failable';
|
||||
import { Repository } from 'typeorm';
|
||||
import { ESystemStateBackend } from '../../database/entities/system/system-state.entity';
|
||||
import { ESystemStateBackend } from '../../database/entities/system/system-state.entity.js';
|
||||
|
||||
@Injectable()
|
||||
export class SystemStateDbService {
|
||||
|
||||
@@ -2,12 +2,12 @@ import { Logger, Module, OnModuleInit } from '@nestjs/common';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import { HasFailed } from 'picsur-shared/dist/types/failable';
|
||||
import { generateRandomString } from 'picsur-shared/dist/util/random';
|
||||
import { AuthConfigService } from '../../config/early/auth.config.service';
|
||||
import { EarlyConfigModule } from '../../config/early/early-config.module';
|
||||
import { EUserBackend } from '../../database/entities/users/user.entity';
|
||||
import { PreferenceDbModule } from '../preference-db/preference-db.module';
|
||||
import { RoleDbModule } from '../role-db/role-db.module';
|
||||
import { UserDbService } from './user-db.service';
|
||||
import { AuthConfigService } from '../../config/early/auth.config.service.js';
|
||||
import { EarlyConfigModule } from '../../config/early/early-config.module.js';
|
||||
import { EUserBackend } from '../../database/entities/users/user.entity.js';
|
||||
import { PreferenceDbModule } from '../preference-db/preference-db.module.js';
|
||||
import { RoleDbModule } from '../role-db/role-db.module.js';
|
||||
import { UserDbService } from './user-db.service.js';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
|
||||
@@ -3,29 +3,29 @@ import { InjectRepository } from '@nestjs/typeorm';
|
||||
import * as bcrypt from 'bcrypt';
|
||||
import { SysPreference } from 'picsur-shared/dist/dto/sys-preferences.enum';
|
||||
import {
|
||||
AsyncFailable,
|
||||
Fail,
|
||||
FT,
|
||||
HasFailed,
|
||||
HasSuccess,
|
||||
AsyncFailable,
|
||||
Fail,
|
||||
FT,
|
||||
HasFailed,
|
||||
HasSuccess,
|
||||
} from 'picsur-shared/dist/types/failable';
|
||||
import { FindResult } from 'picsur-shared/dist/types/find-result';
|
||||
import { makeUnique } from 'picsur-shared/dist/util/unique';
|
||||
import { Repository } from 'typeorm';
|
||||
import { EUserBackend } from '../../database/entities/users/user.entity';
|
||||
import { Permissions } from '../../models/constants/permissions.const';
|
||||
import { EUserBackend } from '../../database/entities/users/user.entity.js';
|
||||
import { Permissions } from '../../models/constants/permissions.const.js';
|
||||
import {
|
||||
DefaultRolesList,
|
||||
SoulBoundRolesList,
|
||||
} from '../../models/constants/roles.const';
|
||||
DefaultRolesList,
|
||||
SoulBoundRolesList,
|
||||
} from '../../models/constants/roles.const.js';
|
||||
import {
|
||||
ImmutableUsersList,
|
||||
LockedLoginUsersList,
|
||||
UndeletableUsersList,
|
||||
} from '../../models/constants/special-users.const';
|
||||
import { GetCols } from '../../util/collection';
|
||||
import { SysPreferenceDbService } from '../preference-db/sys-preference-db.service';
|
||||
import { RoleDbService } from '../role-db/role-db.service';
|
||||
ImmutableUsersList,
|
||||
LockedLoginUsersList,
|
||||
UndeletableUsersList,
|
||||
} from '../../models/constants/special-users.const.js';
|
||||
import { GetCols } from '../../util/collection.js';
|
||||
import { SysPreferenceDbService } from '../preference-db/sys-preference-db.service.js';
|
||||
import { RoleDbService } from '../role-db/role-db.service.js';
|
||||
|
||||
@Injectable()
|
||||
export class UserDbService {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { ConfigService } from '@nestjs/config';
|
||||
import { ParseString } from 'picsur-shared/dist/util/parse-simple';
|
||||
import { EnvPrefix } from '../config.static';
|
||||
import { EnvPrefix } from '../config.static.js';
|
||||
|
||||
@Injectable()
|
||||
export class AuthConfigService {
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { ConfigModule } from '@nestjs/config';
|
||||
import { AuthConfigService } from './auth.config.service';
|
||||
import { EarlyJwtConfigService } from './early-jwt.config.service';
|
||||
import { HostConfigService } from './host.config.service';
|
||||
import { MultipartConfigService } from './multipart.config.service';
|
||||
import { RedisConfigService } from './redis.config.service';
|
||||
import { ServeStaticConfigService } from './serve-static.config.service';
|
||||
import { TypeOrmConfigService } from './type-orm.config.service';
|
||||
import { AuthConfigService } from './auth.config.service.js';
|
||||
import { EarlyJwtConfigService } from './early-jwt.config.service.js';
|
||||
import { HostConfigService } from './host.config.service.js';
|
||||
import { MultipartConfigService } from './multipart.config.service.js';
|
||||
import { RedisConfigService } from './redis.config.service.js';
|
||||
import { ServeStaticConfigService } from './serve-static.config.service.js';
|
||||
import { TypeOrmConfigService } from './type-orm.config.service.js';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { ConfigService } from '@nestjs/config';
|
||||
import { ParseString } from 'picsur-shared/dist/util/parse-simple';
|
||||
import { EnvPrefix } from '../config.static';
|
||||
import { EnvPrefix } from '../config.static.js';
|
||||
|
||||
@Injectable()
|
||||
export class EarlyJwtConfigService {
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { Injectable, Logger } from '@nestjs/common';
|
||||
import { ConfigService } from '@nestjs/config';
|
||||
import {
|
||||
ParseBool,
|
||||
ParseInt,
|
||||
ParseString,
|
||||
ParseBool,
|
||||
ParseInt,
|
||||
ParseString,
|
||||
} from 'picsur-shared/dist/util/parse-simple';
|
||||
import { EnvPrefix } from '../config.static';
|
||||
import { EnvPrefix } from '../config.static.js';
|
||||
|
||||
@Injectable()
|
||||
export class HostConfigService {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Injectable, Logger } from '@nestjs/common';
|
||||
import { ConfigService } from '@nestjs/config';
|
||||
import { ParseInt } from 'picsur-shared/dist/util/parse-simple';
|
||||
import { EnvPrefix } from '../config.static';
|
||||
import { EnvPrefix } from '../config.static.js';
|
||||
|
||||
@Injectable()
|
||||
export class MultipartConfigService {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Injectable, Logger } from '@nestjs/common';
|
||||
import { ConfigService } from '@nestjs/config';
|
||||
import { ParseString } from 'picsur-shared/dist/util/parse-simple';
|
||||
import { EnvPrefix } from '../config.static';
|
||||
import { EnvPrefix } from '../config.static.js';
|
||||
|
||||
@Injectable()
|
||||
export class RedisConfigService {
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import { Injectable, Logger } from '@nestjs/common';
|
||||
import { ConfigService } from '@nestjs/config';
|
||||
import {
|
||||
ServeStaticModuleOptions,
|
||||
ServeStaticModuleOptionsFactory,
|
||||
ServeStaticModuleOptions,
|
||||
ServeStaticModuleOptionsFactory,
|
||||
} from '@nestjs/serve-static';
|
||||
import { join } from 'path';
|
||||
import { ParseString } from 'picsur-shared/dist/util/parse-simple';
|
||||
import { EnvPrefix, PackageRoot } from '../config.static';
|
||||
import { EnvPrefix, PackageRoot } from '../config.static.js';
|
||||
|
||||
@Injectable()
|
||||
export class ServeStaticConfigService
|
||||
|
||||
@@ -2,10 +2,10 @@ import { Injectable, Logger } from '@nestjs/common';
|
||||
import { ConfigService } from '@nestjs/config';
|
||||
import { TypeOrmModuleOptions, TypeOrmOptionsFactory } from '@nestjs/typeorm';
|
||||
import { ParseInt, ParseString } from 'picsur-shared/dist/util/parse-simple';
|
||||
import { EntityList } from '../../database/entities/index';
|
||||
import { MigrationList } from '../../database/migrations/index';
|
||||
import { DefaultName, EnvPrefix } from '../config.static';
|
||||
import { HostConfigService } from './host.config.service';
|
||||
import { EntityList } from '../../database/entities/index.js';
|
||||
import { MigrationList } from '../../database/migrations/index.js';
|
||||
import { DefaultName, EnvPrefix } from '../config.static.js';
|
||||
import { HostConfigService } from './host.config.service.js';
|
||||
|
||||
@Injectable()
|
||||
export class TypeOrmConfigService implements TypeOrmOptionsFactory {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Injectable, Logger } from '@nestjs/common';
|
||||
import { SysPreference } from 'picsur-shared/dist/dto/sys-preferences.enum';
|
||||
import { HasFailed } from 'picsur-shared/dist/types/failable';
|
||||
import { SysPreferenceDbService } from '../../collections/preference-db/sys-preference-db.service';
|
||||
import { SysPreferenceDbService } from '../../collections/preference-db/sys-preference-db.service.js';
|
||||
|
||||
@Injectable()
|
||||
export class InfoConfigService {
|
||||
|
||||
@@ -2,7 +2,7 @@ import { FactoryProvider, Injectable, Logger } from '@nestjs/common';
|
||||
import { JwtModuleOptions, JwtOptionsFactory } from '@nestjs/jwt';
|
||||
import ms from 'ms';
|
||||
import { ThrowIfFailed } from 'picsur-shared/dist/types/failable';
|
||||
import { SysPreferenceDbService } from '../../collections/preference-db/sys-preference-db.service';
|
||||
import { SysPreferenceDbService } from '../../collections/preference-db/sys-preference-db.service.js';
|
||||
|
||||
@Injectable()
|
||||
export class JwtConfigService implements JwtOptionsFactory {
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { Logger, Module, OnModuleInit } from '@nestjs/common';
|
||||
import { PreferenceDbModule } from '../../collections/preference-db/preference-db.module';
|
||||
import { SysPreferenceDbService } from '../../collections/preference-db/sys-preference-db.service';
|
||||
import { EarlyConfigModule } from '../early/early-config.module';
|
||||
import { EarlyJwtConfigService } from '../early/early-jwt.config.service';
|
||||
import { InfoConfigService } from './info.config.service';
|
||||
import { JwtConfigService } from './jwt.config.service';
|
||||
import { UsageConfigService } from './usage.config.service';
|
||||
import { PreferenceDbModule } from '../../collections/preference-db/preference-db.module.js';
|
||||
import { SysPreferenceDbService } from '../../collections/preference-db/sys-preference-db.service.js';
|
||||
import { EarlyConfigModule } from '../early/early-config.module.js';
|
||||
import { EarlyJwtConfigService } from '../early/early-jwt.config.service.js';
|
||||
import { InfoConfigService } from './info.config.service.js';
|
||||
import { JwtConfigService } from './jwt.config.service.js';
|
||||
import { UsageConfigService } from './usage.config.service.js';
|
||||
|
||||
// This module contains all configservices that depend on the syspref module
|
||||
// The syspref module can only be used when connected to the database
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { SysPreference } from 'picsur-shared/dist/dto/sys-preferences.enum';
|
||||
import {
|
||||
AsyncFailable,
|
||||
Fail,
|
||||
FT,
|
||||
HasFailed,
|
||||
AsyncFailable,
|
||||
Fail,
|
||||
FT,
|
||||
HasFailed,
|
||||
} from 'picsur-shared/dist/types/failable';
|
||||
import { URLRegex, UUIDRegex } from 'picsur-shared/dist/util/common-regex';
|
||||
import { SysPreferenceDbService } from '../../collections/preference-db/sys-preference-db.service';
|
||||
import { ReportInterval, ReportUrl } from '../config.static';
|
||||
import { SysPreferenceDbService } from '../../collections/preference-db/sys-preference-db.service.js';
|
||||
import { ReportInterval, ReportUrl } from '../config.static.js';
|
||||
|
||||
@Injectable()
|
||||
export class UsageConfigService {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import { EarlyConfigModule } from '../config/early/early-config.module';
|
||||
import { TypeOrmConfigService } from '../config/early/type-orm.config.service';
|
||||
import { EarlyConfigModule } from '../config/early/early-config.module.js';
|
||||
import { TypeOrmConfigService } from '../config/early/type-orm.config.service.js';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import { EApiKeySchema } from 'picsur-shared/dist/entities/apikey.entity';
|
||||
import {
|
||||
Column,
|
||||
Entity,
|
||||
Index,
|
||||
ManyToOne,
|
||||
PrimaryGeneratedColumn,
|
||||
Column,
|
||||
Entity,
|
||||
Index,
|
||||
ManyToOne,
|
||||
PrimaryGeneratedColumn,
|
||||
} from 'typeorm';
|
||||
import { z } from 'zod';
|
||||
import { EUserBackend } from './users/user.entity';
|
||||
import { EUserBackend } from './users/user.entity.js';
|
||||
|
||||
const OverriddenEApiKeySchema = EApiKeySchema.omit({ user: true }).merge(
|
||||
z.object({
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import {
|
||||
Column,
|
||||
Entity,
|
||||
Index,
|
||||
JoinColumn,
|
||||
ManyToOne,
|
||||
PrimaryGeneratedColumn,
|
||||
Unique,
|
||||
Column,
|
||||
Entity,
|
||||
Index,
|
||||
JoinColumn,
|
||||
ManyToOne,
|
||||
PrimaryGeneratedColumn,
|
||||
Unique,
|
||||
} from 'typeorm';
|
||||
import { EImageBackend } from './image.entity';
|
||||
import { EImageBackend } from './image.entity.js';
|
||||
|
||||
@Entity()
|
||||
@Unique(['image_id', 'key'])
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
import { ImageEntryVariant } from 'picsur-shared/dist/dto/image-entry-variant.enum';
|
||||
import {
|
||||
Column,
|
||||
Entity,
|
||||
Index,
|
||||
JoinColumn,
|
||||
ManyToOne,
|
||||
PrimaryGeneratedColumn,
|
||||
Unique,
|
||||
Column,
|
||||
Entity,
|
||||
Index,
|
||||
JoinColumn,
|
||||
ManyToOne,
|
||||
PrimaryGeneratedColumn,
|
||||
Unique,
|
||||
} from 'typeorm';
|
||||
import { EImageBackend } from './image.entity';
|
||||
import { EImageBackend } from './image.entity.js';
|
||||
|
||||
@Entity()
|
||||
@Unique(['image_id', 'variant'])
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { EImage } from 'picsur-shared/dist/entities/image.entity';
|
||||
import { Column, Entity, OneToMany, PrimaryGeneratedColumn } from 'typeorm';
|
||||
import { EImageDerivativeBackend } from './image-derivative.entity';
|
||||
import { EImageFileBackend } from './image-file.entity';
|
||||
import { EImageDerivativeBackend } from './image-derivative.entity.js';
|
||||
import { EImageFileBackend } from './image-file.entity.js';
|
||||
|
||||
@Entity()
|
||||
export class EImageBackend implements EImage {
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import { EApiKeyBackend } from './apikey.entity';
|
||||
import { EImageDerivativeBackend } from './images/image-derivative.entity';
|
||||
import { EImageFileBackend } from './images/image-file.entity';
|
||||
import { EImageBackend } from './images/image.entity';
|
||||
import { ESysPreferenceBackend } from './system/sys-preference.entity';
|
||||
import { ESystemStateBackend } from './system/system-state.entity';
|
||||
import { EUsrPreferenceBackend } from './system/usr-preference.entity';
|
||||
import { ERoleBackend } from './users/role.entity';
|
||||
import { EUserBackend } from './users/user.entity';
|
||||
import { EApiKeyBackend } from './apikey.entity.js';
|
||||
import { EImageDerivativeBackend } from './images/image-derivative.entity.js';
|
||||
import { EImageFileBackend } from './images/image-file.entity.js';
|
||||
import { EImageBackend } from './images/image.entity.js';
|
||||
import { ESysPreferenceBackend } from './system/sys-preference.entity.js';
|
||||
import { ESystemStateBackend } from './system/system-state.entity.js';
|
||||
import { EUsrPreferenceBackend } from './system/usr-preference.entity.js';
|
||||
import { ERoleBackend } from './users/role.entity.js';
|
||||
import { EUserBackend } from './users/user.entity.js';
|
||||
|
||||
export const EntityList = [
|
||||
EImageBackend,
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
import { IsEntityID } from 'picsur-shared/dist/validators/entity-id.validator';
|
||||
import {
|
||||
Column,
|
||||
Entity,
|
||||
Index,
|
||||
JoinColumn,
|
||||
ManyToOne,
|
||||
PrimaryGeneratedColumn,
|
||||
Unique,
|
||||
Column,
|
||||
Entity,
|
||||
Index,
|
||||
JoinColumn,
|
||||
ManyToOne,
|
||||
PrimaryGeneratedColumn,
|
||||
Unique,
|
||||
} from 'typeorm';
|
||||
import * as z from 'zod';
|
||||
import { EUserBackend } from '../users/user.entity';
|
||||
import { EUserBackend } from '../users/user.entity.js';
|
||||
|
||||
export const EUsrPreferenceSchema = z.object({
|
||||
id: IsEntityID().optional(),
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { ERole } from 'picsur-shared/dist/entities/role.entity';
|
||||
import { Column, Entity, Index, PrimaryGeneratedColumn } from 'typeorm';
|
||||
import type { Permissions } from '../../../models/constants/permissions.const';
|
||||
import type { Permissions } from '../../../models/constants/permissions.const.js';
|
||||
|
||||
@Entity()
|
||||
export class ERoleBackend implements ERole {
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
import { EUserSchema } from 'picsur-shared/dist/entities/user.entity';
|
||||
import {
|
||||
Column,
|
||||
Entity,
|
||||
Index,
|
||||
OneToMany,
|
||||
PrimaryGeneratedColumn,
|
||||
Column,
|
||||
Entity,
|
||||
Index,
|
||||
OneToMany,
|
||||
PrimaryGeneratedColumn,
|
||||
} from 'typeorm';
|
||||
import { z } from 'zod';
|
||||
import { EApiKeyBackend } from '../apikey.entity';
|
||||
import { EUsrPreferenceBackend } from '../system/usr-preference.entity';
|
||||
import { EApiKeyBackend } from '../apikey.entity.js';
|
||||
import { EUsrPreferenceBackend } from '../system/usr-preference.entity.js';
|
||||
|
||||
// Different data for public and private
|
||||
const OverriddenEUserSchema = EUserSchema.omit({ hashedPassword: true }).merge(
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import { Newable } from 'picsur-shared/dist/types/newable';
|
||||
import { MigrationInterface } from 'typeorm';
|
||||
import { V030A1661692206479 } from './1661692206479-V_0_3_0_a';
|
||||
import { V032A1662029904716 } from './1662029904716-V_0_3_2_a';
|
||||
import { V040A1662314197741 } from './1662314197741-V_0_4_0_a';
|
||||
import { V040B1662485374471 } from './1662485374471-V_0_4_0_b';
|
||||
import { V040C1662535484200 } from './1662535484200-V_0_4_0_c';
|
||||
import { V040D1662728275448 } from './1662728275448-V_0_4_0_d';
|
||||
import { V050A1672154027079 } from './1672154027079-V_0_5_0_a';
|
||||
import { Newable } from 'picsur-shared/dist/types/newable.js';
|
||||
import { V030A1661692206479 } from './1661692206479-V_0_3_0_a.js';
|
||||
import { V032A1662029904716 } from './1662029904716-V_0_3_2_a.js';
|
||||
import { V040A1662314197741 } from './1662314197741-V_0_4_0_a.js';
|
||||
import { V040B1662485374471 } from './1662485374471-V_0_4_0_b.js';
|
||||
import { V040C1662535484200 } from './1662535484200-V_0_4_0_c.js';
|
||||
import { V040D1662728275448 } from './1662728275448-V_0_4_0_d.js';
|
||||
import { V050A1672154027079 } from './1672154027079-V_0_5_0_a.js';
|
||||
|
||||
export const MigrationList: Newable<MigrationInterface>[] = [
|
||||
V030A1661692206479,
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { NestFactory } from '@nestjs/core';
|
||||
import {
|
||||
FastifyAdapter,
|
||||
NestFastifyApplication,
|
||||
FastifyAdapter,
|
||||
NestFastifyApplication,
|
||||
} from '@nestjs/platform-fastify';
|
||||
import { DataSource } from 'typeorm';
|
||||
import { TypeOrmConfigService } from './config/early/type-orm.config.service';
|
||||
import { DatabaseModule } from './database/database.module';
|
||||
import { TypeOrmConfigService } from './config/early/type-orm.config.service.js';
|
||||
import { DatabaseModule } from './database/database.module.js';
|
||||
|
||||
async function createDataSource() {
|
||||
// Create nest app
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { EarlyConfigModule } from '../config/early/early-config.module';
|
||||
import { ImageIdPipe } from './image-id/image-id.pipe';
|
||||
import { PostFilePipe } from './multipart/postfile.pipe';
|
||||
import { MultiPartPipe } from './multipart/postfiles.pipe';
|
||||
import { EarlyConfigModule } from '../config/early/early-config.module.js';
|
||||
import { ImageIdPipe } from './image-id/image-id.pipe.js';
|
||||
import { PostFilePipe } from './multipart/postfile.pipe.js';
|
||||
import { MultiPartPipe } from './multipart/postfiles.pipe.js';
|
||||
|
||||
@Module({
|
||||
imports: [EarlyConfigModule],
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Param, PipeTransform, Type } from '@nestjs/common';
|
||||
import { ImageFullIdPipe } from './image-full-id.pipe';
|
||||
import { ImageFullIdPipe } from './image-full-id.pipe.js';
|
||||
|
||||
export const ImageFullIdParam = (
|
||||
...pipes: (PipeTransform<any, any> | Type<PipeTransform<any, any>>)[]
|
||||
|
||||
@@ -2,7 +2,7 @@ import { Injectable, PipeTransform } from '@nestjs/common';
|
||||
import { Ext2FileType } from 'picsur-shared/dist/dto/mimes.dto';
|
||||
import { FT, Fail, HasFailed } from 'picsur-shared/dist/types/failable';
|
||||
import { UUIDRegex } from 'picsur-shared/dist/util/common-regex';
|
||||
import { ImageFullId } from '../../models/constants/image-full-id.const';
|
||||
import { ImageFullId } from '../../models/constants/image-full-id.const.js';
|
||||
|
||||
@Injectable()
|
||||
export class ImageFullIdPipe implements PipeTransform<string, ImageFullId> {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Param, PipeTransform, Type } from '@nestjs/common';
|
||||
import { ImageIdPipe } from './image-id.pipe';
|
||||
import { ImageIdPipe } from './image-id.pipe.js';
|
||||
|
||||
export const ImageIdParam = (
|
||||
...pipes: (PipeTransform<any, any> | Type<PipeTransform<any, any>>)[]
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { InjectRequest } from './inject-request.decorator';
|
||||
import { PostFilePipe } from './postfile.pipe';
|
||||
import { MultiPartPipe } from './postfiles.pipe';
|
||||
import { InjectRequest } from './inject-request.decorator.js';
|
||||
import { PostFilePipe } from './postfile.pipe.js';
|
||||
import { MultiPartPipe } from './postfiles.pipe.js';
|
||||
|
||||
export const PostFile = () => InjectRequest(PostFilePipe);
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ import { Multipart, MultipartFile } from '@fastify/multipart';
|
||||
import { Injectable, Logger, PipeTransform, Scope } from '@nestjs/common';
|
||||
import { FastifyRequest } from 'fastify';
|
||||
import { Fail, FT } from 'picsur-shared/dist/types/failable';
|
||||
import { MultipartConfigService } from '../../config/early/multipart.config.service';
|
||||
import { MultipartConfigService } from '../../config/early/multipart.config.service.js';
|
||||
|
||||
@Injectable({ scope: Scope.REQUEST })
|
||||
export class PostFilePipe implements PipeTransform {
|
||||
|
||||
@@ -2,7 +2,7 @@ import { MultipartFile } from '@fastify/multipart';
|
||||
import { Injectable, Logger, PipeTransform, Scope } from '@nestjs/common';
|
||||
import { FastifyRequest } from 'fastify';
|
||||
import { FT, Fail } from 'picsur-shared/dist/types/failable';
|
||||
import { MultipartConfigService } from '../../config/early/multipart.config.service';
|
||||
import { MultipartConfigService } from '../../config/early/multipart.config.service.js';
|
||||
|
||||
export type FileIterator = AsyncIterableIterator<MultipartFile>;
|
||||
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
import {
|
||||
createParamDecorator,
|
||||
ExecutionContext,
|
||||
SetMetadata,
|
||||
UseGuards,
|
||||
createParamDecorator,
|
||||
ExecutionContext,
|
||||
SetMetadata,
|
||||
UseGuards,
|
||||
} from '@nestjs/common';
|
||||
import { Fail, FT } from 'picsur-shared/dist/types/failable';
|
||||
import { CombineFCDecorators } from 'picsur-shared/dist/util/decorator';
|
||||
import { LocalAuthGuard } from '../managers/auth/guards/local-auth.guard';
|
||||
import { Permission, Permissions } from '../models/constants/permissions.const';
|
||||
import AuthFastifyRequest from '../models/interfaces/authrequest.dto';
|
||||
import { LocalAuthGuard } from '../managers/auth/guards/local-auth.guard.js';
|
||||
import { Permission, Permissions } from '../models/constants/permissions.const.js';
|
||||
import AuthFastifyRequest from '../models/interfaces/authrequest.dto.js';
|
||||
|
||||
export const RequiredPermissions = (...permissions: Permissions) => {
|
||||
return SetMetadata('permissions', permissions);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { createParamDecorator, ExecutionContext } from '@nestjs/common';
|
||||
import { Fail, FT } from 'picsur-shared/dist/types/failable';
|
||||
import AuthFastifyRequest from '../models/interfaces/authrequest.dto';
|
||||
import AuthFastifyRequest from '../models/interfaces/authrequest.dto.js';
|
||||
|
||||
export const ReqUser = createParamDecorator(
|
||||
(input: any, ctx: ExecutionContext) => {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { ThrottlerModule } from '@nestjs/throttler';
|
||||
import { MainExceptionFilter } from './exception/exception.filter';
|
||||
import { SuccessInterceptor } from './success/success.interceptor';
|
||||
import { PicsurThrottlerGuard } from './throttler/PicsurThrottler.guard';
|
||||
import { ZodValidationPipe } from './validate/zod-validator.pipe';
|
||||
import { MainExceptionFilter } from './exception/exception.filter.js';
|
||||
import { SuccessInterceptor } from './success/success.interceptor.js';
|
||||
import { PicsurThrottlerGuard } from './throttler/PicsurThrottler.guard.js';
|
||||
import { ZodValidationPipe } from './validate/zod-validator.pipe.js';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { EarlyConfigModule } from '../config/early/early-config.module';
|
||||
import { PicsurLoggerService } from './logger.service';
|
||||
import { EarlyConfigModule } from '../config/early/early-config.module.js';
|
||||
import { PicsurLoggerService } from './logger.service.js';
|
||||
|
||||
@Module({
|
||||
imports: [EarlyConfigModule],
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { ConsoleLogger, Injectable, Scope } from '@nestjs/common';
|
||||
import { HostConfigService } from '../config/early/host.config.service';
|
||||
import { HostConfigService } from '../config/early/host.config.service.js';
|
||||
|
||||
@Injectable({ scope: Scope.DEFAULT })
|
||||
export class PicsurLoggerService extends ConsoleLogger {
|
||||
|
||||
@@ -3,18 +3,18 @@ import multipart from '@fastify/multipart';
|
||||
import fastifyReplyFrom from '@fastify/reply-from';
|
||||
import { NestFactory } from '@nestjs/core';
|
||||
import {
|
||||
FastifyAdapter,
|
||||
NestFastifyApplication,
|
||||
FastifyAdapter,
|
||||
NestFastifyApplication,
|
||||
} from '@nestjs/platform-fastify';
|
||||
import { AppModule } from './app.module';
|
||||
import { HostConfigService } from './config/early/host.config.service';
|
||||
import { MainExceptionFilter } from './layers/exception/exception.filter';
|
||||
import { SuccessInterceptor } from './layers/success/success.interceptor';
|
||||
import { PicsurThrottlerGuard } from './layers/throttler/PicsurThrottler.guard';
|
||||
import { ZodValidationPipe } from './layers/validate/zod-validator.pipe';
|
||||
import { PicsurLoggerService } from './logger/logger.service';
|
||||
import { MainAuthGuard } from './managers/auth/guards/main.guard';
|
||||
import { HelmetOptions } from './security';
|
||||
import { AppModule } from './app.module.js';
|
||||
import { HostConfigService } from './config/early/host.config.service.js';
|
||||
import { MainExceptionFilter } from './layers/exception/exception.filter.js';
|
||||
import { SuccessInterceptor } from './layers/success/success.interceptor.js';
|
||||
import { PicsurThrottlerGuard } from './layers/throttler/PicsurThrottler.guard.js';
|
||||
import { ZodValidationPipe } from './layers/validate/zod-validator.pipe.js';
|
||||
import { PicsurLoggerService } from './logger/logger.service.js';
|
||||
import { MainAuthGuard } from './managers/auth/guards/main.guard.js';
|
||||
import { HelmetOptions } from './security.js';
|
||||
|
||||
async function bootstrap() {
|
||||
const isProduction = process.env['PICSUR_PRODUCTION'] !== undefined;
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { JwtModule } from '@nestjs/jwt';
|
||||
import { PassportModule } from '@nestjs/passport';
|
||||
import { ApiKeyDbModule } from '../../collections/apikey-db/apikey-db.module';
|
||||
import { PreferenceDbModule } from '../../collections/preference-db/preference-db.module';
|
||||
import { UserDbModule } from '../../collections/user-db/user-db.module';
|
||||
import { ApiKeyDbModule } from '../../collections/apikey-db/apikey-db.module.js';
|
||||
import { PreferenceDbModule } from '../../collections/preference-db/preference-db.module.js';
|
||||
import { UserDbModule } from '../../collections/user-db/user-db.module.js';
|
||||
import {
|
||||
JwtConfigService,
|
||||
JwtSecretProvider,
|
||||
} from '../../config/late/jwt.config.service';
|
||||
import { LateConfigModule } from '../../config/late/late-config.module';
|
||||
import { AuthManagerService } from './auth.service';
|
||||
import { ApiKeyStrategy } from './guards/apikey.strategy';
|
||||
import { GuestStrategy } from './guards/guest.strategy';
|
||||
import { JwtStrategy } from './guards/jwt.strategy';
|
||||
import { LocalAuthGuard } from './guards/local-auth.guard';
|
||||
import { LocalAuthStrategy } from './guards/local-auth.strategy';
|
||||
import { MainAuthGuard } from './guards/main.guard';
|
||||
import { GuestService } from './guest.service';
|
||||
JwtConfigService,
|
||||
JwtSecretProvider,
|
||||
} from '../../config/late/jwt.config.service.js';
|
||||
import { LateConfigModule } from '../../config/late/late-config.module.js';
|
||||
import { AuthManagerService } from './auth.service.js';
|
||||
import { ApiKeyStrategy } from './guards/apikey.strategy.js';
|
||||
import { GuestStrategy } from './guards/guest.strategy.js';
|
||||
import { JwtStrategy } from './guards/jwt.strategy.js';
|
||||
import { LocalAuthGuard } from './guards/local-auth.guard.js';
|
||||
import { LocalAuthStrategy } from './guards/local-auth.strategy.js';
|
||||
import { MainAuthGuard } from './guards/main.guard.js';
|
||||
import { GuestService } from './guest.service.js';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
|
||||
@@ -4,8 +4,8 @@ import { HeaderAPIKeyStrategy } from 'passport-headerapikey';
|
||||
import { EUser, EUserSchema } from 'picsur-shared/dist/entities/user.entity';
|
||||
import { HasFailed } from 'picsur-shared/dist/types/failable';
|
||||
import { IsApiKey } from 'picsur-shared/dist/validators/api-key.validator';
|
||||
import { ApiKeyDbService } from '../../../collections/apikey-db/apikey-db.service';
|
||||
import { EUserBackend2EUser } from '../../../models/transformers/user.transformer';
|
||||
import { ApiKeyDbService } from '../../../collections/apikey-db/apikey-db.service.js';
|
||||
import { EUserBackend2EUser } from '../../../models/transformers/user.transformer.js';
|
||||
|
||||
@Injectable()
|
||||
export class ApiKeyStrategy extends PassportStrategy(
|
||||
|
||||
@@ -3,8 +3,8 @@ import { PassportStrategy } from '@nestjs/passport';
|
||||
import { FastifyRequest } from 'fastify';
|
||||
import { Strategy } from 'passport-strategy';
|
||||
import { EUser } from 'picsur-shared/dist/entities/user.entity';
|
||||
import { EUserBackend2EUser } from '../../../models/transformers/user.transformer';
|
||||
import { GuestService } from '../guest.service';
|
||||
import { EUserBackend2EUser } from '../../../models/transformers/user.transformer.js';
|
||||
import { GuestService } from '../guest.service.js';
|
||||
|
||||
class GuestPassportStrategy extends Strategy {
|
||||
// Will be overridden by the nest implementation
|
||||
|
||||
@@ -4,8 +4,8 @@ import { ExtractJwt, Strategy as JwtPassportStrategy } from 'passport-jwt';
|
||||
import { JwtDataSchema } from 'picsur-shared/dist/dto/jwt.dto';
|
||||
import { EUser } from 'picsur-shared/dist/entities/user.entity';
|
||||
import { ThrowIfFailed } from 'picsur-shared/dist/types/failable';
|
||||
import { UserDbService } from '../../../collections/user-db/user-db.service';
|
||||
import { EUserBackend2EUser } from '../../../models/transformers/user.transformer';
|
||||
import { UserDbService } from '../../../collections/user-db/user-db.service.js';
|
||||
import { EUserBackend2EUser } from '../../../models/transformers/user.transformer.js';
|
||||
|
||||
@Injectable()
|
||||
export class JwtStrategy extends PassportStrategy(JwtPassportStrategy, 'jwt') {
|
||||
|
||||
@@ -3,11 +3,11 @@ import { PassportStrategy } from '@nestjs/passport';
|
||||
import { Strategy } from 'passport-local';
|
||||
import { EUser } from 'picsur-shared/dist/entities/user.entity';
|
||||
import {
|
||||
AsyncFailable,
|
||||
ThrowIfFailed,
|
||||
AsyncFailable,
|
||||
ThrowIfFailed,
|
||||
} from 'picsur-shared/dist/types/failable';
|
||||
import { UserDbService } from '../../../collections/user-db/user-db.service';
|
||||
import { EUserBackend2EUser } from '../../../models/transformers/user.transformer';
|
||||
import { UserDbService } from '../../../collections/user-db/user-db.service.js';
|
||||
import { EUserBackend2EUser } from '../../../models/transformers/user.transformer.js';
|
||||
|
||||
@Injectable()
|
||||
export class LocalAuthStrategy extends PassportStrategy(Strategy, 'local') {
|
||||
|
||||
@@ -3,17 +3,17 @@ import { Reflector } from '@nestjs/core';
|
||||
import { AuthGuard } from '@nestjs/passport';
|
||||
import { EUser, EUserSchema } from 'picsur-shared/dist/entities/user.entity';
|
||||
import {
|
||||
AsyncFailable,
|
||||
FT,
|
||||
Fail,
|
||||
Failable,
|
||||
HasFailed,
|
||||
ThrowIfFailed,
|
||||
AsyncFailable,
|
||||
FT,
|
||||
Fail,
|
||||
Failable,
|
||||
HasFailed,
|
||||
ThrowIfFailed,
|
||||
} from 'picsur-shared/dist/types/failable';
|
||||
import { makeUnique } from 'picsur-shared/dist/util/unique';
|
||||
import { UserDbService } from '../../../collections/user-db/user-db.service';
|
||||
import { Permissions } from '../../../models/constants/permissions.const';
|
||||
import { isPermissionsArray } from '../../../models/validators/permissions.validator';
|
||||
import { UserDbService } from '../../../collections/user-db/user-db.service.js';
|
||||
import { Permissions } from '../../../models/constants/permissions.const.js';
|
||||
import { isPermissionsArray } from '../../../models/validators/permissions.validator.js';
|
||||
|
||||
// This guard extends both the jwt authenticator and the guest authenticator
|
||||
// The order matters here, because this results in the guest authenticator being used as a fallback
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { HasFailed } from 'picsur-shared/dist/types/failable';
|
||||
import { UserDbService } from '../../collections/user-db/user-db.service';
|
||||
import { EUserBackend } from '../../database/entities/users/user.entity';
|
||||
import { UserDbService } from '../../collections/user-db/user-db.service.js';
|
||||
import { EUserBackend } from '../../database/entities/users/user.entity.js';
|
||||
|
||||
@Injectable()
|
||||
export class GuestService {
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { Logger, Module, OnModuleInit } from '@nestjs/common';
|
||||
import { SchedulerRegistry } from '@nestjs/schedule';
|
||||
import { ImageDBModule } from '../../collections/image-db/image-db.module';
|
||||
import { RoleDbModule } from '../../collections/role-db/role-db.module';
|
||||
import { EarlyConfigModule } from '../../config/early/early-config.module';
|
||||
import { HostConfigService } from '../../config/early/host.config.service';
|
||||
import { DemoManagerService } from './demo.service';
|
||||
import { ImageDBModule } from '../../collections/image-db/image-db.module.js';
|
||||
import { RoleDbModule } from '../../collections/role-db/role-db.module.js';
|
||||
import { EarlyConfigModule } from '../../config/early/early-config.module.js';
|
||||
import { HostConfigService } from '../../config/early/host.config.service.js';
|
||||
import { DemoManagerService } from './demo.service.js';
|
||||
|
||||
@Module({
|
||||
imports: [ImageDBModule, EarlyConfigModule, RoleDbModule],
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Injectable, Logger } from '@nestjs/common';
|
||||
import { ImageDBService } from '../../collections/image-db/image-db.service';
|
||||
import { RoleDbService } from '../../collections/role-db/role-db.service';
|
||||
import { Permission } from '../../models/constants/permissions.const';
|
||||
import { ImageDBService } from '../../collections/image-db/image-db.service.js';
|
||||
import { RoleDbService } from '../../collections/role-db/role-db.service.js';
|
||||
import { Permission } from '../../models/constants/permissions.const.js';
|
||||
|
||||
@Injectable()
|
||||
export class DemoManagerService {
|
||||
|
||||
@@ -2,20 +2,20 @@ import { Injectable } from '@nestjs/common';
|
||||
import ms from 'ms';
|
||||
import { ImageRequestParams } from 'picsur-shared/dist/dto/api/image.dto';
|
||||
import {
|
||||
FileType,
|
||||
SupportedFileTypeCategory,
|
||||
FileType,
|
||||
SupportedFileTypeCategory,
|
||||
} from 'picsur-shared/dist/dto/mimes.dto';
|
||||
import { SysPreference } from 'picsur-shared/dist/dto/sys-preferences.enum';
|
||||
import {
|
||||
AsyncFailable,
|
||||
Fail,
|
||||
FT,
|
||||
HasFailed,
|
||||
AsyncFailable,
|
||||
Fail,
|
||||
FT,
|
||||
HasFailed,
|
||||
} from 'picsur-shared/dist/types/failable';
|
||||
import { SharpOptions } from 'sharp';
|
||||
import { SysPreferenceDbService } from '../../collections/preference-db/sys-preference-db.service';
|
||||
import { SharpWrapper } from '../../workers/sharp.wrapper';
|
||||
import { ImageResult } from './imageresult';
|
||||
import { SysPreferenceDbService } from '../../collections/preference-db/sys-preference-db.service.js';
|
||||
import { SharpWrapper } from '../../workers/sharp.wrapper.js';
|
||||
import { ImageResult } from './imageresult.js';
|
||||
|
||||
@Injectable()
|
||||
export class ImageConverterService {
|
||||
|
||||
@@ -3,14 +3,14 @@ import { Interval } from '@nestjs/schedule';
|
||||
import ms from 'ms';
|
||||
import { SysPreference } from 'picsur-shared/dist/dto/sys-preferences.enum';
|
||||
import { HasFailed } from 'picsur-shared/dist/types/failable';
|
||||
import { ImageDBModule } from '../../collections/image-db/image-db.module';
|
||||
import { ImageDBService } from '../../collections/image-db/image-db.service';
|
||||
import { ImageFileDBService } from '../../collections/image-db/image-file-db.service';
|
||||
import { PreferenceDbModule } from '../../collections/preference-db/preference-db.module';
|
||||
import { SysPreferenceDbService } from '../../collections/preference-db/sys-preference-db.service';
|
||||
import { ImageConverterService } from './image-converter.service';
|
||||
import { ImageProcessorService } from './image-processor.service';
|
||||
import { ImageManagerService } from './image.service';
|
||||
import { ImageDBModule } from '../../collections/image-db/image-db.module.js';
|
||||
import { ImageDBService } from '../../collections/image-db/image-db.service.js';
|
||||
import { ImageFileDBService } from '../../collections/image-db/image-file-db.service.js';
|
||||
import { PreferenceDbModule } from '../../collections/preference-db/preference-db.module.js';
|
||||
import { SysPreferenceDbService } from '../../collections/preference-db/sys-preference-db.service.js';
|
||||
import { ImageConverterService } from './image-converter.service.js';
|
||||
import { ImageProcessorService } from './image-processor.service.js';
|
||||
import { ImageManagerService } from './image.service.js';
|
||||
|
||||
@Module({
|
||||
imports: [ImageDBModule, PreferenceDbModule],
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import {
|
||||
FileType,
|
||||
ImageFileType,
|
||||
SupportedFileTypeCategory,
|
||||
FileType,
|
||||
ImageFileType,
|
||||
SupportedFileTypeCategory,
|
||||
} from 'picsur-shared/dist/dto/mimes.dto';
|
||||
|
||||
import {
|
||||
AsyncFailable,
|
||||
Fail,
|
||||
FT,
|
||||
HasFailed,
|
||||
AsyncFailable,
|
||||
Fail,
|
||||
FT,
|
||||
HasFailed,
|
||||
} from 'picsur-shared/dist/types/failable';
|
||||
import { ParseFileType } from 'picsur-shared/dist/util/parse-mime';
|
||||
import { ImageConverterService } from './image-converter.service';
|
||||
import { ImageResult } from './imageresult';
|
||||
import { ImageConverterService } from './image-converter.service.js';
|
||||
import { ImageResult } from './imageresult.js';
|
||||
|
||||
@Injectable()
|
||||
export class ImageProcessorService {
|
||||
|
||||
@@ -4,33 +4,33 @@ import { fileTypeFromBuffer, FileTypeResult } from 'file-type';
|
||||
import { ImageRequestParams } from 'picsur-shared/dist/dto/api/image.dto';
|
||||
import { ImageEntryVariant } from 'picsur-shared/dist/dto/image-entry-variant.enum';
|
||||
import {
|
||||
AnimFileType,
|
||||
FileType,
|
||||
ImageFileType,
|
||||
Mime2FileType,
|
||||
AnimFileType,
|
||||
FileType,
|
||||
ImageFileType,
|
||||
Mime2FileType,
|
||||
} from 'picsur-shared/dist/dto/mimes.dto';
|
||||
import { SysPreference } from 'picsur-shared/dist/dto/sys-preferences.enum';
|
||||
import { UsrPreference } from 'picsur-shared/dist/dto/usr-preferences.enum';
|
||||
import {
|
||||
AsyncFailable,
|
||||
Fail,
|
||||
FT,
|
||||
HasFailed,
|
||||
AsyncFailable,
|
||||
Fail,
|
||||
FT,
|
||||
HasFailed,
|
||||
} from 'picsur-shared/dist/types/failable';
|
||||
import { FindResult } from 'picsur-shared/dist/types/find-result';
|
||||
import { ParseFileType } from 'picsur-shared/dist/util/parse-mime';
|
||||
import { IsQOI } from 'qoi-img';
|
||||
import { ImageDBService } from '../../collections/image-db/image-db.service';
|
||||
import { ImageFileDBService } from '../../collections/image-db/image-file-db.service';
|
||||
import { SysPreferenceDbService } from '../../collections/preference-db/sys-preference-db.service';
|
||||
import { UsrPreferenceDbService } from '../../collections/preference-db/usr-preference-db.service';
|
||||
import { EImageDerivativeBackend } from '../../database/entities/images/image-derivative.entity';
|
||||
import { EImageFileBackend } from '../../database/entities/images/image-file.entity';
|
||||
import { EImageBackend } from '../../database/entities/images/image.entity';
|
||||
import { MutexFallBack } from '../../util/mutex-fallback';
|
||||
import { ImageConverterService } from './image-converter.service';
|
||||
import { ImageProcessorService } from './image-processor.service';
|
||||
import { WebPInfo } from './webpinfo/webpinfo';
|
||||
import { ImageDBService } from '../../collections/image-db/image-db.service.js';
|
||||
import { ImageFileDBService } from '../../collections/image-db/image-file-db.service.js';
|
||||
import { SysPreferenceDbService } from '../../collections/preference-db/sys-preference-db.service.js';
|
||||
import { UsrPreferenceDbService } from '../../collections/preference-db/usr-preference-db.service.js';
|
||||
import { EImageDerivativeBackend } from '../../database/entities/images/image-derivative.entity.js';
|
||||
import { EImageFileBackend } from '../../database/entities/images/image-file.entity.js';
|
||||
import { EImageBackend } from '../../database/entities/images/image.entity.js';
|
||||
import { MutexFallBack } from '../../util/mutex-fallback.js';
|
||||
import { ImageConverterService } from './image-converter.service.js';
|
||||
import { ImageProcessorService } from './image-processor.service.js';
|
||||
import { WebPInfo } from './webpinfo/webpinfo.js';
|
||||
|
||||
@Injectable()
|
||||
export class ImageManagerService {
|
||||
|
||||
@@ -32,7 +32,7 @@ THE SOFTWARE.
|
||||
|
||||
import thunks from 'thunks';
|
||||
|
||||
import { StreamParserWritable } from './stream-parser';
|
||||
import { StreamParserWritable } from './stream-parser.js';
|
||||
|
||||
const { thunk } = thunks;
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { Logger, Module, OnModuleInit } from '@nestjs/common';
|
||||
import { SchedulerRegistry } from '@nestjs/schedule';
|
||||
import { ImageDBModule } from '../../collections/image-db/image-db.module';
|
||||
import { SystemStateDbModule } from '../../collections/system-state-db/system-state-db.module';
|
||||
import { UserDbModule } from '../../collections/user-db/user-db.module';
|
||||
import { LateConfigModule } from '../../config/late/late-config.module';
|
||||
import { UsageConfigService } from '../../config/late/usage.config.service';
|
||||
import { UsageService } from './usage.service';
|
||||
import { ImageDBModule } from '../../collections/image-db/image-db.module.js';
|
||||
import { SystemStateDbModule } from '../../collections/system-state-db/system-state-db.module.js';
|
||||
import { UserDbModule } from '../../collections/user-db/user-db.module.js';
|
||||
import { LateConfigModule } from '../../config/late/late-config.module.js';
|
||||
import { UsageConfigService } from '../../config/late/usage.config.service.js';
|
||||
import { UsageService } from './usage.service.js';
|
||||
|
||||
@Module({
|
||||
imports: [LateConfigModule, SystemStateDbModule, ImageDBModule, UserDbModule],
|
||||
|
||||
@@ -4,11 +4,11 @@ import fetch from 'node-fetch';
|
||||
import * as os from 'os';
|
||||
import { FallbackIfFailed, HasFailed } from 'picsur-shared/dist/types/failable';
|
||||
import { UUIDRegex } from 'picsur-shared/dist/util/common-regex';
|
||||
import { ImageDBService } from '../../collections/image-db/image-db.service';
|
||||
import { SystemStateDbService } from '../../collections/system-state-db/system-state-db.service';
|
||||
import { UserDbService } from '../../collections/user-db/user-db.service';
|
||||
import { HostConfigService } from '../../config/early/host.config.service';
|
||||
import { UsageConfigService } from '../../config/late/usage.config.service';
|
||||
import { ImageDBService } from '../../collections/image-db/image-db.service.js';
|
||||
import { SystemStateDbService } from '../../collections/system-state-db/system-state-db.service.js';
|
||||
import { UserDbService } from '../../collections/user-db/user-db.service.js';
|
||||
import { HostConfigService } from '../../config/early/host.config.service.js';
|
||||
import { UsageConfigService } from '../../config/late/usage.config.service.js';
|
||||
|
||||
interface UsageData {
|
||||
id?: string;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import tuple from 'picsur-shared/dist/types/tuple';
|
||||
import { Permission, Permissions, PermissionsList } from './permissions.const';
|
||||
import { Permission, Permissions, PermissionsList } from './permissions.const.js';
|
||||
|
||||
// Config
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { FastifyRequest } from 'fastify';
|
||||
import { EUser } from 'picsur-shared/dist/entities/user.entity';
|
||||
import { Permissions } from '../constants/permissions.const';
|
||||
import { Permissions } from '../constants/permissions.const.js';
|
||||
|
||||
// Add typing to FastifyRequest to make using the user object easier
|
||||
export default interface AuthFastifyRequest extends FastifyRequest {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { EUser } from 'picsur-shared/dist/entities/user.entity';
|
||||
import { EUserBackend } from '../../database/entities/users/user.entity';
|
||||
import { EUserBackend } from '../../database/entities/users/user.entity.js';
|
||||
|
||||
export function EUserBackend2EUser(eUser: EUserBackend): EUser {
|
||||
if (eUser.hashed_password === undefined) return eUser as EUser;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { isPermissionsArray as isPArr } from 'picsur-shared/dist/validators/permissions.validator';
|
||||
import { Permissions, PermissionsList } from '../constants/permissions.const';
|
||||
import { Permissions, PermissionsList } from '../constants/permissions.const.js';
|
||||
|
||||
export function isPermissionsArray(value: any): value is Permissions {
|
||||
return isPArr(value, PermissionsList);
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { ApiKeysModule } from './apikeys/apikeys.module';
|
||||
import { ExperimentModule } from './experiment/experiment.module';
|
||||
import { InfoModule } from './info/info.module';
|
||||
import { PrefModule } from './pref/pref.module';
|
||||
import { RolesApiModule } from './roles/roles.module';
|
||||
import { UsageApiModule } from './usage/usage.module';
|
||||
import { UserApiModule } from './user/user.module';
|
||||
import { ApiKeysModule } from './apikeys/apikeys.module.js';
|
||||
import { ExperimentModule } from './experiment/experiment.module.js';
|
||||
import { InfoModule } from './info/info.module.js';
|
||||
import { PrefModule } from './pref/pref.module.js';
|
||||
import { RolesApiModule } from './roles/roles.module.js';
|
||||
import { UsageApiModule } from './usage/usage.module.js';
|
||||
import { UserApiModule } from './user/user.module.js';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
import { Body, Controller, Post } from '@nestjs/common';
|
||||
import {
|
||||
ApiKeyCreateResponse,
|
||||
ApiKeyDeleteRequest,
|
||||
ApiKeyDeleteResponse,
|
||||
ApiKeyInfoRequest,
|
||||
ApiKeyInfoResponse,
|
||||
ApiKeyListRequest,
|
||||
ApiKeyListResponse,
|
||||
ApiKeyUpdateRequest,
|
||||
ApiKeyUpdateResponse,
|
||||
ApiKeyCreateResponse,
|
||||
ApiKeyDeleteRequest,
|
||||
ApiKeyDeleteResponse,
|
||||
ApiKeyInfoRequest,
|
||||
ApiKeyInfoResponse,
|
||||
ApiKeyListRequest,
|
||||
ApiKeyListResponse,
|
||||
ApiKeyUpdateRequest,
|
||||
ApiKeyUpdateResponse,
|
||||
} from 'picsur-shared/dist/dto/api/apikeys.dto';
|
||||
import { Permission } from 'picsur-shared/dist/dto/permissions.enum';
|
||||
import { ThrowIfFailed } from 'picsur-shared/dist/types/failable';
|
||||
import { ApiKeyDbService } from '../../../collections/apikey-db/apikey-db.service';
|
||||
import { EasyThrottle } from '../../../decorators/easy-throttle.decorator';
|
||||
import { ApiKeyDbService } from '../../../collections/apikey-db/apikey-db.service.js';
|
||||
import { EasyThrottle } from '../../../decorators/easy-throttle.decorator.js';
|
||||
import {
|
||||
HasPermission,
|
||||
RequiredPermissions,
|
||||
} from '../../../decorators/permissions.decorator';
|
||||
import { ReqUserID } from '../../../decorators/request-user.decorator';
|
||||
import { Returns } from '../../../decorators/returns.decorator';
|
||||
HasPermission,
|
||||
RequiredPermissions,
|
||||
} from '../../../decorators/permissions.decorator.js';
|
||||
import { ReqUserID } from '../../../decorators/request-user.decorator.js';
|
||||
import { Returns } from '../../../decorators/returns.decorator.js';
|
||||
|
||||
@Controller('api/apikeys')
|
||||
@RequiredPermissions(Permission.ApiKey)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { ApiKeyDbModule } from '../../../collections/apikey-db/apikey-db.module';
|
||||
import { ApiKeysController } from './apikeys.controller';
|
||||
import { ApiKeyDbModule } from '../../../collections/apikey-db/apikey-db.module.js';
|
||||
import { ApiKeysController } from './apikeys.controller.js';
|
||||
|
||||
@Module({
|
||||
imports: [ApiKeyDbModule],
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Controller } from '@nestjs/common';
|
||||
import { NoPermissions } from '../../../decorators/permissions.decorator';
|
||||
import { NoPermissions } from '../../../decorators/permissions.decorator.js';
|
||||
@Controller('api/experiment')
|
||||
@NoPermissions()
|
||||
export class ExperimentController {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { ExperimentController } from './experiment.controller';
|
||||
import { ExperimentController } from './experiment.controller.js';
|
||||
|
||||
// This is comletely useless module, but is used for testing
|
||||
// TODO: remove when out of beta
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
import { Controller, Get } from '@nestjs/common';
|
||||
import {
|
||||
AllFormatsResponse,
|
||||
AllPermissionsResponse,
|
||||
InfoResponse,
|
||||
AllFormatsResponse,
|
||||
AllPermissionsResponse,
|
||||
InfoResponse,
|
||||
} from 'picsur-shared/dist/dto/api/info.dto';
|
||||
import {
|
||||
FileType2Ext,
|
||||
FileType2Mime,
|
||||
SupportedAnimFileTypes,
|
||||
SupportedImageFileTypes,
|
||||
FileType2Ext,
|
||||
FileType2Mime,
|
||||
SupportedAnimFileTypes,
|
||||
SupportedImageFileTypes,
|
||||
} from 'picsur-shared/dist/dto/mimes.dto';
|
||||
import { TrackingState } from 'picsur-shared/dist/dto/tracking-state.enum';
|
||||
import { FallbackIfFailed } from 'picsur-shared/dist/types/failable';
|
||||
import { HostConfigService } from '../../../config/early/host.config.service';
|
||||
import { InfoConfigService } from '../../../config/late/info.config.service';
|
||||
import { UsageConfigService } from '../../../config/late/usage.config.service';
|
||||
import { NoPermissions } from '../../../decorators/permissions.decorator';
|
||||
import { Returns } from '../../../decorators/returns.decorator';
|
||||
import { PermissionsList } from '../../../models/constants/permissions.const';
|
||||
import { HostConfigService } from '../../../config/early/host.config.service.js';
|
||||
import { InfoConfigService } from '../../../config/late/info.config.service.js';
|
||||
import { UsageConfigService } from '../../../config/late/usage.config.service.js';
|
||||
import { NoPermissions } from '../../../decorators/permissions.decorator.js';
|
||||
import { Returns } from '../../../decorators/returns.decorator.js';
|
||||
import { PermissionsList } from '../../../models/constants/permissions.const.js';
|
||||
|
||||
@Controller('api/info')
|
||||
@NoPermissions()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { LateConfigModule } from '../../../config/late/late-config.module';
|
||||
import { InfoController } from './info.controller';
|
||||
import { LateConfigModule } from '../../../config/late/late-config.module.js';
|
||||
import { InfoController } from './info.controller.js';
|
||||
|
||||
@Module({
|
||||
imports: [LateConfigModule],
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { PreferenceDbModule } from '../../../collections/preference-db/preference-db.module';
|
||||
import { SysPrefController } from './sys-pref.controller';
|
||||
import { UsrPrefController } from './usr-pref.controller';
|
||||
import { PreferenceDbModule } from '../../../collections/preference-db/preference-db.module.js';
|
||||
import { SysPrefController } from './sys-pref.controller.js';
|
||||
import { UsrPrefController } from './usr-pref.controller.js';
|
||||
|
||||
@Module({
|
||||
imports: [PreferenceDbModule],
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
import { Body, Controller, Get, Logger, Param, Post } from '@nestjs/common';
|
||||
import {
|
||||
GetPreferenceResponse,
|
||||
MultiplePreferencesResponse,
|
||||
UpdatePreferenceRequest,
|
||||
UpdatePreferenceResponse,
|
||||
GetPreferenceResponse,
|
||||
MultiplePreferencesResponse,
|
||||
UpdatePreferenceRequest,
|
||||
UpdatePreferenceResponse,
|
||||
} from 'picsur-shared/dist/dto/api/pref.dto';
|
||||
import { ThrowIfFailed } from 'picsur-shared/dist/types/failable';
|
||||
import { SysPreferenceDbService } from '../../../collections/preference-db/sys-preference-db.service';
|
||||
import { EasyThrottle } from '../../../decorators/easy-throttle.decorator';
|
||||
import { RequiredPermissions } from '../../../decorators/permissions.decorator';
|
||||
import { Returns } from '../../../decorators/returns.decorator';
|
||||
import { Permission } from '../../../models/constants/permissions.const';
|
||||
import { SysPreferenceDbService } from '../../../collections/preference-db/sys-preference-db.service.js';
|
||||
import { EasyThrottle } from '../../../decorators/easy-throttle.decorator.js';
|
||||
import { RequiredPermissions } from '../../../decorators/permissions.decorator.js';
|
||||
import { Returns } from '../../../decorators/returns.decorator.js';
|
||||
import { Permission } from '../../../models/constants/permissions.const.js';
|
||||
|
||||
@Controller('api/pref/sys')
|
||||
@RequiredPermissions(Permission.SysPrefAdmin)
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
import { Body, Controller, Get, Logger, Param, Post } from '@nestjs/common';
|
||||
import {
|
||||
GetPreferenceResponse,
|
||||
MultiplePreferencesResponse,
|
||||
UpdatePreferenceRequest,
|
||||
UpdatePreferenceResponse,
|
||||
GetPreferenceResponse,
|
||||
MultiplePreferencesResponse,
|
||||
UpdatePreferenceRequest,
|
||||
UpdatePreferenceResponse,
|
||||
} from 'picsur-shared/dist/dto/api/pref.dto';
|
||||
import { ThrowIfFailed } from 'picsur-shared/dist/types/failable';
|
||||
import { UsrPreferenceDbService } from '../../../collections/preference-db/usr-preference-db.service';
|
||||
import { EasyThrottle } from '../../../decorators/easy-throttle.decorator';
|
||||
import { RequiredPermissions } from '../../../decorators/permissions.decorator';
|
||||
import { ReqUserID } from '../../../decorators/request-user.decorator';
|
||||
import { Returns } from '../../../decorators/returns.decorator';
|
||||
import { Permission } from '../../../models/constants/permissions.const';
|
||||
import { UsrPreferenceDbService } from '../../../collections/preference-db/usr-preference-db.service.js';
|
||||
import { EasyThrottle } from '../../../decorators/easy-throttle.decorator.js';
|
||||
import { RequiredPermissions } from '../../../decorators/permissions.decorator.js';
|
||||
import { ReqUserID } from '../../../decorators/request-user.decorator.js';
|
||||
import { Returns } from '../../../decorators/returns.decorator.js';
|
||||
import { Permission } from '../../../models/constants/permissions.const.js';
|
||||
|
||||
@Controller('api/pref/usr')
|
||||
@RequiredPermissions(Permission.Settings)
|
||||
|
||||
@@ -1,31 +1,31 @@
|
||||
import { Body, Controller, Get, Logger, Post } from '@nestjs/common';
|
||||
import {
|
||||
RoleCreateRequest,
|
||||
RoleCreateResponse,
|
||||
RoleDeleteRequest,
|
||||
RoleDeleteResponse,
|
||||
RoleInfoRequest,
|
||||
RoleInfoResponse,
|
||||
RoleListResponse,
|
||||
RoleUpdateRequest,
|
||||
RoleUpdateResponse,
|
||||
SpecialRolesResponse,
|
||||
RoleCreateRequest,
|
||||
RoleCreateResponse,
|
||||
RoleDeleteRequest,
|
||||
RoleDeleteResponse,
|
||||
RoleInfoRequest,
|
||||
RoleInfoResponse,
|
||||
RoleListResponse,
|
||||
RoleUpdateRequest,
|
||||
RoleUpdateResponse,
|
||||
SpecialRolesResponse,
|
||||
} from 'picsur-shared/dist/dto/api/roles.dto';
|
||||
import { FT, Fail, ThrowIfFailed } from 'picsur-shared/dist/types/failable';
|
||||
import { RoleDbService } from '../../../collections/role-db/role-db.service';
|
||||
import { UserDbService } from '../../../collections/user-db/user-db.service';
|
||||
import { EasyThrottle } from '../../../decorators/easy-throttle.decorator';
|
||||
import { RequiredPermissions } from '../../../decorators/permissions.decorator';
|
||||
import { Returns } from '../../../decorators/returns.decorator';
|
||||
import { Permission } from '../../../models/constants/permissions.const';
|
||||
import { RoleDbService } from '../../../collections/role-db/role-db.service.js';
|
||||
import { UserDbService } from '../../../collections/user-db/user-db.service.js';
|
||||
import { EasyThrottle } from '../../../decorators/easy-throttle.decorator.js';
|
||||
import { RequiredPermissions } from '../../../decorators/permissions.decorator.js';
|
||||
import { Returns } from '../../../decorators/returns.decorator.js';
|
||||
import { Permission } from '../../../models/constants/permissions.const.js';
|
||||
import {
|
||||
DefaultRolesList,
|
||||
ImmutableRolesList,
|
||||
RolePermissionsLocks,
|
||||
SoulBoundRolesList,
|
||||
UndeletableRolesList,
|
||||
} from '../../../models/constants/roles.const';
|
||||
import { isPermissionsArray } from '../../../models/validators/permissions.validator';
|
||||
DefaultRolesList,
|
||||
ImmutableRolesList,
|
||||
RolePermissionsLocks,
|
||||
SoulBoundRolesList,
|
||||
UndeletableRolesList,
|
||||
} from '../../../models/constants/roles.const.js';
|
||||
import { isPermissionsArray } from '../../../models/validators/permissions.validator.js';
|
||||
|
||||
@Controller('api/roles')
|
||||
@RequiredPermissions(Permission.RoleAdmin)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { RoleDbModule } from '../../../collections/role-db/role-db.module';
|
||||
import { UserDbModule } from '../../../collections/user-db/user-db.module';
|
||||
import { RolesController } from './roles.controller';
|
||||
import { RoleDbModule } from '../../../collections/role-db/role-db.module.js';
|
||||
import { UserDbModule } from '../../../collections/user-db/user-db.module.js';
|
||||
import { RolesController } from './roles.controller.js';
|
||||
|
||||
@Module({
|
||||
imports: [RoleDbModule, UserDbModule],
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { Controller, Logger, Post, Req, Res } from '@nestjs/common';
|
||||
import type { FastifyReply, FastifyRequest } from 'fastify';
|
||||
import { FT, Fail, ThrowIfFailed } from 'picsur-shared/dist/types/failable';
|
||||
import { UsageConfigService } from '../../../config/late/usage.config.service';
|
||||
import { EasyThrottle } from '../../../decorators/easy-throttle.decorator';
|
||||
import { NoPermissions } from '../../../decorators/permissions.decorator';
|
||||
import { ReturnsAnything } from '../../../decorators/returns.decorator';
|
||||
import { UsageConfigService } from '../../../config/late/usage.config.service.js';
|
||||
import { EasyThrottle } from '../../../decorators/easy-throttle.decorator.js';
|
||||
import { NoPermissions } from '../../../decorators/permissions.decorator.js';
|
||||
import { ReturnsAnything } from '../../../decorators/returns.decorator.js';
|
||||
|
||||
@Controller('api/usage')
|
||||
@NoPermissions()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { LateConfigModule } from '../../../config/late/late-config.module';
|
||||
import { UsageController } from './usage.controller';
|
||||
import { LateConfigModule } from '../../../config/late/late-config.module.js';
|
||||
import { UsageController } from './usage.controller.js';
|
||||
|
||||
@Module({
|
||||
imports: [LateConfigModule],
|
||||
|
||||
@@ -1,29 +1,29 @@
|
||||
import { Body, Controller, Get, Logger, Post } from '@nestjs/common';
|
||||
import {
|
||||
GetSpecialUsersResponse,
|
||||
UserCreateRequest,
|
||||
UserCreateResponse,
|
||||
UserDeleteRequest,
|
||||
UserDeleteResponse,
|
||||
UserInfoRequest,
|
||||
UserInfoResponse,
|
||||
UserListRequest,
|
||||
UserListResponse,
|
||||
UserUpdateRequest,
|
||||
UserUpdateResponse,
|
||||
GetSpecialUsersResponse,
|
||||
UserCreateRequest,
|
||||
UserCreateResponse,
|
||||
UserDeleteRequest,
|
||||
UserDeleteResponse,
|
||||
UserInfoRequest,
|
||||
UserInfoResponse,
|
||||
UserListRequest,
|
||||
UserListResponse,
|
||||
UserUpdateRequest,
|
||||
UserUpdateResponse,
|
||||
} from 'picsur-shared/dist/dto/api/user-manage.dto';
|
||||
import { ThrowIfFailed } from 'picsur-shared/dist/types/failable';
|
||||
import { UserDbService } from '../../../collections/user-db/user-db.service';
|
||||
import { EasyThrottle } from '../../../decorators/easy-throttle.decorator';
|
||||
import { RequiredPermissions } from '../../../decorators/permissions.decorator';
|
||||
import { Returns } from '../../../decorators/returns.decorator';
|
||||
import { Permission } from '../../../models/constants/permissions.const';
|
||||
import { UserDbService } from '../../../collections/user-db/user-db.service.js';
|
||||
import { EasyThrottle } from '../../../decorators/easy-throttle.decorator.js';
|
||||
import { RequiredPermissions } from '../../../decorators/permissions.decorator.js';
|
||||
import { Returns } from '../../../decorators/returns.decorator.js';
|
||||
import { Permission } from '../../../models/constants/permissions.const.js';
|
||||
import {
|
||||
ImmutableUsersList,
|
||||
LockedLoginUsersList,
|
||||
UndeletableUsersList,
|
||||
} from '../../../models/constants/special-users.const';
|
||||
import { EUserBackend2EUser } from '../../../models/transformers/user.transformer';
|
||||
ImmutableUsersList,
|
||||
LockedLoginUsersList,
|
||||
UndeletableUsersList,
|
||||
} from '../../../models/constants/special-users.const.js';
|
||||
import { EUserBackend2EUser } from '../../../models/transformers/user.transformer.js';
|
||||
|
||||
@Controller('api/user')
|
||||
@RequiredPermissions(Permission.UserAdmin)
|
||||
|
||||
@@ -1,27 +1,27 @@
|
||||
import { Body, Controller, Get, Logger, Post } from '@nestjs/common';
|
||||
import {
|
||||
UserCheckNameRequest,
|
||||
UserCheckNameResponse,
|
||||
UserLoginResponse,
|
||||
UserMePermissionsResponse,
|
||||
UserMeResponse,
|
||||
UserRegisterRequest,
|
||||
UserRegisterResponse,
|
||||
UserCheckNameRequest,
|
||||
UserCheckNameResponse,
|
||||
UserLoginResponse,
|
||||
UserMePermissionsResponse,
|
||||
UserMeResponse,
|
||||
UserRegisterRequest,
|
||||
UserRegisterResponse,
|
||||
} from 'picsur-shared/dist/dto/api/user.dto';
|
||||
import type { EUser } from 'picsur-shared/dist/entities/user.entity';
|
||||
import { ThrowIfFailed } from 'picsur-shared/dist/types/failable';
|
||||
import { UserDbService } from '../../../collections/user-db/user-db.service';
|
||||
import { EasyThrottle } from '../../../decorators/easy-throttle.decorator';
|
||||
import { UserDbService } from '../../../collections/user-db/user-db.service.js';
|
||||
import { EasyThrottle } from '../../../decorators/easy-throttle.decorator.js';
|
||||
import {
|
||||
NoPermissions,
|
||||
RequiredPermissions,
|
||||
UseLocalAuth,
|
||||
} from '../../../decorators/permissions.decorator';
|
||||
import { ReqUser, ReqUserID } from '../../../decorators/request-user.decorator';
|
||||
import { Returns } from '../../../decorators/returns.decorator';
|
||||
import { AuthManagerService } from '../../../managers/auth/auth.service';
|
||||
import { Permission } from '../../../models/constants/permissions.const';
|
||||
import { EUserBackend2EUser } from '../../../models/transformers/user.transformer';
|
||||
NoPermissions,
|
||||
RequiredPermissions,
|
||||
UseLocalAuth,
|
||||
} from '../../../decorators/permissions.decorator.js';
|
||||
import { ReqUser, ReqUserID } from '../../../decorators/request-user.decorator.js';
|
||||
import { Returns } from '../../../decorators/returns.decorator.js';
|
||||
import { AuthManagerService } from '../../../managers/auth/auth.service.js';
|
||||
import { Permission } from '../../../models/constants/permissions.const.js';
|
||||
import { EUserBackend2EUser } from '../../../models/transformers/user.transformer.js';
|
||||
|
||||
@Controller('api/user')
|
||||
export class UserController {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { AuthManagerModule } from '../../../managers/auth/auth.module';
|
||||
import { UserAdminController } from './user-manage.controller';
|
||||
import { UserController } from './user.controller';
|
||||
import { AuthManagerModule } from '../../../managers/auth/auth.module.js';
|
||||
import { UserAdminController } from './user-manage.controller.js';
|
||||
import { UserController } from './user.controller.js';
|
||||
|
||||
@Module({
|
||||
imports: [AuthManagerModule],
|
||||
|
||||
@@ -1,42 +1,42 @@
|
||||
import {
|
||||
Body,
|
||||
Controller,
|
||||
Get,
|
||||
Logger,
|
||||
Param,
|
||||
Post,
|
||||
Res,
|
||||
Body,
|
||||
Controller,
|
||||
Get,
|
||||
Logger,
|
||||
Param,
|
||||
Post,
|
||||
Res,
|
||||
} from '@nestjs/common';
|
||||
import type { FastifyReply } from 'fastify';
|
||||
import {
|
||||
ImageDeleteRequest,
|
||||
ImageDeleteResponse,
|
||||
ImageDeleteWithKeyRequest,
|
||||
ImageDeleteWithKeyResponse,
|
||||
ImageListRequest,
|
||||
ImageListResponse,
|
||||
ImageUpdateRequest,
|
||||
ImageUpdateResponse,
|
||||
ImageUploadResponse,
|
||||
ImageDeleteRequest,
|
||||
ImageDeleteResponse,
|
||||
ImageDeleteWithKeyRequest,
|
||||
ImageDeleteWithKeyResponse,
|
||||
ImageListRequest,
|
||||
ImageListResponse,
|
||||
ImageUpdateRequest,
|
||||
ImageUpdateResponse,
|
||||
ImageUploadResponse,
|
||||
} from 'picsur-shared/dist/dto/api/image-manage.dto';
|
||||
import { Permission } from 'picsur-shared/dist/dto/permissions.enum';
|
||||
import {
|
||||
FT,
|
||||
Fail,
|
||||
HasFailed,
|
||||
ThrowIfFailed,
|
||||
FT,
|
||||
Fail,
|
||||
HasFailed,
|
||||
ThrowIfFailed,
|
||||
} from 'picsur-shared/dist/types/failable';
|
||||
import { EasyThrottle } from '../../decorators/easy-throttle.decorator';
|
||||
import { PostFiles } from '../../decorators/multipart/multipart.decorator';
|
||||
import type { FileIterator } from '../../decorators/multipart/postfiles.pipe';
|
||||
import { EasyThrottle } from '../../decorators/easy-throttle.decorator.js';
|
||||
import { PostFiles } from '../../decorators/multipart/multipart.decorator.js';
|
||||
import type { FileIterator } from '../../decorators/multipart/postfiles.pipe.js';
|
||||
import {
|
||||
HasPermission,
|
||||
RequiredPermissions,
|
||||
} from '../../decorators/permissions.decorator';
|
||||
import { ReqUserID } from '../../decorators/request-user.decorator';
|
||||
import { Returns } from '../../decorators/returns.decorator';
|
||||
import { ImageManagerService } from '../../managers/image/image.service';
|
||||
import { GetNextAsync } from '../../util/iterator';
|
||||
HasPermission,
|
||||
RequiredPermissions,
|
||||
} from '../../decorators/permissions.decorator.js';
|
||||
import { ReqUserID } from '../../decorators/request-user.decorator.js';
|
||||
import { Returns } from '../../decorators/returns.decorator.js';
|
||||
import { ImageManagerService } from '../../managers/image/image.service.js';
|
||||
import { GetNextAsync } from '../../util/iterator.js';
|
||||
|
||||
@Controller('api/image')
|
||||
@RequiredPermissions(Permission.ImageUpload)
|
||||
|
||||
@@ -2,26 +2,26 @@ import { Controller, Get, Head, Logger, Query, Res } from '@nestjs/common';
|
||||
import { SkipThrottle } from '@nestjs/throttler';
|
||||
import type { FastifyReply } from 'fastify';
|
||||
import {
|
||||
ImageMetaResponse,
|
||||
ImageRequestParams,
|
||||
ImageMetaResponse,
|
||||
ImageRequestParams,
|
||||
} from 'picsur-shared/dist/dto/api/image.dto';
|
||||
import { ImageEntryVariant } from 'picsur-shared/dist/dto/image-entry-variant.enum';
|
||||
import { FileType2Mime } from 'picsur-shared/dist/dto/mimes.dto';
|
||||
import {
|
||||
FT,
|
||||
IsFailure,
|
||||
ThrowIfFailed,
|
||||
FT,
|
||||
IsFailure,
|
||||
ThrowIfFailed,
|
||||
} from 'picsur-shared/dist/types/failable';
|
||||
import { UserDbService } from '../../collections/user-db/user-db.service';
|
||||
import { ImageFullIdParam } from '../../decorators/image-id/image-full-id.decorator';
|
||||
import { ImageIdParam } from '../../decorators/image-id/image-id.decorator';
|
||||
import { RequiredPermissions } from '../../decorators/permissions.decorator';
|
||||
import { Returns } from '../../decorators/returns.decorator';
|
||||
import { ImageManagerService } from '../../managers/image/image.service';
|
||||
import type { ImageFullId } from '../../models/constants/image-full-id.const';
|
||||
import { Permission } from '../../models/constants/permissions.const';
|
||||
import { EUserBackend2EUser } from '../../models/transformers/user.transformer';
|
||||
import { BrandMessageType, GetBrandMessage } from '../../util/branding';
|
||||
import { UserDbService } from '../../collections/user-db/user-db.service.js';
|
||||
import { ImageFullIdParam } from '../../decorators/image-id/image-full-id.decorator.js';
|
||||
import { ImageIdParam } from '../../decorators/image-id/image-id.decorator.js';
|
||||
import { RequiredPermissions } from '../../decorators/permissions.decorator.js';
|
||||
import { Returns } from '../../decorators/returns.decorator.js';
|
||||
import { ImageManagerService } from '../../managers/image/image.service.js';
|
||||
import type { ImageFullId } from '../../models/constants/image-full-id.const.js';
|
||||
import { Permission } from '../../models/constants/permissions.const.js';
|
||||
import { EUserBackend2EUser } from '../../models/transformers/user.transformer.js';
|
||||
import { BrandMessageType, GetBrandMessage } from '../../util/branding.js';
|
||||
|
||||
// This is the only controller with CORS enabled
|
||||
@Controller('i')
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { UserDbModule } from '../../collections/user-db/user-db.module';
|
||||
import { DecoratorsModule } from '../../decorators/decorators.module';
|
||||
import { ImageManagerModule } from '../../managers/image/image-manager.module';
|
||||
import { ImageManageController } from './image-manage.controller';
|
||||
import { ImageController } from './image.controller';
|
||||
import { UserDbModule } from '../../collections/user-db/user-db.module.js';
|
||||
import { DecoratorsModule } from '../../decorators/decorators.module.js';
|
||||
import { ImageManagerModule } from '../../managers/image/image-manager.module.js';
|
||||
import { ImageManageController } from './image-manage.controller.js';
|
||||
import { ImageController } from './image.controller.js';
|
||||
|
||||
@Module({
|
||||
imports: [ImageManagerModule, UserDbModule, DecoratorsModule],
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { PicsurApiModule } from './api/api.module';
|
||||
import { ImageModule } from './image/image.module';
|
||||
import { PicsurApiModule } from './api/api.module.js';
|
||||
import { ImageModule } from './image/image.module.js';
|
||||
|
||||
@Module({
|
||||
imports: [PicsurApiModule, ImageModule],
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { readFile } from 'fs/promises';
|
||||
import { resolve } from 'path';
|
||||
import { AsyncFailable, Fail, FT } from 'picsur-shared/dist/types/failable';
|
||||
import { PackageRoot } from '../config/config.static';
|
||||
import { PackageRoot } from '../config/config.static.js';
|
||||
|
||||
export const BrandingPath = resolve(PackageRoot, '../branding');
|
||||
|
||||
|
||||
@@ -18,8 +18,8 @@ import {
|
||||
SharpWorkerResultMessage,
|
||||
SharpWorkerSendMessage,
|
||||
SupportedSharpWorkerFunctions,
|
||||
} from './sharp/sharp.message';
|
||||
import { SharpResult } from './sharp/universal-sharp';
|
||||
} from './sharp/sharp.message.js';
|
||||
import { SharpResult } from './sharp/universal-sharp.js';
|
||||
|
||||
const moduleURL = new URL(import.meta.url);
|
||||
const __dirname = dirname(moduleURL.pathname);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { FileType } from 'picsur-shared/dist/dto/mimes.dto';
|
||||
import { Sharp, SharpOptions } from 'sharp';
|
||||
import { SharpResult } from './universal-sharp';
|
||||
import { SharpResult } from './universal-sharp.js';
|
||||
|
||||
type MapSharpFunctions<T extends keyof Sharp> = T extends any
|
||||
? Sharp[T] extends (...args: any) => any
|
||||
|
||||
@@ -7,8 +7,8 @@ import {
|
||||
SharpWorkerOperationMessage,
|
||||
SharpWorkerRecieveMessage,
|
||||
SharpWorkerSendMessage,
|
||||
} from './sharp.message';
|
||||
import { UniversalSharpIn, UniversalSharpOut } from './universal-sharp';
|
||||
} from './sharp.message.js';
|
||||
import { UniversalSharpIn, UniversalSharpOut } from './universal-sharp.js';
|
||||
|
||||
export class SharpWorker {
|
||||
private startTime = 0;
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"exclude": ["node_modules", "dist", "test", "**/*spec.ts"],
|
||||
"compilerOptions": {
|
||||
"lib": ["es2022"],
|
||||
"module": "ES2022",
|
||||
"module": "NodeNext",
|
||||
"target": "es2022",
|
||||
|
||||
"outDir": "./dist",
|
||||
|
||||
Reference in New Issue
Block a user