diff --git a/backend/src/collections/user-db/user-db.service.ts b/backend/src/collections/user-db/user-db.service.ts index 3c79a6b..192da46 100644 --- a/backend/src/collections/user-db/user-db.service.ts +++ b/backend/src/collections/user-db/user-db.service.ts @@ -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'; diff --git a/backend/src/decorators/permissions.decorator.ts b/backend/src/decorators/permissions.decorator.ts index 55e6791..f408c98 100644 --- a/backend/src/decorators/permissions.decorator.ts +++ b/backend/src/decorators/permissions.decorator.ts @@ -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; + }, +); diff --git a/backend/src/managers/auth/guards/main.guard.ts b/backend/src/managers/auth/guards/main.guard.ts index 50f019f..6db9c64 100644 --- a/backend/src/managers/auth/guards/main.guard.ts +++ b/backend/src/managers/auth/guards/main.guard.ts @@ -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'); diff --git a/backend/src/models/interfaces/authrequest.dto.ts b/backend/src/models/interfaces/authrequest.dto.ts index 2bf5561..aec502e 100644 --- a/backend/src/models/interfaces/authrequest.dto.ts +++ b/backend/src/models/interfaces/authrequest.dto.ts @@ -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; } diff --git a/backend/src/routes/api/pref/sys-pref.controller.ts b/backend/src/routes/api/pref/sys-pref.controller.ts index 7ba3ae5..c633949 100644 --- a/backend/src/routes/api/pref/sys-pref.controller.ts +++ b/backend/src/routes/api/pref/sys-pref.controller.ts @@ -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'); diff --git a/backend/src/routes/api/roles/roles.controller.ts b/backend/src/routes/api/roles/roles.controller.ts index 794ea34..42c4add 100644 --- a/backend/src/routes/api/roles/roles.controller.ts +++ b/backend/src/routes/api/roles/roles.controller.ts @@ -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'); diff --git a/backend/src/routes/api/user/user-manage.controller.ts b/backend/src/routes/api/user/user-manage.controller.ts index 91a9773..5b95188 100644 --- a/backend/src/routes/api/user/user-manage.controller.ts +++ b/backend/src/routes/api/user/user-manage.controller.ts @@ -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 { + async listUsersPaged( + @Body() body: UserListRequest, + ): Promise { const users = await this.usersService.findMany(body.count, body.page); if (HasFailed(users)) { this.logger.warn(users.getReason()); diff --git a/backend/src/routes/api/user/user.module.ts b/backend/src/routes/api/user/user.module.ts index 590f711..2e625c3 100644 --- a/backend/src/routes/api/user/user.module.ts +++ b/backend/src/routes/api/user/user.module.ts @@ -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 {} diff --git a/backend/src/routes/image/image-manage.controller.ts b/backend/src/routes/image/image-manage.controller.ts index 36707df..9baa050 100644 --- a/backend/src/routes/image/image-manage.controller.ts +++ b/backend/src/routes/image/image-manage.controller.ts @@ -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 { + if (!isImageAdmin) { + body.user_id = userid; + } + const images = await this.imagesService.findMany( body.count, body.page, diff --git a/frontend/src/app/guards/permission.guard.ts b/frontend/src/app/guards/permission.guard.ts index 2f53de3..3b7d721 100644 --- a/frontend/src/app/guards/permission.guard.ts +++ b/frontend/src/app/guards/permission.guard.ts @@ -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; } diff --git a/frontend/src/app/i18n/permissions.i18n.ts b/frontend/src/app/i18n/permissions.i18n.ts index fa31384..08e5661 100644 --- a/frontend/src/app/i18n/permissions.i18n.ts +++ b/frontend/src/app/i18n/permissions.i18n.ts @@ -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', }; diff --git a/frontend/src/app/routes/settings/settings.routing.module.ts b/frontend/src/app/routes/settings/settings.routing.module.ts index 30eb37a..572249f 100644 --- a/frontend/src/app/routes/settings/settings.routing.module.ts +++ b/frontend/src/app/routes/settings/settings.routing.module.ts @@ -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', diff --git a/frontend/src/app/routes/settings/users/settings-users-edit/settings-users-edit.component.ts b/frontend/src/app/routes/settings/users/settings-users-edit/settings-users-edit.component.ts index a1906fd..e6274c3 100644 --- a/frontend/src/app/routes/settings/users/settings-users-edit/settings-users-edit.component.ts +++ b/frontend/src/app/routes/settings/users/settings-users-edit/settings-users-edit.component.ts @@ -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 diff --git a/frontend/src/app/routes/settings/users/settings-users.component.ts b/frontend/src/app/routes/settings/users/settings-users.component.ts index 002c35e..5cfb3bc 100644 --- a/frontend/src/app/routes/settings/users/settings-users.component.ts +++ b/frontend/src/app/routes/settings/users/settings-users.component.ts @@ -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 ) {} diff --git a/frontend/src/app/services/api/image.service.ts b/frontend/src/app/services/api/image.service.ts index a13fe03..9bcb9da 100644 --- a/frontend/src/app/services/api/image.service.ts +++ b/frontend/src/app/services/api/image.service.ts @@ -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', }) diff --git a/frontend/src/app/services/api/sys-pref.service.ts b/frontend/src/app/services/api/sys-pref.service.ts index d996ad8..6800590 100644 --- a/frontend/src/app/services/api/sys-pref.service.ts +++ b/frontend/src/app/services/api/sys-pref.service.ts @@ -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(); } diff --git a/frontend/src/app/services/api/user-manage.service.ts b/frontend/src/app/services/api/user-manage.service.ts index da950ca..467fcda 100644 --- a/frontend/src/app/services/api/user-manage.service.ts +++ b/frontend/src/app/services/api/user-manage.service.ts @@ -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 { diff --git a/shared/src/dto/api/common.dto.ts b/shared/src/dto/api/common.dto.ts deleted file mode 100644 index 3e20152..0000000 --- a/shared/src/dto/api/common.dto.ts +++ /dev/null @@ -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) {} diff --git a/shared/src/dto/api/image-manage.dto.ts b/shared/src/dto/api/image-manage.dto.ts index 3721efb..f49aa78 100644 --- a/shared/src/dto/api/image-manage.dto.ts +++ b/shared/src/dto/api/image-manage.dto.ts @@ -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(), diff --git a/shared/src/dto/api/user-manage.dto.ts b/shared/src/dto/api/user-manage.dto.ts index 55f32ec..c8e66c8 100644 --- a/shared/src/dto/api/user-manage.dto.ts +++ b/shared/src/dto/api/user-manage.dto.ts @@ -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(), diff --git a/shared/src/dto/permissions.dto.ts b/shared/src/dto/permissions.dto.ts index 4515127..518d5ab 100644 --- a/shared/src/dto/permissions.dto.ts +++ b/shared/src/dto/permissions.dto.ts @@ -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', } diff --git a/yarn.lock b/yarn.lock index 74b67cb..7db36c5 100644 --- a/yarn.lock +++ b/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"