mirror of
https://github.com/CaramelFur/Picsur.git
synced 2026-01-16 20:22:06 +01:00
rename permissions and add admin image list
This commit is contained in:
@@ -3,22 +3,22 @@ import { InjectRepository } from '@nestjs/typeorm';
|
||||
import * as bcrypt from 'bcrypt';
|
||||
import { SysPreference } from 'picsur-shared/dist/dto/sys-preferences.dto';
|
||||
import {
|
||||
AsyncFailable,
|
||||
Fail,
|
||||
HasFailed,
|
||||
HasSuccess
|
||||
AsyncFailable,
|
||||
Fail,
|
||||
HasFailed,
|
||||
HasSuccess
|
||||
} from 'picsur-shared/dist/types';
|
||||
import { makeUnique } from 'picsur-shared/dist/util/unique';
|
||||
import { Repository } from 'typeorm';
|
||||
import { Permissions } from '../../models/constants/permissions.const';
|
||||
import {
|
||||
DefaultRolesList,
|
||||
SoulBoundRolesList
|
||||
DefaultRolesList,
|
||||
SoulBoundRolesList
|
||||
} from '../../models/constants/roles.const';
|
||||
import {
|
||||
ImmutableUsersList,
|
||||
LockedLoginUsersList,
|
||||
UndeletableUsersList
|
||||
ImmutableUsersList,
|
||||
LockedLoginUsersList,
|
||||
UndeletableUsersList
|
||||
} from '../../models/constants/special-users.const';
|
||||
import { EUserBackend } from '../../models/entities/user.entity';
|
||||
import { GetCols } from '../../models/util/collection';
|
||||
|
||||
@@ -1,7 +1,13 @@
|
||||
import { SetMetadata, UseGuards } from '@nestjs/common';
|
||||
import {
|
||||
createParamDecorator,
|
||||
ExecutionContext,
|
||||
SetMetadata,
|
||||
UseGuards
|
||||
} from '@nestjs/common';
|
||||
import { CombineFCDecorators } from 'picsur-shared/dist/util/decorator';
|
||||
import { LocalAuthGuard } from '../managers/auth/guards/local-auth.guard';
|
||||
import { Permissions } from '../models/constants/permissions.const';
|
||||
import { Permission, Permissions } from '../models/constants/permissions.const';
|
||||
import AuthFasityRequest from '../models/interfaces/authrequest.dto';
|
||||
|
||||
export const RequiredPermissions = (...permissions: Permissions) => {
|
||||
return SetMetadata('permissions', permissions);
|
||||
@@ -16,3 +22,27 @@ export const UseLocalAuth = (...permissions: Permissions) =>
|
||||
RequiredPermissions(...permissions),
|
||||
UseGuards(LocalAuthGuard),
|
||||
);
|
||||
|
||||
export const HasPermission = createParamDecorator(
|
||||
(data: Permission, ctx: ExecutionContext) => {
|
||||
const req: AuthFasityRequest = ctx.switchToHttp().getRequest();
|
||||
const permissions = req.userPermissions;
|
||||
if (!permissions) {
|
||||
throw new Error('Permissions are missing from request');
|
||||
}
|
||||
|
||||
return permissions.includes(data);
|
||||
},
|
||||
);
|
||||
|
||||
export const GetPermissions = createParamDecorator(
|
||||
(data: Permission, ctx: ExecutionContext) => {
|
||||
const req: AuthFasityRequest = ctx.switchToHttp().getRequest();
|
||||
const permissions = req.userPermissions;
|
||||
if (!permissions) {
|
||||
throw new Error('Permissions are missing from request');
|
||||
}
|
||||
|
||||
return permissions;
|
||||
},
|
||||
);
|
||||
|
||||
@@ -58,6 +58,8 @@ export class MainAuthGuard extends AuthGuard(['jwt', 'guest']) {
|
||||
throw new InternalServerErrorException();
|
||||
}
|
||||
|
||||
context.switchToHttp().getRequest().userPermissions = userPermissions;
|
||||
|
||||
if (permissions.every((permission) => userPermissions.includes(permission)))
|
||||
return true;
|
||||
else throw new ForbiddenException('Permission denied');
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
import { FastifyRequest } from 'fastify';
|
||||
import { EUser } from 'picsur-shared/dist/entities/user.entity';
|
||||
import { Permissions } from '../constants/permissions.const';
|
||||
|
||||
// Add typing to FastifyRequest to make using the user object easier
|
||||
export default interface AuthFasityRequest extends FastifyRequest {
|
||||
user: EUser;
|
||||
userPermissions?: Permissions;
|
||||
}
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
import {
|
||||
Body,
|
||||
Controller,
|
||||
Get,
|
||||
InternalServerErrorException,
|
||||
Logger,
|
||||
Param,
|
||||
Post
|
||||
Body,
|
||||
Controller,
|
||||
Get,
|
||||
InternalServerErrorException,
|
||||
Logger,
|
||||
Param,
|
||||
Post
|
||||
} from '@nestjs/common';
|
||||
import {
|
||||
GetPreferenceResponse,
|
||||
MultiplePreferencesResponse,
|
||||
UpdatePreferenceRequest,
|
||||
UpdatePreferenceResponse
|
||||
GetPreferenceResponse,
|
||||
MultiplePreferencesResponse,
|
||||
UpdatePreferenceRequest,
|
||||
UpdatePreferenceResponse
|
||||
} from 'picsur-shared/dist/dto/api/pref.dto';
|
||||
import { HasFailed } from 'picsur-shared/dist/types';
|
||||
import { SysPreferenceService } from '../../../collections/preference-db/sys-preference-db.service';
|
||||
@@ -20,7 +20,7 @@ import { Returns } from '../../../decorators/returns.decorator';
|
||||
import { Permission } from '../../../models/constants/permissions.const';
|
||||
|
||||
@Controller('api/pref/sys')
|
||||
@RequiredPermissions(Permission.SysPrefManage)
|
||||
@RequiredPermissions(Permission.SysPrefAdmin)
|
||||
export class SysPrefController {
|
||||
private readonly logger = new Logger('SysPrefController');
|
||||
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
import {
|
||||
Body,
|
||||
Controller,
|
||||
Get,
|
||||
InternalServerErrorException,
|
||||
Logger,
|
||||
Post
|
||||
Body,
|
||||
Controller,
|
||||
Get,
|
||||
InternalServerErrorException,
|
||||
Logger,
|
||||
Post
|
||||
} from '@nestjs/common';
|
||||
import {
|
||||
RoleCreateRequest,
|
||||
RoleCreateResponse,
|
||||
RoleDeleteRequest,
|
||||
RoleDeleteResponse,
|
||||
RoleInfoRequest,
|
||||
RoleInfoResponse,
|
||||
RoleListResponse,
|
||||
RoleUpdateRequest,
|
||||
RoleUpdateResponse,
|
||||
SpecialRolesResponse
|
||||
RoleCreateRequest,
|
||||
RoleCreateResponse,
|
||||
RoleDeleteRequest,
|
||||
RoleDeleteResponse,
|
||||
RoleInfoRequest,
|
||||
RoleInfoResponse,
|
||||
RoleListResponse,
|
||||
RoleUpdateRequest,
|
||||
RoleUpdateResponse,
|
||||
SpecialRolesResponse
|
||||
} from 'picsur-shared/dist/dto/api/roles.dto';
|
||||
import { HasFailed } from 'picsur-shared/dist/types';
|
||||
import { RolesService } from '../../../collections/role-db/role-db.service';
|
||||
@@ -25,15 +25,15 @@ import { RequiredPermissions } from '../../../decorators/permissions.decorator';
|
||||
import { Returns } from '../../../decorators/returns.decorator';
|
||||
import { Permission } from '../../../models/constants/permissions.const';
|
||||
import {
|
||||
DefaultRolesList,
|
||||
ImmutableRolesList,
|
||||
SoulBoundRolesList,
|
||||
UndeletableRolesList
|
||||
DefaultRolesList,
|
||||
ImmutableRolesList,
|
||||
SoulBoundRolesList,
|
||||
UndeletableRolesList
|
||||
} from '../../../models/constants/roles.const';
|
||||
import { isPermissionsArray } from '../../../models/validators/permissions.validator';
|
||||
|
||||
@Controller('api/roles')
|
||||
@RequiredPermissions(Permission.RoleManage)
|
||||
@RequiredPermissions(Permission.RoleAdmin)
|
||||
export class RolesController {
|
||||
private readonly logger = new Logger('RolesController');
|
||||
|
||||
|
||||
@@ -6,7 +6,6 @@ import {
|
||||
Logger,
|
||||
Post
|
||||
} from '@nestjs/common';
|
||||
import { PagedRequest } from 'picsur-shared/dist/dto/api/common.dto';
|
||||
import {
|
||||
GetSpecialUsersResponse,
|
||||
UserCreateRequest,
|
||||
@@ -15,6 +14,7 @@ import {
|
||||
UserDeleteResponse,
|
||||
UserInfoRequest,
|
||||
UserInfoResponse,
|
||||
UserListRequest,
|
||||
UserListResponse,
|
||||
UserUpdateRequest,
|
||||
UserUpdateResponse
|
||||
@@ -32,15 +32,17 @@ import {
|
||||
import { EUserBackend2EUser } from '../../../models/transformers/user.transformer';
|
||||
|
||||
@Controller('api/user')
|
||||
@RequiredPermissions(Permission.UserManage)
|
||||
export class UserManageController {
|
||||
private readonly logger = new Logger('UserManageController');
|
||||
@RequiredPermissions(Permission.UserAdmin)
|
||||
export class UserAdminController {
|
||||
private readonly logger = new Logger('UserAdminController');
|
||||
|
||||
constructor(private usersService: UsersService) {}
|
||||
|
||||
@Post('list')
|
||||
@Returns(UserListResponse)
|
||||
async listUsersPaged(@Body() body: PagedRequest): Promise<UserListResponse> {
|
||||
async listUsersPaged(
|
||||
@Body() body: UserListRequest,
|
||||
): Promise<UserListResponse> {
|
||||
const users = await this.usersService.findMany(body.count, body.page);
|
||||
if (HasFailed(users)) {
|
||||
this.logger.warn(users.getReason());
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { AuthManagerModule } from '../../../managers/auth/auth.module';
|
||||
import { UserManageController } from './user-manage.controller';
|
||||
import { UserAdminController } from './user-manage.controller';
|
||||
import { UserController } from './user.controller';
|
||||
|
||||
@Module({
|
||||
imports: [AuthManagerModule],
|
||||
controllers: [UserController, UserManageController],
|
||||
controllers: [UserController, UserAdminController],
|
||||
})
|
||||
export class UserApiModule {}
|
||||
|
||||
@@ -5,12 +5,18 @@ import {
|
||||
Logger,
|
||||
Post
|
||||
} from '@nestjs/common';
|
||||
import { PagedRequest } from 'picsur-shared/dist/dto/api/common.dto';
|
||||
import { ImageListResponse, ImageUploadResponse } from 'picsur-shared/dist/dto/api/image-manage.dto';
|
||||
import {
|
||||
ImageListRequest,
|
||||
ImageListResponse,
|
||||
ImageUploadResponse
|
||||
} from 'picsur-shared/dist/dto/api/image-manage.dto';
|
||||
import { Permission } from 'picsur-shared/dist/dto/permissions.dto';
|
||||
import { HasFailed } from 'picsur-shared/dist/types';
|
||||
import { MultiPart } from '../../decorators/multipart/multipart.decorator';
|
||||
import { RequiredPermissions } from '../../decorators/permissions.decorator';
|
||||
import {
|
||||
HasPermission,
|
||||
RequiredPermissions
|
||||
} from '../../decorators/permissions.decorator';
|
||||
import { ReqUserID } from '../../decorators/request-user.decorator';
|
||||
import { Returns } from '../../decorators/returns.decorator';
|
||||
import { ImageManagerService } from '../../managers/image/image.service';
|
||||
@@ -41,12 +47,17 @@ export class ImageManageController {
|
||||
return image;
|
||||
}
|
||||
|
||||
@Post('my/list')
|
||||
@Post('list')
|
||||
@Returns(ImageListResponse)
|
||||
async listUsersPaged(
|
||||
@Body() body: PagedRequest,
|
||||
async listMyImagesPaged(
|
||||
@Body() body: ImageListRequest,
|
||||
@ReqUserID() userid: string,
|
||||
@HasPermission(Permission.ImageAdmin) isImageAdmin: boolean,
|
||||
): Promise<ImageListResponse> {
|
||||
if (!isImageAdmin) {
|
||||
body.user_id = userid;
|
||||
}
|
||||
|
||||
const images = await this.imagesService.findMany(
|
||||
body.count,
|
||||
body.page,
|
||||
|
||||
@@ -51,7 +51,9 @@ export class PermissionGuard implements CanActivate, CanActivateChild {
|
||||
this.allPermissionsArray !== null &&
|
||||
!isPermissionsArray(requiredPermissions, this.allPermissionsArray)
|
||||
) {
|
||||
this.logger.error(`Permissions array is invalid: ${requiredPermissions}`);
|
||||
this.logger.error(
|
||||
`Permissions array is invalid: "${requiredPermissions}" (available: ${this.allPermissionsArray})`
|
||||
);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -12,8 +12,8 @@ export const UIFriendlyPermissions: {
|
||||
|
||||
[Permission.Settings]: 'View settings',
|
||||
|
||||
[Permission.ImageManage]: 'Manage All Images',
|
||||
[Permission.UserManage]: 'Manage users',
|
||||
[Permission.RoleManage]: 'Manage roles',
|
||||
[Permission.SysPrefManage]: 'Manage system',
|
||||
[Permission.ImageAdmin]: 'Image Admin',
|
||||
[Permission.UserAdmin]: 'User Admin',
|
||||
[Permission.RoleAdmin]: 'Role Admin',
|
||||
[Permission.SysPrefAdmin]: 'System Admin',
|
||||
};
|
||||
|
||||
@@ -35,7 +35,7 @@ const SettingsRoutes: PRoutes = [
|
||||
path: 'users',
|
||||
loadChildren: () => SettingsUsersRouteModule,
|
||||
data: {
|
||||
permissions: [Permission.UserManage],
|
||||
permissions: [Permission.UserAdmin],
|
||||
page: {
|
||||
title: 'Users',
|
||||
icon: 'people_outline',
|
||||
@@ -47,7 +47,7 @@ const SettingsRoutes: PRoutes = [
|
||||
path: 'roles',
|
||||
loadChildren: () => SettingsRolesRouteModule,
|
||||
data: {
|
||||
permissions: [Permission.RoleManage],
|
||||
permissions: [Permission.RoleAdmin],
|
||||
page: {
|
||||
title: 'Roles',
|
||||
icon: 'admin_panel_settings',
|
||||
@@ -59,7 +59,7 @@ const SettingsRoutes: PRoutes = [
|
||||
path: 'system',
|
||||
loadChildren: () => SettingsSysprefRouteModule,
|
||||
data: {
|
||||
permissions: [Permission.SysPrefManage],
|
||||
permissions: [Permission.SysPrefAdmin],
|
||||
page: {
|
||||
title: 'System Settings',
|
||||
icon: 'tune',
|
||||
|
||||
@@ -8,7 +8,7 @@ import { SnackBarType } from 'src/app/models/dto/snack-bar-type.dto';
|
||||
import { UpdateUserControl } from 'src/app/models/forms/update-user.control';
|
||||
import { RolesService } from 'src/app/services/api/roles.service';
|
||||
import { StaticInfoService } from 'src/app/services/api/static-info.service';
|
||||
import { UserManageService } from 'src/app/services/api/user-manage.service';
|
||||
import { UserAdminService } from 'src/app/services/api/user-manage.service';
|
||||
import { Logger } from 'src/app/services/logger/logger.service';
|
||||
import { UtilService } from 'src/app/util/util-module/util.service';
|
||||
|
||||
@@ -45,7 +45,7 @@ export class SettingsUsersEditComponent implements OnInit {
|
||||
constructor(
|
||||
private route: ActivatedRoute,
|
||||
private router: Router,
|
||||
private userManageService: UserManageService,
|
||||
private userManageService: UserAdminService,
|
||||
private utilService: UtilService,
|
||||
private rolesService: RolesService,
|
||||
private staticInfo: StaticInfoService
|
||||
|
||||
@@ -7,7 +7,7 @@ import { HasFailed } from 'picsur-shared/dist/types';
|
||||
import { BehaviorSubject, Subject } from 'rxjs';
|
||||
import { SnackBarType } from 'src/app/models/dto/snack-bar-type.dto';
|
||||
import { StaticInfoService } from 'src/app/services/api/static-info.service';
|
||||
import { UserManageService } from 'src/app/services/api/user-manage.service';
|
||||
import { UserAdminService } from 'src/app/services/api/user-manage.service';
|
||||
import { Logger } from 'src/app/services/logger/logger.service';
|
||||
import { Throttle } from 'src/app/util/throttle';
|
||||
import { UtilService } from 'src/app/util/util-module/util.service';
|
||||
@@ -33,7 +33,7 @@ export class SettingsUsersComponent implements OnInit {
|
||||
|
||||
constructor(
|
||||
public utilService: UtilService,
|
||||
private userManageService: UserManageService,
|
||||
private userManageService: UserAdminService,
|
||||
private staticInfo: StaticInfoService,
|
||||
private router: Router
|
||||
) {}
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import {
|
||||
ImageMetaResponse,
|
||||
ImageUploadResponse
|
||||
} from 'picsur-shared/dist/dto/api/image.dto';
|
||||
import { ImageUploadResponse } from 'picsur-shared/dist/dto/api/image-manage.dto';
|
||||
import { ImageMetaResponse } from 'picsur-shared/dist/dto/api/image.dto';
|
||||
import { ImageLinks } from 'picsur-shared/dist/dto/image-links.dto';
|
||||
import { Mime2Ext } from 'picsur-shared/dist/dto/mimes.dto';
|
||||
import { AsyncFailable } from 'picsur-shared/dist/types';
|
||||
import { Open } from 'picsur-shared/dist/types/failable';
|
||||
import { ImageUploadRequest } from '../../models/dto/image-upload-request.dto';
|
||||
import { ApiService } from './api.service';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root',
|
||||
})
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { AutoUnsubscribe } from 'ngx-auto-unsubscribe-decorator';
|
||||
import {
|
||||
GetPreferenceResponse,
|
||||
MultiplePreferencesResponse,
|
||||
UpdatePreferenceRequest,
|
||||
UpdatePreferenceResponse
|
||||
GetPreferenceResponse,
|
||||
MultiplePreferencesResponse,
|
||||
UpdatePreferenceRequest,
|
||||
UpdatePreferenceResponse
|
||||
} from 'picsur-shared/dist/dto/api/pref.dto';
|
||||
import { Permission } from 'picsur-shared/dist/dto/permissions.dto';
|
||||
import {
|
||||
DecodedPref,
|
||||
PrefValueType
|
||||
DecodedPref,
|
||||
PrefValueType
|
||||
} from 'picsur-shared/dist/dto/preferences.dto';
|
||||
import { AsyncFailable, Fail, HasFailed, Map } from 'picsur-shared/dist/types';
|
||||
import { BehaviorSubject } from 'rxjs';
|
||||
@@ -130,7 +130,7 @@ export class SysPrefService {
|
||||
.pipe(Throttle(300))
|
||||
.subscribe((permissions) => {
|
||||
const oldHasPermission = this.hasPermission;
|
||||
this.hasPermission = permissions.includes(Permission.SysPrefManage);
|
||||
this.hasPermission = permissions.includes(Permission.SysPrefAdmin);
|
||||
if (!this.hasPermission) {
|
||||
this.flush();
|
||||
}
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import {
|
||||
UserCreateRequest,
|
||||
UserCreateResponse,
|
||||
UserDeleteRequest,
|
||||
UserDeleteResponse,
|
||||
UserInfoRequest,
|
||||
UserInfoResponse,
|
||||
UserListRequest,
|
||||
UserListResponse,
|
||||
UserUpdateRequest,
|
||||
UserUpdateResponse
|
||||
UserCreateRequest,
|
||||
UserCreateResponse,
|
||||
UserDeleteRequest,
|
||||
UserDeleteResponse,
|
||||
UserInfoRequest,
|
||||
UserInfoResponse,
|
||||
UserListRequest,
|
||||
UserListResponse,
|
||||
UserUpdateRequest,
|
||||
UserUpdateResponse
|
||||
} from 'picsur-shared/dist/dto/api/user-manage.dto';
|
||||
import { EUser } from 'picsur-shared/dist/entities/user.entity';
|
||||
import { AsyncFailable, Open } from 'picsur-shared/dist/types';
|
||||
@@ -18,7 +18,7 @@ import { ApiService } from './api.service';
|
||||
@Injectable({
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class UserManageService {
|
||||
export class UserAdminService {
|
||||
constructor(private api: ApiService) {}
|
||||
|
||||
public async getUser(id: string): AsyncFailable<EUser> {
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
import { z } from 'zod';
|
||||
import { createZodDto } from '../../util/create-zod-dto';
|
||||
import { IsPosInt } from '../../validators/positive-int.validator';
|
||||
|
||||
export const PagedRequestSchema = z.object({
|
||||
count: IsPosInt(),
|
||||
page: IsPosInt(),
|
||||
});
|
||||
export class PagedRequest extends createZodDto(PagedRequestSchema) {}
|
||||
@@ -3,11 +3,23 @@ import { EImageSchema } from '../../entities/image.entity';
|
||||
import { createZodDto } from '../../util/create-zod-dto';
|
||||
import { IsPosInt } from '../../validators/positive-int.validator';
|
||||
|
||||
// Image upload
|
||||
export const ImageUploadResponseSchema = EImageSchema;
|
||||
export class ImageUploadResponse extends createZodDto(
|
||||
ImageUploadResponseSchema,
|
||||
) {}
|
||||
|
||||
// Image list
|
||||
|
||||
export const ImageListRequestSchema = z.object({
|
||||
count: IsPosInt(),
|
||||
page: IsPosInt(),
|
||||
user_id: z.string().uuid().optional(),
|
||||
});
|
||||
export class ImageListRequest extends createZodDto(
|
||||
ImageListRequestSchema,
|
||||
) {}
|
||||
|
||||
export const ImageListResponseSchema = z.object({
|
||||
images: z.array(EImageSchema),
|
||||
count: IsPosInt(),
|
||||
|
||||
@@ -8,6 +8,12 @@ import { IsStringList } from '../../validators/string-list.validator';
|
||||
import { EntityIDObjectSchema } from '../id-object.dto';
|
||||
|
||||
// UserList
|
||||
export const UserListRequestSchema = z.object({
|
||||
count: IsPosInt(),
|
||||
page: IsPosInt(),
|
||||
});
|
||||
export class UserListRequest extends createZodDto(UserListRequestSchema) {}
|
||||
|
||||
export const UserListResponseSchema = z.object({
|
||||
users: z.array(EUserSchema),
|
||||
count: IsPosInt(),
|
||||
|
||||
@@ -12,8 +12,8 @@ export enum Permission {
|
||||
|
||||
Settings = 'settings', // Ability to view (personal) settings
|
||||
|
||||
ImageManage = 'image-manage', // Ability to manage everyones manage images
|
||||
UserManage = 'user-manage', // Allow modification of users
|
||||
RoleManage = 'role-manage', // Allow modification of roles
|
||||
SysPrefManage = 'syspref-manage',
|
||||
ImageAdmin = 'image-admin', // Ability to manage everyones manage images
|
||||
UserAdmin = 'user-admin', // Allow modification of users
|
||||
RoleAdmin = 'role-admin', // Allow modification of roles
|
||||
SysPrefAdmin = 'syspref-admin',
|
||||
}
|
||||
|
||||
211
yarn.lock
211
yarn.lock
@@ -1331,11 +1331,10 @@
|
||||
secure-json-parse "^2.4.0"
|
||||
stream-wormhole "^1.1.0"
|
||||
|
||||
"@fastify/static@^5.0.0", "fastify-static@npm:@fastify/static":
|
||||
name fastify-static
|
||||
version "5.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@fastify/static/-/static-5.0.1.tgz#6bb6b94c2b51d9fafb06261b79ed5da5038dd5a1"
|
||||
integrity sha512-0lReUKWVOt2i5i1KoBLYsbcMBthq5eiEoUQrFceoXJkCv+OyA0iLl6hGxcmnMRxLsl/Netrzt1NNOpg4muCcuw==
|
||||
"@fastify/static@^5.0.0", fastify-static@^4.7.0, "fastify-static@npm:@fastify/static":
|
||||
version "5.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@fastify/static/-/static-5.0.2.tgz#46cee887393b422f4b10a46a14e970a64dd086d4"
|
||||
integrity sha512-HvyXZ5a7hUHoSBRq9jKUuKIUCkHMkCDcmiAeEmixXlGOx8pEWx3NYOIaiivcjWa6/NLvfdUT+t/jzfVQ2PA7Gw==
|
||||
dependencies:
|
||||
content-disposition "^0.5.3"
|
||||
encoding-negotiator "^2.0.1"
|
||||
@@ -1414,9 +1413,9 @@
|
||||
integrity sha512-SfJxIxNVYLTsKwzB3MoOQ1yxf4w/E6MdkvTgrgAt1bfxjSrLUoHMKrDOykwN14q65waezZIdqDneUIPh4/sKxg==
|
||||
|
||||
"@jridgewell/sourcemap-codec@^1.4.10":
|
||||
version "1.4.11"
|
||||
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec"
|
||||
integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==
|
||||
version "1.4.12"
|
||||
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.12.tgz#7ed98f6fa525ffb7c56a2cbecb5f7bb91abd2baf"
|
||||
integrity sha512-az/NhpIwP3K33ILr0T2bso+k2E/SLf8Yidd8mHl0n6sCQ4YdyC8qDhZA6kOPDNDBA56ZnIjngVl0U3jREA0BUA==
|
||||
|
||||
"@jridgewell/trace-mapping@^0.3.0", "@jridgewell/trace-mapping@^0.3.9":
|
||||
version "0.3.9"
|
||||
@@ -1762,9 +1761,9 @@
|
||||
"@types/estree" "*"
|
||||
|
||||
"@types/eslint@*":
|
||||
version "8.4.1"
|
||||
resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.1.tgz#c48251553e8759db9e656de3efc846954ac32304"
|
||||
integrity sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA==
|
||||
version "8.4.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.2.tgz#48f2ac58ab9c631cb68845c3d956b28f79fad575"
|
||||
integrity sha512-Z1nseZON+GEnFjJc04sv4NSALGjhFwy6K0HXt7qsn5ArfAKtb63dXNJHf+1YW6IpOIYRBGUbu3GwJdj8DGnCjA==
|
||||
dependencies:
|
||||
"@types/estree" "*"
|
||||
"@types/json-schema" "*"
|
||||
@@ -1794,9 +1793,9 @@
|
||||
"@types/serve-static" "*"
|
||||
|
||||
"@types/http-proxy@^1.17.8":
|
||||
version "1.17.8"
|
||||
resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.8.tgz#968c66903e7e42b483608030ee85800f22d03f55"
|
||||
integrity sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==
|
||||
version "1.17.9"
|
||||
resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.9.tgz#7f0e7931343761efde1e2bf48c40f02f3f75705a"
|
||||
integrity sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
@@ -1956,13 +1955,13 @@
|
||||
"@types/node" "*"
|
||||
|
||||
"@typescript-eslint/eslint-plugin@^5.21.0":
|
||||
version "5.21.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.21.0.tgz#bfc22e0191e6404ab1192973b3b4ea0461c1e878"
|
||||
integrity sha512-fTU85q8v5ZLpoZEyn/u1S2qrFOhi33Edo2CZ0+q1gDaWWm0JuPh3bgOyU8lM0edIEYgKLDkPFiZX2MOupgjlyg==
|
||||
version "5.22.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.22.0.tgz#7b52a0de2e664044f28b36419210aea4ab619e2a"
|
||||
integrity sha512-YCiy5PUzpAeOPGQ7VSGDEY2NeYUV1B0swde2e0HzokRsHBYjSdF6DZ51OuRZxVPHx0032lXGLvOMls91D8FXlg==
|
||||
dependencies:
|
||||
"@typescript-eslint/scope-manager" "5.21.0"
|
||||
"@typescript-eslint/type-utils" "5.21.0"
|
||||
"@typescript-eslint/utils" "5.21.0"
|
||||
"@typescript-eslint/scope-manager" "5.22.0"
|
||||
"@typescript-eslint/type-utils" "5.22.0"
|
||||
"@typescript-eslint/utils" "5.22.0"
|
||||
debug "^4.3.2"
|
||||
functional-red-black-tree "^1.0.1"
|
||||
ignore "^5.1.8"
|
||||
@@ -1971,68 +1970,68 @@
|
||||
tsutils "^3.21.0"
|
||||
|
||||
"@typescript-eslint/parser@^5.21.0":
|
||||
version "5.21.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.21.0.tgz#6cb72673dbf3e1905b9c432175a3c86cdaf2071f"
|
||||
integrity sha512-8RUwTO77hstXUr3pZoWZbRQUxXcSXafZ8/5gpnQCfXvgmP9gpNlRGlWzvfbEQ14TLjmtU8eGnONkff8U2ui2Eg==
|
||||
version "5.22.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.22.0.tgz#7bedf8784ef0d5d60567c5ba4ce162460e70c178"
|
||||
integrity sha512-piwC4krUpRDqPaPbFaycN70KCP87+PC5WZmrWs+DlVOxxmF+zI6b6hETv7Quy4s9wbkV16ikMeZgXsvzwI3icQ==
|
||||
dependencies:
|
||||
"@typescript-eslint/scope-manager" "5.21.0"
|
||||
"@typescript-eslint/types" "5.21.0"
|
||||
"@typescript-eslint/typescript-estree" "5.21.0"
|
||||
"@typescript-eslint/scope-manager" "5.22.0"
|
||||
"@typescript-eslint/types" "5.22.0"
|
||||
"@typescript-eslint/typescript-estree" "5.22.0"
|
||||
debug "^4.3.2"
|
||||
|
||||
"@typescript-eslint/scope-manager@5.21.0":
|
||||
version "5.21.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.21.0.tgz#a4b7ed1618f09f95e3d17d1c0ff7a341dac7862e"
|
||||
integrity sha512-XTX0g0IhvzcH/e3393SvjRCfYQxgxtYzL3UREteUneo72EFlt7UNoiYnikUtmGVobTbhUDByhJ4xRBNe+34kOQ==
|
||||
"@typescript-eslint/scope-manager@5.22.0":
|
||||
version "5.22.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.22.0.tgz#590865f244ebe6e46dc3e9cab7976fc2afa8af24"
|
||||
integrity sha512-yA9G5NJgV5esANJCO0oF15MkBO20mIskbZ8ijfmlKIvQKg0ynVKfHZ15/nhAJN5m8Jn3X5qkwriQCiUntC9AbA==
|
||||
dependencies:
|
||||
"@typescript-eslint/types" "5.21.0"
|
||||
"@typescript-eslint/visitor-keys" "5.21.0"
|
||||
"@typescript-eslint/types" "5.22.0"
|
||||
"@typescript-eslint/visitor-keys" "5.22.0"
|
||||
|
||||
"@typescript-eslint/type-utils@5.21.0":
|
||||
version "5.21.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.21.0.tgz#ff89668786ad596d904c21b215e5285da1b6262e"
|
||||
integrity sha512-MxmLZj0tkGlkcZCSE17ORaHl8Th3JQwBzyXL/uvC6sNmu128LsgjTX0NIzy+wdH2J7Pd02GN8FaoudJntFvSOw==
|
||||
"@typescript-eslint/type-utils@5.22.0":
|
||||
version "5.22.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.22.0.tgz#0c0e93b34210e334fbe1bcb7250c470f4a537c19"
|
||||
integrity sha512-iqfLZIsZhK2OEJ4cQ01xOq3NaCuG5FQRKyHicA3xhZxMgaxQazLUHbH/B2k9y5i7l3+o+B5ND9Mf1AWETeMISA==
|
||||
dependencies:
|
||||
"@typescript-eslint/utils" "5.21.0"
|
||||
"@typescript-eslint/utils" "5.22.0"
|
||||
debug "^4.3.2"
|
||||
tsutils "^3.21.0"
|
||||
|
||||
"@typescript-eslint/types@5.21.0":
|
||||
version "5.21.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.21.0.tgz#8cdb9253c0dfce3f2ab655b9d36c03f72e684017"
|
||||
integrity sha512-XnOOo5Wc2cBlq8Lh5WNvAgHzpjnEzxn4CJBwGkcau7b/tZ556qrWXQz4DJyChYg8JZAD06kczrdgFPpEQZfDsA==
|
||||
"@typescript-eslint/types@5.22.0":
|
||||
version "5.22.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.22.0.tgz#50a4266e457a5d4c4b87ac31903b28b06b2c3ed0"
|
||||
integrity sha512-T7owcXW4l0v7NTijmjGWwWf/1JqdlWiBzPqzAWhobxft0SiEvMJB56QXmeCQjrPuM8zEfGUKyPQr/L8+cFUBLw==
|
||||
|
||||
"@typescript-eslint/typescript-estree@5.21.0":
|
||||
version "5.21.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.21.0.tgz#9f0c233e28be2540eaed3df050f0d54fb5aa52de"
|
||||
integrity sha512-Y8Y2T2FNvm08qlcoSMoNchh9y2Uj3QmjtwNMdRQkcFG7Muz//wfJBGBxh8R7HAGQFpgYpdHqUpEoPQk+q9Kjfg==
|
||||
"@typescript-eslint/typescript-estree@5.22.0":
|
||||
version "5.22.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.22.0.tgz#e2116fd644c3e2fda7f4395158cddd38c0c6df97"
|
||||
integrity sha512-EyBEQxvNjg80yinGE2xdhpDYm41so/1kOItl0qrjIiJ1kX/L/L8WWGmJg8ni6eG3DwqmOzDqOhe6763bF92nOw==
|
||||
dependencies:
|
||||
"@typescript-eslint/types" "5.21.0"
|
||||
"@typescript-eslint/visitor-keys" "5.21.0"
|
||||
"@typescript-eslint/types" "5.22.0"
|
||||
"@typescript-eslint/visitor-keys" "5.22.0"
|
||||
debug "^4.3.2"
|
||||
globby "^11.0.4"
|
||||
is-glob "^4.0.3"
|
||||
semver "^7.3.5"
|
||||
tsutils "^3.21.0"
|
||||
|
||||
"@typescript-eslint/utils@5.21.0":
|
||||
version "5.21.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.21.0.tgz#51d7886a6f0575e23706e5548c7e87bce42d7c18"
|
||||
integrity sha512-q/emogbND9wry7zxy7VYri+7ydawo2HDZhRZ5k6yggIvXa7PvBbAAZ4PFH/oZLem72ezC4Pr63rJvDK/sTlL8Q==
|
||||
"@typescript-eslint/utils@5.22.0":
|
||||
version "5.22.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.22.0.tgz#1f2c4897e2cf7e44443c848a13c60407861babd8"
|
||||
integrity sha512-HodsGb037iobrWSUMS7QH6Hl1kppikjA1ELiJlNSTYf/UdMEwzgj0WIp+lBNb6WZ3zTwb0tEz51j0Wee3iJ3wQ==
|
||||
dependencies:
|
||||
"@types/json-schema" "^7.0.9"
|
||||
"@typescript-eslint/scope-manager" "5.21.0"
|
||||
"@typescript-eslint/types" "5.21.0"
|
||||
"@typescript-eslint/typescript-estree" "5.21.0"
|
||||
"@typescript-eslint/scope-manager" "5.22.0"
|
||||
"@typescript-eslint/types" "5.22.0"
|
||||
"@typescript-eslint/typescript-estree" "5.22.0"
|
||||
eslint-scope "^5.1.1"
|
||||
eslint-utils "^3.0.0"
|
||||
|
||||
"@typescript-eslint/visitor-keys@5.21.0":
|
||||
version "5.21.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.21.0.tgz#453fb3662409abaf2f8b1f65d515699c888dd8ae"
|
||||
integrity sha512-SX8jNN+iHqAF0riZQMkm7e8+POXa/fXw5cxL+gjpyP+FI+JVNhii53EmQgDAfDcBpFekYSlO0fGytMQwRiMQCA==
|
||||
"@typescript-eslint/visitor-keys@5.22.0":
|
||||
version "5.22.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.22.0.tgz#f49c0ce406944ffa331a1cfabeed451ea4d0909c"
|
||||
integrity sha512-DbgTqn2Dv5RFWluG88tn0pP6Ex0ROF+dpDO1TNNZdRtLjUr6bdznjA6f/qNqJLjd2PgguAES2Zgxh/JzwzETDg==
|
||||
dependencies:
|
||||
"@typescript-eslint/types" "5.21.0"
|
||||
"@typescript-eslint/types" "5.22.0"
|
||||
eslint-visitor-keys "^3.0.0"
|
||||
|
||||
"@webassemblyjs/ast@1.11.1":
|
||||
@@ -2448,12 +2447,12 @@ atomic-sleep@^1.0.0:
|
||||
integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==
|
||||
|
||||
autoprefixer@^10.4.4:
|
||||
version "10.4.6"
|
||||
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.6.tgz#ce6eba3aea7c03adf0f6a907bd594fd170b3f0b6"
|
||||
integrity sha512-Rvzel0AZO9tJNm3ydySK80PpkWoEZTGC5bHUh/xbrP8qJCy08NFBwNGPcozy3d3SDIM0b2kNxw2K7jAIYFF01A==
|
||||
version "10.4.7"
|
||||
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.7.tgz#1db8d195f41a52ca5069b7593be167618edbbedf"
|
||||
integrity sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==
|
||||
dependencies:
|
||||
browserslist "^4.20.3"
|
||||
caniuse-lite "^1.0.30001334"
|
||||
caniuse-lite "^1.0.30001335"
|
||||
fraction.js "^4.2.0"
|
||||
normalize-range "^0.1.2"
|
||||
picocolors "^1.0.0"
|
||||
@@ -2769,7 +2768,7 @@ camelcase@^5.3.1:
|
||||
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
|
||||
integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
|
||||
|
||||
caniuse-lite@^1.0.30001332, caniuse-lite@^1.0.30001334:
|
||||
caniuse-lite@^1.0.30001332, caniuse-lite@^1.0.30001335:
|
||||
version "1.0.30001335"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001335.tgz#899254a0b70579e5a957c32dced79f0727c61f2a"
|
||||
integrity sha512-ddP1Tgm7z2iIxu6QTtbZUv6HJxSaV/PZeSrWFZtbY4JZ69tOeNhBCl3HyRQgeNZKE5AOn1kpV7fhljigy0Ty3w==
|
||||
@@ -3039,7 +3038,7 @@ cookie-signature@1.0.6:
|
||||
resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
|
||||
integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
|
||||
|
||||
cookie@0.5.0:
|
||||
cookie@0.5.0, cookie@^0.5.0:
|
||||
version "0.5.0"
|
||||
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b"
|
||||
integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==
|
||||
@@ -3069,9 +3068,9 @@ copy-webpack-plugin@10.2.4:
|
||||
serialize-javascript "^6.0.0"
|
||||
|
||||
core-js-compat@^3.20.2, core-js-compat@^3.21.0:
|
||||
version "3.22.3"
|
||||
resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.22.3.tgz#9b10d786052d042bc97ee8df9c0d1fb6a49c2005"
|
||||
integrity sha512-wliMbvPI2idgFWpFe7UEyHMvu6HWgW8WA+HnDRtgzoSDYvXFMpoGX1H3tPDDXrcfUSyXafCLDd7hOeMQHEZxGw==
|
||||
version "3.22.4"
|
||||
resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.22.4.tgz#d700f451e50f1d7672dcad0ac85d910e6691e579"
|
||||
integrity sha512-dIWcsszDezkFZrfm1cnB4f/J85gyhiCpxbgBdohWCDtSVuAaChTSpPV7ldOQf/Xds2U5xCIJZOK82G4ZPAIswA==
|
||||
dependencies:
|
||||
browserslist "^4.20.3"
|
||||
semver "7.0.0"
|
||||
@@ -3185,9 +3184,9 @@ css@^3.0.0:
|
||||
source-map-resolve "^0.6.0"
|
||||
|
||||
cssdb@^6.5.0:
|
||||
version "6.6.0"
|
||||
resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-6.6.0.tgz#e4562e2aaba5b23e7d9e6555ba64298990e1ba96"
|
||||
integrity sha512-hXoXDYrxmAGNh+vgg39WJArCpFIaU3O2q7ud+bEobQ6Fbl2tjPasl3Wt8MKkxlNQEIZqieh0DBsz92eSKI4ghw==
|
||||
version "6.6.1"
|
||||
resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-6.6.1.tgz#2637fdc57eab452849488de7e8d961ec06f2fe8f"
|
||||
integrity sha512-0/nZEYfp8SFEzJkMud8NxZJsGfD7RHDJti6GRBLZptIwAzco6RTx1KgwFl4mGWsYS0ZNbCrsY9QryhQ4ldF3Mg==
|
||||
|
||||
cssesc@^3.0.0:
|
||||
version "3.0.0"
|
||||
@@ -3403,9 +3402,9 @@ ee-first@1.1.1:
|
||||
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
|
||||
|
||||
electron-to-chromium@^1.4.118:
|
||||
version "1.4.129"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.129.tgz#c675793885721beefff99da50f57c6525c2cd238"
|
||||
integrity sha512-GgtN6bsDtHdtXJtlMYZWGB/uOyjZWjmRDumXTas7dGBaB9zUyCjzHet1DY2KhyHN8R0GLbzZWqm4efeddqqyRQ==
|
||||
version "1.4.132"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.132.tgz#b64599eb018221e52e2e4129de103b03a413c55d"
|
||||
integrity sha512-JYdZUw/1068NWN+SwXQ7w6Ue0bWYGihvSUNNQwurvcDV/SM7vSiGZ3NuFvFgoEiCs4kB8xs3cX2an3wB7d4TBw==
|
||||
|
||||
emoji-regex@^8.0.0:
|
||||
version "8.0.0"
|
||||
@@ -3958,27 +3957,6 @@ fastify-plugin@^3.0.0:
|
||||
resolved "https://registry.yarnpkg.com/fastify-plugin/-/fastify-plugin-3.0.1.tgz#79e84c29f401020f38b524f59f2402103fd21ed2"
|
||||
integrity sha512-qKcDXmuZadJqdTm6vlCqioEbyewF60b/0LOFCcYN1B6BIZGlYJumWWOYs70SFYLDAH4YqdE1cxH/RKMG7rFxgA==
|
||||
|
||||
"fastify-static-deprecated@npm:fastify-static@4.6.1":
|
||||
version "4.6.1"
|
||||
resolved "https://registry.yarnpkg.com/fastify-static/-/fastify-static-4.6.1.tgz#687131da76f1d4391fb8b47f71ea2118cdc85803"
|
||||
integrity sha512-vy7N28U4AMhuOim12ZZWHulEE6OQKtzZbHgiB8Zj4llUuUQXPka0WHAQI3njm1jTCx4W6fixUHfpITxweMtAIA==
|
||||
dependencies:
|
||||
content-disposition "^0.5.3"
|
||||
encoding-negotiator "^2.0.1"
|
||||
fastify-plugin "^3.0.0"
|
||||
glob "^7.1.4"
|
||||
p-limit "^3.1.0"
|
||||
readable-stream "^3.4.0"
|
||||
send "^0.17.1"
|
||||
|
||||
fastify-static@^4.7.0:
|
||||
version "4.7.0"
|
||||
resolved "https://registry.yarnpkg.com/fastify-static/-/fastify-static-4.7.0.tgz#e802658d69c1dcddb380b9afc2456d467a3494be"
|
||||
integrity sha512-zZhCfJv/hkmud2qhWqpU3K9XVAuy3+IV8Tp9BC5J5U+GyA2XwoB6h8lh9GqpEIqdXOw01WyWQllV7dOWVyAlXg==
|
||||
dependencies:
|
||||
fastify-static-deprecated "npm:fastify-static@4.6.1"
|
||||
process-warning "^1.0.0"
|
||||
|
||||
fastify@3.28.0:
|
||||
version "3.28.0"
|
||||
resolved "https://registry.yarnpkg.com/fastify/-/fastify-3.28.0.tgz#14d939a2f176b82af1094de7abcb0b2d83bcff8f"
|
||||
@@ -4108,9 +4086,9 @@ flatted@^3.1.0:
|
||||
integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==
|
||||
|
||||
follow-redirects@^1.0.0, follow-redirects@^1.14.8:
|
||||
version "1.14.9"
|
||||
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7"
|
||||
integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==
|
||||
version "1.15.0"
|
||||
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.0.tgz#06441868281c86d0dda4ad8bdaead2d02dca89d4"
|
||||
integrity sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ==
|
||||
|
||||
fork-ts-checker-webpack-plugin@7.2.3:
|
||||
version "7.2.3"
|
||||
@@ -4205,9 +4183,9 @@ functional-red-black-tree@^1.0.1:
|
||||
integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
|
||||
|
||||
fuse.js@^6.5.3:
|
||||
version "6.5.3"
|
||||
resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-6.5.3.tgz#7446c0acbc4ab0ab36fa602e97499bdb69452b93"
|
||||
integrity sha512-sA5etGE7yD/pOqivZRBvUBd/NaL2sjAu6QuSaFoe1H2BrJSkH/T/UXAJ8CdXdw7DvY3Hs8CXKYkDWX7RiP5KOg==
|
||||
version "6.6.0"
|
||||
resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-6.6.0.tgz#9c0dd9337731ebc6541abf44aa3aa9bb6cb5acb6"
|
||||
integrity sha512-4CvUk6GBo1b00xIcCLEoHQX3xwaYIwUX0lD8hDaYUavvSgE8aaySe9Z+fb4bdvzXXbYUfrllwN34U3wwUsG+oA==
|
||||
|
||||
gauge@^3.0.0:
|
||||
version "3.0.2"
|
||||
@@ -5071,7 +5049,7 @@ license-webpack-plugin@4.0.2:
|
||||
dependencies:
|
||||
webpack-sources "^3.0.0"
|
||||
|
||||
light-my-request@4.9.0, light-my-request@^4.2.0:
|
||||
light-my-request@4.9.0:
|
||||
version "4.9.0"
|
||||
resolved "https://registry.yarnpkg.com/light-my-request/-/light-my-request-4.9.0.tgz#83559c7ce7e503466113e36f40a1d596a1886626"
|
||||
integrity sha512-b1U3z4OVPoO/KanT14NRkXMr9rRtXAiq0ORqNrqhDyb5bGkZjAdEc6GRN1GWCfgaLBG+aq73qkCLDNeB3c2sLw==
|
||||
@@ -5081,6 +5059,16 @@ light-my-request@4.9.0, light-my-request@^4.2.0:
|
||||
process-warning "^1.0.0"
|
||||
set-cookie-parser "^2.4.1"
|
||||
|
||||
light-my-request@^4.2.0:
|
||||
version "4.10.1"
|
||||
resolved "https://registry.yarnpkg.com/light-my-request/-/light-my-request-4.10.1.tgz#09a93fa5af6a7b4339322b2e2b3f5d1c9679ed02"
|
||||
integrity sha512-l+zWk0HXGhGzY7IYTZnYEqIpj3Mpcyk2f8+FkKUyREywvaiWCf2jyQVxpasKRsploY/nVpoqTlxx72CIeQNcIQ==
|
||||
dependencies:
|
||||
ajv "^8.1.0"
|
||||
cookie "^0.5.0"
|
||||
process-warning "^1.0.0"
|
||||
set-cookie-parser "^2.4.1"
|
||||
|
||||
lines-and-columns@^1.1.6:
|
||||
version "1.2.4"
|
||||
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
|
||||
@@ -5355,12 +5343,7 @@ minimatch@^3.0.4:
|
||||
dependencies:
|
||||
brace-expansion "^1.1.7"
|
||||
|
||||
minimist@1.2.6, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.6:
|
||||
version "1.2.6"
|
||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
|
||||
integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
|
||||
|
||||
"minimist@npm:minimist-lite":
|
||||
minimist@1.2.6, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.6, "minimist@npm:minimist-lite":
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/minimist-lite/-/minimist-lite-2.2.1.tgz#abb71db2c9b454d7cf4496868c03e9802de9934d"
|
||||
integrity sha512-RSrWIRWGYoM2TDe102s7aIyeSipXMIXKb1fSHYx1tAbxAV0z4g2xR6ra3oPzkTqFb0EIUz1H3A/qvYYeDd+/qQ==
|
||||
@@ -5492,9 +5475,9 @@ nan@^2.14.x:
|
||||
integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==
|
||||
|
||||
nanoid@^3.3.1, nanoid@^3.3.3:
|
||||
version "3.3.3"
|
||||
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25"
|
||||
integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==
|
||||
version "3.3.4"
|
||||
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab"
|
||||
integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==
|
||||
|
||||
napi-build-utils@^1.0.1:
|
||||
version "1.0.2"
|
||||
@@ -5670,9 +5653,9 @@ npm-package-arg@9.0.2, npm-package-arg@^9.0.0, npm-package-arg@^9.0.1:
|
||||
validate-npm-package-name "^4.0.0"
|
||||
|
||||
npm-packlist@^5.0.0:
|
||||
version "5.0.2"
|
||||
resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-5.0.2.tgz#a5eb2503faec92ad6853a2bbb2231dced6cfc549"
|
||||
integrity sha512-jLhcNisUgpz6v2KC75qSeEYAM8UBMYjQ2OhlCOJjB4Ovu7XXnD25UqZ6hOQNeGShL/2ju3LL2E/zBbsuzkIQ8w==
|
||||
version "5.0.3"
|
||||
resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-5.0.3.tgz#0aec03bc2d6d488ca71396d7afb463563c3274f7"
|
||||
integrity sha512-KuSbzgejxdsAWbNNyEs8EsyDHsO+nJF6k+9WuWzFbSNh5tFHs4lDApXw7kntKpuehfp8lKRzJkMtz0+WmGvTIw==
|
||||
dependencies:
|
||||
glob "^8.0.1"
|
||||
ignore-walk "^5.0.1"
|
||||
|
||||
Reference in New Issue
Block a user