Make backend work with nodenext

This commit is contained in:
Caramel
2024-10-30 17:57:45 +01:00
parent 3128c3a249
commit 9098b963d8
98 changed files with 556 additions and 556 deletions

View File

@@ -3,15 +3,15 @@ import { ScheduleModule } from '@nestjs/schedule';
import { ServeStaticModule } from '@nestjs/serve-static'; import { ServeStaticModule } from '@nestjs/serve-static';
import cors from 'cors'; import cors from 'cors';
import { IncomingMessage, ServerResponse } from 'http'; import { IncomingMessage, ServerResponse } from 'http';
import { EarlyConfigModule } from './config/early/early-config.module'; import { EarlyConfigModule } from './config/early/early-config.module.js';
import { ServeStaticConfigService } from './config/early/serve-static.config.service'; import { ServeStaticConfigService } from './config/early/serve-static.config.service.js';
import { DatabaseModule } from './database/database.module'; import { DatabaseModule } from './database/database.module.js';
import { PicsurLayersModule } from './layers/PicsurLayers.module'; import { PicsurLayersModule } from './layers/PicsurLayers.module.js';
import { PicsurLoggerModule } from './logger/logger.module'; import { PicsurLoggerModule } from './logger/logger.module.js';
import { AuthManagerModule } from './managers/auth/auth.module'; import { AuthManagerModule } from './managers/auth/auth.module.js';
import { DemoManagerModule } from './managers/demo/demo.module'; import { DemoManagerModule } from './managers/demo/demo.module.js';
import { UsageManagerModule } from './managers/usage/usage.module'; import { UsageManagerModule } from './managers/usage/usage.module.js';
import { PicsurRoutesModule } from './routes/routes.module'; import { PicsurRoutesModule } from './routes/routes.module.js';
const mainCorsConfig = cors({ const mainCorsConfig = cors({
origin: '<origin>', origin: '<origin>',

View File

@@ -1,7 +1,7 @@
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm'; import { TypeOrmModule } from '@nestjs/typeorm';
import { EApiKeyBackend } from '../../database/entities/apikey.entity'; import { EApiKeyBackend } from '../../database/entities/apikey.entity.js';
import { ApiKeyDbService } from './apikey-db.service'; import { ApiKeyDbService } from './apikey-db.service.js';
@Module({ @Module({
imports: [TypeOrmModule.forFeature([EApiKeyBackend])], imports: [TypeOrmModule.forFeature([EApiKeyBackend])],

View File

@@ -1,16 +1,16 @@
import { Injectable, Logger } from '@nestjs/common'; import { Injectable, Logger } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm'; import { InjectRepository } from '@nestjs/typeorm';
import { import {
AsyncFailable, AsyncFailable,
Fail, Fail,
FT, FT,
HasFailed, HasFailed,
} from 'picsur-shared/dist/types/failable'; } from 'picsur-shared/dist/types/failable';
import { FindResult } from 'picsur-shared/dist/types/find-result'; import { FindResult } from 'picsur-shared/dist/types/find-result';
import { generateRandomString } from 'picsur-shared/dist/util/random'; import { generateRandomString } from 'picsur-shared/dist/util/random';
import { Repository } from 'typeorm'; import { Repository } from 'typeorm';
import { EApiKeyBackend } from '../../database/entities/apikey.entity'; import { EApiKeyBackend } from '../../database/entities/apikey.entity.js';
import { EUserBackend } from '../../database/entities/users/user.entity'; import { EUserBackend } from '../../database/entities/users/user.entity.js';
@Injectable() @Injectable()
export class ApiKeyDbService { export class ApiKeyDbService {

View File

@@ -1,10 +1,10 @@
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm'; import { TypeOrmModule } from '@nestjs/typeorm';
import { EImageDerivativeBackend } from '../../database/entities/images/image-derivative.entity'; import { EImageDerivativeBackend } from '../../database/entities/images/image-derivative.entity.js';
import { EImageFileBackend } from '../../database/entities/images/image-file.entity'; import { EImageFileBackend } from '../../database/entities/images/image-file.entity.js';
import { EImageBackend } from '../../database/entities/images/image.entity'; import { EImageBackend } from '../../database/entities/images/image.entity.js';
import { ImageDBService } from './image-db.service'; import { ImageDBService } from './image-db.service.js';
import { ImageFileDBService } from './image-file-db.service'; import { ImageFileDBService } from './image-file-db.service.js';
@Module({ @Module({
imports: [ imports: [

View File

@@ -4,7 +4,7 @@ import { AsyncFailable, Fail, FT } from 'picsur-shared/dist/types/failable';
import { FindResult } from 'picsur-shared/dist/types/find-result'; import { FindResult } from 'picsur-shared/dist/types/find-result';
import { generateRandomString } from 'picsur-shared/dist/util/random'; import { generateRandomString } from 'picsur-shared/dist/util/random';
import { In, LessThan, Repository } from 'typeorm'; import { In, LessThan, Repository } from 'typeorm';
import { EImageBackend } from '../../database/entities/images/image.entity'; import { EImageBackend } from '../../database/entities/images/image.entity.js';
@Injectable() @Injectable()
export class ImageDBService { export class ImageDBService {

View File

@@ -2,14 +2,14 @@ import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm'; import { InjectRepository } from '@nestjs/typeorm';
import { ImageEntryVariant } from 'picsur-shared/dist/dto/image-entry-variant.enum'; import { ImageEntryVariant } from 'picsur-shared/dist/dto/image-entry-variant.enum';
import { import {
AsyncFailable, AsyncFailable,
Fail, Fail,
FT, FT,
HasFailed, HasFailed,
} from 'picsur-shared/dist/types/failable'; } from 'picsur-shared/dist/types/failable';
import { LessThan, Repository } from 'typeorm'; import { LessThan, Repository } from 'typeorm';
import { EImageDerivativeBackend } from '../../database/entities/images/image-derivative.entity'; import { EImageDerivativeBackend } from '../../database/entities/images/image-derivative.entity.js';
import { EImageFileBackend } from '../../database/entities/images/image-file.entity'; import { EImageFileBackend } from '../../database/entities/images/image-file.entity.js';
const A_DAY_IN_SECONDS = 24 * 60 * 60; const A_DAY_IN_SECONDS = 24 * 60 * 60;

View File

@@ -1,12 +1,12 @@
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm'; import { TypeOrmModule } from '@nestjs/typeorm';
import { EarlyConfigModule } from '../../config/early/early-config.module'; import { EarlyConfigModule } from '../../config/early/early-config.module.js';
import { ESysPreferenceBackend } from '../../database/entities/system/sys-preference.entity'; import { ESysPreferenceBackend } from '../../database/entities/system/sys-preference.entity.js';
import { EUsrPreferenceBackend } from '../../database/entities/system/usr-preference.entity'; import { EUsrPreferenceBackend } from '../../database/entities/system/usr-preference.entity.js';
import { PreferenceCommonService } from './preference-common.service'; import { PreferenceCommonService } from './preference-common.service.js';
import { PreferenceDefaultsService } from './preference-defaults.service'; import { PreferenceDefaultsService } from './preference-defaults.service.js';
import { SysPreferenceDbService } from './sys-preference-db.service'; import { SysPreferenceDbService } from './sys-preference-db.service.js';
import { UsrPreferenceDbService } from './usr-preference-db.service'; import { UsrPreferenceDbService } from './usr-preference-db.service.js';
@Module({ @Module({
imports: [ imports: [

View File

@@ -3,7 +3,7 @@ import { PrefValueType } from 'picsur-shared/dist/dto/preferences.dto';
import { SysPreference } from 'picsur-shared/dist/dto/sys-preferences.enum'; import { SysPreference } from 'picsur-shared/dist/dto/sys-preferences.enum';
import { UsrPreference } from 'picsur-shared/dist/dto/usr-preferences.enum'; import { UsrPreference } from 'picsur-shared/dist/dto/usr-preferences.enum';
import { generateRandomString } from 'picsur-shared/dist/util/random'; 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 // 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 // It needs to be in a service because the values depend on the environment

View File

@@ -1,30 +1,30 @@
import { Injectable, Logger } from '@nestjs/common'; import { Injectable, Logger } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm'; import { InjectRepository } from '@nestjs/typeorm';
import { import {
DecodedSysPref, DecodedSysPref,
PrefValueType, PrefValueType,
PrefValueTypeStrings, PrefValueTypeStrings,
} from 'picsur-shared/dist/dto/preferences.dto'; } from 'picsur-shared/dist/dto/preferences.dto';
import { import {
SysPreference, SysPreference,
SysPreferenceList, SysPreferenceList,
SysPreferenceValidators, SysPreferenceValidators,
SysPreferenceValueTypes, SysPreferenceValueTypes,
} from 'picsur-shared/dist/dto/sys-preferences.enum'; } from 'picsur-shared/dist/dto/sys-preferences.enum';
import { import {
AsyncFailable, AsyncFailable,
Fail, Fail,
FT, FT,
HasFailed, HasFailed,
} from 'picsur-shared/dist/types/failable'; } from 'picsur-shared/dist/types/failable';
import { Repository } from 'typeorm'; import { Repository } from 'typeorm';
import { import {
ESysPreferenceBackend, ESysPreferenceBackend,
ESysPreferenceSchema, ESysPreferenceSchema,
} from '../../database/entities/system/sys-preference.entity'; } from '../../database/entities/system/sys-preference.entity.js';
import { MutexFallBack } from '../../util/mutex-fallback'; import { MutexFallBack } from '../../util/mutex-fallback.js';
import { PreferenceCommonService } from './preference-common.service'; import { PreferenceCommonService } from './preference-common.service.js';
import { PreferenceDefaultsService } from './preference-defaults.service'; import { PreferenceDefaultsService } from './preference-defaults.service.js';
@Injectable() @Injectable()
export class SysPreferenceDbService { export class SysPreferenceDbService {

View File

@@ -1,30 +1,30 @@
import { Injectable, Logger } from '@nestjs/common'; import { Injectable, Logger } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm'; import { InjectRepository } from '@nestjs/typeorm';
import { import {
DecodedUsrPref, DecodedUsrPref,
PrefValueType, PrefValueType,
PrefValueTypeStrings, PrefValueTypeStrings,
} from 'picsur-shared/dist/dto/preferences.dto'; } from 'picsur-shared/dist/dto/preferences.dto';
import { import {
UsrPreference, UsrPreference,
UsrPreferenceList, UsrPreferenceList,
UsrPreferenceValidators, UsrPreferenceValidators,
UsrPreferenceValueTypes, UsrPreferenceValueTypes,
} from 'picsur-shared/dist/dto/usr-preferences.enum'; } from 'picsur-shared/dist/dto/usr-preferences.enum';
import { import {
AsyncFailable, AsyncFailable,
Fail, Fail,
FT, FT,
HasFailed, HasFailed,
} from 'picsur-shared/dist/types/failable'; } from 'picsur-shared/dist/types/failable';
import { Repository } from 'typeorm'; import { Repository } from 'typeorm';
import { import {
EUsrPreferenceBackend, EUsrPreferenceBackend,
EUsrPreferenceSchema, EUsrPreferenceSchema,
} from '../../database/entities/system/usr-preference.entity'; } from '../../database/entities/system/usr-preference.entity.js';
import { MutexFallBack } from '../../util/mutex-fallback'; import { MutexFallBack } from '../../util/mutex-fallback.js';
import { PreferenceCommonService } from './preference-common.service'; import { PreferenceCommonService } from './preference-common.service.js';
import { PreferenceDefaultsService } from './preference-defaults.service'; import { PreferenceDefaultsService } from './preference-defaults.service.js';
@Injectable() @Injectable()
export class UsrPreferenceDbService { export class UsrPreferenceDbService {

View File

@@ -1,15 +1,15 @@
import { Logger, Module, OnModuleInit } from '@nestjs/common'; import { Logger, Module, OnModuleInit } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm'; import { TypeOrmModule } from '@nestjs/typeorm';
import { HasFailed } from 'picsur-shared/dist/types/failable'; import { HasFailed } from 'picsur-shared/dist/types/failable';
import { EarlyConfigModule } from '../../config/early/early-config.module'; import { EarlyConfigModule } from '../../config/early/early-config.module.js';
import { HostConfigService } from '../../config/early/host.config.service'; import { HostConfigService } from '../../config/early/host.config.service.js';
import { ERoleBackend } from '../../database/entities/users/role.entity'; import { ERoleBackend } from '../../database/entities/users/role.entity.js';
import { import {
ImmutableRolesList, ImmutableRolesList,
SystemRoleDefaults, SystemRoleDefaults,
SystemRolesList, SystemRolesList,
} from '../../models/constants/roles.const'; } from '../../models/constants/roles.const.js';
import { RoleDbService } from './role-db.service'; import { RoleDbService } from './role-db.service.js';
@Module({ @Module({
imports: [EarlyConfigModule, TypeOrmModule.forFeature([ERoleBackend])], imports: [EarlyConfigModule, TypeOrmModule.forFeature([ERoleBackend])],

View File

@@ -2,21 +2,21 @@ import { Injectable, Logger } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm'; import { InjectRepository } from '@nestjs/typeorm';
import { ERoleSchema } from 'picsur-shared/dist/entities/role.entity'; import { ERoleSchema } from 'picsur-shared/dist/entities/role.entity';
import { import {
AsyncFailable, AsyncFailable,
Fail, Fail,
FT, FT,
HasFailed, HasFailed,
HasSuccess, HasSuccess,
} from 'picsur-shared/dist/types/failable'; } from 'picsur-shared/dist/types/failable';
import { makeUnique } from 'picsur-shared/dist/util/unique'; import { makeUnique } from 'picsur-shared/dist/util/unique';
import { In, Repository } from 'typeorm'; import { In, Repository } from 'typeorm';
import { ERoleBackend } from '../../database/entities/users/role.entity'; import { ERoleBackend } from '../../database/entities/users/role.entity.js';
import { Permissions } from '../../models/constants/permissions.const'; import { Permissions } from '../../models/constants/permissions.const.js';
import { import {
ImmutableRolesList, ImmutableRolesList,
RolePermissionsLocks, RolePermissionsLocks,
UndeletableRolesList, UndeletableRolesList,
} from '../../models/constants/roles.const'; } from '../../models/constants/roles.const.js';
@Injectable() @Injectable()
export class RoleDbService { export class RoleDbService {

View File

@@ -1,7 +1,7 @@
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm'; import { TypeOrmModule } from '@nestjs/typeorm';
import { ESystemStateBackend } from '../../database/entities/system/system-state.entity'; import { ESystemStateBackend } from '../../database/entities/system/system-state.entity.js';
import { SystemStateDbService } from './system-state-db.service'; import { SystemStateDbService } from './system-state-db.service.js';
@Module({ @Module({
imports: [TypeOrmModule.forFeature([ESystemStateBackend])], imports: [TypeOrmModule.forFeature([ESystemStateBackend])],

View File

@@ -2,7 +2,7 @@ import { Injectable, Logger } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm'; import { InjectRepository } from '@nestjs/typeorm';
import { AsyncFailable, Fail, FT } from 'picsur-shared/dist/types/failable'; import { AsyncFailable, Fail, FT } from 'picsur-shared/dist/types/failable';
import { Repository } from 'typeorm'; import { Repository } from 'typeorm';
import { ESystemStateBackend } from '../../database/entities/system/system-state.entity'; import { ESystemStateBackend } from '../../database/entities/system/system-state.entity.js';
@Injectable() @Injectable()
export class SystemStateDbService { export class SystemStateDbService {

View File

@@ -2,12 +2,12 @@ import { Logger, Module, OnModuleInit } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm'; import { TypeOrmModule } from '@nestjs/typeorm';
import { HasFailed } from 'picsur-shared/dist/types/failable'; import { HasFailed } from 'picsur-shared/dist/types/failable';
import { generateRandomString } from 'picsur-shared/dist/util/random'; import { generateRandomString } from 'picsur-shared/dist/util/random';
import { AuthConfigService } from '../../config/early/auth.config.service'; import { AuthConfigService } from '../../config/early/auth.config.service.js';
import { EarlyConfigModule } from '../../config/early/early-config.module'; import { EarlyConfigModule } from '../../config/early/early-config.module.js';
import { EUserBackend } from '../../database/entities/users/user.entity'; import { EUserBackend } from '../../database/entities/users/user.entity.js';
import { PreferenceDbModule } from '../preference-db/preference-db.module'; import { PreferenceDbModule } from '../preference-db/preference-db.module.js';
import { RoleDbModule } from '../role-db/role-db.module'; import { RoleDbModule } from '../role-db/role-db.module.js';
import { UserDbService } from './user-db.service'; import { UserDbService } from './user-db.service.js';
@Module({ @Module({
imports: [ imports: [

View File

@@ -3,29 +3,29 @@ import { InjectRepository } from '@nestjs/typeorm';
import * as bcrypt from 'bcrypt'; import * as bcrypt from 'bcrypt';
import { SysPreference } from 'picsur-shared/dist/dto/sys-preferences.enum'; import { SysPreference } from 'picsur-shared/dist/dto/sys-preferences.enum';
import { import {
AsyncFailable, AsyncFailable,
Fail, Fail,
FT, FT,
HasFailed, HasFailed,
HasSuccess, HasSuccess,
} from 'picsur-shared/dist/types/failable'; } from 'picsur-shared/dist/types/failable';
import { FindResult } from 'picsur-shared/dist/types/find-result'; import { FindResult } from 'picsur-shared/dist/types/find-result';
import { makeUnique } from 'picsur-shared/dist/util/unique'; import { makeUnique } from 'picsur-shared/dist/util/unique';
import { Repository } from 'typeorm'; import { Repository } from 'typeorm';
import { EUserBackend } from '../../database/entities/users/user.entity'; import { EUserBackend } from '../../database/entities/users/user.entity.js';
import { Permissions } from '../../models/constants/permissions.const'; import { Permissions } from '../../models/constants/permissions.const.js';
import { import {
DefaultRolesList, DefaultRolesList,
SoulBoundRolesList, SoulBoundRolesList,
} from '../../models/constants/roles.const'; } from '../../models/constants/roles.const.js';
import { import {
ImmutableUsersList, ImmutableUsersList,
LockedLoginUsersList, LockedLoginUsersList,
UndeletableUsersList, UndeletableUsersList,
} from '../../models/constants/special-users.const'; } from '../../models/constants/special-users.const.js';
import { GetCols } from '../../util/collection'; import { GetCols } from '../../util/collection.js';
import { SysPreferenceDbService } from '../preference-db/sys-preference-db.service'; import { SysPreferenceDbService } from '../preference-db/sys-preference-db.service.js';
import { RoleDbService } from '../role-db/role-db.service'; import { RoleDbService } from '../role-db/role-db.service.js';
@Injectable() @Injectable()
export class UserDbService { export class UserDbService {

View File

@@ -1,7 +1,7 @@
import { Injectable } from '@nestjs/common'; import { Injectable } from '@nestjs/common';
import { ConfigService } from '@nestjs/config'; import { ConfigService } from '@nestjs/config';
import { ParseString } from 'picsur-shared/dist/util/parse-simple'; import { ParseString } from 'picsur-shared/dist/util/parse-simple';
import { EnvPrefix } from '../config.static'; import { EnvPrefix } from '../config.static.js';
@Injectable() @Injectable()
export class AuthConfigService { export class AuthConfigService {

View File

@@ -1,12 +1,12 @@
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config'; import { ConfigModule } from '@nestjs/config';
import { AuthConfigService } from './auth.config.service'; import { AuthConfigService } from './auth.config.service.js';
import { EarlyJwtConfigService } from './early-jwt.config.service'; import { EarlyJwtConfigService } from './early-jwt.config.service.js';
import { HostConfigService } from './host.config.service'; import { HostConfigService } from './host.config.service.js';
import { MultipartConfigService } from './multipart.config.service'; import { MultipartConfigService } from './multipart.config.service.js';
import { RedisConfigService } from './redis.config.service'; import { RedisConfigService } from './redis.config.service.js';
import { ServeStaticConfigService } from './serve-static.config.service'; import { ServeStaticConfigService } from './serve-static.config.service.js';
import { TypeOrmConfigService } from './type-orm.config.service'; import { TypeOrmConfigService } from './type-orm.config.service.js';
@Module({ @Module({
imports: [ imports: [

View File

@@ -1,7 +1,7 @@
import { Injectable } from '@nestjs/common'; import { Injectable } from '@nestjs/common';
import { ConfigService } from '@nestjs/config'; import { ConfigService } from '@nestjs/config';
import { ParseString } from 'picsur-shared/dist/util/parse-simple'; import { ParseString } from 'picsur-shared/dist/util/parse-simple';
import { EnvPrefix } from '../config.static'; import { EnvPrefix } from '../config.static.js';
@Injectable() @Injectable()
export class EarlyJwtConfigService { export class EarlyJwtConfigService {

View File

@@ -1,11 +1,11 @@
import { Injectable, Logger } from '@nestjs/common'; import { Injectable, Logger } from '@nestjs/common';
import { ConfigService } from '@nestjs/config'; import { ConfigService } from '@nestjs/config';
import { import {
ParseBool, ParseBool,
ParseInt, ParseInt,
ParseString, ParseString,
} from 'picsur-shared/dist/util/parse-simple'; } from 'picsur-shared/dist/util/parse-simple';
import { EnvPrefix } from '../config.static'; import { EnvPrefix } from '../config.static.js';
@Injectable() @Injectable()
export class HostConfigService { export class HostConfigService {

View File

@@ -1,7 +1,7 @@
import { Injectable, Logger } from '@nestjs/common'; import { Injectable, Logger } from '@nestjs/common';
import { ConfigService } from '@nestjs/config'; import { ConfigService } from '@nestjs/config';
import { ParseInt } from 'picsur-shared/dist/util/parse-simple'; import { ParseInt } from 'picsur-shared/dist/util/parse-simple';
import { EnvPrefix } from '../config.static'; import { EnvPrefix } from '../config.static.js';
@Injectable() @Injectable()
export class MultipartConfigService { export class MultipartConfigService {

View File

@@ -1,7 +1,7 @@
import { Injectable, Logger } from '@nestjs/common'; import { Injectable, Logger } from '@nestjs/common';
import { ConfigService } from '@nestjs/config'; import { ConfigService } from '@nestjs/config';
import { ParseString } from 'picsur-shared/dist/util/parse-simple'; import { ParseString } from 'picsur-shared/dist/util/parse-simple';
import { EnvPrefix } from '../config.static'; import { EnvPrefix } from '../config.static.js';
@Injectable() @Injectable()
export class RedisConfigService { export class RedisConfigService {

View File

@@ -1,12 +1,12 @@
import { Injectable, Logger } from '@nestjs/common'; import { Injectable, Logger } from '@nestjs/common';
import { ConfigService } from '@nestjs/config'; import { ConfigService } from '@nestjs/config';
import { import {
ServeStaticModuleOptions, ServeStaticModuleOptions,
ServeStaticModuleOptionsFactory, ServeStaticModuleOptionsFactory,
} from '@nestjs/serve-static'; } from '@nestjs/serve-static';
import { join } from 'path'; import { join } from 'path';
import { ParseString } from 'picsur-shared/dist/util/parse-simple'; import { ParseString } from 'picsur-shared/dist/util/parse-simple';
import { EnvPrefix, PackageRoot } from '../config.static'; import { EnvPrefix, PackageRoot } from '../config.static.js';
@Injectable() @Injectable()
export class ServeStaticConfigService export class ServeStaticConfigService

View File

@@ -2,10 +2,10 @@ import { Injectable, Logger } from '@nestjs/common';
import { ConfigService } from '@nestjs/config'; import { ConfigService } from '@nestjs/config';
import { TypeOrmModuleOptions, TypeOrmOptionsFactory } from '@nestjs/typeorm'; import { TypeOrmModuleOptions, TypeOrmOptionsFactory } from '@nestjs/typeorm';
import { ParseInt, ParseString } from 'picsur-shared/dist/util/parse-simple'; import { ParseInt, ParseString } from 'picsur-shared/dist/util/parse-simple';
import { EntityList } from '../../database/entities/index'; import { EntityList } from '../../database/entities/index.js';
import { MigrationList } from '../../database/migrations/index'; import { MigrationList } from '../../database/migrations/index.js';
import { DefaultName, EnvPrefix } from '../config.static'; import { DefaultName, EnvPrefix } from '../config.static.js';
import { HostConfigService } from './host.config.service'; import { HostConfigService } from './host.config.service.js';
@Injectable() @Injectable()
export class TypeOrmConfigService implements TypeOrmOptionsFactory { export class TypeOrmConfigService implements TypeOrmOptionsFactory {

View File

@@ -1,7 +1,7 @@
import { Injectable, Logger } from '@nestjs/common'; import { Injectable, Logger } from '@nestjs/common';
import { SysPreference } from 'picsur-shared/dist/dto/sys-preferences.enum'; import { SysPreference } from 'picsur-shared/dist/dto/sys-preferences.enum';
import { HasFailed } from 'picsur-shared/dist/types/failable'; 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() @Injectable()
export class InfoConfigService { export class InfoConfigService {

View File

@@ -2,7 +2,7 @@ import { FactoryProvider, Injectable, Logger } from '@nestjs/common';
import { JwtModuleOptions, JwtOptionsFactory } from '@nestjs/jwt'; import { JwtModuleOptions, JwtOptionsFactory } from '@nestjs/jwt';
import ms from 'ms'; import ms from 'ms';
import { ThrowIfFailed } from 'picsur-shared/dist/types/failable'; 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() @Injectable()
export class JwtConfigService implements JwtOptionsFactory { export class JwtConfigService implements JwtOptionsFactory {

View File

@@ -1,11 +1,11 @@
import { Logger, Module, OnModuleInit } from '@nestjs/common'; import { Logger, Module, OnModuleInit } from '@nestjs/common';
import { PreferenceDbModule } from '../../collections/preference-db/preference-db.module'; import { PreferenceDbModule } from '../../collections/preference-db/preference-db.module.js';
import { SysPreferenceDbService } from '../../collections/preference-db/sys-preference-db.service'; import { SysPreferenceDbService } from '../../collections/preference-db/sys-preference-db.service.js';
import { EarlyConfigModule } from '../early/early-config.module'; import { EarlyConfigModule } from '../early/early-config.module.js';
import { EarlyJwtConfigService } from '../early/early-jwt.config.service'; import { EarlyJwtConfigService } from '../early/early-jwt.config.service.js';
import { InfoConfigService } from './info.config.service'; import { InfoConfigService } from './info.config.service.js';
import { JwtConfigService } from './jwt.config.service'; import { JwtConfigService } from './jwt.config.service.js';
import { UsageConfigService } from './usage.config.service'; import { UsageConfigService } from './usage.config.service.js';
// This module contains all configservices that depend on the syspref module // This module contains all configservices that depend on the syspref module
// The syspref module can only be used when connected to the database // The syspref module can only be used when connected to the database

View File

@@ -1,14 +1,14 @@
import { Injectable } from '@nestjs/common'; import { Injectable } from '@nestjs/common';
import { SysPreference } from 'picsur-shared/dist/dto/sys-preferences.enum'; import { SysPreference } from 'picsur-shared/dist/dto/sys-preferences.enum';
import { import {
AsyncFailable, AsyncFailable,
Fail, Fail,
FT, FT,
HasFailed, HasFailed,
} from 'picsur-shared/dist/types/failable'; } from 'picsur-shared/dist/types/failable';
import { URLRegex, UUIDRegex } from 'picsur-shared/dist/util/common-regex'; import { URLRegex, UUIDRegex } from 'picsur-shared/dist/util/common-regex';
import { SysPreferenceDbService } from '../../collections/preference-db/sys-preference-db.service'; import { SysPreferenceDbService } from '../../collections/preference-db/sys-preference-db.service.js';
import { ReportInterval, ReportUrl } from '../config.static'; import { ReportInterval, ReportUrl } from '../config.static.js';
@Injectable() @Injectable()
export class UsageConfigService { export class UsageConfigService {

View File

@@ -1,7 +1,7 @@
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm'; import { TypeOrmModule } from '@nestjs/typeorm';
import { EarlyConfigModule } from '../config/early/early-config.module'; import { EarlyConfigModule } from '../config/early/early-config.module.js';
import { TypeOrmConfigService } from '../config/early/type-orm.config.service'; import { TypeOrmConfigService } from '../config/early/type-orm.config.service.js';
@Module({ @Module({
imports: [ imports: [

View File

@@ -1,13 +1,13 @@
import { EApiKeySchema } from 'picsur-shared/dist/entities/apikey.entity'; import { EApiKeySchema } from 'picsur-shared/dist/entities/apikey.entity';
import { import {
Column, Column,
Entity, Entity,
Index, Index,
ManyToOne, ManyToOne,
PrimaryGeneratedColumn, PrimaryGeneratedColumn,
} from 'typeorm'; } from 'typeorm';
import { z } from 'zod'; import { z } from 'zod';
import { EUserBackend } from './users/user.entity'; import { EUserBackend } from './users/user.entity.js';
const OverriddenEApiKeySchema = EApiKeySchema.omit({ user: true }).merge( const OverriddenEApiKeySchema = EApiKeySchema.omit({ user: true }).merge(
z.object({ z.object({

View File

@@ -1,13 +1,13 @@
import { import {
Column, Column,
Entity, Entity,
Index, Index,
JoinColumn, JoinColumn,
ManyToOne, ManyToOne,
PrimaryGeneratedColumn, PrimaryGeneratedColumn,
Unique, Unique,
} from 'typeorm'; } from 'typeorm';
import { EImageBackend } from './image.entity'; import { EImageBackend } from './image.entity.js';
@Entity() @Entity()
@Unique(['image_id', 'key']) @Unique(['image_id', 'key'])

View File

@@ -1,14 +1,14 @@
import { ImageEntryVariant } from 'picsur-shared/dist/dto/image-entry-variant.enum'; import { ImageEntryVariant } from 'picsur-shared/dist/dto/image-entry-variant.enum';
import { import {
Column, Column,
Entity, Entity,
Index, Index,
JoinColumn, JoinColumn,
ManyToOne, ManyToOne,
PrimaryGeneratedColumn, PrimaryGeneratedColumn,
Unique, Unique,
} from 'typeorm'; } from 'typeorm';
import { EImageBackend } from './image.entity'; import { EImageBackend } from './image.entity.js';
@Entity() @Entity()
@Unique(['image_id', 'variant']) @Unique(['image_id', 'variant'])

View File

@@ -1,7 +1,7 @@
import { EImage } from 'picsur-shared/dist/entities/image.entity'; import { EImage } from 'picsur-shared/dist/entities/image.entity';
import { Column, Entity, OneToMany, PrimaryGeneratedColumn } from 'typeorm'; import { Column, Entity, OneToMany, PrimaryGeneratedColumn } from 'typeorm';
import { EImageDerivativeBackend } from './image-derivative.entity'; import { EImageDerivativeBackend } from './image-derivative.entity.js';
import { EImageFileBackend } from './image-file.entity'; import { EImageFileBackend } from './image-file.entity.js';
@Entity() @Entity()
export class EImageBackend implements EImage { export class EImageBackend implements EImage {

View File

@@ -1,12 +1,12 @@
import { EApiKeyBackend } from './apikey.entity'; import { EApiKeyBackend } from './apikey.entity.js';
import { EImageDerivativeBackend } from './images/image-derivative.entity'; import { EImageDerivativeBackend } from './images/image-derivative.entity.js';
import { EImageFileBackend } from './images/image-file.entity'; import { EImageFileBackend } from './images/image-file.entity.js';
import { EImageBackend } from './images/image.entity'; import { EImageBackend } from './images/image.entity.js';
import { ESysPreferenceBackend } from './system/sys-preference.entity'; import { ESysPreferenceBackend } from './system/sys-preference.entity.js';
import { ESystemStateBackend } from './system/system-state.entity'; import { ESystemStateBackend } from './system/system-state.entity.js';
import { EUsrPreferenceBackend } from './system/usr-preference.entity'; import { EUsrPreferenceBackend } from './system/usr-preference.entity.js';
import { ERoleBackend } from './users/role.entity'; import { ERoleBackend } from './users/role.entity.js';
import { EUserBackend } from './users/user.entity'; import { EUserBackend } from './users/user.entity.js';
export const EntityList = [ export const EntityList = [
EImageBackend, EImageBackend,

View File

@@ -1,15 +1,15 @@
import { IsEntityID } from 'picsur-shared/dist/validators/entity-id.validator'; import { IsEntityID } from 'picsur-shared/dist/validators/entity-id.validator';
import { import {
Column, Column,
Entity, Entity,
Index, Index,
JoinColumn, JoinColumn,
ManyToOne, ManyToOne,
PrimaryGeneratedColumn, PrimaryGeneratedColumn,
Unique, Unique,
} from 'typeorm'; } from 'typeorm';
import * as z from 'zod'; import * as z from 'zod';
import { EUserBackend } from '../users/user.entity'; import { EUserBackend } from '../users/user.entity.js';
export const EUsrPreferenceSchema = z.object({ export const EUsrPreferenceSchema = z.object({
id: IsEntityID().optional(), id: IsEntityID().optional(),

View File

@@ -1,6 +1,6 @@
import { ERole } from 'picsur-shared/dist/entities/role.entity'; import { ERole } from 'picsur-shared/dist/entities/role.entity';
import { Column, Entity, Index, PrimaryGeneratedColumn } from 'typeorm'; 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() @Entity()
export class ERoleBackend implements ERole { export class ERoleBackend implements ERole {

View File

@@ -1,14 +1,14 @@
import { EUserSchema } from 'picsur-shared/dist/entities/user.entity'; import { EUserSchema } from 'picsur-shared/dist/entities/user.entity';
import { import {
Column, Column,
Entity, Entity,
Index, Index,
OneToMany, OneToMany,
PrimaryGeneratedColumn, PrimaryGeneratedColumn,
} from 'typeorm'; } from 'typeorm';
import { z } from 'zod'; import { z } from 'zod';
import { EApiKeyBackend } from '../apikey.entity'; import { EApiKeyBackend } from '../apikey.entity.js';
import { EUsrPreferenceBackend } from '../system/usr-preference.entity'; import { EUsrPreferenceBackend } from '../system/usr-preference.entity.js';
// Different data for public and private // Different data for public and private
const OverriddenEUserSchema = EUserSchema.omit({ hashedPassword: true }).merge( const OverriddenEUserSchema = EUserSchema.omit({ hashedPassword: true }).merge(

View File

@@ -1,12 +1,12 @@
import { Newable } from 'picsur-shared/dist/types/newable';
import { MigrationInterface } from 'typeorm'; import { MigrationInterface } from 'typeorm';
import { V030A1661692206479 } from './1661692206479-V_0_3_0_a'; import { V030A1661692206479 } from './1661692206479-V_0_3_0_a.js';
import { V032A1662029904716 } from './1662029904716-V_0_3_2_a'; import { V032A1662029904716 } from './1662029904716-V_0_3_2_a.js';
import { V040A1662314197741 } from './1662314197741-V_0_4_0_a'; import { V040A1662314197741 } from './1662314197741-V_0_4_0_a.js';
import { V040B1662485374471 } from './1662485374471-V_0_4_0_b'; import { V040B1662485374471 } from './1662485374471-V_0_4_0_b.js';
import { V040C1662535484200 } from './1662535484200-V_0_4_0_c'; import { V040C1662535484200 } from './1662535484200-V_0_4_0_c.js';
import { V040D1662728275448 } from './1662728275448-V_0_4_0_d'; import { V040D1662728275448 } from './1662728275448-V_0_4_0_d.js';
import { V050A1672154027079 } from './1672154027079-V_0_5_0_a'; import { V050A1672154027079 } from './1672154027079-V_0_5_0_a.js';
import { Newable } from 'picsur-shared/dist/types/newable.js';
export const MigrationList: Newable<MigrationInterface>[] = [ export const MigrationList: Newable<MigrationInterface>[] = [
V030A1661692206479, V030A1661692206479,

View File

@@ -1,11 +1,11 @@
import { NestFactory } from '@nestjs/core'; import { NestFactory } from '@nestjs/core';
import { import {
FastifyAdapter, FastifyAdapter,
NestFastifyApplication, NestFastifyApplication,
} from '@nestjs/platform-fastify'; } from '@nestjs/platform-fastify';
import { DataSource } from 'typeorm'; import { DataSource } from 'typeorm';
import { TypeOrmConfigService } from './config/early/type-orm.config.service'; import { TypeOrmConfigService } from './config/early/type-orm.config.service.js';
import { DatabaseModule } from './database/database.module'; import { DatabaseModule } from './database/database.module.js';
async function createDataSource() { async function createDataSource() {
// Create nest app // Create nest app

View File

@@ -1,8 +1,8 @@
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { EarlyConfigModule } from '../config/early/early-config.module'; import { EarlyConfigModule } from '../config/early/early-config.module.js';
import { ImageIdPipe } from './image-id/image-id.pipe'; import { ImageIdPipe } from './image-id/image-id.pipe.js';
import { PostFilePipe } from './multipart/postfile.pipe'; import { PostFilePipe } from './multipart/postfile.pipe.js';
import { MultiPartPipe } from './multipart/postfiles.pipe'; import { MultiPartPipe } from './multipart/postfiles.pipe.js';
@Module({ @Module({
imports: [EarlyConfigModule], imports: [EarlyConfigModule],

View File

@@ -1,5 +1,5 @@
import { Param, PipeTransform, Type } from '@nestjs/common'; 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 = ( export const ImageFullIdParam = (
...pipes: (PipeTransform<any, any> | Type<PipeTransform<any, any>>)[] ...pipes: (PipeTransform<any, any> | Type<PipeTransform<any, any>>)[]

View File

@@ -2,7 +2,7 @@ import { Injectable, PipeTransform } from '@nestjs/common';
import { Ext2FileType } from 'picsur-shared/dist/dto/mimes.dto'; import { Ext2FileType } from 'picsur-shared/dist/dto/mimes.dto';
import { FT, Fail, HasFailed } from 'picsur-shared/dist/types/failable'; import { FT, Fail, HasFailed } from 'picsur-shared/dist/types/failable';
import { UUIDRegex } from 'picsur-shared/dist/util/common-regex'; 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() @Injectable()
export class ImageFullIdPipe implements PipeTransform<string, ImageFullId> { export class ImageFullIdPipe implements PipeTransform<string, ImageFullId> {

View File

@@ -1,5 +1,5 @@
import { Param, PipeTransform, Type } from '@nestjs/common'; import { Param, PipeTransform, Type } from '@nestjs/common';
import { ImageIdPipe } from './image-id.pipe'; import { ImageIdPipe } from './image-id.pipe.js';
export const ImageIdParam = ( export const ImageIdParam = (
...pipes: (PipeTransform<any, any> | Type<PipeTransform<any, any>>)[] ...pipes: (PipeTransform<any, any> | Type<PipeTransform<any, any>>)[]

View File

@@ -1,6 +1,6 @@
import { InjectRequest } from './inject-request.decorator'; import { InjectRequest } from './inject-request.decorator.js';
import { PostFilePipe } from './postfile.pipe'; import { PostFilePipe } from './postfile.pipe.js';
import { MultiPartPipe } from './postfiles.pipe'; import { MultiPartPipe } from './postfiles.pipe.js';
export const PostFile = () => InjectRequest(PostFilePipe); export const PostFile = () => InjectRequest(PostFilePipe);

View File

@@ -2,7 +2,7 @@ import { Multipart, MultipartFile } from '@fastify/multipart';
import { Injectable, Logger, PipeTransform, Scope } from '@nestjs/common'; import { Injectable, Logger, PipeTransform, Scope } from '@nestjs/common';
import { FastifyRequest } from 'fastify'; import { FastifyRequest } from 'fastify';
import { Fail, FT } from 'picsur-shared/dist/types/failable'; 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 }) @Injectable({ scope: Scope.REQUEST })
export class PostFilePipe implements PipeTransform { export class PostFilePipe implements PipeTransform {

View File

@@ -2,7 +2,7 @@ import { MultipartFile } from '@fastify/multipart';
import { Injectable, Logger, PipeTransform, Scope } from '@nestjs/common'; import { Injectable, Logger, PipeTransform, Scope } from '@nestjs/common';
import { FastifyRequest } from 'fastify'; import { FastifyRequest } from 'fastify';
import { FT, Fail } from 'picsur-shared/dist/types/failable'; 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>; export type FileIterator = AsyncIterableIterator<MultipartFile>;

View File

@@ -1,14 +1,14 @@
import { import {
createParamDecorator, createParamDecorator,
ExecutionContext, ExecutionContext,
SetMetadata, SetMetadata,
UseGuards, UseGuards,
} from '@nestjs/common'; } from '@nestjs/common';
import { Fail, FT } from 'picsur-shared/dist/types/failable'; import { Fail, FT } from 'picsur-shared/dist/types/failable';
import { CombineFCDecorators } from 'picsur-shared/dist/util/decorator'; import { CombineFCDecorators } from 'picsur-shared/dist/util/decorator';
import { LocalAuthGuard } from '../managers/auth/guards/local-auth.guard'; import { LocalAuthGuard } from '../managers/auth/guards/local-auth.guard.js';
import { Permission, Permissions } from '../models/constants/permissions.const'; import { Permission, Permissions } from '../models/constants/permissions.const.js';
import AuthFastifyRequest from '../models/interfaces/authrequest.dto'; import AuthFastifyRequest from '../models/interfaces/authrequest.dto.js';
export const RequiredPermissions = (...permissions: Permissions) => { export const RequiredPermissions = (...permissions: Permissions) => {
return SetMetadata('permissions', permissions); return SetMetadata('permissions', permissions);

View File

@@ -1,6 +1,6 @@
import { createParamDecorator, ExecutionContext } from '@nestjs/common'; import { createParamDecorator, ExecutionContext } from '@nestjs/common';
import { Fail, FT } from 'picsur-shared/dist/types/failable'; 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( export const ReqUser = createParamDecorator(
(input: any, ctx: ExecutionContext) => { (input: any, ctx: ExecutionContext) => {

View File

@@ -1,9 +1,9 @@
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { ThrottlerModule } from '@nestjs/throttler'; import { ThrottlerModule } from '@nestjs/throttler';
import { MainExceptionFilter } from './exception/exception.filter'; import { MainExceptionFilter } from './exception/exception.filter.js';
import { SuccessInterceptor } from './success/success.interceptor'; import { SuccessInterceptor } from './success/success.interceptor.js';
import { PicsurThrottlerGuard } from './throttler/PicsurThrottler.guard'; import { PicsurThrottlerGuard } from './throttler/PicsurThrottler.guard.js';
import { ZodValidationPipe } from './validate/zod-validator.pipe'; import { ZodValidationPipe } from './validate/zod-validator.pipe.js';
@Module({ @Module({
imports: [ imports: [

View File

@@ -1,6 +1,6 @@
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { EarlyConfigModule } from '../config/early/early-config.module'; import { EarlyConfigModule } from '../config/early/early-config.module.js';
import { PicsurLoggerService } from './logger.service'; import { PicsurLoggerService } from './logger.service.js';
@Module({ @Module({
imports: [EarlyConfigModule], imports: [EarlyConfigModule],

View File

@@ -1,5 +1,5 @@
import { ConsoleLogger, Injectable, Scope } from '@nestjs/common'; 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 }) @Injectable({ scope: Scope.DEFAULT })
export class PicsurLoggerService extends ConsoleLogger { export class PicsurLoggerService extends ConsoleLogger {

View File

@@ -3,18 +3,18 @@ import multipart from '@fastify/multipart';
import fastifyReplyFrom from '@fastify/reply-from'; import fastifyReplyFrom from '@fastify/reply-from';
import { NestFactory } from '@nestjs/core'; import { NestFactory } from '@nestjs/core';
import { import {
FastifyAdapter, FastifyAdapter,
NestFastifyApplication, NestFastifyApplication,
} from '@nestjs/platform-fastify'; } from '@nestjs/platform-fastify';
import { AppModule } from './app.module'; import { AppModule } from './app.module.js';
import { HostConfigService } from './config/early/host.config.service'; import { HostConfigService } from './config/early/host.config.service.js';
import { MainExceptionFilter } from './layers/exception/exception.filter'; import { MainExceptionFilter } from './layers/exception/exception.filter.js';
import { SuccessInterceptor } from './layers/success/success.interceptor'; import { SuccessInterceptor } from './layers/success/success.interceptor.js';
import { PicsurThrottlerGuard } from './layers/throttler/PicsurThrottler.guard'; import { PicsurThrottlerGuard } from './layers/throttler/PicsurThrottler.guard.js';
import { ZodValidationPipe } from './layers/validate/zod-validator.pipe'; import { ZodValidationPipe } from './layers/validate/zod-validator.pipe.js';
import { PicsurLoggerService } from './logger/logger.service'; import { PicsurLoggerService } from './logger/logger.service.js';
import { MainAuthGuard } from './managers/auth/guards/main.guard'; import { MainAuthGuard } from './managers/auth/guards/main.guard.js';
import { HelmetOptions } from './security'; import { HelmetOptions } from './security.js';
async function bootstrap() { async function bootstrap() {
const isProduction = process.env['PICSUR_PRODUCTION'] !== undefined; const isProduction = process.env['PICSUR_PRODUCTION'] !== undefined;

View File

@@ -1,22 +1,22 @@
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { JwtModule } from '@nestjs/jwt'; import { JwtModule } from '@nestjs/jwt';
import { PassportModule } from '@nestjs/passport'; import { PassportModule } from '@nestjs/passport';
import { ApiKeyDbModule } from '../../collections/apikey-db/apikey-db.module'; import { ApiKeyDbModule } from '../../collections/apikey-db/apikey-db.module.js';
import { PreferenceDbModule } from '../../collections/preference-db/preference-db.module'; import { PreferenceDbModule } from '../../collections/preference-db/preference-db.module.js';
import { UserDbModule } from '../../collections/user-db/user-db.module'; import { UserDbModule } from '../../collections/user-db/user-db.module.js';
import { import {
JwtConfigService, JwtConfigService,
JwtSecretProvider, JwtSecretProvider,
} from '../../config/late/jwt.config.service'; } from '../../config/late/jwt.config.service.js';
import { LateConfigModule } from '../../config/late/late-config.module'; import { LateConfigModule } from '../../config/late/late-config.module.js';
import { AuthManagerService } from './auth.service'; import { AuthManagerService } from './auth.service.js';
import { ApiKeyStrategy } from './guards/apikey.strategy'; import { ApiKeyStrategy } from './guards/apikey.strategy.js';
import { GuestStrategy } from './guards/guest.strategy'; import { GuestStrategy } from './guards/guest.strategy.js';
import { JwtStrategy } from './guards/jwt.strategy'; import { JwtStrategy } from './guards/jwt.strategy.js';
import { LocalAuthGuard } from './guards/local-auth.guard'; import { LocalAuthGuard } from './guards/local-auth.guard.js';
import { LocalAuthStrategy } from './guards/local-auth.strategy'; import { LocalAuthStrategy } from './guards/local-auth.strategy.js';
import { MainAuthGuard } from './guards/main.guard'; import { MainAuthGuard } from './guards/main.guard.js';
import { GuestService } from './guest.service'; import { GuestService } from './guest.service.js';
@Module({ @Module({
imports: [ imports: [

View File

@@ -4,8 +4,8 @@ import { HeaderAPIKeyStrategy } from 'passport-headerapikey';
import { EUser, EUserSchema } from 'picsur-shared/dist/entities/user.entity'; import { EUser, EUserSchema } from 'picsur-shared/dist/entities/user.entity';
import { HasFailed } from 'picsur-shared/dist/types/failable'; import { HasFailed } from 'picsur-shared/dist/types/failable';
import { IsApiKey } from 'picsur-shared/dist/validators/api-key.validator'; import { IsApiKey } from 'picsur-shared/dist/validators/api-key.validator';
import { ApiKeyDbService } from '../../../collections/apikey-db/apikey-db.service'; import { ApiKeyDbService } from '../../../collections/apikey-db/apikey-db.service.js';
import { EUserBackend2EUser } from '../../../models/transformers/user.transformer'; import { EUserBackend2EUser } from '../../../models/transformers/user.transformer.js';
@Injectable() @Injectable()
export class ApiKeyStrategy extends PassportStrategy( export class ApiKeyStrategy extends PassportStrategy(

View File

@@ -3,8 +3,8 @@ import { PassportStrategy } from '@nestjs/passport';
import { FastifyRequest } from 'fastify'; import { FastifyRequest } from 'fastify';
import { Strategy } from 'passport-strategy'; import { Strategy } from 'passport-strategy';
import { EUser } from 'picsur-shared/dist/entities/user.entity'; import { EUser } from 'picsur-shared/dist/entities/user.entity';
import { EUserBackend2EUser } from '../../../models/transformers/user.transformer'; import { EUserBackend2EUser } from '../../../models/transformers/user.transformer.js';
import { GuestService } from '../guest.service'; import { GuestService } from '../guest.service.js';
class GuestPassportStrategy extends Strategy { class GuestPassportStrategy extends Strategy {
// Will be overridden by the nest implementation // Will be overridden by the nest implementation

View File

@@ -4,8 +4,8 @@ import { ExtractJwt, Strategy as JwtPassportStrategy } from 'passport-jwt';
import { JwtDataSchema } from 'picsur-shared/dist/dto/jwt.dto'; import { JwtDataSchema } from 'picsur-shared/dist/dto/jwt.dto';
import { EUser } from 'picsur-shared/dist/entities/user.entity'; import { EUser } from 'picsur-shared/dist/entities/user.entity';
import { ThrowIfFailed } from 'picsur-shared/dist/types/failable'; import { ThrowIfFailed } from 'picsur-shared/dist/types/failable';
import { UserDbService } from '../../../collections/user-db/user-db.service'; import { UserDbService } from '../../../collections/user-db/user-db.service.js';
import { EUserBackend2EUser } from '../../../models/transformers/user.transformer'; import { EUserBackend2EUser } from '../../../models/transformers/user.transformer.js';
@Injectable() @Injectable()
export class JwtStrategy extends PassportStrategy(JwtPassportStrategy, 'jwt') { export class JwtStrategy extends PassportStrategy(JwtPassportStrategy, 'jwt') {

View File

@@ -3,11 +3,11 @@ import { PassportStrategy } from '@nestjs/passport';
import { Strategy } from 'passport-local'; import { Strategy } from 'passport-local';
import { EUser } from 'picsur-shared/dist/entities/user.entity'; import { EUser } from 'picsur-shared/dist/entities/user.entity';
import { import {
AsyncFailable, AsyncFailable,
ThrowIfFailed, ThrowIfFailed,
} from 'picsur-shared/dist/types/failable'; } from 'picsur-shared/dist/types/failable';
import { UserDbService } from '../../../collections/user-db/user-db.service'; import { UserDbService } from '../../../collections/user-db/user-db.service.js';
import { EUserBackend2EUser } from '../../../models/transformers/user.transformer'; import { EUserBackend2EUser } from '../../../models/transformers/user.transformer.js';
@Injectable() @Injectable()
export class LocalAuthStrategy extends PassportStrategy(Strategy, 'local') { export class LocalAuthStrategy extends PassportStrategy(Strategy, 'local') {

View File

@@ -3,17 +3,17 @@ import { Reflector } from '@nestjs/core';
import { AuthGuard } from '@nestjs/passport'; import { AuthGuard } from '@nestjs/passport';
import { EUser, EUserSchema } from 'picsur-shared/dist/entities/user.entity'; import { EUser, EUserSchema } from 'picsur-shared/dist/entities/user.entity';
import { import {
AsyncFailable, AsyncFailable,
FT, FT,
Fail, Fail,
Failable, Failable,
HasFailed, HasFailed,
ThrowIfFailed, ThrowIfFailed,
} from 'picsur-shared/dist/types/failable'; } from 'picsur-shared/dist/types/failable';
import { makeUnique } from 'picsur-shared/dist/util/unique'; import { makeUnique } from 'picsur-shared/dist/util/unique';
import { UserDbService } from '../../../collections/user-db/user-db.service'; import { UserDbService } from '../../../collections/user-db/user-db.service.js';
import { Permissions } from '../../../models/constants/permissions.const'; import { Permissions } from '../../../models/constants/permissions.const.js';
import { isPermissionsArray } from '../../../models/validators/permissions.validator'; import { isPermissionsArray } from '../../../models/validators/permissions.validator.js';
// This guard extends both the jwt authenticator and the guest authenticator // 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 // The order matters here, because this results in the guest authenticator being used as a fallback

View File

@@ -1,7 +1,7 @@
import { Injectable } from '@nestjs/common'; import { Injectable } from '@nestjs/common';
import { HasFailed } from 'picsur-shared/dist/types/failable'; import { HasFailed } from 'picsur-shared/dist/types/failable';
import { UserDbService } from '../../collections/user-db/user-db.service'; import { UserDbService } from '../../collections/user-db/user-db.service.js';
import { EUserBackend } from '../../database/entities/users/user.entity'; import { EUserBackend } from '../../database/entities/users/user.entity.js';
@Injectable() @Injectable()
export class GuestService { export class GuestService {

View File

@@ -1,10 +1,10 @@
import { Logger, Module, OnModuleInit } from '@nestjs/common'; import { Logger, Module, OnModuleInit } from '@nestjs/common';
import { SchedulerRegistry } from '@nestjs/schedule'; import { SchedulerRegistry } from '@nestjs/schedule';
import { ImageDBModule } from '../../collections/image-db/image-db.module'; import { ImageDBModule } from '../../collections/image-db/image-db.module.js';
import { RoleDbModule } from '../../collections/role-db/role-db.module'; import { RoleDbModule } from '../../collections/role-db/role-db.module.js';
import { EarlyConfigModule } from '../../config/early/early-config.module'; import { EarlyConfigModule } from '../../config/early/early-config.module.js';
import { HostConfigService } from '../../config/early/host.config.service'; import { HostConfigService } from '../../config/early/host.config.service.js';
import { DemoManagerService } from './demo.service'; import { DemoManagerService } from './demo.service.js';
@Module({ @Module({
imports: [ImageDBModule, EarlyConfigModule, RoleDbModule], imports: [ImageDBModule, EarlyConfigModule, RoleDbModule],

View File

@@ -1,7 +1,7 @@
import { Injectable, Logger } from '@nestjs/common'; import { Injectable, Logger } from '@nestjs/common';
import { ImageDBService } from '../../collections/image-db/image-db.service'; import { ImageDBService } from '../../collections/image-db/image-db.service.js';
import { RoleDbService } from '../../collections/role-db/role-db.service'; import { RoleDbService } from '../../collections/role-db/role-db.service.js';
import { Permission } from '../../models/constants/permissions.const'; import { Permission } from '../../models/constants/permissions.const.js';
@Injectable() @Injectable()
export class DemoManagerService { export class DemoManagerService {

View File

@@ -2,20 +2,20 @@ import { Injectable } from '@nestjs/common';
import ms from 'ms'; import ms from 'ms';
import { ImageRequestParams } from 'picsur-shared/dist/dto/api/image.dto'; import { ImageRequestParams } from 'picsur-shared/dist/dto/api/image.dto';
import { import {
FileType, FileType,
SupportedFileTypeCategory, SupportedFileTypeCategory,
} from 'picsur-shared/dist/dto/mimes.dto'; } from 'picsur-shared/dist/dto/mimes.dto';
import { SysPreference } from 'picsur-shared/dist/dto/sys-preferences.enum'; import { SysPreference } from 'picsur-shared/dist/dto/sys-preferences.enum';
import { import {
AsyncFailable, AsyncFailable,
Fail, Fail,
FT, FT,
HasFailed, HasFailed,
} from 'picsur-shared/dist/types/failable'; } from 'picsur-shared/dist/types/failable';
import { SharpOptions } from 'sharp'; import { SharpOptions } from 'sharp';
import { SysPreferenceDbService } from '../../collections/preference-db/sys-preference-db.service'; import { SysPreferenceDbService } from '../../collections/preference-db/sys-preference-db.service.js';
import { SharpWrapper } from '../../workers/sharp.wrapper'; import { SharpWrapper } from '../../workers/sharp.wrapper.js';
import { ImageResult } from './imageresult'; import { ImageResult } from './imageresult.js';
@Injectable() @Injectable()
export class ImageConverterService { export class ImageConverterService {

View File

@@ -3,14 +3,14 @@ import { Interval } from '@nestjs/schedule';
import ms from 'ms'; import ms from 'ms';
import { SysPreference } from 'picsur-shared/dist/dto/sys-preferences.enum'; import { SysPreference } from 'picsur-shared/dist/dto/sys-preferences.enum';
import { HasFailed } from 'picsur-shared/dist/types/failable'; import { HasFailed } from 'picsur-shared/dist/types/failable';
import { ImageDBModule } from '../../collections/image-db/image-db.module'; import { ImageDBModule } from '../../collections/image-db/image-db.module.js';
import { ImageDBService } from '../../collections/image-db/image-db.service'; import { ImageDBService } from '../../collections/image-db/image-db.service.js';
import { ImageFileDBService } from '../../collections/image-db/image-file-db.service'; import { ImageFileDBService } from '../../collections/image-db/image-file-db.service.js';
import { PreferenceDbModule } from '../../collections/preference-db/preference-db.module'; import { PreferenceDbModule } from '../../collections/preference-db/preference-db.module.js';
import { SysPreferenceDbService } from '../../collections/preference-db/sys-preference-db.service'; import { SysPreferenceDbService } from '../../collections/preference-db/sys-preference-db.service.js';
import { ImageConverterService } from './image-converter.service'; import { ImageConverterService } from './image-converter.service.js';
import { ImageProcessorService } from './image-processor.service'; import { ImageProcessorService } from './image-processor.service.js';
import { ImageManagerService } from './image.service'; import { ImageManagerService } from './image.service.js';
@Module({ @Module({
imports: [ImageDBModule, PreferenceDbModule], imports: [ImageDBModule, PreferenceDbModule],

View File

@@ -1,19 +1,19 @@
import { Injectable } from '@nestjs/common'; import { Injectable } from '@nestjs/common';
import { import {
FileType, FileType,
ImageFileType, ImageFileType,
SupportedFileTypeCategory, SupportedFileTypeCategory,
} from 'picsur-shared/dist/dto/mimes.dto'; } from 'picsur-shared/dist/dto/mimes.dto';
import { import {
AsyncFailable, AsyncFailable,
Fail, Fail,
FT, FT,
HasFailed, HasFailed,
} from 'picsur-shared/dist/types/failable'; } from 'picsur-shared/dist/types/failable';
import { ParseFileType } from 'picsur-shared/dist/util/parse-mime'; import { ParseFileType } from 'picsur-shared/dist/util/parse-mime';
import { ImageConverterService } from './image-converter.service'; import { ImageConverterService } from './image-converter.service.js';
import { ImageResult } from './imageresult'; import { ImageResult } from './imageresult.js';
@Injectable() @Injectable()
export class ImageProcessorService { export class ImageProcessorService {

View File

@@ -4,33 +4,33 @@ import { fileTypeFromBuffer, FileTypeResult } from 'file-type';
import { ImageRequestParams } from 'picsur-shared/dist/dto/api/image.dto'; import { ImageRequestParams } from 'picsur-shared/dist/dto/api/image.dto';
import { ImageEntryVariant } from 'picsur-shared/dist/dto/image-entry-variant.enum'; import { ImageEntryVariant } from 'picsur-shared/dist/dto/image-entry-variant.enum';
import { import {
AnimFileType, AnimFileType,
FileType, FileType,
ImageFileType, ImageFileType,
Mime2FileType, Mime2FileType,
} from 'picsur-shared/dist/dto/mimes.dto'; } from 'picsur-shared/dist/dto/mimes.dto';
import { SysPreference } from 'picsur-shared/dist/dto/sys-preferences.enum'; import { SysPreference } from 'picsur-shared/dist/dto/sys-preferences.enum';
import { UsrPreference } from 'picsur-shared/dist/dto/usr-preferences.enum'; import { UsrPreference } from 'picsur-shared/dist/dto/usr-preferences.enum';
import { import {
AsyncFailable, AsyncFailable,
Fail, Fail,
FT, FT,
HasFailed, HasFailed,
} from 'picsur-shared/dist/types/failable'; } from 'picsur-shared/dist/types/failable';
import { FindResult } from 'picsur-shared/dist/types/find-result'; import { FindResult } from 'picsur-shared/dist/types/find-result';
import { ParseFileType } from 'picsur-shared/dist/util/parse-mime'; import { ParseFileType } from 'picsur-shared/dist/util/parse-mime';
import { IsQOI } from 'qoi-img'; import { IsQOI } from 'qoi-img';
import { ImageDBService } from '../../collections/image-db/image-db.service'; import { ImageDBService } from '../../collections/image-db/image-db.service.js';
import { ImageFileDBService } from '../../collections/image-db/image-file-db.service'; import { ImageFileDBService } from '../../collections/image-db/image-file-db.service.js';
import { SysPreferenceDbService } from '../../collections/preference-db/sys-preference-db.service'; import { SysPreferenceDbService } from '../../collections/preference-db/sys-preference-db.service.js';
import { UsrPreferenceDbService } from '../../collections/preference-db/usr-preference-db.service'; import { UsrPreferenceDbService } from '../../collections/preference-db/usr-preference-db.service.js';
import { EImageDerivativeBackend } from '../../database/entities/images/image-derivative.entity'; import { EImageDerivativeBackend } from '../../database/entities/images/image-derivative.entity.js';
import { EImageFileBackend } from '../../database/entities/images/image-file.entity'; import { EImageFileBackend } from '../../database/entities/images/image-file.entity.js';
import { EImageBackend } from '../../database/entities/images/image.entity'; import { EImageBackend } from '../../database/entities/images/image.entity.js';
import { MutexFallBack } from '../../util/mutex-fallback'; import { MutexFallBack } from '../../util/mutex-fallback.js';
import { ImageConverterService } from './image-converter.service'; import { ImageConverterService } from './image-converter.service.js';
import { ImageProcessorService } from './image-processor.service'; import { ImageProcessorService } from './image-processor.service.js';
import { WebPInfo } from './webpinfo/webpinfo'; import { WebPInfo } from './webpinfo/webpinfo.js';
@Injectable() @Injectable()
export class ImageManagerService { export class ImageManagerService {

View File

@@ -32,7 +32,7 @@ THE SOFTWARE.
import thunks from 'thunks'; import thunks from 'thunks';
import { StreamParserWritable } from './stream-parser'; import { StreamParserWritable } from './stream-parser.js';
const { thunk } = thunks; const { thunk } = thunks;

View File

@@ -1,11 +1,11 @@
import { Logger, Module, OnModuleInit } from '@nestjs/common'; import { Logger, Module, OnModuleInit } from '@nestjs/common';
import { SchedulerRegistry } from '@nestjs/schedule'; import { SchedulerRegistry } from '@nestjs/schedule';
import { ImageDBModule } from '../../collections/image-db/image-db.module'; import { ImageDBModule } from '../../collections/image-db/image-db.module.js';
import { SystemStateDbModule } from '../../collections/system-state-db/system-state-db.module'; import { SystemStateDbModule } from '../../collections/system-state-db/system-state-db.module.js';
import { UserDbModule } from '../../collections/user-db/user-db.module'; import { UserDbModule } from '../../collections/user-db/user-db.module.js';
import { LateConfigModule } from '../../config/late/late-config.module'; import { LateConfigModule } from '../../config/late/late-config.module.js';
import { UsageConfigService } from '../../config/late/usage.config.service'; import { UsageConfigService } from '../../config/late/usage.config.service.js';
import { UsageService } from './usage.service'; import { UsageService } from './usage.service.js';
@Module({ @Module({
imports: [LateConfigModule, SystemStateDbModule, ImageDBModule, UserDbModule], imports: [LateConfigModule, SystemStateDbModule, ImageDBModule, UserDbModule],

View File

@@ -4,11 +4,11 @@ import fetch from 'node-fetch';
import * as os from 'os'; import * as os from 'os';
import { FallbackIfFailed, HasFailed } from 'picsur-shared/dist/types/failable'; import { FallbackIfFailed, HasFailed } from 'picsur-shared/dist/types/failable';
import { UUIDRegex } from 'picsur-shared/dist/util/common-regex'; import { UUIDRegex } from 'picsur-shared/dist/util/common-regex';
import { ImageDBService } from '../../collections/image-db/image-db.service'; import { ImageDBService } from '../../collections/image-db/image-db.service.js';
import { SystemStateDbService } from '../../collections/system-state-db/system-state-db.service'; import { SystemStateDbService } from '../../collections/system-state-db/system-state-db.service.js';
import { UserDbService } from '../../collections/user-db/user-db.service'; import { UserDbService } from '../../collections/user-db/user-db.service.js';
import { HostConfigService } from '../../config/early/host.config.service'; import { HostConfigService } from '../../config/early/host.config.service.js';
import { UsageConfigService } from '../../config/late/usage.config.service'; import { UsageConfigService } from '../../config/late/usage.config.service.js';
interface UsageData { interface UsageData {
id?: string; id?: string;

View File

@@ -1,5 +1,5 @@
import tuple from 'picsur-shared/dist/types/tuple'; import tuple from 'picsur-shared/dist/types/tuple';
import { Permission, Permissions, PermissionsList } from './permissions.const'; import { Permission, Permissions, PermissionsList } from './permissions.const.js';
// Config // Config

View File

@@ -1,6 +1,6 @@
import { FastifyRequest } from 'fastify'; import { FastifyRequest } from 'fastify';
import { EUser } from 'picsur-shared/dist/entities/user.entity'; 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 // Add typing to FastifyRequest to make using the user object easier
export default interface AuthFastifyRequest extends FastifyRequest { export default interface AuthFastifyRequest extends FastifyRequest {

View File

@@ -1,5 +1,5 @@
import { EUser } from 'picsur-shared/dist/entities/user.entity'; 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 { export function EUserBackend2EUser(eUser: EUserBackend): EUser {
if (eUser.hashed_password === undefined) return eUser as EUser; if (eUser.hashed_password === undefined) return eUser as EUser;

View File

@@ -1,5 +1,5 @@
import { isPermissionsArray as isPArr } from 'picsur-shared/dist/validators/permissions.validator'; 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 { export function isPermissionsArray(value: any): value is Permissions {
return isPArr(value, PermissionsList); return isPArr(value, PermissionsList);

View File

@@ -1,11 +1,11 @@
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { ApiKeysModule } from './apikeys/apikeys.module'; import { ApiKeysModule } from './apikeys/apikeys.module.js';
import { ExperimentModule } from './experiment/experiment.module'; import { ExperimentModule } from './experiment/experiment.module.js';
import { InfoModule } from './info/info.module'; import { InfoModule } from './info/info.module.js';
import { PrefModule } from './pref/pref.module'; import { PrefModule } from './pref/pref.module.js';
import { RolesApiModule } from './roles/roles.module'; import { RolesApiModule } from './roles/roles.module.js';
import { UsageApiModule } from './usage/usage.module'; import { UsageApiModule } from './usage/usage.module.js';
import { UserApiModule } from './user/user.module'; import { UserApiModule } from './user/user.module.js';
@Module({ @Module({
imports: [ imports: [

View File

@@ -1,25 +1,25 @@
import { Body, Controller, Post } from '@nestjs/common'; import { Body, Controller, Post } from '@nestjs/common';
import { import {
ApiKeyCreateResponse, ApiKeyCreateResponse,
ApiKeyDeleteRequest, ApiKeyDeleteRequest,
ApiKeyDeleteResponse, ApiKeyDeleteResponse,
ApiKeyInfoRequest, ApiKeyInfoRequest,
ApiKeyInfoResponse, ApiKeyInfoResponse,
ApiKeyListRequest, ApiKeyListRequest,
ApiKeyListResponse, ApiKeyListResponse,
ApiKeyUpdateRequest, ApiKeyUpdateRequest,
ApiKeyUpdateResponse, ApiKeyUpdateResponse,
} from 'picsur-shared/dist/dto/api/apikeys.dto'; } from 'picsur-shared/dist/dto/api/apikeys.dto';
import { Permission } from 'picsur-shared/dist/dto/permissions.enum'; import { Permission } from 'picsur-shared/dist/dto/permissions.enum';
import { ThrowIfFailed } from 'picsur-shared/dist/types/failable'; import { ThrowIfFailed } from 'picsur-shared/dist/types/failable';
import { ApiKeyDbService } from '../../../collections/apikey-db/apikey-db.service'; import { ApiKeyDbService } from '../../../collections/apikey-db/apikey-db.service.js';
import { EasyThrottle } from '../../../decorators/easy-throttle.decorator'; import { EasyThrottle } from '../../../decorators/easy-throttle.decorator.js';
import { import {
HasPermission, HasPermission,
RequiredPermissions, RequiredPermissions,
} from '../../../decorators/permissions.decorator'; } from '../../../decorators/permissions.decorator.js';
import { ReqUserID } from '../../../decorators/request-user.decorator'; import { ReqUserID } from '../../../decorators/request-user.decorator.js';
import { Returns } from '../../../decorators/returns.decorator'; import { Returns } from '../../../decorators/returns.decorator.js';
@Controller('api/apikeys') @Controller('api/apikeys')
@RequiredPermissions(Permission.ApiKey) @RequiredPermissions(Permission.ApiKey)

View File

@@ -1,6 +1,6 @@
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { ApiKeyDbModule } from '../../../collections/apikey-db/apikey-db.module'; import { ApiKeyDbModule } from '../../../collections/apikey-db/apikey-db.module.js';
import { ApiKeysController } from './apikeys.controller'; import { ApiKeysController } from './apikeys.controller.js';
@Module({ @Module({
imports: [ApiKeyDbModule], imports: [ApiKeyDbModule],

View File

@@ -1,5 +1,5 @@
import { Controller } from '@nestjs/common'; import { Controller } from '@nestjs/common';
import { NoPermissions } from '../../../decorators/permissions.decorator'; import { NoPermissions } from '../../../decorators/permissions.decorator.js';
@Controller('api/experiment') @Controller('api/experiment')
@NoPermissions() @NoPermissions()
export class ExperimentController { export class ExperimentController {

View File

@@ -1,5 +1,5 @@
import { Module } from '@nestjs/common'; 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 // This is comletely useless module, but is used for testing
// TODO: remove when out of beta // TODO: remove when out of beta

View File

@@ -1,23 +1,23 @@
import { Controller, Get } from '@nestjs/common'; import { Controller, Get } from '@nestjs/common';
import { import {
AllFormatsResponse, AllFormatsResponse,
AllPermissionsResponse, AllPermissionsResponse,
InfoResponse, InfoResponse,
} from 'picsur-shared/dist/dto/api/info.dto'; } from 'picsur-shared/dist/dto/api/info.dto';
import { import {
FileType2Ext, FileType2Ext,
FileType2Mime, FileType2Mime,
SupportedAnimFileTypes, SupportedAnimFileTypes,
SupportedImageFileTypes, SupportedImageFileTypes,
} from 'picsur-shared/dist/dto/mimes.dto'; } from 'picsur-shared/dist/dto/mimes.dto';
import { TrackingState } from 'picsur-shared/dist/dto/tracking-state.enum'; import { TrackingState } from 'picsur-shared/dist/dto/tracking-state.enum';
import { FallbackIfFailed } from 'picsur-shared/dist/types/failable'; import { FallbackIfFailed } from 'picsur-shared/dist/types/failable';
import { HostConfigService } from '../../../config/early/host.config.service'; import { HostConfigService } from '../../../config/early/host.config.service.js';
import { InfoConfigService } from '../../../config/late/info.config.service'; import { InfoConfigService } from '../../../config/late/info.config.service.js';
import { UsageConfigService } from '../../../config/late/usage.config.service'; import { UsageConfigService } from '../../../config/late/usage.config.service.js';
import { NoPermissions } from '../../../decorators/permissions.decorator'; import { NoPermissions } from '../../../decorators/permissions.decorator.js';
import { Returns } from '../../../decorators/returns.decorator'; import { Returns } from '../../../decorators/returns.decorator.js';
import { PermissionsList } from '../../../models/constants/permissions.const'; import { PermissionsList } from '../../../models/constants/permissions.const.js';
@Controller('api/info') @Controller('api/info')
@NoPermissions() @NoPermissions()

View File

@@ -1,6 +1,6 @@
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { LateConfigModule } from '../../../config/late/late-config.module'; import { LateConfigModule } from '../../../config/late/late-config.module.js';
import { InfoController } from './info.controller'; import { InfoController } from './info.controller.js';
@Module({ @Module({
imports: [LateConfigModule], imports: [LateConfigModule],

View File

@@ -1,7 +1,7 @@
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { PreferenceDbModule } from '../../../collections/preference-db/preference-db.module'; import { PreferenceDbModule } from '../../../collections/preference-db/preference-db.module.js';
import { SysPrefController } from './sys-pref.controller'; import { SysPrefController } from './sys-pref.controller.js';
import { UsrPrefController } from './usr-pref.controller'; import { UsrPrefController } from './usr-pref.controller.js';
@Module({ @Module({
imports: [PreferenceDbModule], imports: [PreferenceDbModule],

View File

@@ -1,16 +1,16 @@
import { Body, Controller, Get, Logger, Param, Post } from '@nestjs/common'; import { Body, Controller, Get, Logger, Param, Post } from '@nestjs/common';
import { import {
GetPreferenceResponse, GetPreferenceResponse,
MultiplePreferencesResponse, MultiplePreferencesResponse,
UpdatePreferenceRequest, UpdatePreferenceRequest,
UpdatePreferenceResponse, UpdatePreferenceResponse,
} from 'picsur-shared/dist/dto/api/pref.dto'; } from 'picsur-shared/dist/dto/api/pref.dto';
import { ThrowIfFailed } from 'picsur-shared/dist/types/failable'; 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';
import { EasyThrottle } from '../../../decorators/easy-throttle.decorator'; import { EasyThrottle } from '../../../decorators/easy-throttle.decorator.js';
import { RequiredPermissions } from '../../../decorators/permissions.decorator'; import { RequiredPermissions } from '../../../decorators/permissions.decorator.js';
import { Returns } from '../../../decorators/returns.decorator'; import { Returns } from '../../../decorators/returns.decorator.js';
import { Permission } from '../../../models/constants/permissions.const'; import { Permission } from '../../../models/constants/permissions.const.js';
@Controller('api/pref/sys') @Controller('api/pref/sys')
@RequiredPermissions(Permission.SysPrefAdmin) @RequiredPermissions(Permission.SysPrefAdmin)

View File

@@ -1,17 +1,17 @@
import { Body, Controller, Get, Logger, Param, Post } from '@nestjs/common'; import { Body, Controller, Get, Logger, Param, Post } from '@nestjs/common';
import { import {
GetPreferenceResponse, GetPreferenceResponse,
MultiplePreferencesResponse, MultiplePreferencesResponse,
UpdatePreferenceRequest, UpdatePreferenceRequest,
UpdatePreferenceResponse, UpdatePreferenceResponse,
} from 'picsur-shared/dist/dto/api/pref.dto'; } from 'picsur-shared/dist/dto/api/pref.dto';
import { ThrowIfFailed } from 'picsur-shared/dist/types/failable'; import { ThrowIfFailed } from 'picsur-shared/dist/types/failable';
import { UsrPreferenceDbService } from '../../../collections/preference-db/usr-preference-db.service'; import { UsrPreferenceDbService } from '../../../collections/preference-db/usr-preference-db.service.js';
import { EasyThrottle } from '../../../decorators/easy-throttle.decorator'; import { EasyThrottle } from '../../../decorators/easy-throttle.decorator.js';
import { RequiredPermissions } from '../../../decorators/permissions.decorator'; import { RequiredPermissions } from '../../../decorators/permissions.decorator.js';
import { ReqUserID } from '../../../decorators/request-user.decorator'; import { ReqUserID } from '../../../decorators/request-user.decorator.js';
import { Returns } from '../../../decorators/returns.decorator'; import { Returns } from '../../../decorators/returns.decorator.js';
import { Permission } from '../../../models/constants/permissions.const'; import { Permission } from '../../../models/constants/permissions.const.js';
@Controller('api/pref/usr') @Controller('api/pref/usr')
@RequiredPermissions(Permission.Settings) @RequiredPermissions(Permission.Settings)

View File

@@ -1,31 +1,31 @@
import { Body, Controller, Get, Logger, Post } from '@nestjs/common'; import { Body, Controller, Get, Logger, Post } from '@nestjs/common';
import { import {
RoleCreateRequest, RoleCreateRequest,
RoleCreateResponse, RoleCreateResponse,
RoleDeleteRequest, RoleDeleteRequest,
RoleDeleteResponse, RoleDeleteResponse,
RoleInfoRequest, RoleInfoRequest,
RoleInfoResponse, RoleInfoResponse,
RoleListResponse, RoleListResponse,
RoleUpdateRequest, RoleUpdateRequest,
RoleUpdateResponse, RoleUpdateResponse,
SpecialRolesResponse, SpecialRolesResponse,
} from 'picsur-shared/dist/dto/api/roles.dto'; } from 'picsur-shared/dist/dto/api/roles.dto';
import { FT, Fail, ThrowIfFailed } from 'picsur-shared/dist/types/failable'; import { FT, Fail, ThrowIfFailed } from 'picsur-shared/dist/types/failable';
import { RoleDbService } from '../../../collections/role-db/role-db.service'; import { RoleDbService } from '../../../collections/role-db/role-db.service.js';
import { UserDbService } from '../../../collections/user-db/user-db.service'; import { UserDbService } from '../../../collections/user-db/user-db.service.js';
import { EasyThrottle } from '../../../decorators/easy-throttle.decorator'; import { EasyThrottle } from '../../../decorators/easy-throttle.decorator.js';
import { RequiredPermissions } from '../../../decorators/permissions.decorator'; import { RequiredPermissions } from '../../../decorators/permissions.decorator.js';
import { Returns } from '../../../decorators/returns.decorator'; import { Returns } from '../../../decorators/returns.decorator.js';
import { Permission } from '../../../models/constants/permissions.const'; import { Permission } from '../../../models/constants/permissions.const.js';
import { import {
DefaultRolesList, DefaultRolesList,
ImmutableRolesList, ImmutableRolesList,
RolePermissionsLocks, RolePermissionsLocks,
SoulBoundRolesList, SoulBoundRolesList,
UndeletableRolesList, UndeletableRolesList,
} from '../../../models/constants/roles.const'; } from '../../../models/constants/roles.const.js';
import { isPermissionsArray } from '../../../models/validators/permissions.validator'; import { isPermissionsArray } from '../../../models/validators/permissions.validator.js';
@Controller('api/roles') @Controller('api/roles')
@RequiredPermissions(Permission.RoleAdmin) @RequiredPermissions(Permission.RoleAdmin)

View File

@@ -1,7 +1,7 @@
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { RoleDbModule } from '../../../collections/role-db/role-db.module'; import { RoleDbModule } from '../../../collections/role-db/role-db.module.js';
import { UserDbModule } from '../../../collections/user-db/user-db.module'; import { UserDbModule } from '../../../collections/user-db/user-db.module.js';
import { RolesController } from './roles.controller'; import { RolesController } from './roles.controller.js';
@Module({ @Module({
imports: [RoleDbModule, UserDbModule], imports: [RoleDbModule, UserDbModule],

View File

@@ -1,10 +1,10 @@
import { Controller, Logger, Post, Req, Res } from '@nestjs/common'; import { Controller, Logger, Post, Req, Res } from '@nestjs/common';
import type { FastifyReply, FastifyRequest } from 'fastify'; import type { FastifyReply, FastifyRequest } from 'fastify';
import { FT, Fail, ThrowIfFailed } from 'picsur-shared/dist/types/failable'; import { FT, Fail, ThrowIfFailed } from 'picsur-shared/dist/types/failable';
import { UsageConfigService } from '../../../config/late/usage.config.service'; import { UsageConfigService } from '../../../config/late/usage.config.service.js';
import { EasyThrottle } from '../../../decorators/easy-throttle.decorator'; import { EasyThrottle } from '../../../decorators/easy-throttle.decorator.js';
import { NoPermissions } from '../../../decorators/permissions.decorator'; import { NoPermissions } from '../../../decorators/permissions.decorator.js';
import { ReturnsAnything } from '../../../decorators/returns.decorator'; import { ReturnsAnything } from '../../../decorators/returns.decorator.js';
@Controller('api/usage') @Controller('api/usage')
@NoPermissions() @NoPermissions()

View File

@@ -1,6 +1,6 @@
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { LateConfigModule } from '../../../config/late/late-config.module'; import { LateConfigModule } from '../../../config/late/late-config.module.js';
import { UsageController } from './usage.controller'; import { UsageController } from './usage.controller.js';
@Module({ @Module({
imports: [LateConfigModule], imports: [LateConfigModule],

View File

@@ -1,29 +1,29 @@
import { Body, Controller, Get, Logger, Post } from '@nestjs/common'; import { Body, Controller, Get, Logger, Post } from '@nestjs/common';
import { import {
GetSpecialUsersResponse, GetSpecialUsersResponse,
UserCreateRequest, UserCreateRequest,
UserCreateResponse, UserCreateResponse,
UserDeleteRequest, UserDeleteRequest,
UserDeleteResponse, UserDeleteResponse,
UserInfoRequest, UserInfoRequest,
UserInfoResponse, UserInfoResponse,
UserListRequest, UserListRequest,
UserListResponse, UserListResponse,
UserUpdateRequest, UserUpdateRequest,
UserUpdateResponse, UserUpdateResponse,
} from 'picsur-shared/dist/dto/api/user-manage.dto'; } from 'picsur-shared/dist/dto/api/user-manage.dto';
import { ThrowIfFailed } from 'picsur-shared/dist/types/failable'; import { ThrowIfFailed } from 'picsur-shared/dist/types/failable';
import { UserDbService } from '../../../collections/user-db/user-db.service'; import { UserDbService } from '../../../collections/user-db/user-db.service.js';
import { EasyThrottle } from '../../../decorators/easy-throttle.decorator'; import { EasyThrottle } from '../../../decorators/easy-throttle.decorator.js';
import { RequiredPermissions } from '../../../decorators/permissions.decorator'; import { RequiredPermissions } from '../../../decorators/permissions.decorator.js';
import { Returns } from '../../../decorators/returns.decorator'; import { Returns } from '../../../decorators/returns.decorator.js';
import { Permission } from '../../../models/constants/permissions.const'; import { Permission } from '../../../models/constants/permissions.const.js';
import { import {
ImmutableUsersList, ImmutableUsersList,
LockedLoginUsersList, LockedLoginUsersList,
UndeletableUsersList, UndeletableUsersList,
} from '../../../models/constants/special-users.const'; } from '../../../models/constants/special-users.const.js';
import { EUserBackend2EUser } from '../../../models/transformers/user.transformer'; import { EUserBackend2EUser } from '../../../models/transformers/user.transformer.js';
@Controller('api/user') @Controller('api/user')
@RequiredPermissions(Permission.UserAdmin) @RequiredPermissions(Permission.UserAdmin)

View File

@@ -1,27 +1,27 @@
import { Body, Controller, Get, Logger, Post } from '@nestjs/common'; import { Body, Controller, Get, Logger, Post } from '@nestjs/common';
import { import {
UserCheckNameRequest, UserCheckNameRequest,
UserCheckNameResponse, UserCheckNameResponse,
UserLoginResponse, UserLoginResponse,
UserMePermissionsResponse, UserMePermissionsResponse,
UserMeResponse, UserMeResponse,
UserRegisterRequest, UserRegisterRequest,
UserRegisterResponse, UserRegisterResponse,
} from 'picsur-shared/dist/dto/api/user.dto'; } from 'picsur-shared/dist/dto/api/user.dto';
import type { EUser } from 'picsur-shared/dist/entities/user.entity'; import type { EUser } from 'picsur-shared/dist/entities/user.entity';
import { ThrowIfFailed } from 'picsur-shared/dist/types/failable'; import { ThrowIfFailed } from 'picsur-shared/dist/types/failable';
import { UserDbService } from '../../../collections/user-db/user-db.service'; import { UserDbService } from '../../../collections/user-db/user-db.service.js';
import { EasyThrottle } from '../../../decorators/easy-throttle.decorator'; import { EasyThrottle } from '../../../decorators/easy-throttle.decorator.js';
import { import {
NoPermissions, NoPermissions,
RequiredPermissions, RequiredPermissions,
UseLocalAuth, UseLocalAuth,
} from '../../../decorators/permissions.decorator'; } from '../../../decorators/permissions.decorator.js';
import { ReqUser, ReqUserID } from '../../../decorators/request-user.decorator'; import { ReqUser, ReqUserID } from '../../../decorators/request-user.decorator.js';
import { Returns } from '../../../decorators/returns.decorator'; import { Returns } from '../../../decorators/returns.decorator.js';
import { AuthManagerService } from '../../../managers/auth/auth.service'; import { AuthManagerService } from '../../../managers/auth/auth.service.js';
import { Permission } from '../../../models/constants/permissions.const'; import { Permission } from '../../../models/constants/permissions.const.js';
import { EUserBackend2EUser } from '../../../models/transformers/user.transformer'; import { EUserBackend2EUser } from '../../../models/transformers/user.transformer.js';
@Controller('api/user') @Controller('api/user')
export class UserController { export class UserController {

View File

@@ -1,7 +1,7 @@
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { AuthManagerModule } from '../../../managers/auth/auth.module'; import { AuthManagerModule } from '../../../managers/auth/auth.module.js';
import { UserAdminController } from './user-manage.controller'; import { UserAdminController } from './user-manage.controller.js';
import { UserController } from './user.controller'; import { UserController } from './user.controller.js';
@Module({ @Module({
imports: [AuthManagerModule], imports: [AuthManagerModule],

View File

@@ -1,42 +1,42 @@
import { import {
Body, Body,
Controller, Controller,
Get, Get,
Logger, Logger,
Param, Param,
Post, Post,
Res, Res,
} from '@nestjs/common'; } from '@nestjs/common';
import type { FastifyReply } from 'fastify'; import type { FastifyReply } from 'fastify';
import { import {
ImageDeleteRequest, ImageDeleteRequest,
ImageDeleteResponse, ImageDeleteResponse,
ImageDeleteWithKeyRequest, ImageDeleteWithKeyRequest,
ImageDeleteWithKeyResponse, ImageDeleteWithKeyResponse,
ImageListRequest, ImageListRequest,
ImageListResponse, ImageListResponse,
ImageUpdateRequest, ImageUpdateRequest,
ImageUpdateResponse, ImageUpdateResponse,
ImageUploadResponse, ImageUploadResponse,
} from 'picsur-shared/dist/dto/api/image-manage.dto'; } from 'picsur-shared/dist/dto/api/image-manage.dto';
import { Permission } from 'picsur-shared/dist/dto/permissions.enum'; import { Permission } from 'picsur-shared/dist/dto/permissions.enum';
import { import {
FT, FT,
Fail, Fail,
HasFailed, HasFailed,
ThrowIfFailed, ThrowIfFailed,
} from 'picsur-shared/dist/types/failable'; } from 'picsur-shared/dist/types/failable';
import { EasyThrottle } from '../../decorators/easy-throttle.decorator'; import { EasyThrottle } from '../../decorators/easy-throttle.decorator.js';
import { PostFiles } from '../../decorators/multipart/multipart.decorator'; import { PostFiles } from '../../decorators/multipart/multipart.decorator.js';
import type { FileIterator } from '../../decorators/multipart/postfiles.pipe'; import type { FileIterator } from '../../decorators/multipart/postfiles.pipe.js';
import { import {
HasPermission, HasPermission,
RequiredPermissions, RequiredPermissions,
} from '../../decorators/permissions.decorator'; } from '../../decorators/permissions.decorator.js';
import { ReqUserID } from '../../decorators/request-user.decorator'; import { ReqUserID } from '../../decorators/request-user.decorator.js';
import { Returns } from '../../decorators/returns.decorator'; import { Returns } from '../../decorators/returns.decorator.js';
import { ImageManagerService } from '../../managers/image/image.service'; import { ImageManagerService } from '../../managers/image/image.service.js';
import { GetNextAsync } from '../../util/iterator'; import { GetNextAsync } from '../../util/iterator.js';
@Controller('api/image') @Controller('api/image')
@RequiredPermissions(Permission.ImageUpload) @RequiredPermissions(Permission.ImageUpload)

View File

@@ -2,26 +2,26 @@ import { Controller, Get, Head, Logger, Query, Res } from '@nestjs/common';
import { SkipThrottle } from '@nestjs/throttler'; import { SkipThrottle } from '@nestjs/throttler';
import type { FastifyReply } from 'fastify'; import type { FastifyReply } from 'fastify';
import { import {
ImageMetaResponse, ImageMetaResponse,
ImageRequestParams, ImageRequestParams,
} from 'picsur-shared/dist/dto/api/image.dto'; } from 'picsur-shared/dist/dto/api/image.dto';
import { ImageEntryVariant } from 'picsur-shared/dist/dto/image-entry-variant.enum'; import { ImageEntryVariant } from 'picsur-shared/dist/dto/image-entry-variant.enum';
import { FileType2Mime } from 'picsur-shared/dist/dto/mimes.dto'; import { FileType2Mime } from 'picsur-shared/dist/dto/mimes.dto';
import { import {
FT, FT,
IsFailure, IsFailure,
ThrowIfFailed, ThrowIfFailed,
} from 'picsur-shared/dist/types/failable'; } from 'picsur-shared/dist/types/failable';
import { UserDbService } from '../../collections/user-db/user-db.service'; import { UserDbService } from '../../collections/user-db/user-db.service.js';
import { ImageFullIdParam } from '../../decorators/image-id/image-full-id.decorator'; import { ImageFullIdParam } from '../../decorators/image-id/image-full-id.decorator.js';
import { ImageIdParam } from '../../decorators/image-id/image-id.decorator'; import { ImageIdParam } from '../../decorators/image-id/image-id.decorator.js';
import { RequiredPermissions } from '../../decorators/permissions.decorator'; import { RequiredPermissions } from '../../decorators/permissions.decorator.js';
import { Returns } from '../../decorators/returns.decorator'; import { Returns } from '../../decorators/returns.decorator.js';
import { ImageManagerService } from '../../managers/image/image.service'; import { ImageManagerService } from '../../managers/image/image.service.js';
import type { ImageFullId } from '../../models/constants/image-full-id.const'; import type { ImageFullId } from '../../models/constants/image-full-id.const.js';
import { Permission } from '../../models/constants/permissions.const'; import { Permission } from '../../models/constants/permissions.const.js';
import { EUserBackend2EUser } from '../../models/transformers/user.transformer'; import { EUserBackend2EUser } from '../../models/transformers/user.transformer.js';
import { BrandMessageType, GetBrandMessage } from '../../util/branding'; import { BrandMessageType, GetBrandMessage } from '../../util/branding.js';
// This is the only controller with CORS enabled // This is the only controller with CORS enabled
@Controller('i') @Controller('i')

View File

@@ -1,9 +1,9 @@
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { UserDbModule } from '../../collections/user-db/user-db.module'; import { UserDbModule } from '../../collections/user-db/user-db.module.js';
import { DecoratorsModule } from '../../decorators/decorators.module'; import { DecoratorsModule } from '../../decorators/decorators.module.js';
import { ImageManagerModule } from '../../managers/image/image-manager.module'; import { ImageManagerModule } from '../../managers/image/image-manager.module.js';
import { ImageManageController } from './image-manage.controller'; import { ImageManageController } from './image-manage.controller.js';
import { ImageController } from './image.controller'; import { ImageController } from './image.controller.js';
@Module({ @Module({
imports: [ImageManagerModule, UserDbModule, DecoratorsModule], imports: [ImageManagerModule, UserDbModule, DecoratorsModule],

View File

@@ -1,6 +1,6 @@
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { PicsurApiModule } from './api/api.module'; import { PicsurApiModule } from './api/api.module.js';
import { ImageModule } from './image/image.module'; import { ImageModule } from './image/image.module.js';
@Module({ @Module({
imports: [PicsurApiModule, ImageModule], imports: [PicsurApiModule, ImageModule],

View File

@@ -1,7 +1,7 @@
import { readFile } from 'fs/promises'; import { readFile } from 'fs/promises';
import { resolve } from 'path'; import { resolve } from 'path';
import { AsyncFailable, Fail, FT } from 'picsur-shared/dist/types/failable'; 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'); export const BrandingPath = resolve(PackageRoot, '../branding');

View File

@@ -18,8 +18,8 @@ import {
SharpWorkerResultMessage, SharpWorkerResultMessage,
SharpWorkerSendMessage, SharpWorkerSendMessage,
SupportedSharpWorkerFunctions, SupportedSharpWorkerFunctions,
} from './sharp/sharp.message'; } from './sharp/sharp.message.js';
import { SharpResult } from './sharp/universal-sharp'; import { SharpResult } from './sharp/universal-sharp.js';
const moduleURL = new URL(import.meta.url); const moduleURL = new URL(import.meta.url);
const __dirname = dirname(moduleURL.pathname); const __dirname = dirname(moduleURL.pathname);

View File

@@ -1,6 +1,6 @@
import { FileType } from 'picsur-shared/dist/dto/mimes.dto'; import { FileType } from 'picsur-shared/dist/dto/mimes.dto';
import { Sharp, SharpOptions } from 'sharp'; 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 type MapSharpFunctions<T extends keyof Sharp> = T extends any
? Sharp[T] extends (...args: any) => any ? Sharp[T] extends (...args: any) => any

View File

@@ -7,8 +7,8 @@ import {
SharpWorkerOperationMessage, SharpWorkerOperationMessage,
SharpWorkerRecieveMessage, SharpWorkerRecieveMessage,
SharpWorkerSendMessage, SharpWorkerSendMessage,
} from './sharp.message'; } from './sharp.message.js';
import { UniversalSharpIn, UniversalSharpOut } from './universal-sharp'; import { UniversalSharpIn, UniversalSharpOut } from './universal-sharp.js';
export class SharpWorker { export class SharpWorker {
private startTime = 0; private startTime = 0;

View File

@@ -4,7 +4,7 @@
"exclude": ["node_modules", "dist", "test", "**/*spec.ts"], "exclude": ["node_modules", "dist", "test", "**/*spec.ts"],
"compilerOptions": { "compilerOptions": {
"lib": ["es2022"], "lib": ["es2022"],
"module": "ES2022", "module": "NodeNext",
"target": "es2022", "target": "es2022",
"outDir": "./dist", "outDir": "./dist",