From 9496a51e580b0f543933c68dc299a5cc499b8432 Mon Sep 17 00:00:00 2001 From: liverforpresent Date: Sat, 6 Dec 2025 15:25:47 +0900 Subject: [PATCH 01/14] =?UTF-8?q?chore:=20organization=20=EB=B6=84?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/create/create.command.ts | 3 +- .../application/create/create.use-case.ts | 4 +-- .../application/delete/delete.command.ts | 3 ++ .../application/delete/delete.use-case.ts | 2 +- .../application/update/update.command.ts | 4 +-- .../application/update/update.use-case.ts | 2 +- .../domain/organization.reader.ts | 7 ++++ .../domain/organization.store.ts | 0 .../organization}/domain/organization.ts | 0 .../organization/domain/organization.view.ts | 2 +- .../infrastructure/organization.entity.ts | 0 .../infrastructure/organization.mapper.ts | 0 .../organization.reader.impl.ts | 4 +-- .../infrastructure/organization.store.impl.ts | 0 .../organization.view.entity.ts | 0 iam/organization/organization.module.ts | 32 +++++++++++++++++++ .../update-organization.request.dto.ts | 2 +- .../presentation/organization.controller.ts | 17 ++++++---- .../presentation/organization.docs.ts | 8 ++--- .../create-organization.listener.ts | 19 ----------- .../delete-organization.command.ts | 5 --- .../command/organization.command.module.ts | 27 ---------------- src/organization/organization.module.ts | 8 ----- .../query/domain/organization.reader.ts | 7 ---- .../query/organization.query.module.ts | 16 ---------- 25 files changed, 66 insertions(+), 106 deletions(-) rename src/organization/command/application/create-organization/create-organization.command.ts => iam/organization/application/create/create.command.ts (67%) rename src/organization/command/application/create-organization/create-organization.use-case.ts => iam/organization/application/create/create.use-case.ts (91%) create mode 100644 iam/organization/application/delete/delete.command.ts rename src/organization/command/application/delete-organization/delete-organization.use-case.ts => iam/organization/application/delete/delete.use-case.ts (91%) rename src/organization/command/application/update-organization/update-organization.command.ts => iam/organization/application/update/update.command.ts (57%) rename src/organization/command/application/update-organization/update-organization.use-case.ts => iam/organization/application/update/update.use-case.ts (91%) create mode 100644 iam/organization/domain/organization.reader.ts rename {src/organization/command => iam/organization}/domain/organization.store.ts (100%) rename {src/organization/command => iam/organization}/domain/organization.ts (100%) rename src/organization/query/domain/organization.model.ts => iam/organization/domain/organization.view.ts (78%) rename {src/organization/command => iam/organization}/infrastructure/organization.entity.ts (100%) rename {src/organization/command => iam/organization}/infrastructure/organization.mapper.ts (100%) rename {src/organization/query => iam/organization}/infrastructure/organization.reader.impl.ts (89%) rename {src/organization/command => iam/organization}/infrastructure/organization.store.impl.ts (100%) rename {src/organization/query => iam/organization}/infrastructure/organization.view.entity.ts (100%) create mode 100644 iam/organization/organization.module.ts rename {src/organization/command => iam/organization}/presentation/dto/request/update-organization.request.dto.ts (91%) rename src/organization/command/presentation/organization.command.controller.ts => iam/organization/presentation/organization.controller.ts (60%) rename src/organization/command/presentation/organization.command.docs.ts => iam/organization/presentation/organization.docs.ts (73%) delete mode 100644 src/organization/command/application/create-organization/create-organization.listener.ts delete mode 100644 src/organization/command/application/delete-organization/delete-organization.command.ts delete mode 100644 src/organization/command/organization.command.module.ts delete mode 100644 src/organization/organization.module.ts delete mode 100644 src/organization/query/domain/organization.reader.ts delete mode 100644 src/organization/query/organization.query.module.ts diff --git a/src/organization/command/application/create-organization/create-organization.command.ts b/iam/organization/application/create/create.command.ts similarity index 67% rename from src/organization/command/application/create-organization/create-organization.command.ts rename to iam/organization/application/create/create.command.ts index 579d42b..b16b90b 100644 --- a/src/organization/command/application/create-organization/create-organization.command.ts +++ b/iam/organization/application/create/create.command.ts @@ -1,7 +1,6 @@ -import { ICommand } from '@nestjs/cqrs'; import { Identifier } from 'src/shared/core/domain/identifier'; -export class CreateOrganizationCommand implements ICommand { +export class CreateOrganizationCommand { constructor( public readonly organizationId: Identifier, public readonly name: string, diff --git a/src/organization/command/application/create-organization/create-organization.use-case.ts b/iam/organization/application/create/create.use-case.ts similarity index 91% rename from src/organization/command/application/create-organization/create-organization.use-case.ts rename to iam/organization/application/create/create.use-case.ts index 03bae1f..a3a6d7d 100644 --- a/src/organization/command/application/create-organization/create-organization.use-case.ts +++ b/iam/organization/application/create/create.use-case.ts @@ -1,8 +1,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { CommandHandler } from '@nestjs/cqrs'; -import { CreateOrganizationCommand } from './create-organization.command'; -import { Organization } from '../../domain/organization'; +import { CreateOrganizationCommand } from './create.command'; import { ORGANIZATION_STORE, OrganizationStore } from '../../domain/organization.store'; +import { Organization } from '../../domain/organization'; @Injectable() @CommandHandler(CreateOrganizationCommand) diff --git a/iam/organization/application/delete/delete.command.ts b/iam/organization/application/delete/delete.command.ts new file mode 100644 index 0000000..4f35d2f --- /dev/null +++ b/iam/organization/application/delete/delete.command.ts @@ -0,0 +1,3 @@ +export class DeleteOrganizationCommand { + constructor(public readonly organizationId: string) {} +} diff --git a/src/organization/command/application/delete-organization/delete-organization.use-case.ts b/iam/organization/application/delete/delete.use-case.ts similarity index 91% rename from src/organization/command/application/delete-organization/delete-organization.use-case.ts rename to iam/organization/application/delete/delete.use-case.ts index f39c34e..0c8dcf3 100644 --- a/src/organization/command/application/delete-organization/delete-organization.use-case.ts +++ b/iam/organization/application/delete/delete.use-case.ts @@ -1,8 +1,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { ORGANIZATION_STORE, OrganizationStore } from '../../domain/organization.store'; -import { DeleteOrganizationCommand } from './delete-organization.command'; import { CustomException } from 'src/shared/exception/custom-exception'; import { CustomExceptionCode } from 'src/shared/exception/custom-exception-code'; +import { DeleteOrganizationCommand } from './delete.command'; @Injectable() export class DeleteOrganizationUseCase { diff --git a/src/organization/command/application/update-organization/update-organization.command.ts b/iam/organization/application/update/update.command.ts similarity index 57% rename from src/organization/command/application/update-organization/update-organization.command.ts rename to iam/organization/application/update/update.command.ts index 00e6ec1..3fee576 100644 --- a/src/organization/command/application/update-organization/update-organization.command.ts +++ b/iam/organization/application/update/update.command.ts @@ -1,6 +1,4 @@ -import { ICommand } from '@nestjs/cqrs'; - -export class UpdateOrganizationCommand implements ICommand { +export class UpdateOrganizationCommand { constructor( public readonly organizationId: string, public readonly name?: string, diff --git a/src/organization/command/application/update-organization/update-organization.use-case.ts b/iam/organization/application/update/update.use-case.ts similarity index 91% rename from src/organization/command/application/update-organization/update-organization.use-case.ts rename to iam/organization/application/update/update.use-case.ts index 8464658..746885e 100644 --- a/src/organization/command/application/update-organization/update-organization.use-case.ts +++ b/iam/organization/application/update/update.use-case.ts @@ -1,5 +1,5 @@ import { Inject, Injectable } from '@nestjs/common'; -import { UpdateOrganizationCommand } from './update-organization.command'; +import { UpdateOrganizationCommand } from './update.command'; import { ORGANIZATION_STORE, OrganizationStore } from '../../domain/organization.store'; import { CustomException } from 'src/shared/exception/custom-exception'; import { CustomExceptionCode } from 'src/shared/exception/custom-exception-code'; diff --git a/iam/organization/domain/organization.reader.ts b/iam/organization/domain/organization.reader.ts new file mode 100644 index 0000000..dc24df9 --- /dev/null +++ b/iam/organization/domain/organization.reader.ts @@ -0,0 +1,7 @@ +import { OrganizationView } from './organization.view'; + +export interface OrganizationReader { + findById(organizationId: string): Promise; +} + +export const ORGANIZATION_READER = Symbol('ORGANIZATION_READER'); diff --git a/src/organization/command/domain/organization.store.ts b/iam/organization/domain/organization.store.ts similarity index 100% rename from src/organization/command/domain/organization.store.ts rename to iam/organization/domain/organization.store.ts diff --git a/src/organization/command/domain/organization.ts b/iam/organization/domain/organization.ts similarity index 100% rename from src/organization/command/domain/organization.ts rename to iam/organization/domain/organization.ts diff --git a/src/organization/query/domain/organization.model.ts b/iam/organization/domain/organization.view.ts similarity index 78% rename from src/organization/query/domain/organization.model.ts rename to iam/organization/domain/organization.view.ts index 7ef3773..2426094 100644 --- a/src/organization/query/domain/organization.model.ts +++ b/iam/organization/domain/organization.view.ts @@ -1,6 +1,6 @@ import { ApiProperty } from '@nestjs/swagger'; -export class OrganizationModel { +export class OrganizationView { @ApiProperty() name: string; diff --git a/src/organization/command/infrastructure/organization.entity.ts b/iam/organization/infrastructure/organization.entity.ts similarity index 100% rename from src/organization/command/infrastructure/organization.entity.ts rename to iam/organization/infrastructure/organization.entity.ts diff --git a/src/organization/command/infrastructure/organization.mapper.ts b/iam/organization/infrastructure/organization.mapper.ts similarity index 100% rename from src/organization/command/infrastructure/organization.mapper.ts rename to iam/organization/infrastructure/organization.mapper.ts diff --git a/src/organization/query/infrastructure/organization.reader.impl.ts b/iam/organization/infrastructure/organization.reader.impl.ts similarity index 89% rename from src/organization/query/infrastructure/organization.reader.impl.ts rename to iam/organization/infrastructure/organization.reader.impl.ts index 7e64aab..edb144b 100644 --- a/src/organization/query/infrastructure/organization.reader.impl.ts +++ b/iam/organization/infrastructure/organization.reader.impl.ts @@ -1,10 +1,10 @@ import { InjectRepository } from '@mikro-orm/nestjs'; -import { OrganizationModel } from '../domain/organization.model'; import { OrganizationViewEntity } from './organization.view.entity'; import { EntityRepository } from '@mikro-orm/mysql'; import { CustomException } from 'src/shared/exception/custom-exception'; import { CustomExceptionCode } from 'src/shared/exception/custom-exception-code'; import { OrganizationReader } from '../domain/organization.reader'; +import { OrganizationView } from '../domain/organization.view'; export class OrganizationReaderImpl implements OrganizationReader { constructor( @@ -12,7 +12,7 @@ export class OrganizationReaderImpl implements OrganizationReader { private readonly organizationOrmRepository: EntityRepository, ) {} - async findById(organizationId: string): Promise { + async findById(organizationId: string): Promise { const qb = this.organizationOrmRepository.createQueryBuilder('o'); qb.where({ id: organizationId }); diff --git a/src/organization/command/infrastructure/organization.store.impl.ts b/iam/organization/infrastructure/organization.store.impl.ts similarity index 100% rename from src/organization/command/infrastructure/organization.store.impl.ts rename to iam/organization/infrastructure/organization.store.impl.ts diff --git a/src/organization/query/infrastructure/organization.view.entity.ts b/iam/organization/infrastructure/organization.view.entity.ts similarity index 100% rename from src/organization/query/infrastructure/organization.view.entity.ts rename to iam/organization/infrastructure/organization.view.entity.ts diff --git a/iam/organization/organization.module.ts b/iam/organization/organization.module.ts new file mode 100644 index 0000000..a1e2ade --- /dev/null +++ b/iam/organization/organization.module.ts @@ -0,0 +1,32 @@ +import { Module } from '@nestjs/common'; +import { MikroOrmModule } from '@mikro-orm/nestjs'; +import { ORGANIZATION_STORE } from './domain/organization.store'; +import { OrganizationEntity } from './infrastructure/organization.entity'; +import { OrganizationStoreImpl } from './infrastructure/organization.store.impl'; +import { CreateOrganizationUseCase } from './application/create/create.use-case'; +import { DeleteOrganizationUseCase } from './application/delete/delete.use-case'; +import { UpdateOrganizationUseCase } from './application/update/update.use-case'; +import { OrganizationController } from './presentation/organization.controller'; +import { ORGANIZATION_READER } from './domain/organization.reader'; +import { OrganizationReaderImpl } from './infrastructure/organization.reader.impl'; +import { OrganizationViewEntity } from './infrastructure/organization.view.entity'; + +const usecases = [CreateOrganizationUseCase, UpdateOrganizationUseCase, DeleteOrganizationUseCase]; + +@Module({ + imports: [MikroOrmModule.forFeature([OrganizationEntity, OrganizationViewEntity])], + providers: [ + { + provide: ORGANIZATION_STORE, + useClass: OrganizationStoreImpl, + }, + { + provide: ORGANIZATION_READER, + useClass: OrganizationReaderImpl, + }, + ...usecases, + ], + controllers: [OrganizationController], + exports: [...usecases], +}) +export class OrganizationModule {} diff --git a/src/organization/command/presentation/dto/request/update-organization.request.dto.ts b/iam/organization/presentation/dto/request/update-organization.request.dto.ts similarity index 91% rename from src/organization/command/presentation/dto/request/update-organization.request.dto.ts rename to iam/organization/presentation/dto/request/update-organization.request.dto.ts index 358c89d..31c2806 100644 --- a/src/organization/command/presentation/dto/request/update-organization.request.dto.ts +++ b/iam/organization/presentation/dto/request/update-organization.request.dto.ts @@ -1,7 +1,7 @@ import { ApiProperty } from '@nestjs/swagger'; import { IsOptional, IsString } from 'class-validator'; -export class UpdateOrganizationDto { +export class UpdateOrganizationReqDto { @ApiProperty({ description: '기관/단체 이름', example: '한국스타트업협회', diff --git a/src/organization/command/presentation/organization.command.controller.ts b/iam/organization/presentation/organization.controller.ts similarity index 60% rename from src/organization/command/presentation/organization.command.controller.ts rename to iam/organization/presentation/organization.controller.ts index 102d143..86159fa 100644 --- a/src/organization/command/presentation/organization.command.controller.ts +++ b/iam/organization/presentation/organization.controller.ts @@ -1,20 +1,23 @@ import { Body, Controller, Patch, UseGuards } from '@nestjs/common'; import { ApiTags } from '@nestjs/swagger'; -import { UpdateOrganizationUseCase } from '../application/update-organization/update-organization.use-case'; -import { UpdateOrganizationDto } from './dto/request/update-organization.request.dto'; import { AuthGuard } from '@nestjs/passport'; -import { OrganizationCommandDocs } from './organization.command.docs'; +import { OrganizationDocs } from './organization.docs'; import { Organization, OrganizationPayload } from 'src/shared/core/presentation/organization.decorator'; +import { UpdateOrganizationUseCase } from '../application/update/update.use-case'; +import { UpdateOrganizationReqDto } from './dto/request/update-organization.request.dto'; @ApiTags('organization') -@Controller('organization') -export class OrganizationCommandController { +@Controller('organization-temp') +export class OrganizationController { constructor(private readonly updateOrganizationUseCase: UpdateOrganizationUseCase) {} @Patch() @UseGuards(AuthGuard('jwt-access')) - @OrganizationCommandDocs('update') - async update(@Organization() organization: OrganizationPayload, @Body() dto: UpdateOrganizationDto): Promise { + @OrganizationDocs('update') + async updateOrganization( + @Organization() organization: OrganizationPayload, + @Body() dto: UpdateOrganizationReqDto, + ): Promise { await this.updateOrganizationUseCase.execute({ organizationId: organization.organizationId, name: dto.name, diff --git a/src/organization/command/presentation/organization.command.docs.ts b/iam/organization/presentation/organization.docs.ts similarity index 73% rename from src/organization/command/presentation/organization.command.docs.ts rename to iam/organization/presentation/organization.docs.ts index 5414819..c1396f6 100644 --- a/src/organization/command/presentation/organization.command.docs.ts +++ b/iam/organization/presentation/organization.docs.ts @@ -1,11 +1,11 @@ import { applyDecorators } from '@nestjs/common'; import { ApiBody, ApiOkResponse, ApiOperation, ApiUnauthorizedResponse } from '@nestjs/swagger'; import { createDocs } from 'src/shared/core/presentation/base.docs'; -import { UpdateOrganizationDto } from './dto/request/update-organization.request.dto'; +import { UpdateOrganizationReqDto } from './dto/request/update-organization.request.dto'; -export type OrganizationCommandEndpoint = 'update'; +export type OrganizationEndpoint = 'update'; -export const OrganizationCommandDocs = createDocs({ +export const OrganizationDocs = createDocs({ update: () => applyDecorators( ApiOperation({ @@ -14,7 +14,7 @@ export const OrganizationCommandDocs = createDocs({ }), ApiBody({ description: 'organization 정보 수정 요청 DTO', - type: UpdateOrganizationDto, + type: UpdateOrganizationReqDto, }), ApiOkResponse({ description: 'organization 정보 수정 성공', diff --git a/src/organization/command/application/create-organization/create-organization.listener.ts b/src/organization/command/application/create-organization/create-organization.listener.ts deleted file mode 100644 index b2350f0..0000000 --- a/src/organization/command/application/create-organization/create-organization.listener.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { EventsHandler, IEventHandler } from '@nestjs/cqrs'; -import { AuthOrganizationCreatedEvent } from 'src/auth/auth-organization/domain/event/auth-organization-created.event'; -import { CreateOrganizationUseCase } from './create-organization.use-case'; -import { Identifier } from 'src/shared/core/domain/identifier'; -import { Transactional } from '@mikro-orm/core'; - -@EventsHandler(AuthOrganizationCreatedEvent) -export class CreateOrganizationListener implements IEventHandler { - constructor(private readonly createOrganizationUseCase: CreateOrganizationUseCase) {} - - @Transactional() - async handle(event: AuthOrganizationCreatedEvent) { - await this.createOrganizationUseCase.execute({ - organizationId: Identifier.from(event.organizationId), - name: event.name, - contact: event.contact, - }); - } -} diff --git a/src/organization/command/application/delete-organization/delete-organization.command.ts b/src/organization/command/application/delete-organization/delete-organization.command.ts deleted file mode 100644 index e3f4a5b..0000000 --- a/src/organization/command/application/delete-organization/delete-organization.command.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { ICommand } from '@nestjs/cqrs'; - -export class DeleteOrganizationCommand implements ICommand { - constructor(public readonly organizationId: string) {} -} diff --git a/src/organization/command/organization.command.module.ts b/src/organization/command/organization.command.module.ts deleted file mode 100644 index 7425cf1..0000000 --- a/src/organization/command/organization.command.module.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Module } from '@nestjs/common'; -import { OrganizationStoreImpl } from './infrastructure/organization.store.impl'; -import { MikroOrmModule } from '@mikro-orm/nestjs'; -import { OrganizationEntity } from './infrastructure/organization.entity'; -import { CreateOrganizationUseCase } from './application/create-organization/create-organization.use-case'; -import { CreateOrganizationListener } from './application/create-organization/create-organization.listener'; -import { ORGANIZATION_STORE } from './domain/organization.store'; -import { DeleteOrganizationUseCase } from './application/delete-organization/delete-organization.use-case'; -import { UpdateOrganizationUseCase } from './application/update-organization/update-organization.use-case'; -import { OrganizationCommandController } from './presentation/organization.command.controller'; - -const usecases = [CreateOrganizationUseCase, UpdateOrganizationUseCase, DeleteOrganizationUseCase]; -const listeners = [CreateOrganizationListener]; - -@Module({ - imports: [MikroOrmModule.forFeature([OrganizationEntity])], - providers: [ - { - provide: ORGANIZATION_STORE, - useClass: OrganizationStoreImpl, - }, - ...usecases, - ...listeners, - ], - controllers: [OrganizationCommandController], -}) -export class OrganizationCommandModule {} diff --git a/src/organization/organization.module.ts b/src/organization/organization.module.ts deleted file mode 100644 index 04d8031..0000000 --- a/src/organization/organization.module.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { Module } from '@nestjs/common'; -import { OrganizationCommandModule } from './command/organization.command.module'; -import { OrganizationQueryModule } from './query/organization.query.module'; - -@Module({ - imports: [OrganizationCommandModule, OrganizationQueryModule], -}) -export class OrganizationModule {} diff --git a/src/organization/query/domain/organization.reader.ts b/src/organization/query/domain/organization.reader.ts deleted file mode 100644 index 3d727e4..0000000 --- a/src/organization/query/domain/organization.reader.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { OrganizationModel } from './organization.model'; - -export interface OrganizationReader { - findById(organizationId: string): Promise; -} - -export const ORGANIZATION_READER = Symbol('ORGANIZATION_READER'); diff --git a/src/organization/query/organization.query.module.ts b/src/organization/query/organization.query.module.ts deleted file mode 100644 index 2a8c8a8..0000000 --- a/src/organization/query/organization.query.module.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { MikroOrmModule } from '@mikro-orm/nestjs'; -import { Module } from '@nestjs/common'; -import { OrganizationViewEntity } from './infrastructure/organization.view.entity'; -import { ORGANIZATION_READER } from './domain/organization.reader'; -import { OrganizationReaderImpl } from './infrastructure/organization.reader.impl'; - -@Module({ - imports: [MikroOrmModule.forFeature([OrganizationViewEntity])], - providers: [ - { - provide: ORGANIZATION_READER, - useClass: OrganizationReaderImpl, - }, - ], -}) -export class OrganizationQueryModule {} From ab6249ab2ccf27450cb482347ef1c88748fc1a5b Mon Sep 17 00:00:00 2001 From: liverforpresent Date: Sat, 6 Dec 2025 15:27:20 +0900 Subject: [PATCH 02/14] =?UTF-8?q?chore:=20user=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/create/create.command.ts | 0 .../application/create/create.use-case.ts | 25 +++++++++++ iam/user/application/delete/delete.command.ts | 3 ++ .../application/delete/delete.use-case.ts | 15 +++---- .../user/application/get/get-user.query.ts | 2 +- .../user/application/get/get-user.result.ts | 2 +- iam/user/application/get/get-user.use-case.ts | 20 +++++++++ .../user}/domain/event/user-deleted.event.ts | 4 +- iam/user/domain/user.reader.ts | 7 +++ .../user/domain/user.store.ts | 4 +- {src/user/command => iam/user}/domain/user.ts | 14 +----- .../user/domain/user.view.ts | 2 +- .../user}/domain/value-object/role.enum.ts | 0 .../user}/infrastructure/user.entity.ts | 0 .../user}/infrastructure/user.mapper.ts | 2 - .../user/infrastructure/user.reader.impl.ts | 10 ++--- .../user/infrastructure/user.store.impl.ts | 4 +- iam/user/presentation/user.controller.ts | 45 +++++++++++++++++++ .../user/presentation/user.docs.ts | 27 ++++++++--- iam/user/user.module.ts | 33 ++++++++++++++ .../application/create/create-user.handler.ts | 29 ------------ .../create/create-user.listener.ts | 17 ------- .../application/delete/delete.command.ts | 5 --- .../presentation/user.command.controller.ts | 31 ------------- .../command/presentation/user.command.docs.ts | 24 ---------- src/user/command/user.command.module.ts | 29 ------------ .../get-my-info/get-my-info.use-case.ts | 20 --------- .../query/domain/user.query.repository.ts | 7 --- .../presentation/user.query.controller.ts | 24 ---------- src/user/query/user.query.module.ts | 22 --------- src/user/user.module.ts | 8 ---- 31 files changed, 177 insertions(+), 258 deletions(-) rename {src/user/command => iam/user}/application/create/create.command.ts (100%) create mode 100644 iam/user/application/create/create.use-case.ts create mode 100644 iam/user/application/delete/delete.command.ts rename src/user/command/application/delete/delete.handler.ts => iam/user/application/delete/delete.use-case.ts (54%) rename src/user/query/application/get-my-info/dto/get-my-info.request.dto.ts => iam/user/application/get/get-user.query.ts (75%) rename src/user/query/application/get-my-info/dto/get-my-info.response.dto.ts => iam/user/application/get/get-user.result.ts (87%) create mode 100644 iam/user/application/get/get-user.use-case.ts rename {src/user/command => iam/user}/domain/event/user-deleted.event.ts (75%) create mode 100644 iam/user/domain/user.reader.ts rename src/user/command/domain/user.command.repository.ts => iam/user/domain/user.store.ts (58%) rename {src/user/command => iam/user}/domain/user.ts (75%) rename src/user/query/domain/user.model.ts => iam/user/domain/user.view.ts (89%) rename {src/user/command => iam/user}/domain/value-object/role.enum.ts (100%) rename {src/user/command => iam/user}/infrastructure/user.entity.ts (100%) rename {src/user/command => iam/user}/infrastructure/user.mapper.ts (92%) rename src/user/query/infrastructure/user.query.repository.impl.ts => iam/user/infrastructure/user.reader.impl.ts (72%) rename src/user/command/infrastructure/user.command.repository.impl.ts => iam/user/infrastructure/user.store.impl.ts (90%) create mode 100644 iam/user/presentation/user.controller.ts rename src/user/query/presentation/user.query.docs.ts => iam/user/presentation/user.docs.ts (52%) create mode 100644 iam/user/user.module.ts delete mode 100644 src/user/command/application/create/create-user.handler.ts delete mode 100644 src/user/command/application/create/create-user.listener.ts delete mode 100644 src/user/command/application/delete/delete.command.ts delete mode 100644 src/user/command/presentation/user.command.controller.ts delete mode 100644 src/user/command/presentation/user.command.docs.ts delete mode 100644 src/user/command/user.command.module.ts delete mode 100644 src/user/query/application/get-my-info/get-my-info.use-case.ts delete mode 100644 src/user/query/domain/user.query.repository.ts delete mode 100644 src/user/query/presentation/user.query.controller.ts delete mode 100644 src/user/query/user.query.module.ts delete mode 100644 src/user/user.module.ts diff --git a/src/user/command/application/create/create.command.ts b/iam/user/application/create/create.command.ts similarity index 100% rename from src/user/command/application/create/create.command.ts rename to iam/user/application/create/create.command.ts diff --git a/iam/user/application/create/create.use-case.ts b/iam/user/application/create/create.use-case.ts new file mode 100644 index 0000000..cac2033 --- /dev/null +++ b/iam/user/application/create/create.use-case.ts @@ -0,0 +1,25 @@ +import { Inject, Injectable } from '@nestjs/common'; +import { User } from '../../domain/user'; +import { CreateUserCommand } from './create.command'; +import { USER_STORE, UserStore } from 'iam/user/domain/user.store'; + +@Injectable() +export class CreateUserUseCase { + constructor( + @Inject(USER_STORE) + private readonly userStore: UserStore, + ) {} + + async execute(command: CreateUserCommand): Promise { + const { userId, email } = command; + const now = new Date(); + const user = User.create({ + id: userId, + createdAt: now, + updatedAt: now, + email: email, + }); + + await this.userStore.save(user); + } +} diff --git a/iam/user/application/delete/delete.command.ts b/iam/user/application/delete/delete.command.ts new file mode 100644 index 0000000..89b2752 --- /dev/null +++ b/iam/user/application/delete/delete.command.ts @@ -0,0 +1,3 @@ +export class DeleteMyInfoCommand { + constructor(public readonly userId: string) {} +} diff --git a/src/user/command/application/delete/delete.handler.ts b/iam/user/application/delete/delete.use-case.ts similarity index 54% rename from src/user/command/application/delete/delete.handler.ts rename to iam/user/application/delete/delete.use-case.ts index dcaa292..af49df5 100644 --- a/src/user/command/application/delete/delete.handler.ts +++ b/iam/user/application/delete/delete.use-case.ts @@ -1,30 +1,29 @@ import { Inject, Injectable } from '@nestjs/common'; -import { USER_COMMAND_REPOSITORY, UserCommandRepository } from '../../domain/user.command.repository'; -import { CommandHandler, EventBus, ICommandHandler } from '@nestjs/cqrs'; import { DeleteMyInfoCommand } from './delete.command'; import { CustomException } from 'src/shared/exception/custom-exception'; import { CustomExceptionCode } from 'src/shared/exception/custom-exception-code'; +import { USER_STORE, UserStore } from 'iam/user/domain/user.store'; +import { EventBus } from '@nestjs/cqrs'; @Injectable() -@CommandHandler(DeleteMyInfoCommand) -export class DeleteMyInfoHandler implements ICommandHandler { +export class DeleteUserUseCase { constructor( - @Inject(USER_COMMAND_REPOSITORY) - private readonly userCommandRepository: UserCommandRepository, + @Inject(USER_STORE) + private readonly userStore: UserStore, private readonly eventBus: EventBus, ) {} async execute(command: DeleteMyInfoCommand): Promise { const { userId } = command; - const user = await this.userCommandRepository.findById(userId); + const user = await this.userStore.findById(userId); if (!user) { throw new CustomException(CustomExceptionCode.USER_NOT_FOUND); } user.delete(); - await this.userCommandRepository.deleteById(userId); + await this.userStore.deleteById(userId); await this.eventBus.publishAll(user.pullDomainEvents()); } diff --git a/src/user/query/application/get-my-info/dto/get-my-info.request.dto.ts b/iam/user/application/get/get-user.query.ts similarity index 75% rename from src/user/query/application/get-my-info/dto/get-my-info.request.dto.ts rename to iam/user/application/get/get-user.query.ts index 7754fbd..285c296 100644 --- a/src/user/query/application/get-my-info/dto/get-my-info.request.dto.ts +++ b/iam/user/application/get/get-user.query.ts @@ -1,6 +1,6 @@ import { IsNotEmpty, IsString } from 'class-validator'; -export class GetMyInfoRequestDto { +export class GetUserQuery { @IsString() @IsNotEmpty() userId: string; diff --git a/src/user/query/application/get-my-info/dto/get-my-info.response.dto.ts b/iam/user/application/get/get-user.result.ts similarity index 87% rename from src/user/query/application/get-my-info/dto/get-my-info.response.dto.ts rename to iam/user/application/get/get-user.result.ts index 73e060f..0c1d8e6 100644 --- a/src/user/query/application/get-my-info/dto/get-my-info.response.dto.ts +++ b/iam/user/application/get/get-user.result.ts @@ -1,7 +1,7 @@ import { ApiProperty } from '@nestjs/swagger'; import { IsNotEmpty, IsString } from 'class-validator'; -export class GetMyInfoResponseDto { +export class GetUserResult { @IsString() @IsNotEmpty() @ApiProperty({ diff --git a/iam/user/application/get/get-user.use-case.ts b/iam/user/application/get/get-user.use-case.ts new file mode 100644 index 0000000..bfe1eb2 --- /dev/null +++ b/iam/user/application/get/get-user.use-case.ts @@ -0,0 +1,20 @@ +import { Inject, Injectable, NotFoundException } from '@nestjs/common'; +import { USER_READER, UserReader } from 'iam/user/domain/user.reader'; +import { GetUserQuery } from './get-user.query'; +import { GetUserResult } from './get-user.result'; + +@Injectable() +export class GetUserUseCase { + constructor( + @Inject(USER_READER) + private readonly userReader: UserReader, + ) {} + + async execute(query: GetUserQuery): Promise { + const { userId } = query; + const user = await this.userReader.findById(userId); + if (!user) throw new NotFoundException('존재하지 않는 사용자입니다.'); + + return { email: user.email }; + } +} diff --git a/src/user/command/domain/event/user-deleted.event.ts b/iam/user/domain/event/user-deleted.event.ts similarity index 75% rename from src/user/command/domain/event/user-deleted.event.ts rename to iam/user/domain/event/user-deleted.event.ts index 2ea0ba9..12c431c 100644 --- a/src/user/command/domain/event/user-deleted.event.ts +++ b/iam/user/domain/event/user-deleted.event.ts @@ -1,9 +1,9 @@ import { BaseDomainEvent } from 'src/shared/core/domain/base.domain-event'; export class UserDeletedEvent implements BaseDomainEvent { - readonly timesstamp: Date; + readonly timestamp: Date; constructor(public readonly userId: string) { - this.timesstamp = new Date(); + this.timestamp = new Date(); } } diff --git a/iam/user/domain/user.reader.ts b/iam/user/domain/user.reader.ts new file mode 100644 index 0000000..b154e45 --- /dev/null +++ b/iam/user/domain/user.reader.ts @@ -0,0 +1,7 @@ +import { UserView } from './user.view'; + +export interface UserReader { + findById(userId: string): Promise; +} + +export const USER_READER = Symbol('USER_READER'); diff --git a/src/user/command/domain/user.command.repository.ts b/iam/user/domain/user.store.ts similarity index 58% rename from src/user/command/domain/user.command.repository.ts rename to iam/user/domain/user.store.ts index 95f6a43..f023ae1 100644 --- a/src/user/command/domain/user.command.repository.ts +++ b/iam/user/domain/user.store.ts @@ -1,9 +1,9 @@ import { User } from './user'; -export interface UserCommandRepository { +export interface UserStore { save(user: User): Promise; findById(userId: string): Promise; deleteById(userId: string): Promise; } -export const USER_COMMAND_REPOSITORY = Symbol('USER_COMMAND_REPOSITORY'); +export const USER_STORE = Symbol('USER_STORE'); diff --git a/src/user/command/domain/user.ts b/iam/user/domain/user.ts similarity index 75% rename from src/user/command/domain/user.ts rename to iam/user/domain/user.ts index 0c712c5..93faed3 100644 --- a/src/user/command/domain/user.ts +++ b/iam/user/domain/user.ts @@ -1,5 +1,4 @@ import { BaseEntityProps } from 'src/shared/core/domain/base.entity'; -import { Role } from './value-object/role.enum'; import { CustomException } from 'src/shared/exception/custom-exception'; import { CustomExceptionCode } from 'src/shared/exception/custom-exception-code'; import { AggregateRoot } from 'src/shared/core/domain/base.aggregate'; @@ -7,8 +6,8 @@ import { UserDeletedEvent } from './event/user-deleted.event'; export interface UserProps extends BaseEntityProps { email: string; - role: Role; } + export class User extends AggregateRoot { protected constructor(props: UserProps) { super(props); @@ -32,20 +31,9 @@ export class User extends AggregateRoot { if (!this.props.email || !this.props.email.includes('@')) { throw new CustomException(CustomExceptionCode.USER_INVALID_EMAIL_FORMAT); } - - if (!this.props.role) { - throw new CustomException(CustomExceptionCode.USER_ROLE_EMPTY); - } - if (!Object.values(Role).includes(this.props.role)) { - throw new CustomException(CustomExceptionCode.USER_INVALID_ROLE); - } } get email(): string { return this.props.email; } - - get role(): Role { - return this.props.role; - } } diff --git a/src/user/query/domain/user.model.ts b/iam/user/domain/user.view.ts similarity index 89% rename from src/user/query/domain/user.model.ts rename to iam/user/domain/user.view.ts index d9797b6..88b44a8 100644 --- a/src/user/query/domain/user.model.ts +++ b/iam/user/domain/user.view.ts @@ -1,7 +1,7 @@ import { ApiProperty } from '@nestjs/swagger'; import { IsString } from 'class-validator'; -export class UserModel { +export class UserView { @IsString() @ApiProperty({ description: '사용자 이메일', diff --git a/src/user/command/domain/value-object/role.enum.ts b/iam/user/domain/value-object/role.enum.ts similarity index 100% rename from src/user/command/domain/value-object/role.enum.ts rename to iam/user/domain/value-object/role.enum.ts diff --git a/src/user/command/infrastructure/user.entity.ts b/iam/user/infrastructure/user.entity.ts similarity index 100% rename from src/user/command/infrastructure/user.entity.ts rename to iam/user/infrastructure/user.entity.ts diff --git a/src/user/command/infrastructure/user.mapper.ts b/iam/user/infrastructure/user.mapper.ts similarity index 92% rename from src/user/command/infrastructure/user.mapper.ts rename to iam/user/infrastructure/user.mapper.ts index 26d7923..5c8346d 100644 --- a/src/user/command/infrastructure/user.mapper.ts +++ b/iam/user/infrastructure/user.mapper.ts @@ -9,7 +9,6 @@ export class UserMapper { createdAt: entity.createdAt, updatedAt: entity.updatedAt, email: entity.email, - role: entity.role, }); } @@ -19,7 +18,6 @@ export class UserMapper { entity.createdAt = domain.createdAt; entity.updatedAt = domain.updatedAt; entity.email = domain.email; - entity.role = domain.role; return entity; } diff --git a/src/user/query/infrastructure/user.query.repository.impl.ts b/iam/user/infrastructure/user.reader.impl.ts similarity index 72% rename from src/user/query/infrastructure/user.query.repository.impl.ts rename to iam/user/infrastructure/user.reader.impl.ts index 04abca1..2c8519b 100644 --- a/src/user/query/infrastructure/user.query.repository.impl.ts +++ b/iam/user/infrastructure/user.reader.impl.ts @@ -1,19 +1,19 @@ import { InjectRepository } from '@mikro-orm/nestjs'; -import { UserQueryRepository } from '../domain/user.query.repository'; -import { UserEntity } from 'src/user/command/infrastructure/user.entity'; import { EntityManager, EntityRepository } from '@mikro-orm/mysql'; -import { UserModel } from '../domain/user.model'; +import { UserView } from '../domain/user.view'; import { CustomException } from 'src/shared/exception/custom-exception'; import { CustomExceptionCode } from 'src/shared/exception/custom-exception-code'; +import { UserReader } from '../domain/user.reader'; +import { UserEntity } from './user.entity'; -export class UserQueryRepositoryImpl implements UserQueryRepository { +export class UserReaderImpl implements UserReader { constructor( @InjectRepository(UserEntity) private readonly ormRepository: EntityRepository, private readonly em: EntityManager, ) {} - async findById(userId: string): Promise { + async findById(userId: string): Promise { const userEntity = await this.ormRepository .createQueryBuilder('u') .select(['id', 'email']) diff --git a/src/user/command/infrastructure/user.command.repository.impl.ts b/iam/user/infrastructure/user.store.impl.ts similarity index 90% rename from src/user/command/infrastructure/user.command.repository.impl.ts rename to iam/user/infrastructure/user.store.impl.ts index 64dd497..828848d 100644 --- a/src/user/command/infrastructure/user.command.repository.impl.ts +++ b/iam/user/infrastructure/user.store.impl.ts @@ -3,11 +3,11 @@ import { UserEntity } from './user.entity'; import { EntityManager, EntityRepository } from '@mikro-orm/mysql'; import { User } from '../domain/user'; import { UserMapper } from './user.mapper'; -import { UserCommandRepository } from '../domain/user.command.repository'; import { CustomException } from 'src/shared/exception/custom-exception'; import { CustomExceptionCode } from 'src/shared/exception/custom-exception-code'; +import { UserStore } from '../domain/user.store'; -export class UserCommandRepositoryImpl implements UserCommandRepository { +export class UserStoreImpl implements UserStore { constructor( @InjectRepository(UserEntity) private readonly ormRepository: EntityRepository, diff --git a/iam/user/presentation/user.controller.ts b/iam/user/presentation/user.controller.ts new file mode 100644 index 0000000..bc38432 --- /dev/null +++ b/iam/user/presentation/user.controller.ts @@ -0,0 +1,45 @@ +import { Controller, Delete, Get, HttpStatus, Res, UseGuards } from '@nestjs/common'; +import { AuthGuard } from '@nestjs/passport'; +import { ApiTags } from '@nestjs/swagger'; +import { User, UserPayload } from 'src/shared/core/presentation/user.decorator'; +import { UserDocs } from './user.docs'; +import { Response } from 'express'; +import { accessTokenCookieOptions, refreshTokenCookieOptions } from 'src/shared/config/cookie.config'; +import { Roles } from 'src/shared/core/presentation/role.decorator'; +import { DeleteMyInfoCommand } from '../application/delete/delete.command'; +import { DeleteUserUseCase } from '../application/delete/delete.use-case'; +import { GetUserUseCase } from '../application/get/get-user.use-case'; +import { UserView } from '../domain/user.view'; +import { RolesGuard } from 'iam/auth/auth-core/infrastructure/guard/role.guard'; +import { Role } from 'iam/auth/auth-core/domain/value-object/role'; + +@ApiTags('user') +@Controller('user-temp') +export class UserController { + constructor( + private readonly deleteUserUseCase: DeleteUserUseCase, + private readonly getUserUseCase: GetUserUseCase, + ) {} + + @Delete('me') + @UseGuards(AuthGuard('jwt-access'), RolesGuard) + @Roles(Role.USER) + @UserDocs('deleteUser') + async deleteUser(@User() user: UserPayload, @Res() res: Response) { + const command = new DeleteMyInfoCommand(user.userId); + await this.deleteUserUseCase.execute(command); + + res.clearCookie('accessToken', accessTokenCookieOptions); + res.clearCookie('refreshToken', refreshTokenCookieOptions); + + res.status(HttpStatus.NO_CONTENT).send(); + } + + @Get('me') + @UseGuards(AuthGuard('jwt-access'), RolesGuard) + @Roles(Role.USER) + @UserDocs('getUser') + async getMyInfo(@User() user: UserPayload): Promise { + return await this.getUserUseCase.execute({ userId: user.userId }); + } +} diff --git a/src/user/query/presentation/user.query.docs.ts b/iam/user/presentation/user.docs.ts similarity index 52% rename from src/user/query/presentation/user.query.docs.ts rename to iam/user/presentation/user.docs.ts index dd19c7a..d53116c 100644 --- a/src/user/query/presentation/user.query.docs.ts +++ b/iam/user/presentation/user.docs.ts @@ -1,12 +1,29 @@ import { applyDecorators } from '@nestjs/common'; import { ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiUnauthorizedResponse } from '@nestjs/swagger'; import { createDocs } from 'src/shared/core/presentation/base.docs'; -import { UserModel } from '../domain/user.model'; +import { UserView } from '../domain/user.view'; -export type UserQueryEndpoint = 'getMyInfo'; +export type UserEndpoint = 'deleteUser' | 'getUser'; -export const UserQueryDocs = createDocs({ - getMyInfo: () => +export const UserDocs = createDocs({ + deleteUser: () => + applyDecorators( + ApiOperation({ + summary: '회원탈퇴', + description: '회원탈퇴', + }), + ApiOkResponse({ + description: '회원탈퇴 성공', + }), + ApiUnauthorizedResponse({ + description: '유효하지 않은 access token', + }), + ApiNotFoundResponse({ + description: '존재하지 않는 사용자', + }), + ), + + getUser: () => applyDecorators( ApiOperation({ summary: '본인 정보 조회', @@ -14,7 +31,7 @@ export const UserQueryDocs = createDocs({ }), ApiOkResponse({ description: '사용자 이메일 정보 반환', - type: UserModel, + type: UserView, }), ApiUnauthorizedResponse({ description: '유효하지 않은 access token', diff --git a/iam/user/user.module.ts b/iam/user/user.module.ts new file mode 100644 index 0000000..08528a3 --- /dev/null +++ b/iam/user/user.module.ts @@ -0,0 +1,33 @@ +import { MikroOrmModule } from '@mikro-orm/nestjs'; +import { Module } from '@nestjs/common'; +import { SharedModule } from 'src/shared/shared.module'; +import { USER_STORE } from './domain/user.store'; +import { UserStoreImpl } from './infrastructure/user.store.impl'; +import { UserController } from './presentation/user.controller'; +import { CqrsModule } from '@nestjs/cqrs'; +import { CreateUserUseCase } from './application/create/create.use-case'; +import { DeleteUserUseCase } from './application/delete/delete.use-case'; +import { USER_READER } from './domain/user.reader'; +import { UserReaderImpl } from './infrastructure/user.reader.impl'; +import { GetUserUseCase } from './application/get/get-user.use-case'; +import { UserEntity } from './infrastructure/user.entity'; + +const useCases = [DeleteUserUseCase, CreateUserUseCase, GetUserUseCase]; + +@Module({ + imports: [MikroOrmModule.forFeature([UserEntity]), SharedModule, CqrsModule], + providers: [ + ...useCases, + { + provide: USER_STORE, + useClass: UserStoreImpl, + }, + { + provide: USER_READER, + useClass: UserReaderImpl, + }, + ], + exports: [], + controllers: [UserController], +}) +export class UserModule {} diff --git a/src/user/command/application/create/create-user.handler.ts b/src/user/command/application/create/create-user.handler.ts deleted file mode 100644 index eeeba85..0000000 --- a/src/user/command/application/create/create-user.handler.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { Inject, Injectable } from '@nestjs/common'; -import { USER_COMMAND_REPOSITORY, UserCommandRepository } from '../../domain/user.command.repository'; -import { User } from '../../domain/user'; -import { CommandHandler, ICommandHandler } from '@nestjs/cqrs'; -import { CreateUserCommand } from './create.command'; -import { Role } from '../../domain/value-object/role.enum'; - -@Injectable() -@CommandHandler(CreateUserCommand) -export class CreateUserHandler implements ICommandHandler { - constructor( - @Inject(USER_COMMAND_REPOSITORY) - private readonly userCommandRepository: UserCommandRepository, - ) {} - - async execute(command: CreateUserCommand): Promise { - const { userId, email } = command; - const now = new Date(); - const user = User.create({ - id: userId, - createdAt: now, - updatedAt: now, - email: email, - role: Role.GENERAL, - }); - - await this.userCommandRepository.save(user); - } -} diff --git a/src/user/command/application/create/create-user.listener.ts b/src/user/command/application/create/create-user.listener.ts deleted file mode 100644 index 46f5e94..0000000 --- a/src/user/command/application/create/create-user.listener.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { EventsHandler, IEventHandler } from '@nestjs/cqrs'; -import { AuthCreatedEvent } from 'src/auth/auth-user/domain/event/auth-created.event'; -import { CreateUserHandler } from './create-user.handler'; -import { CreateUserCommand } from './create.command'; - -@EventsHandler(AuthCreatedEvent) -export class CreateUserListener implements IEventHandler { - constructor(private readonly createUserHandler: CreateUserHandler) {} - - async handle(event: AuthCreatedEvent): Promise { - const { userId, email } = event; - - const createUserCommand = new CreateUserCommand(userId, email); - - await this.createUserHandler.execute(createUserCommand); - } -} diff --git a/src/user/command/application/delete/delete.command.ts b/src/user/command/application/delete/delete.command.ts deleted file mode 100644 index 9d01d1f..0000000 --- a/src/user/command/application/delete/delete.command.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { IEvent } from '@nestjs/cqrs'; - -export class DeleteMyInfoCommand implements IEvent { - constructor(public readonly userId: string) {} -} diff --git a/src/user/command/presentation/user.command.controller.ts b/src/user/command/presentation/user.command.controller.ts deleted file mode 100644 index 00a1b0b..0000000 --- a/src/user/command/presentation/user.command.controller.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Controller, Delete, HttpStatus, Res, UseGuards } from '@nestjs/common'; -import { AuthGuard } from '@nestjs/passport'; -import { ApiTags } from '@nestjs/swagger'; -import { User, UserPayload } from 'src/shared/core/presentation/user.decorator'; -import { UserCommandDocs } from './user.command.docs'; -import { CommandBus } from '@nestjs/cqrs'; -import { DeleteMyInfoCommand } from '../application/delete/delete.command'; -import { Response } from 'express'; -import { accessTokenCookieOptions, refreshTokenCookieOptions } from 'src/shared/config/cookie.config'; -import { RolesGuard } from 'src/auth/core/infrastructure/guard/role.guard'; -import { Roles } from 'src/shared/core/presentation/role.decorator'; -import { Role } from 'src/auth/core/domain/value-object/role'; - -@ApiTags('user') -@Controller('user') -export class UserCommandController { - constructor(private readonly commandBus: CommandBus) {} - @Delete('me') - @UseGuards(AuthGuard('jwt-access'), RolesGuard) - @Roles(Role.USER) - @UserCommandDocs('deleteMyInfo') - async deleteMyInfo(@User() user: UserPayload, @Res() res: Response) { - const command = new DeleteMyInfoCommand(user.userId); - await this.commandBus.execute(command); - - res.clearCookie('accessToken', accessTokenCookieOptions); - res.clearCookie('refreshToken', refreshTokenCookieOptions); - - res.status(HttpStatus.NO_CONTENT).send(); - } -} diff --git a/src/user/command/presentation/user.command.docs.ts b/src/user/command/presentation/user.command.docs.ts deleted file mode 100644 index 07d8edd..0000000 --- a/src/user/command/presentation/user.command.docs.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { applyDecorators } from '@nestjs/common'; -import { ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiUnauthorizedResponse } from '@nestjs/swagger'; -import { createDocs } from 'src/shared/core/presentation/base.docs'; - -export type UserCommandEndpoint = 'deleteMyInfo'; - -export const UserCommandDocs = createDocs({ - deleteMyInfo: () => - applyDecorators( - ApiOperation({ - summary: '회원탈퇴', - description: '회원탈퇴', - }), - ApiOkResponse({ - description: '회원탈퇴 성공', - }), - ApiUnauthorizedResponse({ - description: '유효하지 않은 access token', - }), - ApiNotFoundResponse({ - description: '존재하지 않는 사용자', - }), - ), -}); diff --git a/src/user/command/user.command.module.ts b/src/user/command/user.command.module.ts deleted file mode 100644 index ea142be..0000000 --- a/src/user/command/user.command.module.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { MikroOrmModule } from '@mikro-orm/nestjs'; -import { Module } from '@nestjs/common'; -import { SharedModule } from 'src/shared/shared.module'; -import { UserEntity } from './infrastructure/user.entity'; -import { USER_COMMAND_REPOSITORY } from './domain/user.command.repository'; -import { UserCommandRepositoryImpl } from './infrastructure/user.command.repository.impl'; -import { CreateUserHandler } from './application/create/create-user.handler'; -import { CqrsModule } from '@nestjs/cqrs'; -import { CreateUserListener } from './application/create/create-user.listener'; -import { DeleteMyInfoHandler } from './application/delete/delete.handler'; -import { UserCommandController } from './presentation/user.command.controller'; - -const useCases = [DeleteMyInfoHandler, CreateUserHandler]; -const listeners = [CreateUserListener]; - -@Module({ - imports: [MikroOrmModule.forFeature([UserEntity]), SharedModule, CqrsModule], - providers: [ - ...useCases, - ...listeners, - { - provide: USER_COMMAND_REPOSITORY, - useClass: UserCommandRepositoryImpl, - }, - ], - exports: [], - controllers: [UserCommandController], -}) -export class UserCommandModule {} diff --git a/src/user/query/application/get-my-info/get-my-info.use-case.ts b/src/user/query/application/get-my-info/get-my-info.use-case.ts deleted file mode 100644 index 47a9648..0000000 --- a/src/user/query/application/get-my-info/get-my-info.use-case.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Inject, Injectable, NotFoundException } from '@nestjs/common'; -import { GetMyInfoRequestDto } from './dto/get-my-info.request.dto'; -import { GetMyInfoResponseDto } from './dto/get-my-info.response.dto'; -import { USER_QUERY_REPOSITORY, UserQueryRepository } from '../../domain/user.query.repository'; - -@Injectable() -export class GetMyInfoUseCase { - constructor( - @Inject(USER_QUERY_REPOSITORY) - private readonly userQueryRepository: UserQueryRepository, - ) {} - - async execute(getMyInfoRequestDto: GetMyInfoRequestDto): Promise { - const { userId } = getMyInfoRequestDto; - const user = await this.userQueryRepository.findById(userId); - if (!user) throw new NotFoundException('존재하지 않는 사용자입니다.'); - - return { email: user.email }; - } -} diff --git a/src/user/query/domain/user.query.repository.ts b/src/user/query/domain/user.query.repository.ts deleted file mode 100644 index 339adc8..0000000 --- a/src/user/query/domain/user.query.repository.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { UserModel } from './user.model'; - -export interface UserQueryRepository { - findById(userId: string): Promise; -} - -export const USER_QUERY_REPOSITORY = Symbol('USER_QUERY_REPOSITORY'); diff --git a/src/user/query/presentation/user.query.controller.ts b/src/user/query/presentation/user.query.controller.ts deleted file mode 100644 index 5a0833a..0000000 --- a/src/user/query/presentation/user.query.controller.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Controller, Get, UseGuards } from '@nestjs/common'; -import { AuthGuard } from '@nestjs/passport'; -import { ApiTags } from '@nestjs/swagger'; -import { User, UserPayload } from 'src/shared/core/presentation/user.decorator'; -import { UserModel } from '../domain/user.model'; -import { GetMyInfoUseCase } from '../application/get-my-info/get-my-info.use-case'; -import { UserQueryDocs } from './user.query.docs'; -import { RolesGuard } from 'src/auth/core/infrastructure/guard/role.guard'; -import { Roles } from 'src/shared/core/presentation/role.decorator'; -import { Role } from 'src/auth/core/domain/value-object/role'; - -@ApiTags('user') -@Controller('user') -export class UserQueryController { - constructor(private readonly getMyInfoUseCase: GetMyInfoUseCase) {} - - @Get('me') - @UseGuards(AuthGuard('jwt-access'), RolesGuard) - @Roles(Role.USER) - @UserQueryDocs('getMyInfo') - async getMyInfo(@User() user: UserPayload): Promise { - return await this.getMyInfoUseCase.execute({ userId: user.userId }); - } -} diff --git a/src/user/query/user.query.module.ts b/src/user/query/user.query.module.ts deleted file mode 100644 index 680dd5f..0000000 --- a/src/user/query/user.query.module.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { MikroOrmModule } from '@mikro-orm/nestjs'; -import { Module } from '@nestjs/common'; -import { UserEntity } from '../command/infrastructure/user.entity'; -import { USER_QUERY_REPOSITORY } from './domain/user.query.repository'; -import { UserQueryRepositoryImpl } from './infrastructure/user.query.repository.impl'; -import { UserQueryController } from './presentation/user.query.controller'; -import { GetMyInfoUseCase } from './application/get-my-info/get-my-info.use-case'; - -const usecases = [GetMyInfoUseCase]; - -@Module({ - imports: [MikroOrmModule.forFeature([UserEntity])], - providers: [ - ...usecases, - { - provide: USER_QUERY_REPOSITORY, - useClass: UserQueryRepositoryImpl, - }, - ], - controllers: [UserQueryController], -}) -export class UserQueryModule {} diff --git a/src/user/user.module.ts b/src/user/user.module.ts deleted file mode 100644 index 611ae05..0000000 --- a/src/user/user.module.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { Module } from '@nestjs/common'; -import { UserCommandModule } from './command/user.command.module'; -import { UserQueryModule } from './query/user.query.module'; - -@Module({ - imports: [UserCommandModule, UserQueryModule], -}) -export class UserModule {} From 61803a00a0cbf58b2383642c4b7f571d9614cf15 Mon Sep 17 00:00:00 2001 From: liverforpresent Date: Sat, 6 Dec 2025 15:30:47 +0900 Subject: [PATCH 03/14] =?UTF-8?q?chore:=20auth-core=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- {src/auth/core => iam/auth/auth-core}/auth-core.module.ts | 5 +++-- .../core => iam/auth/auth-core}/domain/value-object/role.ts | 0 .../auth/auth-core}/infrastructure/guard/role.guard.ts | 0 .../auth-core}/infrastructure/jwt/jwt-access.strategy.ts | 0 .../auth/auth-core}/infrastructure/jwt/jwt-payload.ts | 0 .../auth-core}/infrastructure/jwt/jwt-refresh.strategy.ts | 0 .../auth/auth-core}/infrastructure/jwt/jwt.factory.ts | 0 .../auth/auth-core}/infrastructure/jwt/jwt.provider.ts | 0 .../auth-core}/infrastructure/oauth/base-oauth.provider.ts | 2 +- .../auth/auth-core}/infrastructure/oauth/kakao.provider.ts | 2 +- .../infrastructure/oauth/oauth-provider.factory.ts | 2 +- src/shared/config/cookie.config.ts | 4 ++-- 12 files changed, 8 insertions(+), 7 deletions(-) rename {src/auth/core => iam/auth/auth-core}/auth-core.module.ts (78%) rename {src/auth/core => iam/auth/auth-core}/domain/value-object/role.ts (100%) rename {src/auth/core => iam/auth/auth-core}/infrastructure/guard/role.guard.ts (100%) rename {src/auth/core => iam/auth/auth-core}/infrastructure/jwt/jwt-access.strategy.ts (100%) rename {src/auth/core => iam/auth/auth-core}/infrastructure/jwt/jwt-payload.ts (100%) rename {src/auth/core => iam/auth/auth-core}/infrastructure/jwt/jwt-refresh.strategy.ts (100%) rename {src/auth/core => iam/auth/auth-core}/infrastructure/jwt/jwt.factory.ts (100%) rename {src/auth/core => iam/auth/auth-core}/infrastructure/jwt/jwt.provider.ts (100%) rename {src/auth/core => iam/auth/auth-core}/infrastructure/oauth/base-oauth.provider.ts (84%) rename {src/auth/core => iam/auth/auth-core}/infrastructure/oauth/kakao.provider.ts (98%) rename {src/auth/core => iam/auth/auth-core}/infrastructure/oauth/oauth-provider.factory.ts (91%) diff --git a/src/auth/core/auth-core.module.ts b/iam/auth/auth-core/auth-core.module.ts similarity index 78% rename from src/auth/core/auth-core.module.ts rename to iam/auth/auth-core/auth-core.module.ts index b4a5ca0..9b31632 100644 --- a/src/auth/core/auth-core.module.ts +++ b/iam/auth/auth-core/auth-core.module.ts @@ -4,14 +4,15 @@ import { JwtAccessStrategy } from './infrastructure/jwt/jwt-access.strategy'; import { JwtProvider } from './infrastructure/jwt/jwt.provider'; import { PassportModule } from '@nestjs/passport'; import { JwtModule } from '@nestjs/jwt'; -import { OAuthProviderFactory } from 'src/auth/core/infrastructure/oauth/oauth-provider.factory'; import { KakaoOAuthProvider } from './infrastructure/oauth/kakao.provider'; +import { OAuthProviderFactory } from './infrastructure/oauth/oauth-provider.factory'; const jwt = [JwtProvider, JwtAccessStrategy, JwtRefreshStrategy]; +const oAuth = [OAuthProviderFactory, KakaoOAuthProvider]; @Module({ imports: [PassportModule, JwtModule.register({})], - providers: [...jwt, OAuthProviderFactory, KakaoOAuthProvider], + providers: [...jwt, ...oAuth], controllers: [], exports: [OAuthProviderFactory, ...jwt], }) diff --git a/src/auth/core/domain/value-object/role.ts b/iam/auth/auth-core/domain/value-object/role.ts similarity index 100% rename from src/auth/core/domain/value-object/role.ts rename to iam/auth/auth-core/domain/value-object/role.ts diff --git a/src/auth/core/infrastructure/guard/role.guard.ts b/iam/auth/auth-core/infrastructure/guard/role.guard.ts similarity index 100% rename from src/auth/core/infrastructure/guard/role.guard.ts rename to iam/auth/auth-core/infrastructure/guard/role.guard.ts diff --git a/src/auth/core/infrastructure/jwt/jwt-access.strategy.ts b/iam/auth/auth-core/infrastructure/jwt/jwt-access.strategy.ts similarity index 100% rename from src/auth/core/infrastructure/jwt/jwt-access.strategy.ts rename to iam/auth/auth-core/infrastructure/jwt/jwt-access.strategy.ts diff --git a/src/auth/core/infrastructure/jwt/jwt-payload.ts b/iam/auth/auth-core/infrastructure/jwt/jwt-payload.ts similarity index 100% rename from src/auth/core/infrastructure/jwt/jwt-payload.ts rename to iam/auth/auth-core/infrastructure/jwt/jwt-payload.ts diff --git a/src/auth/core/infrastructure/jwt/jwt-refresh.strategy.ts b/iam/auth/auth-core/infrastructure/jwt/jwt-refresh.strategy.ts similarity index 100% rename from src/auth/core/infrastructure/jwt/jwt-refresh.strategy.ts rename to iam/auth/auth-core/infrastructure/jwt/jwt-refresh.strategy.ts diff --git a/src/auth/core/infrastructure/jwt/jwt.factory.ts b/iam/auth/auth-core/infrastructure/jwt/jwt.factory.ts similarity index 100% rename from src/auth/core/infrastructure/jwt/jwt.factory.ts rename to iam/auth/auth-core/infrastructure/jwt/jwt.factory.ts diff --git a/src/auth/core/infrastructure/jwt/jwt.provider.ts b/iam/auth/auth-core/infrastructure/jwt/jwt.provider.ts similarity index 100% rename from src/auth/core/infrastructure/jwt/jwt.provider.ts rename to iam/auth/auth-core/infrastructure/jwt/jwt.provider.ts diff --git a/src/auth/core/infrastructure/oauth/base-oauth.provider.ts b/iam/auth/auth-core/infrastructure/oauth/base-oauth.provider.ts similarity index 84% rename from src/auth/core/infrastructure/oauth/base-oauth.provider.ts rename to iam/auth/auth-core/infrastructure/oauth/base-oauth.provider.ts index e2d19bc..80df225 100644 --- a/src/auth/core/infrastructure/oauth/base-oauth.provider.ts +++ b/iam/auth/auth-core/infrastructure/oauth/base-oauth.provider.ts @@ -1,4 +1,4 @@ -import { OAuthProviderType } from 'src/auth/auth-user/domain/value-object/oauth-provider.enum'; +import { OAuthProviderType } from 'iam/auth/auth-user/domain/value-object/oauth-provider.enum'; export interface BaseOAuthProvider { getToken(code: string): Promise; diff --git a/src/auth/core/infrastructure/oauth/kakao.provider.ts b/iam/auth/auth-core/infrastructure/oauth/kakao.provider.ts similarity index 98% rename from src/auth/core/infrastructure/oauth/kakao.provider.ts rename to iam/auth/auth-core/infrastructure/oauth/kakao.provider.ts index 9d82027..6f578ff 100644 --- a/src/auth/core/infrastructure/oauth/kakao.provider.ts +++ b/iam/auth/auth-core/infrastructure/oauth/kakao.provider.ts @@ -2,7 +2,7 @@ import { Injectable, UnauthorizedException } from '@nestjs/common'; import axios from 'axios'; import { ConfigService } from '@nestjs/config'; import { BaseOAuthProvider, OAuthUser } from './base-oauth.provider'; -import { OAuthProviderType } from 'src/auth/auth-user/domain/value-object/oauth-provider.enum'; +import { OAuthProviderType } from 'iam/auth/auth-user/domain/value-object/oauth-provider.enum'; interface KakaoTokenResponse { access_token: string; diff --git a/src/auth/core/infrastructure/oauth/oauth-provider.factory.ts b/iam/auth/auth-core/infrastructure/oauth/oauth-provider.factory.ts similarity index 91% rename from src/auth/core/infrastructure/oauth/oauth-provider.factory.ts rename to iam/auth/auth-core/infrastructure/oauth/oauth-provider.factory.ts index edb8156..589ad9d 100644 --- a/src/auth/core/infrastructure/oauth/oauth-provider.factory.ts +++ b/iam/auth/auth-core/infrastructure/oauth/oauth-provider.factory.ts @@ -1,7 +1,7 @@ import { Injectable } from '@nestjs/common'; import { BaseOAuthProvider } from './base-oauth.provider'; import { KakaoOAuthProvider } from './kakao.provider'; -import { OAuthProviderType } from 'src/auth/auth-user/domain/value-object/oauth-provider.enum'; +import { OAuthProviderType } from 'iam/auth/auth-user/domain/value-object/oauth-provider.enum'; @Injectable() export class OAuthProviderFactory { diff --git a/src/shared/config/cookie.config.ts b/src/shared/config/cookie.config.ts index 01659a0..ced0b06 100644 --- a/src/shared/config/cookie.config.ts +++ b/src/shared/config/cookie.config.ts @@ -7,7 +7,7 @@ export const accessTokenCookieOptions: CookieOptions = { sameSite: 'none', maxAge: 60 * 60 * 1000, // 1 hour path: '/', - domain: process.env.FRONTEND_DOMAIN, + //domain: process.env.FRONTEND_DOMAIN, }; export const refreshTokenCookieOptions: CookieOptions = { @@ -16,5 +16,5 @@ export const refreshTokenCookieOptions: CookieOptions = { sameSite: 'none', maxAge: 30 * 24 * 60 * 60 * 1000, // 30 days path: '/', - domain: process.env.FRONTEND_DOMAIN, + //domain: process.env.FRONTEND_DOMAIN, }; From b0751d6c5c7ec2cb28c97ba8b857c20ec53d7fa8 Mon Sep 17 00:00:00 2001 From: liverforpresent Date: Sat, 6 Dec 2025 15:32:50 +0900 Subject: [PATCH 04/14] =?UTF-8?q?chore:=20auth-user=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../authorize-oauth.command.ts | 4 +-- .../authorize-oauth/authorize-oauth.result.ts | 2 +- .../authorize-oauth.use-case.ts | 10 +++--- .../application/logout/logout.command.ts | 2 +- .../application/logout/logout.use-case.ts | 12 +++---- .../oauth-login/oauth-login.command.ts | 9 +++++ .../oauth-login/oauth-login.result.ts | 2 +- .../oauth-login/oauth-login.use-case.ts | 33 +++++++++---------- .../renew-token/renew-token.command.ts | 2 +- .../renew-token/renew-token.result.ts | 2 +- .../renew-token/renew-token.use-case.ts | 22 ++++++------- .../unlink-oauth/unlink-oauth.command.ts | 3 +- .../unlink-oauth/unlink-oauth.listener.ts | 2 +- .../unlink-oauth/unlink-oauth.use-case.ts | 12 +++---- .../auth/auth-user/auth-user.module.ts | 16 ++++----- .../auth-user/domain/auth-user.repository.ts | 4 +-- .../auth/auth-user/domain/auth-user.ts | 0 .../domain/event/auth-created.event.ts | 4 +-- .../domain/event/auth-deleted.event.ts | 4 +-- .../domain/event/login-succeeded.event.ts | 4 +-- .../value-object/oauth-provider.enum.ts | 0 .../infrastructure/auth-user.entity.ts | 2 +- .../infrastructure/auth-user.mapper.ts | 2 +- .../infrastructure/auth-user.store.impl.ts | 8 ++--- .../presentation/auth-user.controller.ts | 8 ++--- .../auth-user/presentation/auth-user.docs.ts | 0 .../oauth-login/oauth-login.command.ts | 10 ------ 27 files changed, 88 insertions(+), 91 deletions(-) rename src/auth/auth-user/application/authorize-oauth/dto/authorize-oauth.request.dto.ts => iam/auth/auth-user/application/authorize-oauth/authorize-oauth.command.ts (58%) rename src/auth/auth-user/application/authorize-oauth/dto/authorize-oauth.response.dto.ts => iam/auth/auth-user/application/authorize-oauth/authorize-oauth.result.ts (64%) rename {src => iam}/auth/auth-user/application/authorize-oauth/authorize-oauth.use-case.ts (51%) rename src/auth/auth-user/application/logout/dto/logout.request.dto.ts => iam/auth/auth-user/application/logout/logout.command.ts (76%) rename {src => iam}/auth/auth-user/application/logout/logout.use-case.ts (60%) create mode 100644 iam/auth/auth-user/application/oauth-login/oauth-login.command.ts rename src/auth/auth-user/application/oauth-login/dto/oauth-login.response.dto.ts => iam/auth/auth-user/application/oauth-login/oauth-login.result.ts (87%) rename src/auth/auth-user/application/oauth-login/oauth-login.handler.ts => iam/auth/auth-user/application/oauth-login/oauth-login.use-case.ts (71%) rename src/auth/auth-user/application/renew-token/dto/renew-token.request.dto.ts => iam/auth/auth-user/application/renew-token/renew-token.command.ts (80%) rename src/auth/auth-user/application/renew-token/dto/renew-token.response.dto.ts => iam/auth/auth-user/application/renew-token/renew-token.result.ts (81%) rename {src => iam}/auth/auth-user/application/renew-token/renew-token.use-case.ts (57%) rename {src => iam}/auth/auth-user/application/unlink-oauth/unlink-oauth.command.ts (68%) rename {src => iam}/auth/auth-user/application/unlink-oauth/unlink-oauth.listener.ts (87%) rename {src => iam}/auth/auth-user/application/unlink-oauth/unlink-oauth.use-case.ts (66%) rename {src => iam}/auth/auth-user/auth-user.module.ts (80%) rename {src => iam}/auth/auth-user/domain/auth-user.repository.ts (78%) rename {src => iam}/auth/auth-user/domain/auth-user.ts (100%) rename {src => iam}/auth/auth-user/domain/event/auth-created.event.ts (87%) rename {src => iam}/auth/auth-user/domain/event/auth-deleted.event.ts (75%) rename {src => iam}/auth/auth-user/domain/event/login-succeeded.event.ts (86%) rename {src => iam}/auth/auth-user/domain/value-object/oauth-provider.enum.ts (100%) rename {src => iam}/auth/auth-user/infrastructure/auth-user.entity.ts (87%) rename {src => iam}/auth/auth-user/infrastructure/auth-user.mapper.ts (94%) rename src/auth/auth-user/infrastructure/auth-user.repository.impl.ts => iam/auth/auth-user/infrastructure/auth-user.store.impl.ts (86%) rename {src => iam}/auth/auth-user/presentation/auth-user.controller.ts (95%) rename {src => iam}/auth/auth-user/presentation/auth-user.docs.ts (100%) delete mode 100644 src/auth/auth-user/application/oauth-login/oauth-login.command.ts diff --git a/src/auth/auth-user/application/authorize-oauth/dto/authorize-oauth.request.dto.ts b/iam/auth/auth-user/application/authorize-oauth/authorize-oauth.command.ts similarity index 58% rename from src/auth/auth-user/application/authorize-oauth/dto/authorize-oauth.request.dto.ts rename to iam/auth/auth-user/application/authorize-oauth/authorize-oauth.command.ts index e2beddd..7f95c9b 100644 --- a/src/auth/auth-user/application/authorize-oauth/dto/authorize-oauth.request.dto.ts +++ b/iam/auth/auth-user/application/authorize-oauth/authorize-oauth.command.ts @@ -1,7 +1,7 @@ import { IsEnum, IsNotEmpty, IsString } from 'class-validator'; -import { OAuthProviderType } from 'src/auth/auth-user/domain/value-object/oauth-provider.enum'; +import { OAuthProviderType } from '../../domain/value-object/oauth-provider.enum'; -export class AuthorizeOAuthRequestDto { +export class AuthorizeOAuthCommand { @IsEnum(OAuthProviderType) @IsNotEmpty() oAuthProviderType: OAuthProviderType; diff --git a/src/auth/auth-user/application/authorize-oauth/dto/authorize-oauth.response.dto.ts b/iam/auth/auth-user/application/authorize-oauth/authorize-oauth.result.ts similarity index 64% rename from src/auth/auth-user/application/authorize-oauth/dto/authorize-oauth.response.dto.ts rename to iam/auth/auth-user/application/authorize-oauth/authorize-oauth.result.ts index d264fad..f9d4d49 100644 --- a/src/auth/auth-user/application/authorize-oauth/dto/authorize-oauth.response.dto.ts +++ b/iam/auth/auth-user/application/authorize-oauth/authorize-oauth.result.ts @@ -1,6 +1,6 @@ import { IsUrl } from 'class-validator'; -export class AuthorizeOAuthResponseDto { +export class AuthorizeOAuthResult { @IsUrl() authUrl: string; } diff --git a/src/auth/auth-user/application/authorize-oauth/authorize-oauth.use-case.ts b/iam/auth/auth-user/application/authorize-oauth/authorize-oauth.use-case.ts similarity index 51% rename from src/auth/auth-user/application/authorize-oauth/authorize-oauth.use-case.ts rename to iam/auth/auth-user/application/authorize-oauth/authorize-oauth.use-case.ts index 2c4c5df..9b7508e 100644 --- a/src/auth/auth-user/application/authorize-oauth/authorize-oauth.use-case.ts +++ b/iam/auth/auth-user/application/authorize-oauth/authorize-oauth.use-case.ts @@ -1,14 +1,14 @@ import { Injectable } from '@nestjs/common'; -import { OAuthProviderFactory } from 'src/auth/core/infrastructure/oauth/oauth-provider.factory'; -import { AuthorizeOAuthRequestDto } from './dto/authorize-oauth.request.dto'; -import { AuthorizeOAuthResponseDto } from './dto/authorize-oauth.response.dto'; +import { AuthorizeOAuthCommand } from './authorize-oauth.command'; +import { AuthorizeOAuthResult } from './authorize-oauth.result'; +import { OAuthProviderFactory } from 'iam/auth/auth-core/infrastructure/oauth/oauth-provider.factory'; @Injectable() export class AuthorizeOAuthUseCase { constructor(private readonly oAuthProviderFactory: OAuthProviderFactory) {} - execute(requestDto: AuthorizeOAuthRequestDto): AuthorizeOAuthResponseDto { - const { oAuthProviderType, redirectUrl } = requestDto; + execute(command: AuthorizeOAuthCommand): AuthorizeOAuthResult { + const { oAuthProviderType, redirectUrl } = command; const provider = this.oAuthProviderFactory.getProvider(oAuthProviderType); const encodedState = encodeURIComponent(redirectUrl || ''); diff --git a/src/auth/auth-user/application/logout/dto/logout.request.dto.ts b/iam/auth/auth-user/application/logout/logout.command.ts similarity index 76% rename from src/auth/auth-user/application/logout/dto/logout.request.dto.ts rename to iam/auth/auth-user/application/logout/logout.command.ts index 48e00f1..29af098 100644 --- a/src/auth/auth-user/application/logout/dto/logout.request.dto.ts +++ b/iam/auth/auth-user/application/logout/logout.command.ts @@ -1,6 +1,6 @@ import { IsNotEmpty, IsString } from 'class-validator'; -export class LogoutRequestDto { +export class LogoutCommand { @IsString() @IsNotEmpty() userId: string; diff --git a/src/auth/auth-user/application/logout/logout.use-case.ts b/iam/auth/auth-user/application/logout/logout.use-case.ts similarity index 60% rename from src/auth/auth-user/application/logout/logout.use-case.ts rename to iam/auth/auth-user/application/logout/logout.use-case.ts index dee96e0..00c787e 100644 --- a/src/auth/auth-user/application/logout/logout.use-case.ts +++ b/iam/auth/auth-user/application/logout/logout.use-case.ts @@ -1,18 +1,18 @@ import { Inject, Injectable } from '@nestjs/common'; -import { LogoutRequestDto } from './dto/logout.request.dto'; import { CustomException } from 'src/shared/exception/custom-exception'; import { CustomExceptionCode } from 'src/shared/exception/custom-exception-code'; -import { AUTH_USER_REPOSITORY, AuthUserRepository } from '../../domain/auth-user.repository'; +import { AUTH_USER_STORE, AuthUserStore } from '../../domain/auth-user.repository'; +import { LogoutCommand } from './logout.command'; @Injectable() export class LogoutUseCase { constructor( - @Inject(AUTH_USER_REPOSITORY) - private readonly authRepository: AuthUserRepository, + @Inject(AUTH_USER_STORE) + private readonly authRepository: AuthUserStore, ) {} - async execute(requestDto: LogoutRequestDto): Promise { - const { userId } = requestDto; + async execute(command: LogoutCommand): Promise { + const { userId } = command; const auth = await this.authRepository.findByUserId(userId); if (!auth) throw new CustomException(CustomExceptionCode.AUTH_INFO_NOT_FOUND); diff --git a/iam/auth/auth-user/application/oauth-login/oauth-login.command.ts b/iam/auth/auth-user/application/oauth-login/oauth-login.command.ts new file mode 100644 index 0000000..deb9aca --- /dev/null +++ b/iam/auth/auth-user/application/oauth-login/oauth-login.command.ts @@ -0,0 +1,9 @@ +import { OAuthProviderType } from '../../domain/value-object/oauth-provider.enum'; + +export class OAuthLoginCommand { + constructor( + public readonly oAuthProviderType: OAuthProviderType, + public readonly code: string, + public readonly state?: string, + ) {} +} diff --git a/src/auth/auth-user/application/oauth-login/dto/oauth-login.response.dto.ts b/iam/auth/auth-user/application/oauth-login/oauth-login.result.ts similarity index 87% rename from src/auth/auth-user/application/oauth-login/dto/oauth-login.response.dto.ts rename to iam/auth/auth-user/application/oauth-login/oauth-login.result.ts index baa225d..f368462 100644 --- a/src/auth/auth-user/application/oauth-login/dto/oauth-login.response.dto.ts +++ b/iam/auth/auth-user/application/oauth-login/oauth-login.result.ts @@ -1,6 +1,6 @@ import { IsNotEmpty, IsString } from 'class-validator'; -export class OAuthLoginResponseDto { +export class OAuthLoginResult { @IsString() @IsNotEmpty() accessToken: string; diff --git a/src/auth/auth-user/application/oauth-login/oauth-login.handler.ts b/iam/auth/auth-user/application/oauth-login/oauth-login.use-case.ts similarity index 71% rename from src/auth/auth-user/application/oauth-login/oauth-login.handler.ts rename to iam/auth/auth-user/application/oauth-login/oauth-login.use-case.ts index f46ce36..4aa063e 100644 --- a/src/auth/auth-user/application/oauth-login/oauth-login.handler.ts +++ b/iam/auth/auth-user/application/oauth-login/oauth-login.use-case.ts @@ -1,34 +1,33 @@ import { Inject, Injectable } from '@nestjs/common'; -import { AuthUser } from 'src/auth/auth-user/domain/auth-user'; -import { TokenType } from 'src/auth/core/infrastructure/jwt/jwt.factory'; -import { OAuthProviderFactory } from 'src/auth/core/infrastructure/oauth/oauth-provider.factory'; -import { OAuthProviderType } from 'src/auth/auth-user/domain/value-object/oauth-provider.enum'; -import { JwtProvider } from 'src/auth/core/infrastructure/jwt/jwt.provider'; import { Identifier } from 'src/shared/core/domain/identifier'; -import { OAuthLoginResponseDto } from './dto/oauth-login.response.dto'; import { Transactional } from '@mikro-orm/core'; -import { CommandHandler, EventBus } from '@nestjs/cqrs'; -import { AuthCreatedEvent } from 'src/auth/auth-user/domain/event/auth-created.event'; +import { EventBus } from '@nestjs/cqrs'; import { OAuthLoginCommand } from './oauth-login.command'; -import { AUTH_USER_REPOSITORY, AuthUserRepository } from '../../domain/auth-user.repository'; -import { Role } from 'src/auth/core/domain/value-object/role'; +import { AUTH_USER_STORE, AuthUserStore } from '../../domain/auth-user.repository'; +import { OAuthLoginResult } from './oauth-login.result'; +import { OAuthProviderFactory } from 'iam/auth/auth-core/infrastructure/oauth/oauth-provider.factory'; +import { JwtProvider } from 'iam/auth/auth-core/infrastructure/jwt/jwt.provider'; +import { OAuthProviderType } from '../../domain/value-object/oauth-provider.enum'; +import { AuthUser } from '../../domain/auth-user'; +import { AuthCreatedEvent } from '../../domain/event/auth-created.event'; +import { Role } from 'iam/auth/auth-core/domain/value-object/role'; +import { TokenType } from 'iam/auth/auth-core/infrastructure/jwt/jwt.factory'; @Injectable() -@CommandHandler(OAuthLoginCommand) export class OAuthLoginUseCase { private readonly now: Date; constructor( private readonly oAuthProviderFactory: OAuthProviderFactory, private readonly jwtProvider: JwtProvider, - @Inject(AUTH_USER_REPOSITORY) - private readonly authUserRepository: AuthUserRepository, + @Inject(AUTH_USER_STORE) + private readonly authUserStore: AuthUserStore, private readonly eventBus: EventBus, ) { this.now = new Date(); } @Transactional() - async execute(command: OAuthLoginCommand): Promise { + async execute(command: OAuthLoginCommand): Promise { const { oAuthProviderType, code } = command; const { oauthId, provider, email } = await this.getOAuthUserInfo(oAuthProviderType, code); const authUser = await this.findOrCreateAuth(oauthId, provider, email); @@ -48,7 +47,7 @@ export class OAuthLoginUseCase { // 유저 생성 및 정보 가져오기 private async findOrCreateAuth(oauthId: string, provider: OAuthProviderType, email: string): Promise { - const existingAuth = await this.authUserRepository.findByOAuthIdandProvider(oauthId, provider); + const existingAuth = await this.authUserStore.findByOAuthIdandProvider(oauthId, provider); if (existingAuth) { this.eventBus.publish(existingAuth); return existingAuth; @@ -69,7 +68,7 @@ export class OAuthLoginUseCase { userId: userId, }); - await this.authUserRepository.save(authUser); + await this.authUserStore.save(authUser); await this.eventBus.publishAll(authUser.pullDomainEvents()); @@ -88,7 +87,7 @@ export class OAuthLoginUseCase { ); authUser.updateRefreshToken(jti, this.now); - await this.authUserRepository.update(authUser); + await this.authUserStore.update(authUser); return { accessToken, refreshToken }; } diff --git a/src/auth/auth-user/application/renew-token/dto/renew-token.request.dto.ts b/iam/auth/auth-user/application/renew-token/renew-token.command.ts similarity index 80% rename from src/auth/auth-user/application/renew-token/dto/renew-token.request.dto.ts rename to iam/auth/auth-user/application/renew-token/renew-token.command.ts index 78929c0..fc60e8a 100644 --- a/src/auth/auth-user/application/renew-token/dto/renew-token.request.dto.ts +++ b/iam/auth/auth-user/application/renew-token/renew-token.command.ts @@ -1,6 +1,6 @@ import { IsNotEmpty, IsString } from 'class-validator'; -export class RenewTokenRequestDto { +export class RenewTokenCommand { @IsString() @IsNotEmpty() userId: string; diff --git a/src/auth/auth-user/application/renew-token/dto/renew-token.response.dto.ts b/iam/auth/auth-user/application/renew-token/renew-token.result.ts similarity index 81% rename from src/auth/auth-user/application/renew-token/dto/renew-token.response.dto.ts rename to iam/auth/auth-user/application/renew-token/renew-token.result.ts index 939d5ad..4fcc715 100644 --- a/src/auth/auth-user/application/renew-token/dto/renew-token.response.dto.ts +++ b/iam/auth/auth-user/application/renew-token/renew-token.result.ts @@ -1,6 +1,6 @@ import { IsNotEmpty, IsString } from 'class-validator'; -export class RenewTokenResponseDto { +export class RenewTokenResult { @IsString() @IsNotEmpty() accessToken: string; diff --git a/src/auth/auth-user/application/renew-token/renew-token.use-case.ts b/iam/auth/auth-user/application/renew-token/renew-token.use-case.ts similarity index 57% rename from src/auth/auth-user/application/renew-token/renew-token.use-case.ts rename to iam/auth/auth-user/application/renew-token/renew-token.use-case.ts index 6d65ce5..e3c78a3 100644 --- a/src/auth/auth-user/application/renew-token/renew-token.use-case.ts +++ b/iam/auth/auth-user/application/renew-token/renew-token.use-case.ts @@ -1,26 +1,26 @@ import { Inject, Injectable } from '@nestjs/common'; -import { TokenType } from 'src/auth/core/infrastructure/jwt/jwt.factory'; -import { JwtProvider } from 'src/auth/core/infrastructure/jwt/jwt.provider'; -import { RenewTokenRequestDto } from './dto/renew-token.request.dto'; -import { RenewTokenResponseDto } from './dto/renew-token.response.dto'; import { CustomException } from 'src/shared/exception/custom-exception'; import { CustomExceptionCode } from 'src/shared/exception/custom-exception-code'; import { EventBus } from '@nestjs/cqrs'; -import { AUTH_USER_REPOSITORY, AuthUserRepository } from '../../domain/auth-user.repository'; -import { Role } from 'src/auth/core/domain/value-object/role'; +import { AUTH_USER_STORE, AuthUserStore } from '../../domain/auth-user.repository'; +import { RenewTokenCommand } from './renew-token.command'; +import { RenewTokenResult } from './renew-token.result'; +import { JwtProvider } from 'iam/auth/auth-core/infrastructure/jwt/jwt.provider'; +import { Role } from 'iam/auth/auth-core/domain/value-object/role'; +import { TokenType } from 'iam/auth/auth-core/infrastructure/jwt/jwt.factory'; @Injectable() export class RenewTokenUseCase { constructor( private readonly jwtProvider: JwtProvider, - @Inject(AUTH_USER_REPOSITORY) - private readonly authUserRepository: AuthUserRepository, + @Inject(AUTH_USER_STORE) + private readonly authUserStore: AuthUserStore, private readonly eventBus: EventBus, ) {} - async execute(reqeustDto: RenewTokenRequestDto): Promise { + async execute(reqeustDto: RenewTokenCommand): Promise { const { userId, jti } = reqeustDto; - const authUser = await this.authUserRepository.findByRefreshToken(jti); + const authUser = await this.authUserStore.findByRefreshToken(jti); if (!authUser || userId != authUser.userId.value) throw new CustomException(CustomExceptionCode.AUTH_INVALID_REFRESH_TOKEN); @@ -30,7 +30,7 @@ export class RenewTokenUseCase { ]); authUser.updateRefreshToken(newJti, new Date()); - await this.authUserRepository.update(authUser); + await this.authUserStore.update(authUser); await this.eventBus.publishAll(authUser.pullDomainEvents()); diff --git a/src/auth/auth-user/application/unlink-oauth/unlink-oauth.command.ts b/iam/auth/auth-user/application/unlink-oauth/unlink-oauth.command.ts similarity index 68% rename from src/auth/auth-user/application/unlink-oauth/unlink-oauth.command.ts rename to iam/auth/auth-user/application/unlink-oauth/unlink-oauth.command.ts index 27c9b92..f5c65ac 100644 --- a/src/auth/auth-user/application/unlink-oauth/unlink-oauth.command.ts +++ b/iam/auth/auth-user/application/unlink-oauth/unlink-oauth.command.ts @@ -1,7 +1,6 @@ -import { ICommand } from '@nestjs/cqrs'; import { OAuthProviderType } from '../../domain/value-object/oauth-provider.enum'; -export class UnlinkOAuthCommand implements ICommand { +export class UnlinkOAuthCommand { constructor( public readonly oAuthProviderType: OAuthProviderType, public readonly userId: string, diff --git a/src/auth/auth-user/application/unlink-oauth/unlink-oauth.listener.ts b/iam/auth/auth-user/application/unlink-oauth/unlink-oauth.listener.ts similarity index 87% rename from src/auth/auth-user/application/unlink-oauth/unlink-oauth.listener.ts rename to iam/auth/auth-user/application/unlink-oauth/unlink-oauth.listener.ts index 8c89944..6c93ee3 100644 --- a/src/auth/auth-user/application/unlink-oauth/unlink-oauth.listener.ts +++ b/iam/auth/auth-user/application/unlink-oauth/unlink-oauth.listener.ts @@ -1,8 +1,8 @@ import { EventsHandler } from '@nestjs/cqrs'; -import { UserDeletedEvent } from 'src/user/command/domain/event/user-deleted.event'; import { UnlinkOAuthUseCase } from './unlink-oauth.use-case'; import { OAuthProviderType } from '../../domain/value-object/oauth-provider.enum'; import { Transactional } from '@mikro-orm/core'; +import { UserDeletedEvent } from 'iam/user/domain/event/user-deleted.event'; @EventsHandler(UserDeletedEvent) export class UnlinkOAuthListener { diff --git a/src/auth/auth-user/application/unlink-oauth/unlink-oauth.use-case.ts b/iam/auth/auth-user/application/unlink-oauth/unlink-oauth.use-case.ts similarity index 66% rename from src/auth/auth-user/application/unlink-oauth/unlink-oauth.use-case.ts rename to iam/auth/auth-user/application/unlink-oauth/unlink-oauth.use-case.ts index a8e0734..9f71f8f 100644 --- a/src/auth/auth-user/application/unlink-oauth/unlink-oauth.use-case.ts +++ b/iam/auth/auth-user/application/unlink-oauth/unlink-oauth.use-case.ts @@ -1,30 +1,30 @@ import { Inject, Injectable } from '@nestjs/common'; -import { AUTH_USER_REPOSITORY, AuthUserRepository } from '../../domain/auth-user.repository'; import { CommandHandler } from '@nestjs/cqrs'; import { UnlinkOAuthCommand } from './unlink-oauth.command'; import { CustomException } from 'src/shared/exception/custom-exception'; import { CustomExceptionCode } from 'src/shared/exception/custom-exception-code'; -import { OAuthProviderFactory } from 'src/auth/core/infrastructure/oauth/oauth-provider.factory'; +import { AUTH_USER_STORE, AuthUserStore } from '../../domain/auth-user.repository'; +import { OAuthProviderFactory } from 'iam/auth/auth-core/infrastructure/oauth/oauth-provider.factory'; @Injectable() @CommandHandler(UnlinkOAuthCommand) export class UnlinkOAuthUseCase { constructor( - @Inject(AUTH_USER_REPOSITORY) - private readonly authUserRepository: AuthUserRepository, + @Inject(AUTH_USER_STORE) + private readonly authUserStore: AuthUserStore, private readonly oAuthProviderFactory: OAuthProviderFactory, ) {} async execute(command: UnlinkOAuthCommand) { const { userId, oAuthProviderType } = command; - const authUser = await this.authUserRepository.findByUserId(userId); + const authUser = await this.authUserStore.findByUserId(userId); if (!authUser) throw new CustomException(CustomExceptionCode.AUTH_USER_NOT_FOUND); const oAuthProvider = this.oAuthProviderFactory.getProvider(oAuthProviderType); await oAuthProvider.unlinkAccount(authUser.oauthId); authUser.delete(); - await this.authUserRepository.deleteById(authUser.id.value); + await this.authUserStore.deleteById(authUser.id.value); } } diff --git a/src/auth/auth-user/auth-user.module.ts b/iam/auth/auth-user/auth-user.module.ts similarity index 80% rename from src/auth/auth-user/auth-user.module.ts rename to iam/auth/auth-user/auth-user.module.ts index bf2c146..5b8d75f 100644 --- a/src/auth/auth-user/auth-user.module.ts +++ b/iam/auth/auth-user/auth-user.module.ts @@ -1,18 +1,18 @@ import { Module } from '@nestjs/common'; -import { AuthUserRepositoryImpl } from './infrastructure/auth-user.repository.impl'; -import { AUTH_USER_REPOSITORY } from './domain/auth-user.repository'; -import { OAuthLoginUseCase } from './application/oauth-login/oauth-login.handler'; +import { OAuthLoginUseCase } from './application/oauth-login/oauth-login.use-case'; import { AuthorizeOAuthUseCase } from './application/authorize-oauth/authorize-oauth.use-case'; import { MikroOrmModule } from '@mikro-orm/nestjs'; -import { AuthUserEntity } from './infrastructure/auth-user.entity'; -import { AuthUserController } from './presentation/auth-user.controller'; import { RenewTokenUseCase } from './application/renew-token/renew-token.use-case'; import { LogoutUseCase } from './application/logout/logout.use-case'; -import { AuthCoreModule } from '../core/auth-core.module'; import { SharedModule } from 'src/shared/shared.module'; import { CqrsModule } from '@nestjs/cqrs'; import { UnlinkOAuthUseCase } from './application/unlink-oauth/unlink-oauth.use-case'; import { UnlinkOAuthListener } from './application/unlink-oauth/unlink-oauth.listener'; +import { AUTH_USER_STORE } from './domain/auth-user.repository'; +import { AuthUserStoreImpl } from './infrastructure/auth-user.store.impl'; +import { AuthUserEntity } from './infrastructure/auth-user.entity'; +import { AuthCoreModule } from '../auth-core/auth-core.module'; +import { AuthUserController } from './presentation/auth-user.controller'; const usecases = [OAuthLoginUseCase, AuthorizeOAuthUseCase, RenewTokenUseCase, LogoutUseCase, UnlinkOAuthUseCase]; const listeners = [UnlinkOAuthListener]; @@ -21,8 +21,8 @@ const listeners = [UnlinkOAuthListener]; imports: [MikroOrmModule.forFeature([AuthUserEntity]), AuthCoreModule, SharedModule, CqrsModule], providers: [ { - provide: AUTH_USER_REPOSITORY, - useClass: AuthUserRepositoryImpl, + provide: AUTH_USER_STORE, + useClass: AuthUserStoreImpl, }, ...usecases, ...listeners, diff --git a/src/auth/auth-user/domain/auth-user.repository.ts b/iam/auth/auth-user/domain/auth-user.repository.ts similarity index 78% rename from src/auth/auth-user/domain/auth-user.repository.ts rename to iam/auth/auth-user/domain/auth-user.repository.ts index 904c83c..f19e7e1 100644 --- a/src/auth/auth-user/domain/auth-user.repository.ts +++ b/iam/auth/auth-user/domain/auth-user.repository.ts @@ -1,6 +1,6 @@ import { AuthUser } from './auth-user'; -export interface AuthUserRepository { +export interface AuthUserStore { save(authUser: AuthUser): Promise; update(authUser: AuthUser): Promise; findByOAuthIdandProvider(oauthId: string, provider: string): Promise; @@ -9,4 +9,4 @@ export interface AuthUserRepository { deleteById(id: string): Promise; } -export const AUTH_USER_REPOSITORY = Symbol('AUTH_USER_REPOSITORY'); +export const AUTH_USER_STORE = Symbol('AUTH_USER_STORE'); diff --git a/src/auth/auth-user/domain/auth-user.ts b/iam/auth/auth-user/domain/auth-user.ts similarity index 100% rename from src/auth/auth-user/domain/auth-user.ts rename to iam/auth/auth-user/domain/auth-user.ts diff --git a/src/auth/auth-user/domain/event/auth-created.event.ts b/iam/auth/auth-user/domain/event/auth-created.event.ts similarity index 87% rename from src/auth/auth-user/domain/event/auth-created.event.ts rename to iam/auth/auth-user/domain/event/auth-created.event.ts index dfb32e2..a11de39 100644 --- a/src/auth/auth-user/domain/event/auth-created.event.ts +++ b/iam/auth/auth-user/domain/event/auth-created.event.ts @@ -3,13 +3,13 @@ import { Identifier } from 'src/shared/core/domain/identifier'; import { OAuthProviderType } from '../value-object/oauth-provider.enum'; export class AuthCreatedEvent implements BaseDomainEvent { - readonly timesstamp: Date; + readonly timestamp: Date; constructor( public readonly userId: Identifier, public readonly email: string, public readonly provider: OAuthProviderType, ) { - this.timesstamp = new Date(); + this.timestamp = new Date(); } } diff --git a/src/auth/auth-user/domain/event/auth-deleted.event.ts b/iam/auth/auth-user/domain/event/auth-deleted.event.ts similarity index 75% rename from src/auth/auth-user/domain/event/auth-deleted.event.ts rename to iam/auth/auth-user/domain/event/auth-deleted.event.ts index b702f35..4670482 100644 --- a/src/auth/auth-user/domain/event/auth-deleted.event.ts +++ b/iam/auth/auth-user/domain/event/auth-deleted.event.ts @@ -1,9 +1,9 @@ import { BaseDomainEvent } from 'src/shared/core/domain/base.domain-event'; export class AuthDeletedEvent implements BaseDomainEvent { - readonly timesstamp: Date; + readonly timestamp: Date; constructor(public readonly userId: string) { - this.timesstamp = new Date(); + this.timestamp = new Date(); } } diff --git a/src/auth/auth-user/domain/event/login-succeeded.event.ts b/iam/auth/auth-user/domain/event/login-succeeded.event.ts similarity index 86% rename from src/auth/auth-user/domain/event/login-succeeded.event.ts rename to iam/auth/auth-user/domain/event/login-succeeded.event.ts index fd3d01d..306436e 100644 --- a/src/auth/auth-user/domain/event/login-succeeded.event.ts +++ b/iam/auth/auth-user/domain/event/login-succeeded.event.ts @@ -3,12 +3,12 @@ import { Identifier } from 'src/shared/core/domain/identifier'; import { OAuthProviderType } from '../value-object/oauth-provider.enum'; export class LoginSucceededEvent implements BaseDomainEvent { - readonly timesstamp: Date; + readonly timestamp: Date; constructor( public readonly userId: Identifier, public readonly provider: OAuthProviderType, ) { - this.timesstamp = new Date(); + this.timestamp = new Date(); } } diff --git a/src/auth/auth-user/domain/value-object/oauth-provider.enum.ts b/iam/auth/auth-user/domain/value-object/oauth-provider.enum.ts similarity index 100% rename from src/auth/auth-user/domain/value-object/oauth-provider.enum.ts rename to iam/auth/auth-user/domain/value-object/oauth-provider.enum.ts diff --git a/src/auth/auth-user/infrastructure/auth-user.entity.ts b/iam/auth/auth-user/infrastructure/auth-user.entity.ts similarity index 87% rename from src/auth/auth-user/infrastructure/auth-user.entity.ts rename to iam/auth/auth-user/infrastructure/auth-user.entity.ts index 41feab9..102976d 100644 --- a/src/auth/auth-user/infrastructure/auth-user.entity.ts +++ b/iam/auth/auth-user/infrastructure/auth-user.entity.ts @@ -1,6 +1,6 @@ import { Entity, Property, Unique } from '@mikro-orm/core'; import { BaseEntity } from 'src/shared/core/infrastructure/orm-entity/base.entity'; -import { OAuthProviderType } from 'src/auth/auth-user/domain/value-object/oauth-provider.enum'; +import { OAuthProviderType } from '../domain/value-object/oauth-provider.enum'; @Entity({ tableName: 'auth' }) @Unique({ properties: ['oauthId', 'provider'] }) diff --git a/src/auth/auth-user/infrastructure/auth-user.mapper.ts b/iam/auth/auth-user/infrastructure/auth-user.mapper.ts similarity index 94% rename from src/auth/auth-user/infrastructure/auth-user.mapper.ts rename to iam/auth/auth-user/infrastructure/auth-user.mapper.ts index b9289b9..320aabb 100644 --- a/src/auth/auth-user/infrastructure/auth-user.mapper.ts +++ b/iam/auth/auth-user/infrastructure/auth-user.mapper.ts @@ -1,6 +1,6 @@ -import { AuthUser } from 'src/auth/auth-user/domain/auth-user'; import { Identifier } from 'src/shared/core/domain/identifier'; import { AuthUserEntity } from './auth-user.entity'; +import { AuthUser } from '../domain/auth-user'; export class AuthUserMapper { static toDomain(entity: AuthUserEntity): AuthUser { diff --git a/src/auth/auth-user/infrastructure/auth-user.repository.impl.ts b/iam/auth/auth-user/infrastructure/auth-user.store.impl.ts similarity index 86% rename from src/auth/auth-user/infrastructure/auth-user.repository.impl.ts rename to iam/auth/auth-user/infrastructure/auth-user.store.impl.ts index 6960aa2..5efcaf9 100644 --- a/src/auth/auth-user/infrastructure/auth-user.repository.impl.ts +++ b/iam/auth/auth-user/infrastructure/auth-user.store.impl.ts @@ -1,14 +1,14 @@ import { EntityManager, EntityRepository } from '@mikro-orm/mysql'; -import { AuthUser } from 'src/auth/auth-user/domain/auth-user'; -import { OAuthProviderType } from 'src/auth/auth-user/domain/value-object/oauth-provider.enum'; import { InjectRepository } from '@mikro-orm/nestjs'; -import { AuthUserRepository } from 'src/auth/auth-user/domain/auth-user.repository'; import { AuthUserEntity } from './auth-user.entity'; import { AuthUserMapper } from './auth-user.mapper'; import { CustomException } from 'src/shared/exception/custom-exception'; import { CustomExceptionCode } from 'src/shared/exception/custom-exception-code'; +import { AuthUserStore } from '../domain/auth-user.repository'; +import { AuthUser } from '../domain/auth-user'; +import { OAuthProviderType } from '../domain/value-object/oauth-provider.enum'; -export class AuthUserRepositoryImpl implements AuthUserRepository { +export class AuthUserStoreImpl implements AuthUserStore { constructor( @InjectRepository(AuthUserEntity) private readonly authOrmRepository: EntityRepository, diff --git a/src/auth/auth-user/presentation/auth-user.controller.ts b/iam/auth/auth-user/presentation/auth-user.controller.ts similarity index 95% rename from src/auth/auth-user/presentation/auth-user.controller.ts rename to iam/auth/auth-user/presentation/auth-user.controller.ts index fc88850..989e475 100644 --- a/src/auth/auth-user/presentation/auth-user.controller.ts +++ b/iam/auth/auth-user/presentation/auth-user.controller.ts @@ -2,7 +2,6 @@ import { Controller, Get, HttpStatus, Post, Query, Res, UseGuards } from '@nestj import { AuthGuard } from '@nestjs/passport'; import { ApiTags } from '@nestjs/swagger'; import { Response } from 'express'; -import { OAuthLoginUseCase } from '../application/oauth-login/oauth-login.handler'; import { AuthorizeOAuthUseCase } from '../application/authorize-oauth/authorize-oauth.use-case'; import { accessTokenCookieOptions, refreshTokenCookieOptions } from 'src/shared/config/cookie.config'; import { RenewTokenUseCase } from '../application/renew-token/renew-token.use-case'; @@ -11,12 +10,13 @@ import { LogoutUseCase } from '../application/logout/logout.use-case'; import { OAuthProviderType } from '../domain/value-object/oauth-provider.enum'; import { AuthUserDocs } from './auth-user.docs'; import { UnlinkOAuthUseCase } from '../application/unlink-oauth/unlink-oauth.use-case'; -import { RolesGuard } from 'src/auth/core/infrastructure/guard/role.guard'; -import { Role } from 'src/auth/core/domain/value-object/role'; import { Roles } from 'src/shared/core/presentation/role.decorator'; +import { OAuthLoginUseCase } from '../application/oauth-login/oauth-login.use-case'; +import { RolesGuard } from 'iam/auth/auth-core/infrastructure/guard/role.guard'; +import { Role } from 'iam/auth/auth-core/domain/value-object/role'; @ApiTags('auth-user') -@Controller('auth') +@Controller('auth-temp') export class AuthUserController { constructor( private readonly oAuthLoginUseCase: OAuthLoginUseCase, diff --git a/src/auth/auth-user/presentation/auth-user.docs.ts b/iam/auth/auth-user/presentation/auth-user.docs.ts similarity index 100% rename from src/auth/auth-user/presentation/auth-user.docs.ts rename to iam/auth/auth-user/presentation/auth-user.docs.ts diff --git a/src/auth/auth-user/application/oauth-login/oauth-login.command.ts b/src/auth/auth-user/application/oauth-login/oauth-login.command.ts deleted file mode 100644 index c9cf5c8..0000000 --- a/src/auth/auth-user/application/oauth-login/oauth-login.command.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ICommand } from '@nestjs/cqrs'; -import { OAuthProviderType } from 'src/auth/auth-user/domain/value-object/oauth-provider.enum'; - -export class OAuthLoginCommand implements ICommand { - constructor( - public readonly oAuthProviderType: OAuthProviderType, - public readonly code: string, - public readonly state?: string, - ) {} -} From 261e1f7de00d25e6775a25c2d86084b116125d72 Mon Sep 17 00:00:00 2001 From: liverforpresent Date: Sat, 6 Dec 2025 15:34:56 +0900 Subject: [PATCH 05/14] =?UTF-8?q?chore:=20auth-organization=20=EB=B6=84?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../check-account-id/check-account-id.command.ts | 3 +++ .../check-account-id/check-account-id.use-case.ts | 2 -- .../application/create/create.command.ts | 4 +--- .../application/create/create.use-case.ts | 0 .../application/login/login.command.ts | 4 +--- .../application/login/login.result.ts | 2 +- .../application/login/login.use-case.ts | 12 +++++------- .../application/logout/logout.command.ts | 3 +++ .../application/logout/logout.use-case.ts | 0 .../application/renew-token/renew-token.command.ts | 4 +--- .../renew-token}/renew-token.response.dto.ts | 2 +- .../renew-token/renew-token.use-case.ts | 14 ++++++-------- .../auth-organization/auth-organization.module.ts | 12 ++++++------ .../domain/auth-organization.store.ts | 0 .../auth-organization/domain/auth-organization.ts | 0 .../event/auth-organization-created.event.ts | 4 ++-- .../auth-organization/domain/password-hasher.ts | 0 .../auth/auth-organization/domain/vo/account-id.ts | 0 .../auth-organization/domain/vo/password-hash.ts | 0 .../auth-organization/domain/vo/raw-password.ts | 0 .../infrastructure/auth-organization.entity.ts | 0 .../infrastructure/auth-organization.mapper.ts | 0 .../infrastructure/auth-organization.store.impl.ts | 0 .../infrastructure/password-hasher.impl.ts | 0 .../presentation/auth-organization.controller.ts | 4 ++-- .../presentation/auth-organization.docs.ts | 0 .../dto/request/check-account-id.request.dto.ts | 0 .../presentation/dto/request/login.request.dto.ts | 0 .../request/register-organization.request.dto.ts | 0 .../dto/response/check-account-id.response.dto.ts | 0 src/app.module.ts | 8 ++------ .../check-account-id/check-account-id.command.ts | 5 ----- .../application/logout/logout.command.ts | 5 ----- 33 files changed, 34 insertions(+), 54 deletions(-) create mode 100644 iam/auth/auth-organization/application/check-account-id/check-account-id.command.ts rename {src => iam}/auth/auth-organization/application/check-account-id/check-account-id.use-case.ts (87%) rename {src => iam}/auth/auth-organization/application/create/create.command.ts (61%) rename {src => iam}/auth/auth-organization/application/create/create.use-case.ts (100%) rename {src => iam}/auth/auth-organization/application/login/login.command.ts (52%) rename src/auth/auth-organization/application/login/dto/login.response.dto.ts => iam/auth/auth-organization/application/login/login.result.ts (83%) rename {src => iam}/auth/auth-organization/application/login/login.use-case.ts (85%) create mode 100644 iam/auth/auth-organization/application/logout/logout.command.ts rename {src => iam}/auth/auth-organization/application/logout/logout.use-case.ts (100%) rename {src => iam}/auth/auth-organization/application/renew-token/renew-token.command.ts (51%) rename {src/auth/auth-organization/application/renew-token/dto => iam/auth/auth-organization/application/renew-token}/renew-token.response.dto.ts (81%) rename {src => iam}/auth/auth-organization/application/renew-token/renew-token.use-case.ts (81%) rename {src => iam}/auth/auth-organization/auth-organization.module.ts (96%) rename {src => iam}/auth/auth-organization/domain/auth-organization.store.ts (100%) rename {src => iam}/auth/auth-organization/domain/auth-organization.ts (100%) rename {src => iam}/auth/auth-organization/domain/event/auth-organization-created.event.ts (82%) rename {src => iam}/auth/auth-organization/domain/password-hasher.ts (100%) rename {src => iam}/auth/auth-organization/domain/vo/account-id.ts (100%) rename {src => iam}/auth/auth-organization/domain/vo/password-hash.ts (100%) rename {src => iam}/auth/auth-organization/domain/vo/raw-password.ts (100%) rename {src => iam}/auth/auth-organization/infrastructure/auth-organization.entity.ts (100%) rename {src => iam}/auth/auth-organization/infrastructure/auth-organization.mapper.ts (100%) rename {src => iam}/auth/auth-organization/infrastructure/auth-organization.store.impl.ts (100%) rename {src => iam}/auth/auth-organization/infrastructure/password-hasher.impl.ts (100%) rename {src => iam}/auth/auth-organization/presentation/auth-organization.controller.ts (96%) rename {src => iam}/auth/auth-organization/presentation/auth-organization.docs.ts (100%) rename {src => iam}/auth/auth-organization/presentation/dto/request/check-account-id.request.dto.ts (100%) rename {src => iam}/auth/auth-organization/presentation/dto/request/login.request.dto.ts (100%) rename {src => iam}/auth/auth-organization/presentation/dto/request/register-organization.request.dto.ts (100%) rename {src => iam}/auth/auth-organization/presentation/dto/response/check-account-id.response.dto.ts (100%) delete mode 100644 src/auth/auth-organization/application/check-account-id/check-account-id.command.ts delete mode 100644 src/auth/auth-organization/application/logout/logout.command.ts diff --git a/iam/auth/auth-organization/application/check-account-id/check-account-id.command.ts b/iam/auth/auth-organization/application/check-account-id/check-account-id.command.ts new file mode 100644 index 0000000..49b3e19 --- /dev/null +++ b/iam/auth/auth-organization/application/check-account-id/check-account-id.command.ts @@ -0,0 +1,3 @@ +export class CheckAccountIdCommand { + constructor(public readonly accountId: string) {} +} diff --git a/src/auth/auth-organization/application/check-account-id/check-account-id.use-case.ts b/iam/auth/auth-organization/application/check-account-id/check-account-id.use-case.ts similarity index 87% rename from src/auth/auth-organization/application/check-account-id/check-account-id.use-case.ts rename to iam/auth/auth-organization/application/check-account-id/check-account-id.use-case.ts index e8234e6..136530c 100644 --- a/src/auth/auth-organization/application/check-account-id/check-account-id.use-case.ts +++ b/iam/auth/auth-organization/application/check-account-id/check-account-id.use-case.ts @@ -1,10 +1,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { AUTH_ORGANIZATION_STORE, AuthOrganizationStore } from '../../domain/auth-organization.store'; -import { CommandHandler } from '@nestjs/cqrs'; import { CheckAccountIdCommand } from './check-account-id.command'; @Injectable() -@CommandHandler(CheckAccountIdCommand) export class CheckAccountIdUseCase { constructor( @Inject(AUTH_ORGANIZATION_STORE) diff --git a/src/auth/auth-organization/application/create/create.command.ts b/iam/auth/auth-organization/application/create/create.command.ts similarity index 61% rename from src/auth/auth-organization/application/create/create.command.ts rename to iam/auth/auth-organization/application/create/create.command.ts index 03e453a..435301c 100644 --- a/src/auth/auth-organization/application/create/create.command.ts +++ b/iam/auth/auth-organization/application/create/create.command.ts @@ -1,6 +1,4 @@ -import { ICommand } from '@nestjs/cqrs'; - -export class CreateAuthOrganizationCommand implements ICommand { +export class CreateAuthOrganizationCommand { constructor( public readonly accountId: string, public readonly password: string, diff --git a/src/auth/auth-organization/application/create/create.use-case.ts b/iam/auth/auth-organization/application/create/create.use-case.ts similarity index 100% rename from src/auth/auth-organization/application/create/create.use-case.ts rename to iam/auth/auth-organization/application/create/create.use-case.ts diff --git a/src/auth/auth-organization/application/login/login.command.ts b/iam/auth/auth-organization/application/login/login.command.ts similarity index 52% rename from src/auth/auth-organization/application/login/login.command.ts rename to iam/auth/auth-organization/application/login/login.command.ts index 3895850..72411be 100644 --- a/src/auth/auth-organization/application/login/login.command.ts +++ b/iam/auth/auth-organization/application/login/login.command.ts @@ -1,6 +1,4 @@ -import { ICommand } from '@nestjs/cqrs'; - -export class LoginCommand implements ICommand { +export class LoginCommand { constructor( public readonly accountId: string, public readonly password: string, diff --git a/src/auth/auth-organization/application/login/dto/login.response.dto.ts b/iam/auth/auth-organization/application/login/login.result.ts similarity index 83% rename from src/auth/auth-organization/application/login/dto/login.response.dto.ts rename to iam/auth/auth-organization/application/login/login.result.ts index b65819b..94c5a4b 100644 --- a/src/auth/auth-organization/application/login/dto/login.response.dto.ts +++ b/iam/auth/auth-organization/application/login/login.result.ts @@ -1,6 +1,6 @@ import { IsNotEmpty, IsString } from 'class-validator'; -export class LoginResponseDto { +export class LoginResult { @IsString() @IsNotEmpty() accessToken: string; diff --git a/src/auth/auth-organization/application/login/login.use-case.ts b/iam/auth/auth-organization/application/login/login.use-case.ts similarity index 85% rename from src/auth/auth-organization/application/login/login.use-case.ts rename to iam/auth/auth-organization/application/login/login.use-case.ts index c0c1197..49b0f58 100644 --- a/src/auth/auth-organization/application/login/login.use-case.ts +++ b/iam/auth/auth-organization/application/login/login.use-case.ts @@ -1,18 +1,16 @@ import { Inject, Injectable } from '@nestjs/common'; -import { CommandHandler } from '@nestjs/cqrs'; import { LoginCommand } from './login.command'; import { AUTH_ORGANIZATION_STORE, AuthOrganizationStore } from '../../domain/auth-organization.store'; import { PASSWORD_HASHER, PasswordHasher } from '../../domain/password-hasher'; import { CustomException } from 'src/shared/exception/custom-exception'; import { CustomExceptionCode } from 'src/shared/exception/custom-exception-code'; -import { JwtProvider } from 'src/auth/core/infrastructure/jwt/jwt.provider'; -import { TokenType } from 'src/auth/core/infrastructure/jwt/jwt.factory'; -import { LoginResponseDto } from './dto/login.response.dto'; import { AuthOrganization } from '../../domain/auth-organization'; -import { Role } from 'src/auth/core/domain/value-object/role'; +import { LoginResult } from './login.result'; +import { JwtProvider } from 'iam/auth/auth-core/infrastructure/jwt/jwt.provider'; +import { Role } from 'iam/auth/auth-core/domain/value-object/role'; +import { TokenType } from 'iam/auth/auth-core/infrastructure/jwt/jwt.factory'; @Injectable() -@CommandHandler(LoginCommand) export class LoginUseCase { constructor( @Inject(AUTH_ORGANIZATION_STORE) @@ -22,7 +20,7 @@ export class LoginUseCase { private readonly jwtProvider: JwtProvider, ) {} - async execute(command: LoginCommand): Promise { + async execute(command: LoginCommand): Promise { const { accountId, password } = command; const authOrganization = await this.validateAccount(accountId.trim(), password.trim()); diff --git a/iam/auth/auth-organization/application/logout/logout.command.ts b/iam/auth/auth-organization/application/logout/logout.command.ts new file mode 100644 index 0000000..927c7f1 --- /dev/null +++ b/iam/auth/auth-organization/application/logout/logout.command.ts @@ -0,0 +1,3 @@ +export class LogoutCommand { + constructor(public readonly organizationId: string) {} +} diff --git a/src/auth/auth-organization/application/logout/logout.use-case.ts b/iam/auth/auth-organization/application/logout/logout.use-case.ts similarity index 100% rename from src/auth/auth-organization/application/logout/logout.use-case.ts rename to iam/auth/auth-organization/application/logout/logout.use-case.ts diff --git a/src/auth/auth-organization/application/renew-token/renew-token.command.ts b/iam/auth/auth-organization/application/renew-token/renew-token.command.ts similarity index 51% rename from src/auth/auth-organization/application/renew-token/renew-token.command.ts rename to iam/auth/auth-organization/application/renew-token/renew-token.command.ts index 00d655f..792f690 100644 --- a/src/auth/auth-organization/application/renew-token/renew-token.command.ts +++ b/iam/auth/auth-organization/application/renew-token/renew-token.command.ts @@ -1,6 +1,4 @@ -import { ICommand } from '@nestjs/cqrs'; - -export class RenewTokenCommand implements ICommand { +export class RenewTokenCommand { constructor( public readonly organizationId: string, public readonly jti: string, diff --git a/src/auth/auth-organization/application/renew-token/dto/renew-token.response.dto.ts b/iam/auth/auth-organization/application/renew-token/renew-token.response.dto.ts similarity index 81% rename from src/auth/auth-organization/application/renew-token/dto/renew-token.response.dto.ts rename to iam/auth/auth-organization/application/renew-token/renew-token.response.dto.ts index 939d5ad..4fcc715 100644 --- a/src/auth/auth-organization/application/renew-token/dto/renew-token.response.dto.ts +++ b/iam/auth/auth-organization/application/renew-token/renew-token.response.dto.ts @@ -1,6 +1,6 @@ import { IsNotEmpty, IsString } from 'class-validator'; -export class RenewTokenResponseDto { +export class RenewTokenResult { @IsString() @IsNotEmpty() accessToken: string; diff --git a/src/auth/auth-organization/application/renew-token/renew-token.use-case.ts b/iam/auth/auth-organization/application/renew-token/renew-token.use-case.ts similarity index 81% rename from src/auth/auth-organization/application/renew-token/renew-token.use-case.ts rename to iam/auth/auth-organization/application/renew-token/renew-token.use-case.ts index 1f4a2d5..9a7a571 100644 --- a/src/auth/auth-organization/application/renew-token/renew-token.use-case.ts +++ b/iam/auth/auth-organization/application/renew-token/renew-token.use-case.ts @@ -1,25 +1,23 @@ import { Inject, Injectable } from '@nestjs/common'; -import { JwtProvider } from 'src/auth/core/infrastructure/jwt/jwt.provider'; import { AUTH_ORGANIZATION_STORE, AuthOrganizationStore } from '../../domain/auth-organization.store'; -import { CommandHandler, ICommandHandler } from '@nestjs/cqrs'; import { RenewTokenCommand } from './renew-token.command'; -import { TokenType } from 'src/auth/core/infrastructure/jwt/jwt.factory'; import { CustomException } from 'src/shared/exception/custom-exception'; import { CustomExceptionCode } from 'src/shared/exception/custom-exception-code'; -import { RenewTokenResponseDto } from './dto/renew-token.response.dto'; import { AuthOrganization } from '../../domain/auth-organization'; -import { Role } from 'src/auth/core/domain/value-object/role'; +import { RenewTokenResult } from './renew-token.response.dto'; +import { JwtProvider } from 'iam/auth/auth-core/infrastructure/jwt/jwt.provider'; +import { TokenType } from 'iam/auth/auth-core/infrastructure/jwt/jwt.factory'; +import { Role } from 'iam/auth/auth-core/domain/value-object/role'; @Injectable() -@CommandHandler(RenewTokenCommand) -export class RenewTokenUseCase implements ICommandHandler { +export class RenewTokenUseCase { constructor( @Inject(AUTH_ORGANIZATION_STORE) private readonly authOrganizationStore: AuthOrganizationStore, private readonly jwtProvider: JwtProvider, ) {} - async execute(command: RenewTokenCommand): Promise { + async execute(command: RenewTokenCommand): Promise { const { organizationId, jti } = command; const authOrganization = await this.validateRefreshToken(organizationId, jti); diff --git a/src/auth/auth-organization/auth-organization.module.ts b/iam/auth/auth-organization/auth-organization.module.ts similarity index 96% rename from src/auth/auth-organization/auth-organization.module.ts rename to iam/auth/auth-organization/auth-organization.module.ts index 17a898e..3d991ce 100644 --- a/src/auth/auth-organization/auth-organization.module.ts +++ b/iam/auth/auth-organization/auth-organization.module.ts @@ -1,25 +1,26 @@ import { MikroOrmModule } from '@mikro-orm/nestjs'; import { Module } from '@nestjs/common'; import { SharedModule } from 'src/shared/shared.module'; -import { AuthOrganizationController } from './presentation/auth-organization.controller'; import { AUTH_ORGANIZATION_STORE } from './domain/auth-organization.store'; -import { AuthOrganizationStoreImpl } from './infrastructure/auth-organization.store.impl'; -import { AuthCoreModule } from '../core/auth-core.module'; import { AuthOrganizationEntity } from './infrastructure/auth-organization.entity'; import { CreateAuthOrganizationUseCase } from './application/create/create.use-case'; import { CqrsModule } from '@nestjs/cqrs'; import { PASSWORD_HASHER } from './domain/password-hasher'; +import { AuthOrganizationStoreImpl } from './infrastructure/auth-organization.store.impl'; import { PasswordHasherImpl } from './infrastructure/password-hasher.impl'; +import { AuthCoreModule } from '../auth-core/auth-core.module'; +import { CheckAccountIdUseCase } from './application/check-account-id/check-account-id.use-case'; import { RenewTokenUseCase } from './application/renew-token/renew-token.use-case'; -import { LogoutUseCase } from './application/logout/logout.use-case'; import { LoginUseCase } from './application/login/login.use-case'; -import { CheckAccountIdUseCase } from './application/check-account-id/check-account-id.use-case'; +import { LogoutUseCase } from './application/logout/logout.use-case'; +import { AuthOrganizationController } from './presentation/auth-organization.controller'; const usecases = [CreateAuthOrganizationUseCase, RenewTokenUseCase, LoginUseCase, LogoutUseCase, CheckAccountIdUseCase]; @Module({ imports: [SharedModule, MikroOrmModule.forFeature([AuthOrganizationEntity]), AuthCoreModule, CqrsModule], providers: [ + ...usecases, { provide: AUTH_ORGANIZATION_STORE, useClass: AuthOrganizationStoreImpl, @@ -28,7 +29,6 @@ const usecases = [CreateAuthOrganizationUseCase, RenewTokenUseCase, LoginUseCase provide: PASSWORD_HASHER, useClass: PasswordHasherImpl, }, - ...usecases, ], controllers: [AuthOrganizationController], exports: [], diff --git a/src/auth/auth-organization/domain/auth-organization.store.ts b/iam/auth/auth-organization/domain/auth-organization.store.ts similarity index 100% rename from src/auth/auth-organization/domain/auth-organization.store.ts rename to iam/auth/auth-organization/domain/auth-organization.store.ts diff --git a/src/auth/auth-organization/domain/auth-organization.ts b/iam/auth/auth-organization/domain/auth-organization.ts similarity index 100% rename from src/auth/auth-organization/domain/auth-organization.ts rename to iam/auth/auth-organization/domain/auth-organization.ts diff --git a/src/auth/auth-organization/domain/event/auth-organization-created.event.ts b/iam/auth/auth-organization/domain/event/auth-organization-created.event.ts similarity index 82% rename from src/auth/auth-organization/domain/event/auth-organization-created.event.ts rename to iam/auth/auth-organization/domain/event/auth-organization-created.event.ts index cb11d22..3258ce6 100644 --- a/src/auth/auth-organization/domain/event/auth-organization-created.event.ts +++ b/iam/auth/auth-organization/domain/event/auth-organization-created.event.ts @@ -1,13 +1,13 @@ import { BaseDomainEvent } from 'src/shared/core/domain/base.domain-event'; export class AuthOrganizationCreatedEvent implements BaseDomainEvent { - readonly timesstamp: Date; + readonly timestamp: Date; constructor( public readonly organizationId: string, public readonly name: string, public readonly contact: string, ) { - this.timesstamp = new Date(); + this.timestamp = new Date(); } } diff --git a/src/auth/auth-organization/domain/password-hasher.ts b/iam/auth/auth-organization/domain/password-hasher.ts similarity index 100% rename from src/auth/auth-organization/domain/password-hasher.ts rename to iam/auth/auth-organization/domain/password-hasher.ts diff --git a/src/auth/auth-organization/domain/vo/account-id.ts b/iam/auth/auth-organization/domain/vo/account-id.ts similarity index 100% rename from src/auth/auth-organization/domain/vo/account-id.ts rename to iam/auth/auth-organization/domain/vo/account-id.ts diff --git a/src/auth/auth-organization/domain/vo/password-hash.ts b/iam/auth/auth-organization/domain/vo/password-hash.ts similarity index 100% rename from src/auth/auth-organization/domain/vo/password-hash.ts rename to iam/auth/auth-organization/domain/vo/password-hash.ts diff --git a/src/auth/auth-organization/domain/vo/raw-password.ts b/iam/auth/auth-organization/domain/vo/raw-password.ts similarity index 100% rename from src/auth/auth-organization/domain/vo/raw-password.ts rename to iam/auth/auth-organization/domain/vo/raw-password.ts diff --git a/src/auth/auth-organization/infrastructure/auth-organization.entity.ts b/iam/auth/auth-organization/infrastructure/auth-organization.entity.ts similarity index 100% rename from src/auth/auth-organization/infrastructure/auth-organization.entity.ts rename to iam/auth/auth-organization/infrastructure/auth-organization.entity.ts diff --git a/src/auth/auth-organization/infrastructure/auth-organization.mapper.ts b/iam/auth/auth-organization/infrastructure/auth-organization.mapper.ts similarity index 100% rename from src/auth/auth-organization/infrastructure/auth-organization.mapper.ts rename to iam/auth/auth-organization/infrastructure/auth-organization.mapper.ts diff --git a/src/auth/auth-organization/infrastructure/auth-organization.store.impl.ts b/iam/auth/auth-organization/infrastructure/auth-organization.store.impl.ts similarity index 100% rename from src/auth/auth-organization/infrastructure/auth-organization.store.impl.ts rename to iam/auth/auth-organization/infrastructure/auth-organization.store.impl.ts diff --git a/src/auth/auth-organization/infrastructure/password-hasher.impl.ts b/iam/auth/auth-organization/infrastructure/password-hasher.impl.ts similarity index 100% rename from src/auth/auth-organization/infrastructure/password-hasher.impl.ts rename to iam/auth/auth-organization/infrastructure/password-hasher.impl.ts diff --git a/src/auth/auth-organization/presentation/auth-organization.controller.ts b/iam/auth/auth-organization/presentation/auth-organization.controller.ts similarity index 96% rename from src/auth/auth-organization/presentation/auth-organization.controller.ts rename to iam/auth/auth-organization/presentation/auth-organization.controller.ts index 43e688f..21ca873 100644 --- a/src/auth/auth-organization/presentation/auth-organization.controller.ts +++ b/iam/auth/auth-organization/presentation/auth-organization.controller.ts @@ -15,8 +15,8 @@ import { CheckAccountIdUseCase } from '../application/check-account-id/check-acc import { CheckAccountIdResponseDto } from './dto/response/check-account-id.response.dto'; import { Organization, OrganizationPayload } from 'src/shared/core/presentation/organization.decorator'; import { Roles } from 'src/shared/core/presentation/role.decorator'; -import { RolesGuard } from 'src/auth/core/infrastructure/guard/role.guard'; -import { Role } from 'src/auth/core/domain/value-object/role'; +import { Role } from 'iam/auth/auth-core/domain/value-object/role'; +import { RolesGuard } from 'iam/auth/auth-core/infrastructure/guard/role.guard'; @ApiTags('auth-organization') @Controller('auth/organization') diff --git a/src/auth/auth-organization/presentation/auth-organization.docs.ts b/iam/auth/auth-organization/presentation/auth-organization.docs.ts similarity index 100% rename from src/auth/auth-organization/presentation/auth-organization.docs.ts rename to iam/auth/auth-organization/presentation/auth-organization.docs.ts diff --git a/src/auth/auth-organization/presentation/dto/request/check-account-id.request.dto.ts b/iam/auth/auth-organization/presentation/dto/request/check-account-id.request.dto.ts similarity index 100% rename from src/auth/auth-organization/presentation/dto/request/check-account-id.request.dto.ts rename to iam/auth/auth-organization/presentation/dto/request/check-account-id.request.dto.ts diff --git a/src/auth/auth-organization/presentation/dto/request/login.request.dto.ts b/iam/auth/auth-organization/presentation/dto/request/login.request.dto.ts similarity index 100% rename from src/auth/auth-organization/presentation/dto/request/login.request.dto.ts rename to iam/auth/auth-organization/presentation/dto/request/login.request.dto.ts diff --git a/src/auth/auth-organization/presentation/dto/request/register-organization.request.dto.ts b/iam/auth/auth-organization/presentation/dto/request/register-organization.request.dto.ts similarity index 100% rename from src/auth/auth-organization/presentation/dto/request/register-organization.request.dto.ts rename to iam/auth/auth-organization/presentation/dto/request/register-organization.request.dto.ts diff --git a/src/auth/auth-organization/presentation/dto/response/check-account-id.response.dto.ts b/iam/auth/auth-organization/presentation/dto/response/check-account-id.response.dto.ts similarity index 100% rename from src/auth/auth-organization/presentation/dto/response/check-account-id.response.dto.ts rename to iam/auth/auth-organization/presentation/dto/response/check-account-id.response.dto.ts diff --git a/src/app.module.ts b/src/app.module.ts index c48edf1..f989243 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -3,9 +3,7 @@ import { ConfigModule } from '@nestjs/config'; import { MikroOrmModule } from '@mikro-orm/nestjs'; import { AppController } from 'src/app.controller'; import { AppService } from 'src/app.service'; -import { AuthModule } from 'src/auth/auth.module'; import { ArticleModule } from 'src/article/article.module'; -import { UserModule } from 'src/user/user.module'; import { SharedModule } from 'src/shared/shared.module'; import { TagModule } from './tag/tag.module'; import { MediaModule } from './media/media.module'; @@ -13,7 +11,7 @@ import { ScrapModule } from './scrap/scrap.module'; import mikroOrmConfig from './shared/config/mikro-orm.config'; import config from 'src/shared/config/configuration'; import { AnalyticsModule } from './analytics/analytics.module'; -import { OrganizationModule } from './organization/organization.module'; +import { IamModule } from 'iam/iam.module'; @Module({ imports: [ @@ -22,15 +20,13 @@ import { OrganizationModule } from './organization/organization.module'; isGlobal: true, load: [config], }), + IamModule, AnalyticsModule, - AuthModule, ArticleModule, - UserModule, SharedModule, TagModule, MediaModule, ScrapModule, - OrganizationModule, ], controllers: [AppController], providers: [AppService], diff --git a/src/auth/auth-organization/application/check-account-id/check-account-id.command.ts b/src/auth/auth-organization/application/check-account-id/check-account-id.command.ts deleted file mode 100644 index b600702..0000000 --- a/src/auth/auth-organization/application/check-account-id/check-account-id.command.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { ICommand } from '@nestjs/cqrs'; - -export class CheckAccountIdCommand implements ICommand { - constructor(public readonly accountId: string) {} -} diff --git a/src/auth/auth-organization/application/logout/logout.command.ts b/src/auth/auth-organization/application/logout/logout.command.ts deleted file mode 100644 index 0da833f..0000000 --- a/src/auth/auth-organization/application/logout/logout.command.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { ICommand } from '@nestjs/cqrs'; - -export class LogoutCommand implements ICommand { - constructor(public readonly organizationId: string) {} -} From a1cb4b18857f127c00bae795a2a01a14dc94071e Mon Sep 17 00:00:00 2001 From: liverforpresent Date: Sat, 6 Dec 2025 15:35:44 +0900 Subject: [PATCH 06/14] =?UTF-8?q?chore:=20iam=20=EB=AA=A8=EB=93=88=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iam/auth/auth.module.ts | 10 ++++++++++ iam/iam.module.ts | 9 +++++++++ src/auth/auth.module.ts | 12 ------------ 3 files changed, 19 insertions(+), 12 deletions(-) create mode 100644 iam/auth/auth.module.ts create mode 100644 iam/iam.module.ts delete mode 100644 src/auth/auth.module.ts diff --git a/iam/auth/auth.module.ts b/iam/auth/auth.module.ts new file mode 100644 index 0000000..044ae9e --- /dev/null +++ b/iam/auth/auth.module.ts @@ -0,0 +1,10 @@ +import { Module } from '@nestjs/common'; +import { AuthUserModule } from './auth-user/auth-user.module'; +import { AuthOrganizationModule } from './auth-organization/auth-organization.module'; +import { AuthCoreModule } from './auth-core/auth-core.module'; + +@Module({ + imports: [AuthUserModule, AuthOrganizationModule, AuthCoreModule], + providers: [], +}) +export class AuthModule {} diff --git a/iam/iam.module.ts b/iam/iam.module.ts new file mode 100644 index 0000000..d3ada3f --- /dev/null +++ b/iam/iam.module.ts @@ -0,0 +1,9 @@ +import { Module } from '@nestjs/common'; +import { AuthModule } from './auth/auth.module'; +import { UserModule } from './user/user.module'; +import { OrganizationModule } from './organization/organization.module'; + +@Module({ + imports: [AuthModule, UserModule, OrganizationModule], +}) +export class IamModule {} diff --git a/src/auth/auth.module.ts b/src/auth/auth.module.ts deleted file mode 100644 index 76f3682..0000000 --- a/src/auth/auth.module.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Module } from '@nestjs/common'; -import { SharedModule } from 'src/shared/shared.module'; -import { CqrsModule } from '@nestjs/cqrs'; -import { AuthUserModule } from './auth-user/auth-user.module'; -import { AuthOrganizationModule } from './auth-organization/auth-organization.module'; -import { AuthCoreModule } from './core/auth-core.module'; - -@Module({ - imports: [SharedModule, CqrsModule, AuthUserModule, AuthOrganizationModule, AuthCoreModule], - providers: [], -}) -export class AuthModule {} From 2c8146704434f3fb4cc08699de70b51e023ef95e Mon Sep 17 00:00:00 2001 From: liverforpresent Date: Sat, 6 Dec 2025 16:07:21 +0900 Subject: [PATCH 07/14] =?UTF-8?q?fix:=20=EC=9C=A0=EC=A0=80=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1=20=EC=8B=9C,=20id=EB=A5=BC=20=EB=B0=9B=EC=95=84?= =?UTF-8?q?=EC=84=9C=20=EC=83=9D=EC=84=B1=ED=95=98=EC=A7=80=20=EC=95=8A?= =?UTF-8?q?=EA=B3=A0=20=EC=A7=81=EC=A0=91=20=EC=83=9D=EC=84=B1=ED=95=98?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iam/user/application/create/create.command.ts | 10 ++-------- iam/user/application/create/create.result.ts | 3 +++ iam/user/application/create/create.use-case.ts | 10 +++++++--- iam/user/user.module.ts | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) create mode 100644 iam/user/application/create/create.result.ts diff --git a/iam/user/application/create/create.command.ts b/iam/user/application/create/create.command.ts index dfe8da5..7bf4bd5 100644 --- a/iam/user/application/create/create.command.ts +++ b/iam/user/application/create/create.command.ts @@ -1,9 +1,3 @@ -import { ICommand } from '@nestjs/cqrs'; -import { Identifier } from 'src/shared/core/domain/identifier'; - -export class CreateUserCommand implements ICommand { - constructor( - public readonly userId: Identifier, - public readonly email: string, - ) {} +export class CreateUserCommand { + constructor(public readonly email: string) {} } diff --git a/iam/user/application/create/create.result.ts b/iam/user/application/create/create.result.ts new file mode 100644 index 0000000..42da2fa --- /dev/null +++ b/iam/user/application/create/create.result.ts @@ -0,0 +1,3 @@ +export class CreateUserResult { + constructor(public readonly userId: string) {} +} diff --git a/iam/user/application/create/create.use-case.ts b/iam/user/application/create/create.use-case.ts index cac2033..a9760a1 100644 --- a/iam/user/application/create/create.use-case.ts +++ b/iam/user/application/create/create.use-case.ts @@ -2,6 +2,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { User } from '../../domain/user'; import { CreateUserCommand } from './create.command'; import { USER_STORE, UserStore } from 'iam/user/domain/user.store'; +import { Identifier } from 'src/shared/core/domain/identifier'; +import { CreateUserResult } from './create.result'; @Injectable() export class CreateUserUseCase { @@ -10,16 +12,18 @@ export class CreateUserUseCase { private readonly userStore: UserStore, ) {} - async execute(command: CreateUserCommand): Promise { - const { userId, email } = command; + async execute(command: CreateUserCommand): Promise { + const { email } = command; const now = new Date(); const user = User.create({ - id: userId, + id: Identifier.create(), createdAt: now, updatedAt: now, email: email, }); await this.userStore.save(user); + + return { userId: user.id.value }; } } diff --git a/iam/user/user.module.ts b/iam/user/user.module.ts index 08528a3..154a4ac 100644 --- a/iam/user/user.module.ts +++ b/iam/user/user.module.ts @@ -27,7 +27,7 @@ const useCases = [DeleteUserUseCase, CreateUserUseCase, GetUserUseCase]; useClass: UserReaderImpl, }, ], - exports: [], + exports: [...useCases], controllers: [UserController], }) export class UserModule {} From 4dccadc86a5ac2ffd463620f9649f723ac19b70c Mon Sep 17 00:00:00 2001 From: liverforpresent Date: Sat, 6 Dec 2025 16:07:55 +0900 Subject: [PATCH 08/14] =?UTF-8?q?fix:=20=EC=9C=A0=EC=A0=80=20=EC=97=94?= =?UTF-8?q?=ED=8B=B0=ED=8B=B0=EC=97=90=EC=84=9C=20Role=20column=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iam/user/infrastructure/user.entity.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/iam/user/infrastructure/user.entity.ts b/iam/user/infrastructure/user.entity.ts index 6f212e8..8ae1ea8 100644 --- a/iam/user/infrastructure/user.entity.ts +++ b/iam/user/infrastructure/user.entity.ts @@ -1,16 +1,12 @@ import { Cascade, Collection, Entity, OneToMany, Property } from '@mikro-orm/core'; import { ScrapEntity } from 'src/scrap/command/infrastructure/scrap.entity'; import { BaseEntity } from 'src/shared/core/infrastructure/orm-entity/base.entity'; -import { Role } from '../domain/value-object/role.enum'; @Entity({ tableName: 'user' }) export class UserEntity extends BaseEntity { @Property({ type: 'varchar', unique: true }) email: string; - @Property({ type: 'varchar' }) - role: Role; - @OneToMany(() => ScrapEntity, (scrap) => scrap.user, { nullable: true, cascade: [Cascade.ALL] }) scraps = new Collection(this); } From 2bf1f8300d4c0810b528903b301a5e86de1f6b92 Mon Sep 17 00:00:00 2001 From: liverforpresent Date: Sat, 6 Dec 2025 16:09:57 +0900 Subject: [PATCH 09/14] =?UTF-8?q?fix:=20=ED=9A=8C=EC=9B=90=EA=B0=80?= =?UTF-8?q?=EC=9E=85=20=EC=8B=9C,=20=EC=9D=B4=EB=B2=A4=ED=8A=B8=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=20=EC=97=86=EC=95=A0=EA=B3=A0,=20=EC=9C=A0?= =?UTF-8?q?=EC=A0=80=20=EC=83=9D=EC=84=B1=20=EB=A1=9C=EC=A7=81=20=EC=A7=81?= =?UTF-8?q?=EC=A0=91=20=EC=82=AC=EC=9A=A9=ED=95=98=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oauth-login/oauth-login.use-case.ts | 20 +++++++++++++++---- iam/auth/auth-user/auth-user.module.ts | 3 ++- iam/auth/auth-user/domain/auth-user.ts | 2 ++ .../presentation/auth-user.controller.ts | 2 +- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/iam/auth/auth-user/application/oauth-login/oauth-login.use-case.ts b/iam/auth/auth-user/application/oauth-login/oauth-login.use-case.ts index 4aa063e..6b7f333 100644 --- a/iam/auth/auth-user/application/oauth-login/oauth-login.use-case.ts +++ b/iam/auth/auth-user/application/oauth-login/oauth-login.use-case.ts @@ -9,14 +9,15 @@ import { OAuthProviderFactory } from 'iam/auth/auth-core/infrastructure/oauth/oa import { JwtProvider } from 'iam/auth/auth-core/infrastructure/jwt/jwt.provider'; import { OAuthProviderType } from '../../domain/value-object/oauth-provider.enum'; import { AuthUser } from '../../domain/auth-user'; -import { AuthCreatedEvent } from '../../domain/event/auth-created.event'; import { Role } from 'iam/auth/auth-core/domain/value-object/role'; import { TokenType } from 'iam/auth/auth-core/infrastructure/jwt/jwt.factory'; +import { CreateUserUseCase } from 'iam/user/application/create/create.use-case'; @Injectable() export class OAuthLoginUseCase { private readonly now: Date; constructor( + private readonly createUserUseCase: CreateUserUseCase, private readonly oAuthProviderFactory: OAuthProviderFactory, private readonly jwtProvider: JwtProvider, @Inject(AUTH_USER_STORE) @@ -37,7 +38,7 @@ export class OAuthLoginUseCase { return { accessToken, refreshToken, userId: authUser.userId.value, redirectUrl }; } - // 소셜로그인 유저저 정보 가져오기 + // 소셜로그인 유저 정보 가져오기 private async getOAuthUserInfo(oAuthProviderType: OAuthProviderType, code: string) { const oAuthprovider = this.oAuthProviderFactory.getProvider(oAuthProviderType); const token = await oAuthprovider.getToken(code); @@ -53,10 +54,14 @@ export class OAuthLoginUseCase { return existingAuth; } - const userId = Identifier.create(); + const userId = await this.createNewUser(email); + const authUser = await this.createNewAuthUser(oauthId, provider, userId); - await this.eventBus.publish(new AuthCreatedEvent(userId, email, provider)); + return authUser; + } + // 새로운 유저 인증 객체 생성 + private async createNewAuthUser(oauthId: string, provider: OAuthProviderType, userId: Identifier): Promise { const authUser = AuthUser.create({ id: Identifier.create(), createdAt: this.now, @@ -75,6 +80,13 @@ export class OAuthLoginUseCase { return authUser; } + // 새로운 유저 생성 + private async createNewUser(email: string): Promise { + const { userId } = await this.createUserUseCase.execute({ email }); + + return Identifier.from(userId); + } + // 토큰 생성 및 저장 private async generateAndSaveTokens(authUser: AuthUser) { const { token: accessToken } = await this.jwtProvider.generateToken(TokenType.ACCESS, authUser.userId.value, [ diff --git a/iam/auth/auth-user/auth-user.module.ts b/iam/auth/auth-user/auth-user.module.ts index 5b8d75f..40d1925 100644 --- a/iam/auth/auth-user/auth-user.module.ts +++ b/iam/auth/auth-user/auth-user.module.ts @@ -13,12 +13,13 @@ import { AuthUserStoreImpl } from './infrastructure/auth-user.store.impl'; import { AuthUserEntity } from './infrastructure/auth-user.entity'; import { AuthCoreModule } from '../auth-core/auth-core.module'; import { AuthUserController } from './presentation/auth-user.controller'; +import { UserModule } from 'iam/user/user.module'; const usecases = [OAuthLoginUseCase, AuthorizeOAuthUseCase, RenewTokenUseCase, LogoutUseCase, UnlinkOAuthUseCase]; const listeners = [UnlinkOAuthListener]; @Module({ - imports: [MikroOrmModule.forFeature([AuthUserEntity]), AuthCoreModule, SharedModule, CqrsModule], + imports: [MikroOrmModule.forFeature([AuthUserEntity]), AuthCoreModule, SharedModule, CqrsModule, UserModule], providers: [ { provide: AUTH_USER_STORE, diff --git a/iam/auth/auth-user/domain/auth-user.ts b/iam/auth/auth-user/domain/auth-user.ts index 85b8fdd..5b1ccd0 100644 --- a/iam/auth/auth-user/domain/auth-user.ts +++ b/iam/auth/auth-user/domain/auth-user.ts @@ -6,6 +6,7 @@ import { CustomException } from 'src/shared/exception/custom-exception'; import { CustomExceptionCode } from 'src/shared/exception/custom-exception-code'; import { LoginSucceededEvent } from './event/login-succeeded.event'; import { AuthDeletedEvent } from './event/auth-deleted.event'; +import { AuthCreatedEvent } from './event/auth-created.event'; export interface AuthUserProps extends BaseEntityProps { oauthId: string; @@ -23,6 +24,7 @@ export class AuthUser extends AggregateRoot { public static create(props: AuthUserProps): AuthUser { const authUser = new AuthUser(props); authUser.validate(); + authUser.addDomainEvent(new AuthCreatedEvent(props.userId, props.oauthId, props.provider)); authUser.addDomainEvent(new LoginSucceededEvent(authUser.userId, authUser.provider)); return authUser; diff --git a/iam/auth/auth-user/presentation/auth-user.controller.ts b/iam/auth/auth-user/presentation/auth-user.controller.ts index 989e475..6ec7f26 100644 --- a/iam/auth/auth-user/presentation/auth-user.controller.ts +++ b/iam/auth/auth-user/presentation/auth-user.controller.ts @@ -16,7 +16,7 @@ import { RolesGuard } from 'iam/auth/auth-core/infrastructure/guard/role.guard'; import { Role } from 'iam/auth/auth-core/domain/value-object/role'; @ApiTags('auth-user') -@Controller('auth-temp') +@Controller('auth') export class AuthUserController { constructor( private readonly oAuthLoginUseCase: OAuthLoginUseCase, From 725f9d7c41be3374699854fac10632cc1bc0dad5 Mon Sep 17 00:00:00 2001 From: liverforpresent Date: Sat, 6 Dec 2025 16:18:36 +0900 Subject: [PATCH 10/14] =?UTF-8?q?fix:=20=ED=9A=8C=EC=9B=90=EA=B0=80?= =?UTF-8?q?=EC=9E=85=20=EC=9D=B4=EB=B2=A4=ED=8A=B8=EB=AA=85=20=EC=88=98?= =?UTF-8?q?=EC=A0=95(AuthCreated=20->=20UserSignedUp)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iam/auth/auth-user/domain/auth-user.ts | 4 ++-- .../{auth-created.event.ts => user-signed-up.event.ts} | 2 +- src/analytics/analytics.module.ts | 4 ++-- src/analytics/application/auth-event.handler.ts | 10 +++++----- 4 files changed, 10 insertions(+), 10 deletions(-) rename iam/auth/auth-user/domain/event/{auth-created.event.ts => user-signed-up.event.ts} (87%) diff --git a/iam/auth/auth-user/domain/auth-user.ts b/iam/auth/auth-user/domain/auth-user.ts index 5b1ccd0..ae8645e 100644 --- a/iam/auth/auth-user/domain/auth-user.ts +++ b/iam/auth/auth-user/domain/auth-user.ts @@ -6,7 +6,7 @@ import { CustomException } from 'src/shared/exception/custom-exception'; import { CustomExceptionCode } from 'src/shared/exception/custom-exception-code'; import { LoginSucceededEvent } from './event/login-succeeded.event'; import { AuthDeletedEvent } from './event/auth-deleted.event'; -import { AuthCreatedEvent } from './event/auth-created.event'; +import { UserSignedUpEvent } from './event/user-signed-up.event'; export interface AuthUserProps extends BaseEntityProps { oauthId: string; @@ -24,7 +24,7 @@ export class AuthUser extends AggregateRoot { public static create(props: AuthUserProps): AuthUser { const authUser = new AuthUser(props); authUser.validate(); - authUser.addDomainEvent(new AuthCreatedEvent(props.userId, props.oauthId, props.provider)); + authUser.addDomainEvent(new UserSignedUpEvent(props.userId, props.oauthId, props.provider)); authUser.addDomainEvent(new LoginSucceededEvent(authUser.userId, authUser.provider)); return authUser; diff --git a/iam/auth/auth-user/domain/event/auth-created.event.ts b/iam/auth/auth-user/domain/event/user-signed-up.event.ts similarity index 87% rename from iam/auth/auth-user/domain/event/auth-created.event.ts rename to iam/auth/auth-user/domain/event/user-signed-up.event.ts index a11de39..a376c59 100644 --- a/iam/auth/auth-user/domain/event/auth-created.event.ts +++ b/iam/auth/auth-user/domain/event/user-signed-up.event.ts @@ -2,7 +2,7 @@ import { BaseDomainEvent } from 'src/shared/core/domain/base.domain-event'; import { Identifier } from 'src/shared/core/domain/identifier'; import { OAuthProviderType } from '../value-object/oauth-provider.enum'; -export class AuthCreatedEvent implements BaseDomainEvent { +export class UserSignedUpEvent implements BaseDomainEvent { readonly timestamp: Date; constructor( diff --git a/src/analytics/analytics.module.ts b/src/analytics/analytics.module.ts index 65377c2..d09e0e7 100644 --- a/src/analytics/analytics.module.ts +++ b/src/analytics/analytics.module.ts @@ -3,13 +3,13 @@ import { Module } from '@nestjs/common'; import { ConfigModule, ConfigService } from '@nestjs/config'; import { AnalyticsService } from './infrastructure/analytics.service'; import { CqrsModule } from '@nestjs/cqrs'; -import { AuthCreatedEventHandler, LoginSucceededEventHandler } from './application/auth-event.handler'; +import { LoginSucceededEventHandler, UserSignedUpEventHandler } from './application/auth-event.handler'; import { ScrapAddedEventHandler, ScrapDeletedEventHandler } from './application/scrap-event.handler'; export const AMPLITUDE_CLIENT = Symbol('AMPLITUDE_CLIENT'); const eventHandlers = [ - AuthCreatedEventHandler, + UserSignedUpEventHandler, LoginSucceededEventHandler, ScrapAddedEventHandler, ScrapDeletedEventHandler, diff --git a/src/analytics/application/auth-event.handler.ts b/src/analytics/application/auth-event.handler.ts index 916b6a9..0ef818a 100644 --- a/src/analytics/application/auth-event.handler.ts +++ b/src/analytics/application/auth-event.handler.ts @@ -1,13 +1,13 @@ import { EventsHandler, IEventHandler } from '@nestjs/cqrs'; -import { AuthCreatedEvent } from 'src/auth/auth-user/domain/event/auth-created.event'; import { AnalyticsService } from '../infrastructure/analytics.service'; -import { LoginSucceededEvent } from 'src/auth/auth-user/domain/event/login-succeeded.event'; +import { LoginSucceededEvent } from 'iam/auth/auth-user/domain/event/login-succeeded.event'; +import { UserSignedUpEvent } from 'iam/auth/auth-user/domain/event/user-signed-up.event'; -@EventsHandler(AuthCreatedEvent) -export class AuthCreatedEventHandler implements IEventHandler { +@EventsHandler(UserSignedUpEvent) +export class UserSignedUpEventHandler implements IEventHandler { constructor(private readonly analyticsService: AnalyticsService) {} - handle(event: AuthCreatedEvent) { + handle(event: UserSignedUpEvent) { this.analyticsService.trackEvent(event.userId.value, 'Signed Up', { email: event.email, }); From cf8d70f4b5d274d12c9e136f343f64cf240e8e2e Mon Sep 17 00:00:00 2001 From: liverforpresent Date: Sat, 6 Dec 2025 16:24:34 +0900 Subject: [PATCH 11/14] =?UTF-8?q?chore:=20=EC=98=A4=ED=83=88=EC=9E=90=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20=EB=B0=8F=20import=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iam/organization/presentation/organization.controller.ts | 2 +- iam/user/presentation/user.controller.ts | 2 +- .../command/presentation/article.command.controller.ts | 4 ++-- .../organization/presentation/article.view.controller.ts | 4 ++-- src/scrap/command/domain/event/scrap-added.event.ts | 4 ++-- src/scrap/command/domain/event/scrap-deleted.event.ts | 4 ++-- src/scrap/command/infrastructure/scrap.entity.ts | 2 +- src/scrap/command/infrastructure/scrap.mapper.ts | 2 +- src/shared/config/cookie.config.ts | 4 ++-- src/shared/config/mikro-orm.config.ts | 2 +- src/shared/core/domain/base.domain-event.ts | 2 +- src/shared/core/presentation/organization.decorator.ts | 2 +- src/shared/core/presentation/user.decorator.ts | 2 +- 13 files changed, 18 insertions(+), 18 deletions(-) diff --git a/iam/organization/presentation/organization.controller.ts b/iam/organization/presentation/organization.controller.ts index 86159fa..77d9069 100644 --- a/iam/organization/presentation/organization.controller.ts +++ b/iam/organization/presentation/organization.controller.ts @@ -7,7 +7,7 @@ import { UpdateOrganizationUseCase } from '../application/update/update.use-case import { UpdateOrganizationReqDto } from './dto/request/update-organization.request.dto'; @ApiTags('organization') -@Controller('organization-temp') +@Controller('organization') export class OrganizationController { constructor(private readonly updateOrganizationUseCase: UpdateOrganizationUseCase) {} diff --git a/iam/user/presentation/user.controller.ts b/iam/user/presentation/user.controller.ts index bc38432..492c73f 100644 --- a/iam/user/presentation/user.controller.ts +++ b/iam/user/presentation/user.controller.ts @@ -14,7 +14,7 @@ import { RolesGuard } from 'iam/auth/auth-core/infrastructure/guard/role.guard'; import { Role } from 'iam/auth/auth-core/domain/value-object/role'; @ApiTags('user') -@Controller('user-temp') +@Controller('user') export class UserController { constructor( private readonly deleteUserUseCase: DeleteUserUseCase, diff --git a/src/article/command/presentation/article.command.controller.ts b/src/article/command/presentation/article.command.controller.ts index c1ccd2e..b714287 100644 --- a/src/article/command/presentation/article.command.controller.ts +++ b/src/article/command/presentation/article.command.controller.ts @@ -9,9 +9,9 @@ import { UpdateArticleRequestDto } from './dto/update-article.request.dto'; import { ArticleCommandDocs } from './article.command.docs'; import { AuthGuard } from '@nestjs/passport'; import { Organization, OrganizationPayload } from 'src/shared/core/presentation/organization.decorator'; -import { RolesGuard } from 'src/auth/core/infrastructure/guard/role.guard'; import { Roles } from 'src/shared/core/presentation/role.decorator'; -import { Role } from 'src/auth/core/domain/value-object/role'; +import { Role } from 'iam/auth/auth-core/domain/value-object/role'; +import { RolesGuard } from 'iam/auth/auth-core/infrastructure/guard/role.guard'; @ApiTags('article') @Controller('article') diff --git a/src/article/query/organization/presentation/article.view.controller.ts b/src/article/query/organization/presentation/article.view.controller.ts index c71a605..47fb491 100644 --- a/src/article/query/organization/presentation/article.view.controller.ts +++ b/src/article/query/organization/presentation/article.view.controller.ts @@ -4,10 +4,10 @@ import { Organization, OrganizationPayload } from 'src/shared/core/presentation/ import { ArticleModel } from '../domain/article.model'; import { GetOrganizationArticleListUseCase } from '../application/article-list/get-article-list.use-case'; import { AuthGuard } from '@nestjs/passport'; -import { RolesGuard } from 'src/auth/core/infrastructure/guard/role.guard'; import { Roles } from 'src/shared/core/presentation/role.decorator'; -import { Role } from 'src/auth/core/domain/value-object/role'; import { OrganizationArticleViewDocs } from './article.view.docs'; +import { RolesGuard } from 'iam/auth/auth-core/infrastructure/guard/role.guard'; +import { Role } from 'iam/auth/auth-core/domain/value-object/role'; @ApiTags('organization-article') @Controller('organization/article') diff --git a/src/scrap/command/domain/event/scrap-added.event.ts b/src/scrap/command/domain/event/scrap-added.event.ts index 4afbad9..f96be9b 100644 --- a/src/scrap/command/domain/event/scrap-added.event.ts +++ b/src/scrap/command/domain/event/scrap-added.event.ts @@ -1,13 +1,13 @@ import { BaseDomainEvent } from 'src/shared/core/domain/base.domain-event'; export class ScrapAddedEvent implements BaseDomainEvent { - readonly timesstamp: Date; + readonly timestamp: Date; constructor( public readonly userId: string, public readonly articleId: string, public readonly tags: string[], ) { - this.timesstamp = new Date(); + this.timestamp = new Date(); } } diff --git a/src/scrap/command/domain/event/scrap-deleted.event.ts b/src/scrap/command/domain/event/scrap-deleted.event.ts index d246ad4..ca03855 100644 --- a/src/scrap/command/domain/event/scrap-deleted.event.ts +++ b/src/scrap/command/domain/event/scrap-deleted.event.ts @@ -1,13 +1,13 @@ import { BaseDomainEvent } from 'src/shared/core/domain/base.domain-event'; export class ScrapDeletedEvent implements BaseDomainEvent { - readonly timesstamp: Date; + readonly timestamp: Date; constructor( public readonly userId: string, public readonly articleId: string, public readonly tags: string[], ) { - this.timesstamp = new Date(); + this.timestamp = new Date(); } } diff --git a/src/scrap/command/infrastructure/scrap.entity.ts b/src/scrap/command/infrastructure/scrap.entity.ts index 5b9c0cf..3e060fc 100644 --- a/src/scrap/command/infrastructure/scrap.entity.ts +++ b/src/scrap/command/infrastructure/scrap.entity.ts @@ -1,7 +1,7 @@ import { Entity, ManyToOne, Unique } from '@mikro-orm/core'; +import { UserEntity } from 'iam/user/infrastructure/user.entity'; import { ArticleEntity } from 'src/article/command/infrastructure/article.entity'; import { BaseEntity } from 'src/shared/core/infrastructure/orm-entity/base.entity'; -import { UserEntity } from 'src/user/command/infrastructure/user.entity'; @Entity({ tableName: 'scrap' }) @Unique({ properties: ['article', 'user'] }) diff --git a/src/scrap/command/infrastructure/scrap.mapper.ts b/src/scrap/command/infrastructure/scrap.mapper.ts index b6f9141..8702f60 100644 --- a/src/scrap/command/infrastructure/scrap.mapper.ts +++ b/src/scrap/command/infrastructure/scrap.mapper.ts @@ -2,7 +2,7 @@ import { Identifier } from 'src/shared/core/domain/identifier'; import { Scrap } from '../domain/scrap'; import { ScrapEntity } from './scrap.entity'; import { ArticleEntity } from 'src/article/command/infrastructure/article.entity'; -import { UserEntity } from 'src/user/command/infrastructure/user.entity'; +import { UserEntity } from 'iam/user/infrastructure/user.entity'; export class ScrapMapper { static toDomain(entity: ScrapEntity): Scrap { diff --git a/src/shared/config/cookie.config.ts b/src/shared/config/cookie.config.ts index ced0b06..01659a0 100644 --- a/src/shared/config/cookie.config.ts +++ b/src/shared/config/cookie.config.ts @@ -7,7 +7,7 @@ export const accessTokenCookieOptions: CookieOptions = { sameSite: 'none', maxAge: 60 * 60 * 1000, // 1 hour path: '/', - //domain: process.env.FRONTEND_DOMAIN, + domain: process.env.FRONTEND_DOMAIN, }; export const refreshTokenCookieOptions: CookieOptions = { @@ -16,5 +16,5 @@ export const refreshTokenCookieOptions: CookieOptions = { sameSite: 'none', maxAge: 30 * 24 * 60 * 60 * 1000, // 30 days path: '/', - //domain: process.env.FRONTEND_DOMAIN, + domain: process.env.FRONTEND_DOMAIN, }; diff --git a/src/shared/config/mikro-orm.config.ts b/src/shared/config/mikro-orm.config.ts index a7090fd..7d12cb5 100644 --- a/src/shared/config/mikro-orm.config.ts +++ b/src/shared/config/mikro-orm.config.ts @@ -3,7 +3,7 @@ import 'dotenv/config'; export default defineConfig({ entities: ['dist/**/infrastructure/orm-entity/*.entity.js', 'dist/**/infrastructure/*.entity.js'], - entitiesTs: ['src/**/infrastructure/orm-entity/*.entity.ts', 'src/**/infrastructure/*.entity.ts'], + entitiesTs: ['src/**/infrastructure/orm-entity/*.entity.ts', '**/infrastructure/*.entity.ts'], dbName: 'univent_db', driver: MySqlDriver, user: process.env.DB_USER, diff --git a/src/shared/core/domain/base.domain-event.ts b/src/shared/core/domain/base.domain-event.ts index 5b20e37..7d1cfcc 100644 --- a/src/shared/core/domain/base.domain-event.ts +++ b/src/shared/core/domain/base.domain-event.ts @@ -1,3 +1,3 @@ export interface BaseDomainEvent { - readonly timesstamp: Date; + readonly timestamp: Date; } diff --git a/src/shared/core/presentation/organization.decorator.ts b/src/shared/core/presentation/organization.decorator.ts index acbe87b..9afa6e5 100644 --- a/src/shared/core/presentation/organization.decorator.ts +++ b/src/shared/core/presentation/organization.decorator.ts @@ -1,6 +1,6 @@ import { createParamDecorator, ExecutionContext } from '@nestjs/common'; import { Request } from 'express'; -import { JwtPayload } from 'src/auth/core/infrastructure/jwt/jwt-payload'; +import { JwtPayload } from 'iam/auth/auth-core/infrastructure/jwt/jwt-payload'; export interface OrganizationPayload { organizationId: string; diff --git a/src/shared/core/presentation/user.decorator.ts b/src/shared/core/presentation/user.decorator.ts index 6b23fae..585ffbc 100644 --- a/src/shared/core/presentation/user.decorator.ts +++ b/src/shared/core/presentation/user.decorator.ts @@ -1,6 +1,6 @@ import { createParamDecorator, ExecutionContext } from '@nestjs/common'; import { Request } from 'express'; -import { JwtPayload } from 'src/auth/core/infrastructure/jwt/jwt-payload'; +import { JwtPayload } from 'iam/auth/auth-core/infrastructure/jwt/jwt-payload'; export interface UserPayload { userId: string; From ab6344594e37ddbc710ee87b56a9aa8949d535f5 Mon Sep 17 00:00:00 2001 From: liverforpresent Date: Sat, 6 Dec 2025 19:19:59 +0900 Subject: [PATCH 12/14] =?UTF-8?q?feat:=20=EA=B8=B0=EA=B4=80=20=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=20=EC=A1=B0=ED=9A=8C=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/get/get-organization.query.ts | 3 +++ .../get/get-organization.use-case.ts | 16 ++++++++++++ iam/organization/domain/organization.view.ts | 10 ++++++-- .../organization.view.entity.ts | 2 +- iam/organization/organization.module.ts | 8 +++++- .../presentation/organization.controller.ts | 25 ++++++++++++++++--- .../presentation/organization.docs.ts | 22 ++++++++++++++-- 7 files changed, 77 insertions(+), 9 deletions(-) create mode 100644 iam/organization/application/get/get-organization.query.ts create mode 100644 iam/organization/application/get/get-organization.use-case.ts diff --git a/iam/organization/application/get/get-organization.query.ts b/iam/organization/application/get/get-organization.query.ts new file mode 100644 index 0000000..55f63c6 --- /dev/null +++ b/iam/organization/application/get/get-organization.query.ts @@ -0,0 +1,3 @@ +export class GetOrganizationQuery { + constructor(public readonly organizationId: string) {} +} diff --git a/iam/organization/application/get/get-organization.use-case.ts b/iam/organization/application/get/get-organization.use-case.ts new file mode 100644 index 0000000..70f3a27 --- /dev/null +++ b/iam/organization/application/get/get-organization.use-case.ts @@ -0,0 +1,16 @@ +import { Inject, Injectable } from '@nestjs/common'; +import { GetOrganizationQuery } from './get-organization.query'; +import { OrganizationView } from 'iam/organization/domain/organization.view'; +import { ORGANIZATION_READER, OrganizationReader } from 'iam/organization/domain/organization.reader'; + +@Injectable() +export class GetOrganizationUseCase { + constructor( + @Inject(ORGANIZATION_READER) + private readonly organizationReader: OrganizationReader, + ) {} + + async execute(query: GetOrganizationQuery): Promise { + return await this.organizationReader.findById(query.organizationId); + } +} diff --git a/iam/organization/domain/organization.view.ts b/iam/organization/domain/organization.view.ts index 2426094..de3bb41 100644 --- a/iam/organization/domain/organization.view.ts +++ b/iam/organization/domain/organization.view.ts @@ -1,9 +1,15 @@ import { ApiProperty } from '@nestjs/swagger'; export class OrganizationView { - @ApiProperty() + @ApiProperty({ + example: '고려대학교 동아리연합회', + description: '기관명', + }) name: string; - @ApiProperty() + @ApiProperty({ + example: '010-1234-5678', + description: '연락처', + }) contact: string; } diff --git a/iam/organization/infrastructure/organization.view.entity.ts b/iam/organization/infrastructure/organization.view.entity.ts index f54c285..d4e1773 100644 --- a/iam/organization/infrastructure/organization.view.entity.ts +++ b/iam/organization/infrastructure/organization.view.entity.ts @@ -7,7 +7,7 @@ import { Entity, Property } from '@mikro-orm/core'; o.name, o.contact FROM - organizations o + organization o `, }) export class OrganizationViewEntity { diff --git a/iam/organization/organization.module.ts b/iam/organization/organization.module.ts index a1e2ade..f290241 100644 --- a/iam/organization/organization.module.ts +++ b/iam/organization/organization.module.ts @@ -10,8 +10,14 @@ import { OrganizationController } from './presentation/organization.controller'; import { ORGANIZATION_READER } from './domain/organization.reader'; import { OrganizationReaderImpl } from './infrastructure/organization.reader.impl'; import { OrganizationViewEntity } from './infrastructure/organization.view.entity'; +import { GetOrganizationUseCase } from './application/get/get-organization.use-case'; -const usecases = [CreateOrganizationUseCase, UpdateOrganizationUseCase, DeleteOrganizationUseCase]; +const usecases = [ + CreateOrganizationUseCase, + UpdateOrganizationUseCase, + DeleteOrganizationUseCase, + GetOrganizationUseCase, +]; @Module({ imports: [MikroOrmModule.forFeature([OrganizationEntity, OrganizationViewEntity])], diff --git a/iam/organization/presentation/organization.controller.ts b/iam/organization/presentation/organization.controller.ts index 77d9069..5b3f3f6 100644 --- a/iam/organization/presentation/organization.controller.ts +++ b/iam/organization/presentation/organization.controller.ts @@ -1,18 +1,27 @@ -import { Body, Controller, Patch, UseGuards } from '@nestjs/common'; +import { Body, Controller, Get, Patch, UseGuards } from '@nestjs/common'; import { ApiTags } from '@nestjs/swagger'; import { AuthGuard } from '@nestjs/passport'; import { OrganizationDocs } from './organization.docs'; import { Organization, OrganizationPayload } from 'src/shared/core/presentation/organization.decorator'; import { UpdateOrganizationUseCase } from '../application/update/update.use-case'; import { UpdateOrganizationReqDto } from './dto/request/update-organization.request.dto'; +import { OrganizationView } from '../domain/organization.view'; +import { GetOrganizationUseCase } from '../application/get/get-organization.use-case'; +import { RolesGuard } from 'iam/auth/auth-core/infrastructure/guard/role.guard'; +import { Roles } from 'src/shared/core/presentation/role.decorator'; +import { Role } from 'iam/auth/auth-core/domain/value-object/role'; @ApiTags('organization') @Controller('organization') export class OrganizationController { - constructor(private readonly updateOrganizationUseCase: UpdateOrganizationUseCase) {} + constructor( + private readonly updateOrganizationUseCase: UpdateOrganizationUseCase, + private readonly getOrganizationUseCase: GetOrganizationUseCase, + ) {} @Patch() - @UseGuards(AuthGuard('jwt-access')) + @UseGuards(AuthGuard('jwt-access'), RolesGuard) + @Roles(Role.ORGANIZATION) @OrganizationDocs('update') async updateOrganization( @Organization() organization: OrganizationPayload, @@ -24,4 +33,14 @@ export class OrganizationController { contact: dto.contact, }); } + + @Get() + @UseGuards(AuthGuard('jwt-access'), RolesGuard) + @Roles(Role.ORGANIZATION) + @OrganizationDocs('get') + async getOrganization(@Organization() organization: OrganizationPayload): Promise { + return await this.getOrganizationUseCase.execute({ + organizationId: organization.organizationId, + }); + } } diff --git a/iam/organization/presentation/organization.docs.ts b/iam/organization/presentation/organization.docs.ts index c1396f6..111e1a5 100644 --- a/iam/organization/presentation/organization.docs.ts +++ b/iam/organization/presentation/organization.docs.ts @@ -1,9 +1,10 @@ import { applyDecorators } from '@nestjs/common'; -import { ApiBody, ApiOkResponse, ApiOperation, ApiUnauthorizedResponse } from '@nestjs/swagger'; +import { ApiBody, ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiUnauthorizedResponse } from '@nestjs/swagger'; import { createDocs } from 'src/shared/core/presentation/base.docs'; import { UpdateOrganizationReqDto } from './dto/request/update-organization.request.dto'; +import { OrganizationView } from '../domain/organization.view'; -export type OrganizationEndpoint = 'update'; +export type OrganizationEndpoint = 'update' | 'get'; export const OrganizationDocs = createDocs({ update: () => @@ -23,4 +24,21 @@ export const OrganizationDocs = createDocs({ description: '유효하지 않은 access token', }), ), + get: () => + applyDecorators( + ApiOperation({ + summary: 'organization 정보 조회', + description: '조직의 정보를 조회합니다.', + }), + ApiOkResponse({ + description: 'organization 정보 조회 성공', + type: OrganizationView, + }), + ApiNotFoundResponse({ + description: 'organization을 찾을 수 없음', + }), + ApiUnauthorizedResponse({ + description: '유효하지 않은 access token', + }), + ), }); From fabaecfb9ddf8e673c087e54edd2bc8cc3f9e686 Mon Sep 17 00:00:00 2001 From: liverforpresent Date: Sat, 6 Dec 2025 19:43:24 +0900 Subject: [PATCH 13/14] =?UTF-8?q?chore:=20=ED=8C=A8=ED=82=A4=EC=A7=80=20?= =?UTF-8?q?=EC=97=85=EA=B7=B8=EB=A0=88=EC=9D=B4=EB=93=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 20 +- yarn.lock | 4033 ++++++++++++++++++++++++++------------------------ 2 files changed, 2127 insertions(+), 1926 deletions(-) diff --git a/package.json b/package.json index a012614..5cc058a 100644 --- a/package.json +++ b/package.json @@ -33,18 +33,18 @@ "@nestjs/config": "^4.0.2", "@nestjs/core": "^11.0.1", "@nestjs/cqrs": "^11.0.3", - "@nestjs/jwt": "^11.0.0", + "@nestjs/jwt": "^11.0.2", "@nestjs/passport": "^11.0.5", - "@nestjs/platform-express": "^11.1.5", - "@nestjs/swagger": "^11.1.5", + "@nestjs/platform-express": "^11.1.9", + "@nestjs/swagger": "^11.2.3", "@sapphire/snowflake": "^3.5.5", "@types/passport-jwt": "^4.0.1", "axios": "^1.11.0", "bcrypt": "^6.0.0", "class-transformer": "^0.5.1", - "class-validator": "^0.14.2", + "class-validator": "^0.14.3", "cookie-parser": "^1.4.7", - "express": "^5.1.0", + "express": "^5.2.1", "mysql2": "^3.14.0", "passport": "^0.7.0", "passport-custom": "^1.1.1", @@ -54,9 +54,9 @@ "uuid": "^11.1.0" }, "devDependencies": { - "@eslint/eslintrc": "^3.2.0", + "@eslint/eslintrc": "^3.3.3", "@eslint/js": "^9.18.0", - "@nestjs/cli": "^11.0.10", + "@nestjs/cli": "^11.0.14", "@nestjs/schematics": "^11.0.0", "@nestjs/testing": "^11.0.1", "@swc/cli": "^0.7.7", @@ -64,16 +64,16 @@ "@types/bcrypt": "^6.0.0", "@types/cookie-parser": "^1.4.8", "@types/express": "^5.0.0", - "@types/jest": "^29.5.14", + "@types/jest": "^30.0.0", "@types/multer": "^1.4.12", "@types/node": "^22.10.7", "@types/supertest": "^6.0.3", "@types/uuid": "^10.0.0", - "eslint": "^9.34.0", + "eslint": "^9.39.1", "eslint-config-prettier": "^10.0.1", "eslint-plugin-prettier": "^5.2.2", "globals": "^16.0.0", - "jest": "^29.7.0", + "jest": "^30.2.0", "prettier": "^3.4.2", "source-map-support": "^0.5.21", "supertest": "^7.1.4", diff --git a/yarn.lock b/yarn.lock index 03cdaf0..67f8cec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7,26 +7,27 @@ resolved "https://registry.yarnpkg.com/@amplitude/analytics-connector/-/analytics-connector-1.6.4.tgz#8a811ff5c8ee46bdfea0e8f61c7578769b5778ed" integrity sha512-SpIv0IQMNIq6SH3UqFGiaZyGSc7PBZwRdq7lvP0pBxW8i4Ny+8zwI0pV+VMfMHQwWY3wdIbWw5WQphNjpdq1/Q== -"@amplitude/analytics-core@^2.31.0": - version "2.31.0" - resolved "https://registry.yarnpkg.com/@amplitude/analytics-core/-/analytics-core-2.31.0.tgz#7d9bd231821641b03585890ab50386cce6e443d3" - integrity sha512-2ErmoKhnHfNGKLz6nbNL5KCn++8i7WVoy6k0jZu7JOlgW/Xsag9I2i/3M//iQMQqDo1/8rFolVI9X+chkmkK/Q== +"@amplitude/analytics-core@2.33.0": + version "2.33.0" + resolved "https://registry.yarnpkg.com/@amplitude/analytics-core/-/analytics-core-2.33.0.tgz#347047f4243cd5b76e120e6fe1b2b5e266e1ecb3" + integrity sha512-56m0R12TjZ41D2YIghb/XNHSdL4CurAVyRT3L2FD+9DCFfbgjfT8xhDBnsZtA+aBkb6Yak1EGUojGBunfAm2/A== dependencies: "@amplitude/analytics-connector" "^1.6.4" tslib "^2.4.1" + zen-observable-ts "^1.1.0" "@amplitude/analytics-node@^1.5.14": - version "1.5.21" - resolved "https://registry.yarnpkg.com/@amplitude/analytics-node/-/analytics-node-1.5.21.tgz#3395159593e5f9764d0a0c734d14ee9c5ae00b78" - integrity sha512-fUDLsOcIlbpACDxjQgeEPPgW/dpb53sNFfJjYKV21mufR/LvSrv0XA04ZVS56amSyNtT1hNa7enaFYsNhiOCGg== + version "1.5.26" + resolved "https://registry.yarnpkg.com/@amplitude/analytics-node/-/analytics-node-1.5.26.tgz#f02b7de31c0cdd9923f65a5db6de2cc6ea6d29e2" + integrity sha512-0ewJ+u+IDCjFFDl+YRlILEcFFhbUUTq3Gh2qcxsl/rRwuQY+13H4q+1c+FOMShb5KZfvj//rk60+ZPOOG3YDAg== dependencies: - "@amplitude/analytics-core" "^2.31.0" + "@amplitude/analytics-core" "2.33.0" tslib "^2.4.1" -"@angular-devkit/core@19.2.15": - version "19.2.15" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-19.2.15.tgz#35af566f9c69d3eca9c183936ee8527d9725a006" - integrity sha512-pU2RZYX6vhd7uLSdLwPnuBcr0mXJSjp3EgOXKsrlQFQZevc+Qs+2JdXgIElnOT/aDqtRtriDmLlSbtdE8n3ZbA== +"@angular-devkit/core@19.2.17": + version "19.2.17" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-19.2.17.tgz#014107a94240dd3ecf38edfcf23113ad55b9752b" + integrity sha512-Ah008x2RJkd0F+NLKqIpA34/vUGwjlprRCkvddjDopAWRzYn6xCkz1Tqwuhn0nR1Dy47wTLKYD999TYl5ONOAQ== dependencies: ajv "8.17.1" ajv-formats "3.0.1" @@ -35,10 +36,10 @@ rxjs "7.8.1" source-map "0.7.4" -"@angular-devkit/core@19.2.17": - version "19.2.17" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-19.2.17.tgz#014107a94240dd3ecf38edfcf23113ad55b9752b" - integrity sha512-Ah008x2RJkd0F+NLKqIpA34/vUGwjlprRCkvddjDopAWRzYn6xCkz1Tqwuhn0nR1Dy47wTLKYD999TYl5ONOAQ== +"@angular-devkit/core@19.2.19": + version "19.2.19" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-19.2.19.tgz#371b917a0a3f0f14c07a6b99813ba05d5ffe4aea" + integrity sha512-JbLL+4IMLMBgjLZlnPG4lYDfz4zGrJ/s6Aoon321NJKuw1Kb1k5KpFu9dUY0BqLIe8xPQ2UJBpI+xXdK5MXMHQ== dependencies: ajv "8.17.1" ajv-formats "3.0.1" @@ -47,35 +48,35 @@ rxjs "7.8.1" source-map "0.7.4" -"@angular-devkit/schematics-cli@19.2.15": - version "19.2.15" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics-cli/-/schematics-cli-19.2.15.tgz#e68a5a1c968ee975168812df8067129d90d11a32" - integrity sha512-1ESFmFGMpGQmalDB3t2EtmWDGv6gOFYBMxmHO2f1KI/UDl8UmZnCGL4mD3EWo8Hv0YIsZ9wOH9Q7ZHNYjeSpzg== +"@angular-devkit/schematics-cli@19.2.19": + version "19.2.19" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics-cli/-/schematics-cli-19.2.19.tgz#c6d2a36c90ab1d476d5276a07bb67dee37da519a" + integrity sha512-7q9UY6HK6sccL9F3cqGRUwKhM7b/XfD2YcVaZ2WD7VMaRlRm85v6mRjSrfKIAwxcQU0UK27kMc79NIIqaHjzxA== dependencies: - "@angular-devkit/core" "19.2.15" - "@angular-devkit/schematics" "19.2.15" + "@angular-devkit/core" "19.2.19" + "@angular-devkit/schematics" "19.2.19" "@inquirer/prompts" "7.3.2" ansi-colors "4.1.3" symbol-observable "4.0.0" yargs-parser "21.1.1" -"@angular-devkit/schematics@19.2.15": - version "19.2.15" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-19.2.15.tgz#d20ceba32f97b5f0e07e25268d9b8fea7ee142dd" - integrity sha512-kNOJ+3vekJJCQKWihNmxBkarJzNW09kP5a9E1SRNiQVNOUEeSwcRR0qYotM65nx821gNzjjhJXnAZ8OazWldrg== +"@angular-devkit/schematics@19.2.17": + version "19.2.17" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-19.2.17.tgz#253c0c6f4d5400c3bf038d73ed114af5516b72ef" + integrity sha512-ADfbaBsrG8mBF6Mfs+crKA/2ykB8AJI50Cv9tKmZfwcUcyAdmTr+vVvhsBCfvUAEokigSsgqgpYxfkJVxhJYeg== dependencies: - "@angular-devkit/core" "19.2.15" + "@angular-devkit/core" "19.2.17" jsonc-parser "3.3.1" magic-string "0.30.17" ora "5.4.1" rxjs "7.8.1" -"@angular-devkit/schematics@19.2.17": - version "19.2.17" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-19.2.17.tgz#253c0c6f4d5400c3bf038d73ed114af5516b72ef" - integrity sha512-ADfbaBsrG8mBF6Mfs+crKA/2ykB8AJI50Cv9tKmZfwcUcyAdmTr+vVvhsBCfvUAEokigSsgqgpYxfkJVxhJYeg== +"@angular-devkit/schematics@19.2.19": + version "19.2.19" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-19.2.19.tgz#fc9b41372c2f080721673b357d7d8a5fd33d5941" + integrity sha512-J4Jarr0SohdrHcb40gTL4wGPCQ952IMWF1G/MSAQfBAPvA9ZKApYhpxcY7PmehVePve+ujpus1dGsJ7dPxz8Kg== dependencies: - "@angular-devkit/core" "19.2.17" + "@angular-devkit/core" "19.2.19" jsonc-parser "3.3.1" magic-string "0.30.17" ora "5.4.1" @@ -150,457 +151,470 @@ tslib "^2.6.2" "@aws-sdk/client-s3@^3.820.0": - version "3.922.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.922.0.tgz#5752a59ad5cf4e370ede00774f1e09e9c0af6235" - integrity sha512-SZRaZUUAHCWfEyBf4SRSPd29ko4uFoJpfd0E/w1meE68XhFB52FTtz/71UqYcwqZmN+s7oUNFFZT+DE/dnQSEA== + version "3.946.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.946.0.tgz#462ca31b0ffdf9c77e990a794004ff5bcc6e0672" + integrity sha512-Y3ww3yd1wzmS2r3qgH3jg4MxCTdeNrae2J1BmdV+IW/2R2gFWJva5U5GbS6KUSUxanJBRG7gd8uOIi1b0EMOng== dependencies: "@aws-crypto/sha1-browser" "5.2.0" "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.922.0" - "@aws-sdk/credential-provider-node" "3.922.0" - "@aws-sdk/middleware-bucket-endpoint" "3.922.0" - "@aws-sdk/middleware-expect-continue" "3.922.0" - "@aws-sdk/middleware-flexible-checksums" "3.922.0" - "@aws-sdk/middleware-host-header" "3.922.0" - "@aws-sdk/middleware-location-constraint" "3.922.0" - "@aws-sdk/middleware-logger" "3.922.0" - "@aws-sdk/middleware-recursion-detection" "3.922.0" - "@aws-sdk/middleware-sdk-s3" "3.922.0" - "@aws-sdk/middleware-ssec" "3.922.0" - "@aws-sdk/middleware-user-agent" "3.922.0" - "@aws-sdk/region-config-resolver" "3.922.0" - "@aws-sdk/signature-v4-multi-region" "3.922.0" - "@aws-sdk/types" "3.922.0" - "@aws-sdk/util-endpoints" "3.922.0" - "@aws-sdk/util-user-agent-browser" "3.922.0" - "@aws-sdk/util-user-agent-node" "3.922.0" - "@aws-sdk/xml-builder" "3.921.0" - "@smithy/config-resolver" "^4.4.1" - "@smithy/core" "^3.17.2" - "@smithy/eventstream-serde-browser" "^4.2.4" - "@smithy/eventstream-serde-config-resolver" "^4.3.4" - "@smithy/eventstream-serde-node" "^4.2.4" - "@smithy/fetch-http-handler" "^5.3.5" - "@smithy/hash-blob-browser" "^4.2.5" - "@smithy/hash-node" "^4.2.4" - "@smithy/hash-stream-node" "^4.2.4" - "@smithy/invalid-dependency" "^4.2.4" - "@smithy/md5-js" "^4.2.4" - "@smithy/middleware-content-length" "^4.2.4" - "@smithy/middleware-endpoint" "^4.3.6" - "@smithy/middleware-retry" "^4.4.6" - "@smithy/middleware-serde" "^4.2.4" - "@smithy/middleware-stack" "^4.2.4" - "@smithy/node-config-provider" "^4.3.4" - "@smithy/node-http-handler" "^4.4.4" - "@smithy/protocol-http" "^5.3.4" - "@smithy/smithy-client" "^4.9.2" - "@smithy/types" "^4.8.1" - "@smithy/url-parser" "^4.2.4" + "@aws-sdk/core" "3.946.0" + "@aws-sdk/credential-provider-node" "3.946.0" + "@aws-sdk/middleware-bucket-endpoint" "3.936.0" + "@aws-sdk/middleware-expect-continue" "3.936.0" + "@aws-sdk/middleware-flexible-checksums" "3.946.0" + "@aws-sdk/middleware-host-header" "3.936.0" + "@aws-sdk/middleware-location-constraint" "3.936.0" + "@aws-sdk/middleware-logger" "3.936.0" + "@aws-sdk/middleware-recursion-detection" "3.936.0" + "@aws-sdk/middleware-sdk-s3" "3.946.0" + "@aws-sdk/middleware-ssec" "3.936.0" + "@aws-sdk/middleware-user-agent" "3.946.0" + "@aws-sdk/region-config-resolver" "3.936.0" + "@aws-sdk/signature-v4-multi-region" "3.946.0" + "@aws-sdk/types" "3.936.0" + "@aws-sdk/util-endpoints" "3.936.0" + "@aws-sdk/util-user-agent-browser" "3.936.0" + "@aws-sdk/util-user-agent-node" "3.946.0" + "@smithy/config-resolver" "^4.4.3" + "@smithy/core" "^3.18.7" + "@smithy/eventstream-serde-browser" "^4.2.5" + "@smithy/eventstream-serde-config-resolver" "^4.3.5" + "@smithy/eventstream-serde-node" "^4.2.5" + "@smithy/fetch-http-handler" "^5.3.6" + "@smithy/hash-blob-browser" "^4.2.6" + "@smithy/hash-node" "^4.2.5" + "@smithy/hash-stream-node" "^4.2.5" + "@smithy/invalid-dependency" "^4.2.5" + "@smithy/md5-js" "^4.2.5" + "@smithy/middleware-content-length" "^4.2.5" + "@smithy/middleware-endpoint" "^4.3.14" + "@smithy/middleware-retry" "^4.4.14" + "@smithy/middleware-serde" "^4.2.6" + "@smithy/middleware-stack" "^4.2.5" + "@smithy/node-config-provider" "^4.3.5" + "@smithy/node-http-handler" "^4.4.5" + "@smithy/protocol-http" "^5.3.5" + "@smithy/smithy-client" "^4.9.10" + "@smithy/types" "^4.9.0" + "@smithy/url-parser" "^4.2.5" "@smithy/util-base64" "^4.3.0" "@smithy/util-body-length-browser" "^4.2.0" "@smithy/util-body-length-node" "^4.2.1" - "@smithy/util-defaults-mode-browser" "^4.3.5" - "@smithy/util-defaults-mode-node" "^4.2.7" - "@smithy/util-endpoints" "^3.2.4" - "@smithy/util-middleware" "^4.2.4" - "@smithy/util-retry" "^4.2.4" - "@smithy/util-stream" "^4.5.5" + "@smithy/util-defaults-mode-browser" "^4.3.13" + "@smithy/util-defaults-mode-node" "^4.2.16" + "@smithy/util-endpoints" "^3.2.5" + "@smithy/util-middleware" "^4.2.5" + "@smithy/util-retry" "^4.2.5" + "@smithy/util-stream" "^4.5.6" "@smithy/util-utf8" "^4.2.0" - "@smithy/util-waiter" "^4.2.4" - "@smithy/uuid" "^1.1.0" + "@smithy/util-waiter" "^4.2.5" tslib "^2.6.2" -"@aws-sdk/client-sso@3.922.0": - version "3.922.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.922.0.tgz#5f19518fdf496e0d3cc55e98755132b7cc25d5d9" - integrity sha512-jdHs7uy7cSpiMvrxhYmqHyJxgK7hyqw4plG8OQ4YTBpq0SbfAxdoOuOkwJ1IVUUQho4otR1xYYjiX/8e8J8qwQ== +"@aws-sdk/client-sso@3.946.0": + version "3.946.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.946.0.tgz#2ecfe3864f67155eff64fd2312ab46ae30ad77d6" + integrity sha512-kGAs5iIVyUz4p6TX3pzG5q3cNxXnVpC4pwRC6DCSaSv9ozyPjc2d74FsK4fZ+J+ejtvCdJk72uiuQtWJc86Wuw== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.922.0" - "@aws-sdk/middleware-host-header" "3.922.0" - "@aws-sdk/middleware-logger" "3.922.0" - "@aws-sdk/middleware-recursion-detection" "3.922.0" - "@aws-sdk/middleware-user-agent" "3.922.0" - "@aws-sdk/region-config-resolver" "3.922.0" - "@aws-sdk/types" "3.922.0" - "@aws-sdk/util-endpoints" "3.922.0" - "@aws-sdk/util-user-agent-browser" "3.922.0" - "@aws-sdk/util-user-agent-node" "3.922.0" - "@smithy/config-resolver" "^4.4.1" - "@smithy/core" "^3.17.2" - "@smithy/fetch-http-handler" "^5.3.5" - "@smithy/hash-node" "^4.2.4" - "@smithy/invalid-dependency" "^4.2.4" - "@smithy/middleware-content-length" "^4.2.4" - "@smithy/middleware-endpoint" "^4.3.6" - "@smithy/middleware-retry" "^4.4.6" - "@smithy/middleware-serde" "^4.2.4" - "@smithy/middleware-stack" "^4.2.4" - "@smithy/node-config-provider" "^4.3.4" - "@smithy/node-http-handler" "^4.4.4" - "@smithy/protocol-http" "^5.3.4" - "@smithy/smithy-client" "^4.9.2" - "@smithy/types" "^4.8.1" - "@smithy/url-parser" "^4.2.4" + "@aws-sdk/core" "3.946.0" + "@aws-sdk/middleware-host-header" "3.936.0" + "@aws-sdk/middleware-logger" "3.936.0" + "@aws-sdk/middleware-recursion-detection" "3.936.0" + "@aws-sdk/middleware-user-agent" "3.946.0" + "@aws-sdk/region-config-resolver" "3.936.0" + "@aws-sdk/types" "3.936.0" + "@aws-sdk/util-endpoints" "3.936.0" + "@aws-sdk/util-user-agent-browser" "3.936.0" + "@aws-sdk/util-user-agent-node" "3.946.0" + "@smithy/config-resolver" "^4.4.3" + "@smithy/core" "^3.18.7" + "@smithy/fetch-http-handler" "^5.3.6" + "@smithy/hash-node" "^4.2.5" + "@smithy/invalid-dependency" "^4.2.5" + "@smithy/middleware-content-length" "^4.2.5" + "@smithy/middleware-endpoint" "^4.3.14" + "@smithy/middleware-retry" "^4.4.14" + "@smithy/middleware-serde" "^4.2.6" + "@smithy/middleware-stack" "^4.2.5" + "@smithy/node-config-provider" "^4.3.5" + "@smithy/node-http-handler" "^4.4.5" + "@smithy/protocol-http" "^5.3.5" + "@smithy/smithy-client" "^4.9.10" + "@smithy/types" "^4.9.0" + "@smithy/url-parser" "^4.2.5" "@smithy/util-base64" "^4.3.0" "@smithy/util-body-length-browser" "^4.2.0" "@smithy/util-body-length-node" "^4.2.1" - "@smithy/util-defaults-mode-browser" "^4.3.5" - "@smithy/util-defaults-mode-node" "^4.2.7" - "@smithy/util-endpoints" "^3.2.4" - "@smithy/util-middleware" "^4.2.4" - "@smithy/util-retry" "^4.2.4" + "@smithy/util-defaults-mode-browser" "^4.3.13" + "@smithy/util-defaults-mode-node" "^4.2.16" + "@smithy/util-endpoints" "^3.2.5" + "@smithy/util-middleware" "^4.2.5" + "@smithy/util-retry" "^4.2.5" "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@aws-sdk/core@3.922.0": - version "3.922.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.922.0.tgz#6df3b04145202567a15e2b83cc83ef15590c828a" - integrity sha512-EvfP4cqJfpO3L2v5vkIlTkMesPtRwWlMfsaW6Tpfm7iYfBOuTi6jx60pMDMTyJNVfh6cGmXwh/kj1jQdR+w99Q== - dependencies: - "@aws-sdk/types" "3.922.0" - "@aws-sdk/xml-builder" "3.921.0" - "@smithy/core" "^3.17.2" - "@smithy/node-config-provider" "^4.3.4" - "@smithy/property-provider" "^4.2.4" - "@smithy/protocol-http" "^5.3.4" - "@smithy/signature-v4" "^5.3.4" - "@smithy/smithy-client" "^4.9.2" - "@smithy/types" "^4.8.1" +"@aws-sdk/core@3.946.0": + version "3.946.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.946.0.tgz#61ba7b8c3f27f04496231fdc9485df5bceae4e89" + integrity sha512-u2BkbLLVbMFrEiXrko2+S6ih5sUZPlbVyRPtXOqMHlCyzr70sE8kIiD6ba223rQeIFPcYfW/wHc6k4ihW2xxVg== + dependencies: + "@aws-sdk/types" "3.936.0" + "@aws-sdk/xml-builder" "3.930.0" + "@smithy/core" "^3.18.7" + "@smithy/node-config-provider" "^4.3.5" + "@smithy/property-provider" "^4.2.5" + "@smithy/protocol-http" "^5.3.5" + "@smithy/signature-v4" "^5.3.5" + "@smithy/smithy-client" "^4.9.10" + "@smithy/types" "^4.9.0" "@smithy/util-base64" "^4.3.0" - "@smithy/util-middleware" "^4.2.4" + "@smithy/util-middleware" "^4.2.5" "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-env@3.922.0": - version "3.922.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.922.0.tgz#c0f7a0ae77c4f9d1c6494aec4a149bbc74cc8578" - integrity sha512-WikGQpKkROJSK3D3E7odPjZ8tU7WJp5/TgGdRuZw3izsHUeH48xMv6IznafpRTmvHcjAbDQj4U3CJZNAzOK/OQ== +"@aws-sdk/credential-provider-env@3.946.0": + version "3.946.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.946.0.tgz#d2fff69989f98b562c285dbe0d6dc2715fea5f6f" + integrity sha512-P4l+K6wX1tf8LmWUvZofdQ+BgCNyk6Tb9u1H10npvqpuCD+dCM4pXIBq3PQcv/juUBOvLGGREo+Govuh3lfD0Q== dependencies: - "@aws-sdk/core" "3.922.0" - "@aws-sdk/types" "3.922.0" - "@smithy/property-provider" "^4.2.4" - "@smithy/types" "^4.8.1" + "@aws-sdk/core" "3.946.0" + "@aws-sdk/types" "3.936.0" + "@smithy/property-provider" "^4.2.5" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-http@3.922.0": - version "3.922.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.922.0.tgz#d957bf8f2c0fb07a27eaee561e5bc94d6f86cb73" - integrity sha512-i72DgHMK7ydAEqdzU0Duqh60Q8W59EZmRJ73y0Y5oFmNOqnYsAI+UXyOoCsubp+Dkr6+yOwAn1gPt1XGE9Aowg== - dependencies: - "@aws-sdk/core" "3.922.0" - "@aws-sdk/types" "3.922.0" - "@smithy/fetch-http-handler" "^5.3.5" - "@smithy/node-http-handler" "^4.4.4" - "@smithy/property-provider" "^4.2.4" - "@smithy/protocol-http" "^5.3.4" - "@smithy/smithy-client" "^4.9.2" - "@smithy/types" "^4.8.1" - "@smithy/util-stream" "^4.5.5" +"@aws-sdk/credential-provider-http@3.946.0": + version "3.946.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.946.0.tgz#7befebf44880454563bbb14dd14113f1c7d19ae9" + integrity sha512-/zeOJ6E7dGZQ/l2k7KytEoPJX0APIhwt0A79hPf/bUpMF4dDs2P6JmchDrotk0a0Y/MIdNF8sBQ/MEOPnBiYoQ== + dependencies: + "@aws-sdk/core" "3.946.0" + "@aws-sdk/types" "3.936.0" + "@smithy/fetch-http-handler" "^5.3.6" + "@smithy/node-http-handler" "^4.4.5" + "@smithy/property-provider" "^4.2.5" + "@smithy/protocol-http" "^5.3.5" + "@smithy/smithy-client" "^4.9.10" + "@smithy/types" "^4.9.0" + "@smithy/util-stream" "^4.5.6" tslib "^2.6.2" -"@aws-sdk/credential-provider-ini@3.922.0": - version "3.922.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.922.0.tgz#67348aa54e0548e7bcaea2a54eac6af18e84f0d7" - integrity sha512-bVF+pI5UCLNkvbiZr/t2fgTtv84s8FCdOGAPxQiQcw5qOZywNuuCCY3wIIchmQr6GJr8YFkEp5LgDCac5EC5aQ== - dependencies: - "@aws-sdk/core" "3.922.0" - "@aws-sdk/credential-provider-env" "3.922.0" - "@aws-sdk/credential-provider-http" "3.922.0" - "@aws-sdk/credential-provider-process" "3.922.0" - "@aws-sdk/credential-provider-sso" "3.922.0" - "@aws-sdk/credential-provider-web-identity" "3.922.0" - "@aws-sdk/nested-clients" "3.922.0" - "@aws-sdk/types" "3.922.0" - "@smithy/credential-provider-imds" "^4.2.4" - "@smithy/property-provider" "^4.2.4" - "@smithy/shared-ini-file-loader" "^4.3.4" - "@smithy/types" "^4.8.1" +"@aws-sdk/credential-provider-ini@3.946.0": + version "3.946.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.946.0.tgz#0fb5e76f066b5ebbbf98121af6fb9ffd01ae072c" + integrity sha512-Pdgcra3RivWj/TuZmfFaHbqsvvgnSKO0CxlRUMMr0PgBiCnUhyl+zBktdNOeGsOPH2fUzQpYhcUjYUgVSdcSDQ== + dependencies: + "@aws-sdk/core" "3.946.0" + "@aws-sdk/credential-provider-env" "3.946.0" + "@aws-sdk/credential-provider-http" "3.946.0" + "@aws-sdk/credential-provider-login" "3.946.0" + "@aws-sdk/credential-provider-process" "3.946.0" + "@aws-sdk/credential-provider-sso" "3.946.0" + "@aws-sdk/credential-provider-web-identity" "3.946.0" + "@aws-sdk/nested-clients" "3.946.0" + "@aws-sdk/types" "3.936.0" + "@smithy/credential-provider-imds" "^4.2.5" + "@smithy/property-provider" "^4.2.5" + "@smithy/shared-ini-file-loader" "^4.4.0" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-node@3.922.0": - version "3.922.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.922.0.tgz#279eb69f1b932556a8b94d52af13375baeaac4a2" - integrity sha512-agCwaD6mBihToHkjycL8ObIS2XOnWypWZZWhJSoWyHwFrhEKz1zGvgylK9Dc711oUfU+zU6J8e0JPKNJMNb3BQ== - dependencies: - "@aws-sdk/credential-provider-env" "3.922.0" - "@aws-sdk/credential-provider-http" "3.922.0" - "@aws-sdk/credential-provider-ini" "3.922.0" - "@aws-sdk/credential-provider-process" "3.922.0" - "@aws-sdk/credential-provider-sso" "3.922.0" - "@aws-sdk/credential-provider-web-identity" "3.922.0" - "@aws-sdk/types" "3.922.0" - "@smithy/credential-provider-imds" "^4.2.4" - "@smithy/property-provider" "^4.2.4" - "@smithy/shared-ini-file-loader" "^4.3.4" - "@smithy/types" "^4.8.1" +"@aws-sdk/credential-provider-login@3.946.0": + version "3.946.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-login/-/credential-provider-login-3.946.0.tgz#da3eb3f59d9d09ae9c2a2a07d7c4eca00b10929e" + integrity sha512-5iqLNc15u2Zx+7jOdQkIbP62N7n2031tw5hkmIG0DLnozhnk64osOh2CliiOE9x3c4P9Pf4frAwgyy9GzNTk2g== + dependencies: + "@aws-sdk/core" "3.946.0" + "@aws-sdk/nested-clients" "3.946.0" + "@aws-sdk/types" "3.936.0" + "@smithy/property-provider" "^4.2.5" + "@smithy/protocol-http" "^5.3.5" + "@smithy/shared-ini-file-loader" "^4.4.0" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-process@3.922.0": - version "3.922.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.922.0.tgz#23f5b0923d9a9bb89dac3fa9aeb27c9eebf1a19c" - integrity sha512-1DZOYezT6okslpvMW7oA2q+y17CJd4fxjNFH0jtThfswdh9CtG62+wxenqO+NExttq0UMaKisrkZiVrYQBTShw== +"@aws-sdk/credential-provider-node@3.946.0": + version "3.946.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.946.0.tgz#c544df6010abf2c609ab7e44de872dc663e7db02" + integrity sha512-I7URUqnBPng1a5y81OImxrwERysZqMBREG6svhhGeZgxmqcpAZ8z5ywILeQXdEOCuuES8phUp/ojzxFjPXp/eA== + dependencies: + "@aws-sdk/credential-provider-env" "3.946.0" + "@aws-sdk/credential-provider-http" "3.946.0" + "@aws-sdk/credential-provider-ini" "3.946.0" + "@aws-sdk/credential-provider-process" "3.946.0" + "@aws-sdk/credential-provider-sso" "3.946.0" + "@aws-sdk/credential-provider-web-identity" "3.946.0" + "@aws-sdk/types" "3.936.0" + "@smithy/credential-provider-imds" "^4.2.5" + "@smithy/property-provider" "^4.2.5" + "@smithy/shared-ini-file-loader" "^4.4.0" + "@smithy/types" "^4.9.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-process@3.946.0": + version "3.946.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.946.0.tgz#d9b1d78215a53deb1da34fc208f9a471800f202f" + integrity sha512-GtGHX7OGqIeVQ3DlVm5RRF43Qmf3S1+PLJv9svrdvAhAdy2bUb044FdXXqrtSsIfpzTKlHgQUiRo5MWLd35Ntw== dependencies: - "@aws-sdk/core" "3.922.0" - "@aws-sdk/types" "3.922.0" - "@smithy/property-provider" "^4.2.4" - "@smithy/shared-ini-file-loader" "^4.3.4" - "@smithy/types" "^4.8.1" + "@aws-sdk/core" "3.946.0" + "@aws-sdk/types" "3.936.0" + "@smithy/property-provider" "^4.2.5" + "@smithy/shared-ini-file-loader" "^4.4.0" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-sso@3.922.0": - version "3.922.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.922.0.tgz#64a2e8f44e4aa8fdacbaa6c536495971109926d2" - integrity sha512-nbD3G3hShTYxLCkKMqLkLPtKwAAfxdY/k9jHtZmVBFXek2T6tQrqZHKxlAu+fd23Ga4/Aik7DLQQx1RA1a5ipg== - dependencies: - "@aws-sdk/client-sso" "3.922.0" - "@aws-sdk/core" "3.922.0" - "@aws-sdk/token-providers" "3.922.0" - "@aws-sdk/types" "3.922.0" - "@smithy/property-provider" "^4.2.4" - "@smithy/shared-ini-file-loader" "^4.3.4" - "@smithy/types" "^4.8.1" +"@aws-sdk/credential-provider-sso@3.946.0": + version "3.946.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.946.0.tgz#b76c057b91b9c6779516dde03e61467fb1cd67f1" + integrity sha512-LeGSSt2V5iwYey1ENGY75RmoDP3bA2iE/py8QBKW8EDA8hn74XBLkprhrK5iccOvU3UGWY8WrEKFAFGNjJOL9g== + dependencies: + "@aws-sdk/client-sso" "3.946.0" + "@aws-sdk/core" "3.946.0" + "@aws-sdk/token-providers" "3.946.0" + "@aws-sdk/types" "3.936.0" + "@smithy/property-provider" "^4.2.5" + "@smithy/shared-ini-file-loader" "^4.4.0" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-web-identity@3.922.0": - version "3.922.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.922.0.tgz#d7757693c8f7cec62a0c34b90fea45be4023cf23" - integrity sha512-wjGIhgMHGGQfQTdFaJphNOKyAL8wZs6znJdHADPVURmgR+EWLyN/0fDO1u7wx8xaLMZpbHIFWBEvf9TritR/cQ== - dependencies: - "@aws-sdk/core" "3.922.0" - "@aws-sdk/nested-clients" "3.922.0" - "@aws-sdk/types" "3.922.0" - "@smithy/property-provider" "^4.2.4" - "@smithy/shared-ini-file-loader" "^4.3.4" - "@smithy/types" "^4.8.1" +"@aws-sdk/credential-provider-web-identity@3.946.0": + version "3.946.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.946.0.tgz#ff8a600d3fdc25ed446e1af8993f2800b2fccbe3" + integrity sha512-ocBCvjWfkbjxElBI1QUxOnHldsNhoU0uOICFvuRDAZAoxvypJHN3m5BJkqb7gqorBbcv3LRgmBdEnWXOAvq+7Q== + dependencies: + "@aws-sdk/core" "3.946.0" + "@aws-sdk/nested-clients" "3.946.0" + "@aws-sdk/types" "3.936.0" + "@smithy/property-provider" "^4.2.5" + "@smithy/shared-ini-file-loader" "^4.4.0" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@aws-sdk/middleware-bucket-endpoint@3.922.0": - version "3.922.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.922.0.tgz#417efd18e8af948e694c5be751bde6d631138b3d" - integrity sha512-Dpr2YeOaLFqt3q1hocwBesynE3x8/dXZqXZRuzSX/9/VQcwYBFChHAm4mTAl4zuvArtDbLrwzWSxmOWYZGtq5w== +"@aws-sdk/middleware-bucket-endpoint@3.936.0": + version "3.936.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.936.0.tgz#3c2d9935a2a388fb74f8318d620e2da38d360970" + integrity sha512-XLSVVfAorUxZh6dzF+HTOp4R1B5EQcdpGcPliWr0KUj2jukgjZEcqbBmjyMF/p9bmyQsONX80iURF1HLAlW0qg== dependencies: - "@aws-sdk/types" "3.922.0" + "@aws-sdk/types" "3.936.0" "@aws-sdk/util-arn-parser" "3.893.0" - "@smithy/node-config-provider" "^4.3.4" - "@smithy/protocol-http" "^5.3.4" - "@smithy/types" "^4.8.1" + "@smithy/node-config-provider" "^4.3.5" + "@smithy/protocol-http" "^5.3.5" + "@smithy/types" "^4.9.0" "@smithy/util-config-provider" "^4.2.0" tslib "^2.6.2" -"@aws-sdk/middleware-expect-continue@3.922.0": - version "3.922.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.922.0.tgz#02f0b0402fcb8974765b3e7d20f43753bd05738c" - integrity sha512-xmnLWMtmHJHJBupSWMUEW1gyxuRIeQ1Ov2xa8Tqq77fPr4Ft2AluEwiDMaZIMHoAvpxWKEEt9Si59Li7GIA+bQ== +"@aws-sdk/middleware-expect-continue@3.936.0": + version "3.936.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.936.0.tgz#da1ce8a8b9af61192131a1c0a54bcab2a8a0e02f" + integrity sha512-Eb4ELAC23bEQLJmUMYnPWcjD3FZIsmz2svDiXEcxRkQU9r7NRID7pM7C5NPH94wOfiCk0b2Y8rVyFXW0lGQwbA== dependencies: - "@aws-sdk/types" "3.922.0" - "@smithy/protocol-http" "^5.3.4" - "@smithy/types" "^4.8.1" + "@aws-sdk/types" "3.936.0" + "@smithy/protocol-http" "^5.3.5" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@aws-sdk/middleware-flexible-checksums@3.922.0": - version "3.922.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.922.0.tgz#41abb38c5baa8626a843aa57cfcb904a4d71427a" - integrity sha512-G363np7YcJhf+gBucskdv8cOTbs2TRwocEzRupuqDIooGDlLBlfJrvwehdgtWR8l53yjJR3zcHvGrVPTe2h8Nw== +"@aws-sdk/middleware-flexible-checksums@3.946.0": + version "3.946.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.946.0.tgz#a2b99eac1223286fffee418e2b5bc907a65718b1" + integrity sha512-HJA7RIWsnxcChyZ1hNF/3JICkYCqDonxoeG8FkrmLRBknZ8WVdJiPD420/UwrWaa5F2MuTDA92jxk77rI09h1w== dependencies: "@aws-crypto/crc32" "5.2.0" "@aws-crypto/crc32c" "5.2.0" "@aws-crypto/util" "5.2.0" - "@aws-sdk/core" "3.922.0" - "@aws-sdk/types" "3.922.0" + "@aws-sdk/core" "3.946.0" + "@aws-sdk/types" "3.936.0" "@smithy/is-array-buffer" "^4.2.0" - "@smithy/node-config-provider" "^4.3.4" - "@smithy/protocol-http" "^5.3.4" - "@smithy/types" "^4.8.1" - "@smithy/util-middleware" "^4.2.4" - "@smithy/util-stream" "^4.5.5" + "@smithy/node-config-provider" "^4.3.5" + "@smithy/protocol-http" "^5.3.5" + "@smithy/types" "^4.9.0" + "@smithy/util-middleware" "^4.2.5" + "@smithy/util-stream" "^4.5.6" "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@aws-sdk/middleware-host-header@3.922.0": - version "3.922.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.922.0.tgz#f19621fd19764f7eb0a33795ce0f43402080e394" - integrity sha512-HPquFgBnq/KqKRVkiuCt97PmWbKtxQ5iUNLEc6FIviqOoZTmaYG3EDsIbuFBz9C4RHJU4FKLmHL2bL3FEId6AA== +"@aws-sdk/middleware-host-header@3.936.0": + version "3.936.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.936.0.tgz#ef1144d175f1f499afbbd92ad07e24f8ccc9e9ce" + integrity sha512-tAaObaAnsP1XnLGndfkGWFuzrJYuk9W0b/nLvol66t8FZExIAf/WdkT2NNAWOYxljVs++oHnyHBCxIlaHrzSiw== dependencies: - "@aws-sdk/types" "3.922.0" - "@smithy/protocol-http" "^5.3.4" - "@smithy/types" "^4.8.1" + "@aws-sdk/types" "3.936.0" + "@smithy/protocol-http" "^5.3.5" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@aws-sdk/middleware-location-constraint@3.922.0": - version "3.922.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.922.0.tgz#c455d40e3ab49014a1193fbcb2bf29885d345b7c" - integrity sha512-T4iqd7WQ2DDjCH/0s50mnhdoX+IJns83ZE+3zj9IDlpU0N2aq8R91IG890qTfYkUEdP9yRm0xir/CNed+v6Dew== +"@aws-sdk/middleware-location-constraint@3.936.0": + version "3.936.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.936.0.tgz#1f79ba7d2506f12b806689f22d687fb05db3614e" + integrity sha512-SCMPenDtQMd9o5da9JzkHz838w3327iqXk3cbNnXWqnNRx6unyW8FL0DZ84gIY12kAyVHz5WEqlWuekc15ehfw== dependencies: - "@aws-sdk/types" "3.922.0" - "@smithy/types" "^4.8.1" + "@aws-sdk/types" "3.936.0" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@aws-sdk/middleware-logger@3.922.0": - version "3.922.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.922.0.tgz#3a43e2b7ec72b043751a7fd45f0514db77756be9" - integrity sha512-AkvYO6b80FBm5/kk2E636zNNcNgjztNNUxpqVx+huyGn9ZqGTzS4kLqW2hO6CBe5APzVtPCtiQsXL24nzuOlAg== +"@aws-sdk/middleware-logger@3.936.0": + version "3.936.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.936.0.tgz#691093bebb708b994be10f19358e8699af38a209" + integrity sha512-aPSJ12d3a3Ea5nyEnLbijCaaYJT2QjQ9iW+zGh5QcZYXmOGWbKVyPSxmVOboZQG+c1M8t6d2O7tqrwzIq8L8qw== dependencies: - "@aws-sdk/types" "3.922.0" - "@smithy/types" "^4.8.1" + "@aws-sdk/types" "3.936.0" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@aws-sdk/middleware-recursion-detection@3.922.0": - version "3.922.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.922.0.tgz#cca89bd926ad05893f9b99b253fa50a6b6c7b829" - integrity sha512-TtSCEDonV/9R0VhVlCpxZbp/9sxQvTTRKzIf8LxW3uXpby6Wl8IxEciBJlxmSkoqxh542WRcko7NYODlvL/gDA== +"@aws-sdk/middleware-recursion-detection@3.936.0": + version "3.936.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.936.0.tgz#141b6c92c1aa42bcd71aa854e0783b4f28e87a30" + integrity sha512-l4aGbHpXM45YNgXggIux1HgsCVAvvBoqHPkqLnqMl9QVapfuSTjJHfDYDsx1Xxct6/m7qSMUzanBALhiaGO2fA== dependencies: - "@aws-sdk/types" "3.922.0" - "@aws/lambda-invoke-store" "^0.1.1" - "@smithy/protocol-http" "^5.3.4" - "@smithy/types" "^4.8.1" + "@aws-sdk/types" "3.936.0" + "@aws/lambda-invoke-store" "^0.2.0" + "@smithy/protocol-http" "^5.3.5" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@aws-sdk/middleware-sdk-s3@3.922.0": - version "3.922.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.922.0.tgz#11875f1b848070413815ca34f1b8e93a36fa351a" - integrity sha512-ygg8lME1oFAbsH42ed2wtGqfHLoT5irgx6VC4X98j79fV1qXEwwwbqMsAiMQ/HJehpjqAFRVsHox3MHLN48Z5A== +"@aws-sdk/middleware-sdk-s3@3.946.0": + version "3.946.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.946.0.tgz#1157eb981519aa2d7ace5df21163d7c20b5b27df" + integrity sha512-0UTFmFd8PX2k/jLu/DBmR+mmLQWAtUGHYps9Rjx3dcXNwaMLaa/39NoV3qn7Dwzfpqc6JZlZzBk+NDOCJIHW9g== dependencies: - "@aws-sdk/core" "3.922.0" - "@aws-sdk/types" "3.922.0" + "@aws-sdk/core" "3.946.0" + "@aws-sdk/types" "3.936.0" "@aws-sdk/util-arn-parser" "3.893.0" - "@smithy/core" "^3.17.2" - "@smithy/node-config-provider" "^4.3.4" - "@smithy/protocol-http" "^5.3.4" - "@smithy/signature-v4" "^5.3.4" - "@smithy/smithy-client" "^4.9.2" - "@smithy/types" "^4.8.1" + "@smithy/core" "^3.18.7" + "@smithy/node-config-provider" "^4.3.5" + "@smithy/protocol-http" "^5.3.5" + "@smithy/signature-v4" "^5.3.5" + "@smithy/smithy-client" "^4.9.10" + "@smithy/types" "^4.9.0" "@smithy/util-config-provider" "^4.2.0" - "@smithy/util-middleware" "^4.2.4" - "@smithy/util-stream" "^4.5.5" + "@smithy/util-middleware" "^4.2.5" + "@smithy/util-stream" "^4.5.6" "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@aws-sdk/middleware-ssec@3.922.0": - version "3.922.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.922.0.tgz#1c56b2619cdd604e97203148030f299980494008" - integrity sha512-eHvSJZTSRJO+/tjjGD6ocnPc8q9o3m26+qbwQTu/4V6yOJQ1q+xkDZNqwJQphL+CodYaQ7uljp8g1Ji/AN3D9w== +"@aws-sdk/middleware-ssec@3.936.0": + version "3.936.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.936.0.tgz#7a56e6946a86ce4f4489459e5188091116e8ddba" + integrity sha512-/GLC9lZdVp05ozRik5KsuODR/N7j+W+2TbfdFL3iS+7un+gnP6hC8RDOZd6WhpZp7drXQ9guKiTAxkZQwzS8DA== dependencies: - "@aws-sdk/types" "3.922.0" - "@smithy/types" "^4.8.1" + "@aws-sdk/types" "3.936.0" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@aws-sdk/middleware-user-agent@3.922.0": - version "3.922.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.922.0.tgz#b1e109ce3a0c30d44360bf0f707013a3a36d3f78" - integrity sha512-N4Qx/9KP3oVQBJOrSghhz8iZFtUC2NNeSZt88hpPhbqAEAtuX8aD8OzVcpnAtrwWqy82Yd2YTxlkqMGkgqnBsQ== - dependencies: - "@aws-sdk/core" "3.922.0" - "@aws-sdk/types" "3.922.0" - "@aws-sdk/util-endpoints" "3.922.0" - "@smithy/core" "^3.17.2" - "@smithy/protocol-http" "^5.3.4" - "@smithy/types" "^4.8.1" +"@aws-sdk/middleware-user-agent@3.946.0": + version "3.946.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.946.0.tgz#520e977ff528306e5587af648d9f08fe8021afcf" + integrity sha512-7QcljCraeaWQNuqmOoAyZs8KpZcuhPiqdeeKoRd397jVGNRehLFsZbIMOvwaluUDFY11oMyXOkQEERe1Zo2fCw== + dependencies: + "@aws-sdk/core" "3.946.0" + "@aws-sdk/types" "3.936.0" + "@aws-sdk/util-endpoints" "3.936.0" + "@smithy/core" "^3.18.7" + "@smithy/protocol-http" "^5.3.5" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@aws-sdk/nested-clients@3.922.0": - version "3.922.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.922.0.tgz#1b66f1505fb0d6442e67239c5596159ba871cfff" - integrity sha512-uYvKCF1TGh/MuJ4TMqmUM0Csuao02HawcseG4LUDyxdUsd/EFuxalWq1Cx4fKZQ2K8F504efZBjctMAMNY+l7A== +"@aws-sdk/nested-clients@3.946.0": + version "3.946.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.946.0.tgz#30c4c0da0f14450cf6512f061c141406c480501d" + integrity sha512-rjAtEguukeW8mlyEQMQI56vxFoyWlaNwowmz1p1rav948SUjtrzjHAp4TOQWhibb7AR7BUTHBCgIcyCRjBEf4g== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.922.0" - "@aws-sdk/middleware-host-header" "3.922.0" - "@aws-sdk/middleware-logger" "3.922.0" - "@aws-sdk/middleware-recursion-detection" "3.922.0" - "@aws-sdk/middleware-user-agent" "3.922.0" - "@aws-sdk/region-config-resolver" "3.922.0" - "@aws-sdk/types" "3.922.0" - "@aws-sdk/util-endpoints" "3.922.0" - "@aws-sdk/util-user-agent-browser" "3.922.0" - "@aws-sdk/util-user-agent-node" "3.922.0" - "@smithy/config-resolver" "^4.4.1" - "@smithy/core" "^3.17.2" - "@smithy/fetch-http-handler" "^5.3.5" - "@smithy/hash-node" "^4.2.4" - "@smithy/invalid-dependency" "^4.2.4" - "@smithy/middleware-content-length" "^4.2.4" - "@smithy/middleware-endpoint" "^4.3.6" - "@smithy/middleware-retry" "^4.4.6" - "@smithy/middleware-serde" "^4.2.4" - "@smithy/middleware-stack" "^4.2.4" - "@smithy/node-config-provider" "^4.3.4" - "@smithy/node-http-handler" "^4.4.4" - "@smithy/protocol-http" "^5.3.4" - "@smithy/smithy-client" "^4.9.2" - "@smithy/types" "^4.8.1" - "@smithy/url-parser" "^4.2.4" + "@aws-sdk/core" "3.946.0" + "@aws-sdk/middleware-host-header" "3.936.0" + "@aws-sdk/middleware-logger" "3.936.0" + "@aws-sdk/middleware-recursion-detection" "3.936.0" + "@aws-sdk/middleware-user-agent" "3.946.0" + "@aws-sdk/region-config-resolver" "3.936.0" + "@aws-sdk/types" "3.936.0" + "@aws-sdk/util-endpoints" "3.936.0" + "@aws-sdk/util-user-agent-browser" "3.936.0" + "@aws-sdk/util-user-agent-node" "3.946.0" + "@smithy/config-resolver" "^4.4.3" + "@smithy/core" "^3.18.7" + "@smithy/fetch-http-handler" "^5.3.6" + "@smithy/hash-node" "^4.2.5" + "@smithy/invalid-dependency" "^4.2.5" + "@smithy/middleware-content-length" "^4.2.5" + "@smithy/middleware-endpoint" "^4.3.14" + "@smithy/middleware-retry" "^4.4.14" + "@smithy/middleware-serde" "^4.2.6" + "@smithy/middleware-stack" "^4.2.5" + "@smithy/node-config-provider" "^4.3.5" + "@smithy/node-http-handler" "^4.4.5" + "@smithy/protocol-http" "^5.3.5" + "@smithy/smithy-client" "^4.9.10" + "@smithy/types" "^4.9.0" + "@smithy/url-parser" "^4.2.5" "@smithy/util-base64" "^4.3.0" "@smithy/util-body-length-browser" "^4.2.0" "@smithy/util-body-length-node" "^4.2.1" - "@smithy/util-defaults-mode-browser" "^4.3.5" - "@smithy/util-defaults-mode-node" "^4.2.7" - "@smithy/util-endpoints" "^3.2.4" - "@smithy/util-middleware" "^4.2.4" - "@smithy/util-retry" "^4.2.4" + "@smithy/util-defaults-mode-browser" "^4.3.13" + "@smithy/util-defaults-mode-node" "^4.2.16" + "@smithy/util-endpoints" "^3.2.5" + "@smithy/util-middleware" "^4.2.5" + "@smithy/util-retry" "^4.2.5" "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@aws-sdk/region-config-resolver@3.922.0": - version "3.922.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.922.0.tgz#55bf45c6d4d344b8393528c7e33576f923bb1b1d" - integrity sha512-44Y/rNNwhngR2KHp6gkx//TOr56/hx6s4l+XLjOqH7EBCHL7XhnrT1y92L+DLiroVr1tCSmO8eHQwBv0Y2+mvw== +"@aws-sdk/region-config-resolver@3.936.0": + version "3.936.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.936.0.tgz#b02f20c4d62973731d42da1f1239a27fbbe53c0a" + integrity sha512-wOKhzzWsshXGduxO4pqSiNyL9oUtk4BEvjWm9aaq6Hmfdoydq6v6t0rAGHWPjFwy9z2haovGRi3C8IxdMB4muw== dependencies: - "@aws-sdk/types" "3.922.0" - "@smithy/config-resolver" "^4.4.1" - "@smithy/node-config-provider" "^4.3.4" - "@smithy/types" "^4.8.1" + "@aws-sdk/types" "3.936.0" + "@smithy/config-resolver" "^4.4.3" + "@smithy/node-config-provider" "^4.3.5" + "@smithy/types" "^4.9.0" tslib "^2.6.2" "@aws-sdk/s3-request-presigner@^3.820.0": - version "3.922.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.922.0.tgz#f71ad9565d2f1e790ed258c192e3844430ce484c" - integrity sha512-x/WZXOMAN10X/hbjHnaXjtU34RmV3/eJMiHoJsohquSgz8+pfRN1DeK65oa/XPoKCMPfV31RfHSzCduligHfsQ== - dependencies: - "@aws-sdk/signature-v4-multi-region" "3.922.0" - "@aws-sdk/types" "3.922.0" - "@aws-sdk/util-format-url" "3.922.0" - "@smithy/middleware-endpoint" "^4.3.6" - "@smithy/protocol-http" "^5.3.4" - "@smithy/smithy-client" "^4.9.2" - "@smithy/types" "^4.8.1" + version "3.946.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.946.0.tgz#7566de436dc5e91ace5c836a021f2fe1baf65547" + integrity sha512-NPNCGW84ZEYCKhN+XkY307eumlBq/E0vWU0iYhVVq7i5cjnA2wwLenKyYp/+0FpXvv83MC/jT9BVB5XMNu4RUw== + dependencies: + "@aws-sdk/signature-v4-multi-region" "3.946.0" + "@aws-sdk/types" "3.936.0" + "@aws-sdk/util-format-url" "3.936.0" + "@smithy/middleware-endpoint" "^4.3.14" + "@smithy/protocol-http" "^5.3.5" + "@smithy/smithy-client" "^4.9.10" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@aws-sdk/signature-v4-multi-region@3.922.0": - version "3.922.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.922.0.tgz#37e30499d805ac0cffbd14b448f7d2a58bbea132" - integrity sha512-mmsgEEL5pE+A7gFYiJMDBCLVciaXq4EFI5iAP7bPpnHvOplnNOYxVy2IreKMllGvrfjVyLnwxzZYlo5zZ65FWg== +"@aws-sdk/signature-v4-multi-region@3.946.0": + version "3.946.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.946.0.tgz#616dc86ced2e5c36530d46a94f0c2f943053b249" + integrity sha512-61FZ685lKiJuQ06g6U7K3PL9EwKCxNm51wNlxyKV57nnl1GrLD0NC8O3/hDNkCQLNBArT9y3IXl2H7TtIxP8Jg== dependencies: - "@aws-sdk/middleware-sdk-s3" "3.922.0" - "@aws-sdk/types" "3.922.0" - "@smithy/protocol-http" "^5.3.4" - "@smithy/signature-v4" "^5.3.4" - "@smithy/types" "^4.8.1" + "@aws-sdk/middleware-sdk-s3" "3.946.0" + "@aws-sdk/types" "3.936.0" + "@smithy/protocol-http" "^5.3.5" + "@smithy/signature-v4" "^5.3.5" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@aws-sdk/token-providers@3.922.0": - version "3.922.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.922.0.tgz#0ae050e9b713b942397fa290ce269df91013c8cc" - integrity sha512-/inmPnjZE0ZBE16zaCowAvouSx05FJ7p6BQYuzlJ8vxEU0sS0Hf8fvhuiRnN9V9eDUPIBY+/5EjbMWygXL4wlQ== - dependencies: - "@aws-sdk/core" "3.922.0" - "@aws-sdk/nested-clients" "3.922.0" - "@aws-sdk/types" "3.922.0" - "@smithy/property-provider" "^4.2.4" - "@smithy/shared-ini-file-loader" "^4.3.4" - "@smithy/types" "^4.8.1" +"@aws-sdk/token-providers@3.946.0": + version "3.946.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.946.0.tgz#4f0e1f7c6fdcab7a6b1cd9aec84fbcccee2260af" + integrity sha512-a5c+rM6CUPX2ExmUZ3DlbLlS5rQr4tbdoGcgBsjnAHiYx8MuMNAI+8M7wfjF13i2yvUQj5WEIddvLpayfEZj9g== + dependencies: + "@aws-sdk/core" "3.946.0" + "@aws-sdk/nested-clients" "3.946.0" + "@aws-sdk/types" "3.936.0" + "@smithy/property-provider" "^4.2.5" + "@smithy/shared-ini-file-loader" "^4.4.0" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@aws-sdk/types@3.922.0", "@aws-sdk/types@^3.222.0": - version "3.922.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.922.0.tgz#e92daf55272171caac8dba9d425786646466d935" - integrity sha512-eLA6XjVobAUAMivvM7DBL79mnHyrm+32TkXNWZua5mnxF+6kQCfblKKJvxMZLGosO53/Ex46ogim8IY5Nbqv2w== +"@aws-sdk/types@3.936.0", "@aws-sdk/types@^3.222.0": + version "3.936.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.936.0.tgz#ecd3a4bec1a1bd4df834ab21fe52a76e332dc27a" + integrity sha512-uz0/VlMd2pP5MepdrHizd+T+OKfyK4r3OA9JI+L/lPKg0YFQosdJNCKisr6o70E3dh8iMpFYxF1UN/4uZsyARg== dependencies: - "@smithy/types" "^4.8.1" + "@smithy/types" "^4.9.0" tslib "^2.6.2" "@aws-sdk/util-arn-parser@3.893.0": @@ -610,25 +624,25 @@ dependencies: tslib "^2.6.2" -"@aws-sdk/util-endpoints@3.922.0": - version "3.922.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.922.0.tgz#817457d6a78ce366bdb7b201c638dba5ffdbfe60" - integrity sha512-4ZdQCSuNMY8HMlR1YN4MRDdXuKd+uQTeKIr5/pIM+g3TjInZoj8imvXudjcrFGA63UF3t92YVTkBq88mg58RXQ== +"@aws-sdk/util-endpoints@3.936.0": + version "3.936.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.936.0.tgz#81c00be8cfd4f966e05defd739a720ce2c888ddf" + integrity sha512-0Zx3Ntdpu+z9Wlm7JKUBOzS9EunwKAb4KdGUQQxDqh5Lc3ta5uBoub+FgmVuzwnmBu9U1Os8UuwVTH0Lgu+P5w== dependencies: - "@aws-sdk/types" "3.922.0" - "@smithy/types" "^4.8.1" - "@smithy/url-parser" "^4.2.4" - "@smithy/util-endpoints" "^3.2.4" + "@aws-sdk/types" "3.936.0" + "@smithy/types" "^4.9.0" + "@smithy/url-parser" "^4.2.5" + "@smithy/util-endpoints" "^3.2.5" tslib "^2.6.2" -"@aws-sdk/util-format-url@3.922.0": - version "3.922.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-format-url/-/util-format-url-3.922.0.tgz#a1b91b180d75a73dd8eedee0913a60153673392e" - integrity sha512-UYLWPvZEd6TYilNkrQrIeXh2bXZsY3ighYErSEjD24f3JQhg0XdXoR/QHIE8licHu2qFrTRM6yi9LH1GY6X0cg== +"@aws-sdk/util-format-url@3.936.0": + version "3.936.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-format-url/-/util-format-url-3.936.0.tgz#66070d028d2db66729face62d75468bea4c25eee" + integrity sha512-MS5eSEtDUFIAMHrJaMERiHAvDPdfxc/T869ZjDNFAIiZhyc037REw0aoTNeimNXDNy2txRNZJaAUn/kE4RwN+g== dependencies: - "@aws-sdk/types" "3.922.0" - "@smithy/querystring-builder" "^4.2.4" - "@smithy/types" "^4.8.1" + "@aws-sdk/types" "3.936.0" + "@smithy/querystring-builder" "^4.2.5" + "@smithy/types" "^4.9.0" tslib "^2.6.2" "@aws-sdk/util-locate-window@^3.0.0": @@ -638,42 +652,42 @@ dependencies: tslib "^2.6.2" -"@aws-sdk/util-user-agent-browser@3.922.0": - version "3.922.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.922.0.tgz#734bbe74d34c3fbdb96aca80a151d3d7e7e87c30" - integrity sha512-qOJAERZ3Plj1st7M4Q5henl5FRpE30uLm6L9edZqZXGR6c7ry9jzexWamWVpQ4H4xVAVmiO9dIEBAfbq4mduOA== +"@aws-sdk/util-user-agent-browser@3.936.0": + version "3.936.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.936.0.tgz#cbfcaeaba6d843b060183638699c0f20dcaed774" + integrity sha512-eZ/XF6NxMtu+iCma58GRNRxSq4lHo6zHQLOZRIeL/ghqYJirqHdenMOwrzPettj60KWlv827RVebP9oNVrwZbw== dependencies: - "@aws-sdk/types" "3.922.0" - "@smithy/types" "^4.8.1" + "@aws-sdk/types" "3.936.0" + "@smithy/types" "^4.9.0" bowser "^2.11.0" tslib "^2.6.2" -"@aws-sdk/util-user-agent-node@3.922.0": - version "3.922.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.922.0.tgz#52dd951b314a3e7097d181664a3f79a1e56921ce" - integrity sha512-NrPe/Rsr5kcGunkog0eBV+bY0inkRELsD2SacC4lQZvZiXf8VJ2Y7j+Yq1tB+h+FPLsdt3v9wItIvDf/laAm0Q== +"@aws-sdk/util-user-agent-node@3.946.0": + version "3.946.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.946.0.tgz#97504220643572b2cd05ad705cb640a85a4e5831" + integrity sha512-a2UwwvzbK5AxHKUBupfg4s7VnkqRAHjYsuezHnKCniczmT4HZfP1NnfwwvLKEH8qaTrwenxjKSfq4UWmWkvG+Q== dependencies: - "@aws-sdk/middleware-user-agent" "3.922.0" - "@aws-sdk/types" "3.922.0" - "@smithy/node-config-provider" "^4.3.4" - "@smithy/types" "^4.8.1" + "@aws-sdk/middleware-user-agent" "3.946.0" + "@aws-sdk/types" "3.936.0" + "@smithy/node-config-provider" "^4.3.5" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@aws-sdk/xml-builder@3.921.0": - version "3.921.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.921.0.tgz#e4d4d21b09341648b598d720c602ee76d7a84594" - integrity sha512-LVHg0jgjyicKKvpNIEMXIMr1EBViESxcPkqfOlT+X1FkmUMTNZEEVF18tOJg4m4hV5vxtkWcqtr4IEeWa1C41Q== +"@aws-sdk/xml-builder@3.930.0": + version "3.930.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.930.0.tgz#949a35219ca52cc769ffbfbf38f3324178ba74f9" + integrity sha512-YIfkD17GocxdmlUVc3ia52QhcWuRIUJonbF8A2CYfcWNV3HzvAqpcPeC0bYUhkK+8e8YO1ARnLKZQE0TlwzorA== dependencies: - "@smithy/types" "^4.8.1" + "@smithy/types" "^4.9.0" fast-xml-parser "5.2.5" tslib "^2.6.2" -"@aws/lambda-invoke-store@^0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@aws/lambda-invoke-store/-/lambda-invoke-store-0.1.1.tgz#2e67f17040b930bde00a79ffb484eb9e77472b06" - integrity sha512-RcLam17LdlbSOSp9VxmUu1eI6Mwxp+OwhD2QhiSNmNCzoDb0EeUXTD2n/WbcnrAYMGlmf05th6QYq23VqvJqpA== +"@aws/lambda-invoke-store@^0.2.0": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@aws/lambda-invoke-store/-/lambda-invoke-store-0.2.2.tgz#b00f7d6aedfe832ef6c84488f3a422cce6a47efa" + integrity sha512-C0NBLsIqzDIae8HFw9YIrIBsbc0xTiOtt7fAukGPnqQ/+zZNaq+4jhuccltK0QuWHBnNm/a6kLIRA6GFiM10eg== -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.27.1": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.27.1.tgz#200f715e66d52a23b221a9435534a91cc13ad5be" integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== @@ -687,7 +701,7 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.28.5.tgz#a8a4962e1567121ac0b3b487f52107443b455c7f" integrity sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA== -"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9": +"@babel/core@^7.23.9", "@babel/core@^7.27.4": version "7.28.5" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.5.tgz#4c81b35e51e1b734f510c99b07dfbc7bbbb48f7e" integrity sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw== @@ -708,7 +722,7 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.28.5", "@babel/generator@^7.7.2": +"@babel/generator@^7.27.5", "@babel/generator@^7.28.5": version "7.28.5" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.28.5.tgz#712722d5e50f44d07bc7ac9fe84438742dd61298" integrity sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ== @@ -780,7 +794,7 @@ "@babel/template" "^7.27.2" "@babel/types" "^7.28.4" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.27.2", "@babel/parser@^7.28.5": +"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.27.2", "@babel/parser@^7.28.5": version "7.28.5" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.28.5.tgz#0b0225ee90362f030efd644e8034c99468893b08" integrity sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ== @@ -836,7 +850,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.7.2": +"@babel/plugin-syntax-jsx@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz#2f9beb5eff30fa507c5532d107daac7b888fa34c" integrity sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w== @@ -899,14 +913,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.7.2": +"@babel/plugin-syntax-typescript@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz#5147d29066a793450f220c63fa3a9431b7e6dd18" integrity sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ== dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/template@^7.27.2", "@babel/template@^7.3.3": +"@babel/template@^7.27.2": version "7.27.2" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.2.tgz#fa78ceed3c4e7b63ebf6cb39e5852fca45f6809d" integrity sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw== @@ -928,7 +942,7 @@ "@babel/types" "^7.28.5" debug "^4.3.1" -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.27.1", "@babel/types@^7.28.2", "@babel/types@^7.28.4", "@babel/types@^7.28.5", "@babel/types@^7.3.3": +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.28.2", "@babel/types@^7.28.4", "@babel/types@^7.28.5": version "7.28.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.5.tgz#10fc405f60897c35f07e85493c932c7b5ca0592b" integrity sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA== @@ -958,6 +972,28 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" +"@emnapi/core@^1.4.3": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.7.1.tgz#3a79a02dbc84f45884a1806ebb98e5746bdfaac4" + integrity sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg== + dependencies: + "@emnapi/wasi-threads" "1.1.0" + tslib "^2.4.0" + +"@emnapi/runtime@^1.4.3": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.7.1.tgz#a73784e23f5d57287369c808197288b52276b791" + integrity sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA== + dependencies: + tslib "^2.4.0" + +"@emnapi/wasi-threads@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz#60b2102fddc9ccb78607e4a3cf8403ea69be41bf" + integrity sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ== + dependencies: + tslib "^2.4.0" + "@eslint-community/eslint-utils@^4.7.0", "@eslint-community/eslint-utils@^4.8.0": version "4.9.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz#7308df158e064f0dd8b8fdb58aa14fa2a7f913b3" @@ -1000,10 +1036,10 @@ dependencies: "@types/json-schema" "^7.0.15" -"@eslint/eslintrc@^3.2.0", "@eslint/eslintrc@^3.3.1": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.1.tgz#e55f7f1dd400600dd066dbba349c4c0bac916964" - integrity sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ== +"@eslint/eslintrc@^3.3.1", "@eslint/eslintrc@^3.3.3": + version "3.3.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.3.tgz#26393a0806501b5e2b6a43aa588a4d8df67880ac" + integrity sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -1011,14 +1047,14 @@ globals "^14.0.0" ignore "^5.2.0" import-fresh "^3.2.1" - js-yaml "^4.1.0" + js-yaml "^4.1.1" minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@9.39.0", "@eslint/js@^9.18.0": - version "9.39.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.39.0.tgz#e1955cefd1d79e80a9557274e9aa9bd3f641be01" - integrity sha512-BIhe0sW91JGPiaF1mOuPy5v8NflqfjIcDNpC+LbW9f609WVRX1rArrhi6Z2ymvrAry9jw+5POTj4t2t62o8Bmw== +"@eslint/js@9.39.1", "@eslint/js@^9.18.0": + version "9.39.1" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.39.1.tgz#0dd59c3a9f40e3f1882975c321470969243e0164" + integrity sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw== "@eslint/object-schema@^2.1.7": version "2.1.7" @@ -1064,99 +1100,115 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.3.tgz#c2b9d2e374ee62c586d3adbea87199b1d7a7a6ba" integrity sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ== -"@inquirer/ansi@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@inquirer/ansi/-/ansi-1.0.1.tgz#994f7dd16a00c547a7b110e04bf4f4eca1857929" - integrity sha512-yqq0aJW/5XPhi5xOAL1xRCpe1eh8UFVgYFpFsjEqmIR8rKLyP+HINvFXwUaxYICflJrVlxnp7lLN6As735kVpw== +"@inquirer/ansi@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@inquirer/ansi/-/ansi-1.0.2.tgz#674a4c4d81ad460695cb2a1fc69d78cd187f337e" + integrity sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ== -"@inquirer/checkbox@^4.1.2", "@inquirer/checkbox@^4.2.0": - version "4.3.0" - resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-4.3.0.tgz#747ab0ec9b385dd77d3215a51fc9abe25f556a4b" - integrity sha512-5+Q3PKH35YsnoPTh75LucALdAxom6xh5D1oeY561x4cqBuH24ZFVyFREPe14xgnrtmGu3EEt1dIi60wRVSnGCw== - dependencies: - "@inquirer/ansi" "^1.0.1" - "@inquirer/core" "^10.3.0" - "@inquirer/figures" "^1.0.14" - "@inquirer/type" "^3.0.9" - yoctocolors-cjs "^2.1.2" - -"@inquirer/confirm@^5.1.14", "@inquirer/confirm@^5.1.6": - version "5.1.19" - resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-5.1.19.tgz#bf28b420898999eb7479ab55623a3fbaf1453ff4" - integrity sha512-wQNz9cfcxrtEnUyG5PndC8g3gZ7lGDBzmWiXZkX8ot3vfZ+/BLjR8EvyGX4YzQLeVqtAlY/YScZpW7CW8qMoDQ== - dependencies: - "@inquirer/core" "^10.3.0" - "@inquirer/type" "^3.0.9" - -"@inquirer/core@^10.3.0": - version "10.3.0" - resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-10.3.0.tgz#342e4fd62cbd33ea62089364274995dbec1f2ffe" - integrity sha512-Uv2aPPPSK5jeCplQmQ9xadnFx2Zhj9b5Dj7bU6ZeCdDNNY11nhYy4btcSdtDguHqCT2h5oNeQTcUNSGGLA7NTA== - dependencies: - "@inquirer/ansi" "^1.0.1" - "@inquirer/figures" "^1.0.14" - "@inquirer/type" "^3.0.9" +"@inquirer/checkbox@^4.1.2", "@inquirer/checkbox@^4.3.2": + version "4.3.2" + resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-4.3.2.tgz#e1483e6519d6ffef97281a54d2a5baa0d81b3f3b" + integrity sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA== + dependencies: + "@inquirer/ansi" "^1.0.2" + "@inquirer/core" "^10.3.2" + "@inquirer/figures" "^1.0.15" + "@inquirer/type" "^3.0.10" + yoctocolors-cjs "^2.1.3" + +"@inquirer/confirm@^5.1.21", "@inquirer/confirm@^5.1.6": + version "5.1.21" + resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-5.1.21.tgz#610c4acd7797d94890a6e2dde2c98eb1e891dd12" + integrity sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ== + dependencies: + "@inquirer/core" "^10.3.2" + "@inquirer/type" "^3.0.10" + +"@inquirer/core@^10.3.2": + version "10.3.2" + resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-10.3.2.tgz#535979ff3ff4fe1e7cc4f83e2320504c743b7e20" + integrity sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A== + dependencies: + "@inquirer/ansi" "^1.0.2" + "@inquirer/figures" "^1.0.15" + "@inquirer/type" "^3.0.10" cli-width "^4.1.0" mute-stream "^2.0.0" signal-exit "^4.1.0" wrap-ansi "^6.2.0" - yoctocolors-cjs "^2.1.2" + yoctocolors-cjs "^2.1.3" -"@inquirer/editor@^4.2.15", "@inquirer/editor@^4.2.7": - version "4.2.21" - resolved "https://registry.yarnpkg.com/@inquirer/editor/-/editor-4.2.21.tgz#9ffe641760a1a1f7722c39be00143060537adcc7" - integrity sha512-MjtjOGjr0Kh4BciaFShYpZ1s9400idOdvQ5D7u7lE6VztPFoyLcVNE5dXBmEEIQq5zi4B9h2kU+q7AVBxJMAkQ== +"@inquirer/editor@^4.2.23", "@inquirer/editor@^4.2.7": + version "4.2.23" + resolved "https://registry.yarnpkg.com/@inquirer/editor/-/editor-4.2.23.tgz#fe046a3bfdae931262de98c1052437d794322e0b" + integrity sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ== dependencies: - "@inquirer/core" "^10.3.0" - "@inquirer/external-editor" "^1.0.2" - "@inquirer/type" "^3.0.9" + "@inquirer/core" "^10.3.2" + "@inquirer/external-editor" "^1.0.3" + "@inquirer/type" "^3.0.10" -"@inquirer/expand@^4.0.17", "@inquirer/expand@^4.0.9": - version "4.0.21" - resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-4.0.21.tgz#3b22eb3d9961bdbad6edb2a956cfcadc15be9128" - integrity sha512-+mScLhIcbPFmuvU3tAGBed78XvYHSvCl6dBiYMlzCLhpr0bzGzd8tfivMMeqND6XZiaZ1tgusbUHJEfc6YzOdA== +"@inquirer/expand@^4.0.23", "@inquirer/expand@^4.0.9": + version "4.0.23" + resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-4.0.23.tgz#a38b5f32226d75717c370bdfed792313b92bdc05" + integrity sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew== dependencies: - "@inquirer/core" "^10.3.0" - "@inquirer/type" "^3.0.9" - yoctocolors-cjs "^2.1.2" + "@inquirer/core" "^10.3.2" + "@inquirer/type" "^3.0.10" + yoctocolors-cjs "^2.1.3" -"@inquirer/external-editor@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@inquirer/external-editor/-/external-editor-1.0.2.tgz#dc16e7064c46c53be09918db639ff780718c071a" - integrity sha512-yy9cOoBnx58TlsPrIxauKIFQTiyH+0MK4e97y4sV9ERbI+zDxw7i2hxHLCIEGIE/8PPvDxGhgzIOTSOWcs6/MQ== +"@inquirer/external-editor@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@inquirer/external-editor/-/external-editor-1.0.3.tgz#c23988291ee676290fdab3fd306e64010a6d13b8" + integrity sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA== dependencies: - chardet "^2.1.0" + chardet "^2.1.1" iconv-lite "^0.7.0" -"@inquirer/figures@^1.0.14": - version "1.0.14" - resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.14.tgz#12a7bfd344a83ae6cc5d6004b389ed11f6db6be4" - integrity sha512-DbFgdt+9/OZYFM+19dbpXOSeAstPy884FPy1KjDu4anWwymZeOYhMY1mdFri172htv6mvc/uvIAAi7b7tvjJBQ== +"@inquirer/figures@^1.0.15": + version "1.0.15" + resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.15.tgz#dbb49ed80df11df74268023b496ac5d9acd22b3a" + integrity sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g== -"@inquirer/input@^4.1.6", "@inquirer/input@^4.2.1": - version "4.2.5" - resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-4.2.5.tgz#40fe0a4b585c367089b57ef455da4980fbc5480f" - integrity sha512-7GoWev7P6s7t0oJbenH0eQ0ThNdDJbEAEtVt9vsrYZ9FulIokvd823yLyhQlWHJPGce1wzP53ttfdCZmonMHyA== - dependencies: - "@inquirer/core" "^10.3.0" - "@inquirer/type" "^3.0.9" - -"@inquirer/number@^3.0.17", "@inquirer/number@^3.0.9": - version "3.0.21" - resolved "https://registry.yarnpkg.com/@inquirer/number/-/number-3.0.21.tgz#fb8fac4c8bd08471b1068dc89f42d61fe3a43ca9" - integrity sha512-5QWs0KGaNMlhbdhOSCFfKsW+/dcAVC2g4wT/z2MCiZM47uLgatC5N20kpkDQf7dHx+XFct/MJvvNGy6aYJn4Pw== - dependencies: - "@inquirer/core" "^10.3.0" - "@inquirer/type" "^3.0.9" - -"@inquirer/password@^4.0.17", "@inquirer/password@^4.0.9": - version "4.0.21" - resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-4.0.21.tgz#b3422a19621290f2270f9b2ef8eeded8cf85db4f" - integrity sha512-xxeW1V5SbNFNig2pLfetsDb0svWlKuhmr7MPJZMYuDnCTkpVBI+X/doudg4pznc1/U+yYmWFFOi4hNvGgUo7EA== - dependencies: - "@inquirer/ansi" "^1.0.1" - "@inquirer/core" "^10.3.0" - "@inquirer/type" "^3.0.9" +"@inquirer/input@^4.1.6", "@inquirer/input@^4.3.1": + version "4.3.1" + resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-4.3.1.tgz#778683b4c4c4d95d05d4b05c4a854964b73565b4" + integrity sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g== + dependencies: + "@inquirer/core" "^10.3.2" + "@inquirer/type" "^3.0.10" + +"@inquirer/number@^3.0.23", "@inquirer/number@^3.0.9": + version "3.0.23" + resolved "https://registry.yarnpkg.com/@inquirer/number/-/number-3.0.23.tgz#3fdec2540d642093fd7526818fd8d4bdc7335094" + integrity sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg== + dependencies: + "@inquirer/core" "^10.3.2" + "@inquirer/type" "^3.0.10" + +"@inquirer/password@^4.0.23", "@inquirer/password@^4.0.9": + version "4.0.23" + resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-4.0.23.tgz#b9f5187c8c92fd7aa9eceb9d8f2ead0d7e7b000d" + integrity sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA== + dependencies: + "@inquirer/ansi" "^1.0.2" + "@inquirer/core" "^10.3.2" + "@inquirer/type" "^3.0.10" + +"@inquirer/prompts@7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-7.10.1.tgz#e1436c0484cf04c22548c74e2cd239e989d5f847" + integrity sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg== + dependencies: + "@inquirer/checkbox" "^4.3.2" + "@inquirer/confirm" "^5.1.21" + "@inquirer/editor" "^4.2.23" + "@inquirer/expand" "^4.0.23" + "@inquirer/input" "^4.3.1" + "@inquirer/number" "^3.0.23" + "@inquirer/password" "^4.0.23" + "@inquirer/rawlist" "^4.1.11" + "@inquirer/search" "^3.2.2" + "@inquirer/select" "^4.4.2" "@inquirer/prompts@7.3.2": version "7.3.2" @@ -1174,56 +1226,40 @@ "@inquirer/search" "^3.0.9" "@inquirer/select" "^4.0.9" -"@inquirer/prompts@7.8.0": - version "7.8.0" - resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-7.8.0.tgz#0bac9315e3ecd09ae21d1598b1c0df39a8b4a720" - integrity sha512-JHwGbQ6wjf1dxxnalDYpZwZxUEosT+6CPGD9Zh4sm9WXdtUp9XODCQD3NjSTmu+0OAyxWXNOqf0spjIymJa2Tw== - dependencies: - "@inquirer/checkbox" "^4.2.0" - "@inquirer/confirm" "^5.1.14" - "@inquirer/editor" "^4.2.15" - "@inquirer/expand" "^4.0.17" - "@inquirer/input" "^4.2.1" - "@inquirer/number" "^3.0.17" - "@inquirer/password" "^4.0.17" - "@inquirer/rawlist" "^4.1.5" - "@inquirer/search" "^3.1.0" - "@inquirer/select" "^4.3.1" - -"@inquirer/rawlist@^4.0.9", "@inquirer/rawlist@^4.1.5": - version "4.1.9" - resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-4.1.9.tgz#b4641cb54e130049a13bd1b7621ac766c6d531f2" - integrity sha512-AWpxB7MuJrRiSfTKGJ7Y68imYt8P9N3Gaa7ySdkFj1iWjr6WfbGAhdZvw/UnhFXTHITJzxGUI9k8IX7akAEBCg== - dependencies: - "@inquirer/core" "^10.3.0" - "@inquirer/type" "^3.0.9" - yoctocolors-cjs "^2.1.2" - -"@inquirer/search@^3.0.9", "@inquirer/search@^3.1.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@inquirer/search/-/search-3.2.0.tgz#fef378965592e9f407cd4f1f782ca40df1b3ed5e" - integrity sha512-a5SzB/qrXafDX1Z4AZW3CsVoiNxcIYCzYP7r9RzrfMpaLpB+yWi5U8BWagZyLmwR0pKbbL5umnGRd0RzGVI8bQ== +"@inquirer/rawlist@^4.0.9", "@inquirer/rawlist@^4.1.11": + version "4.1.11" + resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-4.1.11.tgz#313c8c3ffccb7d41e990c606465726b4a898a033" + integrity sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw== dependencies: - "@inquirer/core" "^10.3.0" - "@inquirer/figures" "^1.0.14" - "@inquirer/type" "^3.0.9" - yoctocolors-cjs "^2.1.2" + "@inquirer/core" "^10.3.2" + "@inquirer/type" "^3.0.10" + yoctocolors-cjs "^2.1.3" -"@inquirer/select@^4.0.9", "@inquirer/select@^4.3.1": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-4.4.0.tgz#e19d0d0fbfcd5cb4a20f292e62c88aa8155cc6dc" - integrity sha512-kaC3FHsJZvVyIjYBs5Ih8y8Bj4P/QItQWrZW22WJax7zTN+ZPXVGuOM55vzbdCP9zKUiBd9iEJVdesujfF+cAA== - dependencies: - "@inquirer/ansi" "^1.0.1" - "@inquirer/core" "^10.3.0" - "@inquirer/figures" "^1.0.14" - "@inquirer/type" "^3.0.9" - yoctocolors-cjs "^2.1.2" - -"@inquirer/type@^3.0.9": - version "3.0.9" - resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-3.0.9.tgz#f7f9696e9276e4e1ae9332767afb9199992e31d9" - integrity sha512-QPaNt/nmE2bLGQa9b7wwyRJoLZ7pN6rcyXvzU0YCmivmJyq1BVo94G98tStRWkoD1RgDX5C+dPlhhHzNdu/W/w== +"@inquirer/search@^3.0.9", "@inquirer/search@^3.2.2": + version "3.2.2" + resolved "https://registry.yarnpkg.com/@inquirer/search/-/search-3.2.2.tgz#4cc6fd574dcd434e4399badc37c742c3fd534ac8" + integrity sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA== + dependencies: + "@inquirer/core" "^10.3.2" + "@inquirer/figures" "^1.0.15" + "@inquirer/type" "^3.0.10" + yoctocolors-cjs "^2.1.3" + +"@inquirer/select@^4.0.9", "@inquirer/select@^4.4.2": + version "4.4.2" + resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-4.4.2.tgz#2ac8fca960913f18f1d1b35323ed8fcd27d89323" + integrity sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w== + dependencies: + "@inquirer/ansi" "^1.0.2" + "@inquirer/core" "^10.3.2" + "@inquirer/figures" "^1.0.15" + "@inquirer/type" "^3.0.10" + yoctocolors-cjs "^2.1.3" + +"@inquirer/type@^3.0.10": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-3.0.10.tgz#11ed564ec78432a200ea2601a212d24af8150d50" + integrity sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA== "@isaacs/balanced-match@^4.0.1": version "4.0.1" @@ -1274,197 +1310,225 @@ figlet "^1.5.2" parent-require "^1.0.0" -"@jest/console@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc" - integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg== +"@jest/console@30.2.0": + version "30.2.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-30.2.0.tgz#c52fcd5b58fdd2e8eb66b2fd8ae56f2f64d05b28" + integrity sha512-+O1ifRjkvYIkBqASKWgLxrpEhQAAE7hY77ALLUufSk5717KfOShg6IbqLmdsLMPdUiFvA2kTs0R7YZy+l0IzZQ== dependencies: - "@jest/types" "^29.6.3" + "@jest/types" "30.2.0" "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" + chalk "^4.1.2" + jest-message-util "30.2.0" + jest-util "30.2.0" slash "^3.0.0" -"@jest/core@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f" - integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg== - dependencies: - "@jest/console" "^29.7.0" - "@jest/reporters" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" +"@jest/core@30.2.0": + version "30.2.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-30.2.0.tgz#813d59faa5abd5510964a8b3a7b17cc77b775275" + integrity sha512-03W6IhuhjqTlpzh/ojut/pDB2LPRygyWX8ExpgHtQA8H/3K7+1vKmcINx5UzeOX1se6YEsBsOHQ1CRzf3fOwTQ== + dependencies: + "@jest/console" "30.2.0" + "@jest/pattern" "30.0.1" + "@jest/reporters" "30.2.0" + "@jest/test-result" "30.2.0" + "@jest/transform" "30.2.0" + "@jest/types" "30.2.0" "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - ci-info "^3.2.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-changed-files "^29.7.0" - jest-config "^29.7.0" - jest-haste-map "^29.7.0" - jest-message-util "^29.7.0" - jest-regex-util "^29.6.3" - jest-resolve "^29.7.0" - jest-resolve-dependencies "^29.7.0" - jest-runner "^29.7.0" - jest-runtime "^29.7.0" - jest-snapshot "^29.7.0" - jest-util "^29.7.0" - jest-validate "^29.7.0" - jest-watcher "^29.7.0" - micromatch "^4.0.4" - pretty-format "^29.7.0" + ansi-escapes "^4.3.2" + chalk "^4.1.2" + ci-info "^4.2.0" + exit-x "^0.2.2" + graceful-fs "^4.2.11" + jest-changed-files "30.2.0" + jest-config "30.2.0" + jest-haste-map "30.2.0" + jest-message-util "30.2.0" + jest-regex-util "30.0.1" + jest-resolve "30.2.0" + jest-resolve-dependencies "30.2.0" + jest-runner "30.2.0" + jest-runtime "30.2.0" + jest-snapshot "30.2.0" + jest-util "30.2.0" + jest-validate "30.2.0" + jest-watcher "30.2.0" + micromatch "^4.0.8" + pretty-format "30.2.0" slash "^3.0.0" - strip-ansi "^6.0.0" -"@jest/environment@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7" - integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== +"@jest/diff-sequences@30.0.1": + version "30.0.1" + resolved "https://registry.yarnpkg.com/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz#0ededeae4d071f5c8ffe3678d15f3a1be09156be" + integrity sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw== + +"@jest/environment@30.2.0": + version "30.2.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-30.2.0.tgz#1e673cdb8b93ded707cf6631b8353011460831fa" + integrity sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g== dependencies: - "@jest/fake-timers" "^29.7.0" - "@jest/types" "^29.6.3" + "@jest/fake-timers" "30.2.0" + "@jest/types" "30.2.0" "@types/node" "*" - jest-mock "^29.7.0" + jest-mock "30.2.0" -"@jest/expect-utils@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" - integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== +"@jest/expect-utils@30.2.0": + version "30.2.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-30.2.0.tgz#4f95413d4748454fdb17404bf1141827d15e6011" + integrity sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA== dependencies: - jest-get-type "^29.6.3" + "@jest/get-type" "30.1.0" -"@jest/expect@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2" - integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ== +"@jest/expect@30.2.0": + version "30.2.0" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-30.2.0.tgz#9a5968499bb8add2bbb09136f69f7df5ddbf3185" + integrity sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA== dependencies: - expect "^29.7.0" - jest-snapshot "^29.7.0" + expect "30.2.0" + jest-snapshot "30.2.0" -"@jest/fake-timers@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565" - integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== +"@jest/fake-timers@30.2.0": + version "30.2.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-30.2.0.tgz#0941ddc28a339b9819542495b5408622dc9e94ec" + integrity sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw== dependencies: - "@jest/types" "^29.6.3" - "@sinonjs/fake-timers" "^10.0.2" + "@jest/types" "30.2.0" + "@sinonjs/fake-timers" "^13.0.0" "@types/node" "*" - jest-message-util "^29.7.0" - jest-mock "^29.7.0" - jest-util "^29.7.0" - -"@jest/globals@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d" - integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ== + jest-message-util "30.2.0" + jest-mock "30.2.0" + jest-util "30.2.0" + +"@jest/get-type@30.1.0": + version "30.1.0" + resolved "https://registry.yarnpkg.com/@jest/get-type/-/get-type-30.1.0.tgz#4fcb4dc2ebcf0811be1c04fd1cb79c2dba431cbc" + integrity sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA== + +"@jest/globals@30.2.0": + version "30.2.0" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-30.2.0.tgz#2f4b696d5862664b89c4ee2e49ae24d2bb7e0988" + integrity sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw== + dependencies: + "@jest/environment" "30.2.0" + "@jest/expect" "30.2.0" + "@jest/types" "30.2.0" + jest-mock "30.2.0" + +"@jest/pattern@30.0.1": + version "30.0.1" + resolved "https://registry.yarnpkg.com/@jest/pattern/-/pattern-30.0.1.tgz#d5304147f49a052900b4b853dedb111d080e199f" + integrity sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA== dependencies: - "@jest/environment" "^29.7.0" - "@jest/expect" "^29.7.0" - "@jest/types" "^29.6.3" - jest-mock "^29.7.0" + "@types/node" "*" + jest-regex-util "30.0.1" -"@jest/reporters@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7" - integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg== +"@jest/reporters@30.2.0": + version "30.2.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-30.2.0.tgz#a36b28fcbaf0c4595250b108e6f20e363348fd91" + integrity sha512-DRyW6baWPqKMa9CzeiBjHwjd8XeAyco2Vt8XbcLFjiwCOEKOvy82GJ8QQnJE9ofsxCMPjH4MfH8fCWIHHDKpAQ== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@jridgewell/trace-mapping" "^0.3.18" + "@jest/console" "30.2.0" + "@jest/test-result" "30.2.0" + "@jest/transform" "30.2.0" + "@jest/types" "30.2.0" + "@jridgewell/trace-mapping" "^0.3.25" "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.9" + chalk "^4.1.2" + collect-v8-coverage "^1.0.2" + exit-x "^0.2.2" + glob "^10.3.10" + graceful-fs "^4.2.11" istanbul-lib-coverage "^3.0.0" istanbul-lib-instrument "^6.0.0" istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" + istanbul-lib-source-maps "^5.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - jest-worker "^29.7.0" + jest-message-util "30.2.0" + jest-util "30.2.0" + jest-worker "30.2.0" slash "^3.0.0" - string-length "^4.0.1" - strip-ansi "^6.0.0" + string-length "^4.0.2" v8-to-istanbul "^9.0.1" -"@jest/schemas@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" - integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== +"@jest/schemas@30.0.5": + version "30.0.5" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-30.0.5.tgz#7bdf69fc5a368a5abdb49fd91036c55225846473" + integrity sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA== dependencies: - "@sinclair/typebox" "^0.27.8" + "@sinclair/typebox" "^0.34.0" -"@jest/source-map@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4" - integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw== +"@jest/snapshot-utils@30.2.0": + version "30.2.0" + resolved "https://registry.yarnpkg.com/@jest/snapshot-utils/-/snapshot-utils-30.2.0.tgz#387858eb90c2f98f67bff327435a532ac5309fbe" + integrity sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug== dependencies: - "@jridgewell/trace-mapping" "^0.3.18" - callsites "^3.0.0" - graceful-fs "^4.2.9" - -"@jest/test-result@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c" - integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA== - dependencies: - "@jest/console" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce" - integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw== - dependencies: - "@jest/test-result" "^29.7.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" + "@jest/types" "30.2.0" + chalk "^4.1.2" + graceful-fs "^4.2.11" + natural-compare "^1.4.0" + +"@jest/source-map@30.0.1": + version "30.0.1" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-30.0.1.tgz#305ebec50468f13e658b3d5c26f85107a5620aaa" + integrity sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg== + dependencies: + "@jridgewell/trace-mapping" "^0.3.25" + callsites "^3.1.0" + graceful-fs "^4.2.11" + +"@jest/test-result@30.2.0": + version "30.2.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-30.2.0.tgz#9c0124377fb7996cdffb86eda3dbc56eacab363d" + integrity sha512-RF+Z+0CCHkARz5HT9mcQCBulb1wgCP3FBvl9VFokMX27acKphwyQsNuWH3c+ojd1LeWBLoTYoxF0zm6S/66mjg== + dependencies: + "@jest/console" "30.2.0" + "@jest/types" "30.2.0" + "@types/istanbul-lib-coverage" "^2.0.6" + collect-v8-coverage "^1.0.2" + +"@jest/test-sequencer@30.2.0": + version "30.2.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-30.2.0.tgz#bf0066bc72e176d58f5dfa7f212b6e7eee44f221" + integrity sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q== + dependencies: + "@jest/test-result" "30.2.0" + graceful-fs "^4.2.11" + jest-haste-map "30.2.0" slash "^3.0.0" -"@jest/transform@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c" - integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== +"@jest/transform@30.2.0": + version "30.2.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-30.2.0.tgz#54bef1a4510dcbd58d5d4de4fe2980a63077ef2a" + integrity sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA== dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^29.6.3" - "@jridgewell/trace-mapping" "^0.3.18" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" + "@babel/core" "^7.27.4" + "@jest/types" "30.2.0" + "@jridgewell/trace-mapping" "^0.3.25" + babel-plugin-istanbul "^7.0.1" + chalk "^4.1.2" convert-source-map "^2.0.0" fast-json-stable-stringify "^2.1.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-regex-util "^29.6.3" - jest-util "^29.7.0" - micromatch "^4.0.4" - pirates "^4.0.4" + graceful-fs "^4.2.11" + jest-haste-map "30.2.0" + jest-regex-util "30.0.1" + jest-util "30.2.0" + micromatch "^4.0.8" + pirates "^4.0.7" slash "^3.0.0" - write-file-atomic "^4.0.2" + write-file-atomic "^5.0.1" -"@jest/types@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" - integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== +"@jest/types@30.2.0": + version "30.2.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-30.2.0.tgz#1c678a7924b8f59eafd4c77d56b6d0ba976d62b8" + integrity sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg== dependencies: - "@jest/schemas" "^29.6.3" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" + "@jest/pattern" "30.0.1" + "@jest/schemas" "30.0.5" + "@types/istanbul-lib-coverage" "^2.0.6" + "@types/istanbul-reports" "^3.0.4" "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" + "@types/yargs" "^17.0.33" + chalk "^4.1.2" "@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5": version "0.3.13" @@ -1508,7 +1572,7 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25", "@jridgewell/trace-mapping@^0.3.28": +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.23", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25", "@jridgewell/trace-mapping@^0.3.28": version "0.3.31" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz#db15d6781c931f3a251a3dac39501c98a6082fd0" integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== @@ -1521,51 +1585,51 @@ resolved "https://registry.yarnpkg.com/@lukeed/csprng/-/csprng-1.1.0.tgz#1e3e4bd05c1cc7a0b2ddbd8a03f39f6e4b5e6cfe" integrity sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA== -"@microsoft/tsdoc@0.15.1": - version "0.15.1" - resolved "https://registry.yarnpkg.com/@microsoft/tsdoc/-/tsdoc-0.15.1.tgz#d4f6937353bc4568292654efb0a0e0532adbcba2" - integrity sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw== +"@microsoft/tsdoc@0.16.0": + version "0.16.0" + resolved "https://registry.yarnpkg.com/@microsoft/tsdoc/-/tsdoc-0.16.0.tgz#2249090633e04063176863a050c8f0808d2b6d2b" + integrity sha512-xgAyonlVVS+q7Vc7qLW0UrJU7rSFcETRWsqdXZtjzRU8dF+6CkozTK4V4y1LwOX7j8r/vHphjDeMeGI4tNGeGA== "@mikro-orm/cli@^6.4.12": - version "6.5.9" - resolved "https://registry.yarnpkg.com/@mikro-orm/cli/-/cli-6.5.9.tgz#da231e76669c127f0be6e444d9470a2f9883b5c4" - integrity sha512-Jihukq7STU5ZfRdjOBSR7mzOClqkhkic7t8GF/OAoMBeHgpUc93Ug2GvSMrJaNWGg4AKtgch/cP/KGv/3QtSsQ== + version "6.6.1" + resolved "https://registry.yarnpkg.com/@mikro-orm/cli/-/cli-6.6.1.tgz#899351e15b20dd30f97a79c69d8094602510c03e" + integrity sha512-cvnAfbcjZJAb0viTgcBir0glD/HnDV5DUGZdQpRGioSplHlEXrvV+Z6MGX2ebYB5xfGzxLpKJ11lf+tLo7PqkQ== dependencies: "@jercle/yargonaut" "1.1.5" - "@mikro-orm/core" "6.5.9" - "@mikro-orm/knex" "6.5.9" + "@mikro-orm/core" "6.6.1" + "@mikro-orm/knex" "6.6.1" fs-extra "11.3.2" tsconfig-paths "4.2.0" yargs "17.7.2" -"@mikro-orm/core@6.5.9", "@mikro-orm/core@^6.4.12": - version "6.5.9" - resolved "https://registry.yarnpkg.com/@mikro-orm/core/-/core-6.5.9.tgz#4958c88ebc1dbb77e4a650c1f9fbfc1304ad1d00" - integrity sha512-BDfMW35pKVfSBBK0TiIpjh+IX62UwD0V22x4O6psMfiwbFoAJN/gEpEg1FuLx41dYf/ExHe9Cin6U6hwRdELaQ== +"@mikro-orm/core@6.6.1", "@mikro-orm/core@^6.4.12": + version "6.6.1" + resolved "https://registry.yarnpkg.com/@mikro-orm/core/-/core-6.6.1.tgz#1aaba11cac6863925d2090b2a32982643a2de63e" + integrity sha512-MoxktUDHam+VuE3vSxAQ0TSfKqxh4pdH7/W0s5i6TBftrwMMTlTLBaYxfoBGm6PVXiuPtmr/yyMRpDfr06X1FQ== dependencies: dataloader "2.2.3" dotenv "17.2.3" esprima "4.0.1" fs-extra "11.3.2" globby "11.1.0" - mikro-orm "6.5.9" + mikro-orm "6.6.1" reflect-metadata "0.2.2" -"@mikro-orm/knex@6.5.9": - version "6.5.9" - resolved "https://registry.yarnpkg.com/@mikro-orm/knex/-/knex-6.5.9.tgz#1bef2f0aa4cf246c1851b9d0306b8dfc54ad6dfd" - integrity sha512-VtBPIcNYyWeQ+M+ha5DD+961gc6jtJDX0JLkBfMatTgHl78R1IuiTPaPfen4X9ezEDsR6N8XqJtuRmOXRFl6lA== +"@mikro-orm/knex@6.6.1": + version "6.6.1" + resolved "https://registry.yarnpkg.com/@mikro-orm/knex/-/knex-6.6.1.tgz#5a932bb7fb2fbce6916eefb438f0f7a6a893ac67" + integrity sha512-fclNi9NOCGyzqCMq5HTm1j+hzrwdDWyK8wjz2e0f/AiUYA8kqC92WzPD7bq91eJAsiGIEVXBW5tT2q0xc8cnLQ== dependencies: fs-extra "11.3.2" knex "3.1.0" sqlstring "2.3.3" "@mikro-orm/mysql@^6.4.12": - version "6.5.9" - resolved "https://registry.yarnpkg.com/@mikro-orm/mysql/-/mysql-6.5.9.tgz#b7aedde0715d4f49863a07c7f1298c3759512d2a" - integrity sha512-Zoo4lRdY6jzCB/rzdN/YxYA854+RCpY++hEZz9vHG4wJs72M5rsU7sibH19lJw/JH9m7BC1xqV/geAhfC/MjVg== + version "6.6.1" + resolved "https://registry.yarnpkg.com/@mikro-orm/mysql/-/mysql-6.6.1.tgz#bf1b498841f99c08653f5d9e86c1b1b129f5d8b0" + integrity sha512-clhMwdT2AJqwoYvYmSYlAWON2NUYZXM4zOPfM9JLGXKTVQYUx9kxTBlhAT4VCk1b0tu43p9XexcS/Re4AvQnDw== dependencies: - "@mikro-orm/knex" "6.5.9" + "@mikro-orm/knex" "6.6.1" mysql2 "3.15.3" "@mikro-orm/nestjs@^6.1.1": @@ -1574,9 +1638,9 @@ integrity sha512-aluD3eTeuCvIePDk5UBanHIhu1zAJQXqWAg47MZdHJmFkNuXn62DCXbD2c4X5TCpKW/m0zjba22ilyZ/AFG9qg== "@mikro-orm/reflection@^6.4.16": - version "6.5.9" - resolved "https://registry.yarnpkg.com/@mikro-orm/reflection/-/reflection-6.5.9.tgz#877cf1a48ee246b6e0c56f8a492e192a3e631983" - integrity sha512-iBkQXFzh8oAZmRAH1WrcI48fIfJMgBuIWHdyDLvrmVgkZe4QP0ninOGskV41xsKX7ywWsgsxTjYagwBROEpVSw== + version "6.6.1" + resolved "https://registry.yarnpkg.com/@mikro-orm/reflection/-/reflection-6.6.1.tgz#a3702843da051396214103752ea0fb8af21cd7a0" + integrity sha512-orHgTQULcuDoaK8EwZG50GTHduvWMvg0ymBnu+KAaY8b6FpNKJ1W9zVQN1e3mqqO1OfSfLmqlxUCLcFW67EiKQ== dependencies: globby "11.1.0" ts-morph "27.0.2" @@ -1689,38 +1753,46 @@ "@napi-rs/nice-win32-ia32-msvc" "1.1.1" "@napi-rs/nice-win32-x64-msvc" "1.1.1" -"@nestjs/cli@^11.0.10": - version "11.0.10" - resolved "https://registry.yarnpkg.com/@nestjs/cli/-/cli-11.0.10.tgz#c5c3cb4c47d08fd8faead7bf0ddd3f82bec7ccee" - integrity sha512-4waDT0yGWANg0pKz4E47+nUrqIJv/UqrZ5wLPkCqc7oMGRMWKAaw1NDZ9rKsaqhqvxb2LfI5+uXOWr4yi94DOQ== +"@napi-rs/wasm-runtime@^0.2.11": + version "0.2.12" + resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz#3e78a8b96e6c33a6c517e1894efbd5385a7cb6f2" + integrity sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ== + dependencies: + "@emnapi/core" "^1.4.3" + "@emnapi/runtime" "^1.4.3" + "@tybys/wasm-util" "^0.10.0" + +"@nestjs/cli@^11.0.14": + version "11.0.14" + resolved "https://registry.yarnpkg.com/@nestjs/cli/-/cli-11.0.14.tgz#c1b7fd195813cacaa4f90d398d618ae4d71fc2ab" + integrity sha512-YwP03zb5VETTwelXU+AIzMVbEZKk/uxJL+z9pw0mdG9ogAtqZ6/mpmIM4nEq/NU8D0a7CBRLcMYUmWW/55pfqw== dependencies: - "@angular-devkit/core" "19.2.15" - "@angular-devkit/schematics" "19.2.15" - "@angular-devkit/schematics-cli" "19.2.15" - "@inquirer/prompts" "7.8.0" + "@angular-devkit/core" "19.2.19" + "@angular-devkit/schematics" "19.2.19" + "@angular-devkit/schematics-cli" "19.2.19" + "@inquirer/prompts" "7.10.1" "@nestjs/schematics" "^11.0.1" - ansis "4.1.0" + ansis "4.2.0" chokidar "4.0.3" cli-table3 "0.6.5" commander "4.1.1" fork-ts-checker-webpack-plugin "9.1.0" - glob "11.0.3" + glob "13.0.0" node-emoji "1.11.0" ora "5.4.1" - tree-kill "1.2.2" tsconfig-paths "4.2.0" tsconfig-paths-webpack-plugin "4.2.0" - typescript "5.8.3" - webpack "5.100.2" + typescript "5.9.3" + webpack "5.103.0" webpack-node-externals "3.0.0" "@nestjs/common@^11.0.1": - version "11.1.8" - resolved "https://registry.yarnpkg.com/@nestjs/common/-/common-11.1.8.tgz#624d01f50d2f263592a1a5407d9f180179a98b2c" - integrity sha512-bbsOqwld/GdBfiRNc4nnjyWWENDEicq4SH+R5AuYatvf++vf1x5JIsHB1i1KtfZMD3eRte0D4K9WXuAYil6XAg== + version "11.1.9" + resolved "https://registry.yarnpkg.com/@nestjs/common/-/common-11.1.9.tgz#8b8a29931040b6c65943337b3ca9cdf42dc31282" + integrity sha512-zDntUTReRbAThIfSp3dQZ9kKqI+LjgLp5YZN5c1bgNRDuoeLySAoZg46Bg1a+uV8TMgIRziHocglKGNzr6l+bQ== dependencies: uid "2.0.2" - file-type "21.0.0" + file-type "21.1.0" iterare "1.2.1" load-esm "1.0.3" tslib "2.8.1" @@ -1735,9 +1807,9 @@ lodash "4.17.21" "@nestjs/core@^11.0.1": - version "11.1.8" - resolved "https://registry.yarnpkg.com/@nestjs/core/-/core-11.1.8.tgz#fb0d32f9d92e9396babb1e5d29a34727dbbe5285" - integrity sha512-7riWfmTmMhCJHZ5ZiaG+crj4t85IPCq/wLRuOUSigBYyFT2JZj0lVHtAdf4Davp9ouNI8GINBDt9h9b5Gz9nTw== + version "11.1.9" + resolved "https://registry.yarnpkg.com/@nestjs/core/-/core-11.1.9.tgz#7a77ded789709e194c4f118e3d9bf5182136b076" + integrity sha512-a00B0BM4X+9z+t3UxJqIZlemIwCQdYoPKrMcM+ky4z3pkqqG1eTWexjs+YXpGObnLnjtMPVKWlcZHp3adDYvUw== dependencies: uid "2.0.2" "@nuxt/opencollective" "0.4.1" @@ -1751,13 +1823,13 @@ resolved "https://registry.yarnpkg.com/@nestjs/cqrs/-/cqrs-11.0.3.tgz#aa6c482c12e883689955b07e3b8c4eb2b417d03d" integrity sha512-2ezBftiXqVfNTzjCrmhazohYhIQzgm8rvM0aKndv73IOOBcVlNuNiQ3HHiHdd4c2w/3MOQDtsGbQHgZUuW6DPw== -"@nestjs/jwt@^11.0.0": - version "11.0.1" - resolved "https://registry.yarnpkg.com/@nestjs/jwt/-/jwt-11.0.1.tgz#3109ba23932330f4001db9e41e4374f2e41342df" - integrity sha512-HXSsc7SAnCnjA98TsZqrE7trGtHDnYXWp4Ffy6LwSmck1QvbGYdMzBquXofX5l6tIRpeY4Qidl2Ti2CVG77Pdw== +"@nestjs/jwt@^11.0.2": + version "11.0.2" + resolved "https://registry.yarnpkg.com/@nestjs/jwt/-/jwt-11.0.2.tgz#bd574b2932de75e0d99017204eb08203cf373adf" + integrity sha512-rK8aE/3/Ma45gAWfCksAXUNbOoSOUudU0Kn3rT39htPF7wsYXtKfjALKeKKJbFrIWbLjsbqfXX5bIJNvgBugGA== dependencies: "@types/jsonwebtoken" "9.0.10" - jsonwebtoken "9.0.2" + jsonwebtoken "9.0.3" "@nestjs/mapped-types@2.1.0": version "2.1.0" @@ -1769,10 +1841,10 @@ resolved "https://registry.yarnpkg.com/@nestjs/passport/-/passport-11.0.5.tgz#dd3e506c2fb7ddc80fd1321c01cc1a0ca6d6b609" integrity sha512-ulQX6mbjlws92PIM15Naes4F4p2JoxGnIJuUsdXQPT+Oo2sqQmENEZXM7eYuimocfHnKlcfZOuyzbA33LwUlOQ== -"@nestjs/platform-express@^11.1.5": - version "11.1.8" - resolved "https://registry.yarnpkg.com/@nestjs/platform-express/-/platform-express-11.1.8.tgz#9e97c20d23df70ad8826125424a69c9103b68653" - integrity sha512-rL6pZH9BW7BnL5X2eWbJMtt86uloAKjFgyY5+L2UkizgfEp7rgAs0+Z1z0BcW2Pgu5+q8O7RKPNyHJ/9ZNz/ZQ== +"@nestjs/platform-express@^11.1.9": + version "11.1.9" + resolved "https://registry.yarnpkg.com/@nestjs/platform-express/-/platform-express-11.1.9.tgz#f3a8c0e0aba6f90584812c9ec1e2025563187b50" + integrity sha512-GVd3+0lO0mJq2m1kl9hDDnVrX3Nd4oH3oDfklz0pZEVEVS0KVSp63ufHq2Lu9cyPdSBuelJr9iPm2QQ1yX+Kmw== dependencies: cors "2.8.5" express "5.1.0" @@ -1791,22 +1863,22 @@ jsonc-parser "3.3.1" pluralize "8.0.0" -"@nestjs/swagger@^11.1.5": - version "11.2.1" - resolved "https://registry.yarnpkg.com/@nestjs/swagger/-/swagger-11.2.1.tgz#590047ed74e4c8417f0b0f0260d04eea9a1d7daf" - integrity sha512-1MS7xf0pzc1mofG53xrrtrurnziafPUHkqzRm4YUVPA/egeiMaSerQBD/feiAeQ2BnX0WiLsTX4HQFO0icvOjQ== +"@nestjs/swagger@^11.2.3": + version "11.2.3" + resolved "https://registry.yarnpkg.com/@nestjs/swagger/-/swagger-11.2.3.tgz#979fbc87fedee0b71d9af181cafe9dbe3e4bd976" + integrity sha512-a0xFfjeqk69uHIUpP8u0ryn4cKuHdra2Ug96L858i0N200Hxho+n3j+TlQXyOF4EstLSGjTfxI1Xb2E1lUxeNg== dependencies: - "@microsoft/tsdoc" "0.15.1" + "@microsoft/tsdoc" "0.16.0" "@nestjs/mapped-types" "2.1.0" - js-yaml "4.1.0" + js-yaml "4.1.1" lodash "4.17.21" path-to-regexp "8.3.0" - swagger-ui-dist "5.29.4" + swagger-ui-dist "5.30.2" "@nestjs/testing@^11.0.1": - version "11.1.8" - resolved "https://registry.yarnpkg.com/@nestjs/testing/-/testing-11.1.8.tgz#b41855084e53cdea0fae5669fa0fb4792e49c687" - integrity sha512-E6K+0UTKztcPxJzLnQa7S34lFjZbrj3Z1r7c5y5WDrL1m5HD1H4AeyBhicHgdaFmxjLAva2bq0sYKy/S7cdeYA== + version "11.1.9" + resolved "https://registry.yarnpkg.com/@nestjs/testing/-/testing-11.1.9.tgz#f94fbd1042936a9f1f577a32dba76dbc4fa4ec94" + integrity sha512-UFxerBDdb0RUNxQNj25pvkvNE7/vxKhXYWBt3QuwBFnYISzRIzhVlyIqLfoV5YI3zV0m0Nn4QAn1KM0zzwfEng== dependencies: tslib "2.8.1" @@ -1850,6 +1922,11 @@ dependencies: "@noble/hashes" "^1.1.5" +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + "@pkgr/core@^0.2.9": version "0.2.9" resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.2.9.tgz#d229a7b7f9dac167a156992ef23c7f023653f53b" @@ -1865,36 +1942,36 @@ resolved "https://registry.yarnpkg.com/@scarf/scarf/-/scarf-1.4.0.tgz#3bbb984085dbd6d982494538b523be1ce6562972" integrity sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ== -"@sinclair/typebox@^0.27.8": - version "0.27.8" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" - integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== +"@sinclair/typebox@^0.34.0": + version "0.34.41" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.34.41.tgz#aa51a6c1946df2c5a11494a2cdb9318e026db16c" + integrity sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g== "@sindresorhus/is@^5.2.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.6.0.tgz#41dd6093d34652cddb5d5bdeee04eafc33826668" integrity sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g== -"@sinonjs/commons@^3.0.0": +"@sinonjs/commons@^3.0.1": version "3.0.1" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== dependencies: type-detect "4.0.8" -"@sinonjs/fake-timers@^10.0.2": - version "10.3.0" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66" - integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== +"@sinonjs/fake-timers@^13.0.0": + version "13.0.5" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz#36b9dbc21ad5546486ea9173d6bea063eb1717d5" + integrity sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw== dependencies: - "@sinonjs/commons" "^3.0.0" + "@sinonjs/commons" "^3.0.1" -"@smithy/abort-controller@^4.2.4": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-4.2.4.tgz#8031d32aea69c714eae49c1f43ce0ea60481d2d3" - integrity sha512-Z4DUr/AkgyFf1bOThW2HwzREagee0sB5ycl+hDiSZOfRLW8ZgrOjDi6g8mHH19yyU5E2A/64W3z6SMIf5XiUSQ== +"@smithy/abort-controller@^4.2.5": + version "4.2.5" + resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-4.2.5.tgz#3386e8fff5a8d05930996d891d06803f2b7e5e2c" + integrity sha512-j7HwVkBw68YW8UmFRcjZOmssE77Rvk0GWAIN1oFBhsaovQmZWYCIcGa9/pwRB0ExI8Sk9MWNALTjftjHZea7VA== dependencies: - "@smithy/types" "^4.8.1" + "@smithy/types" "^4.9.0" tslib "^2.6.2" "@smithy/chunked-blob-reader-native@^4.2.1": @@ -1912,136 +1989,136 @@ dependencies: tslib "^2.6.2" -"@smithy/config-resolver@^4.4.1": - version "4.4.1" - resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-4.4.1.tgz#dcf9321841d44912455d4a0d8c4e554aa97af921" - integrity sha512-BciDJ5hkyYEGBBKMbjGB1A/Zq8bYZ41Zo9BMnGdKF6QD1fY4zIkYx6zui/0CHaVGnv6h0iy8y4rnPX9CPCAPyQ== +"@smithy/config-resolver@^4.4.3": + version "4.4.3" + resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-4.4.3.tgz#37b0e3cba827272e92612e998a2b17e841e20bab" + integrity sha512-ezHLe1tKLUxDJo2LHtDuEDyWXolw8WGOR92qb4bQdWq/zKenO5BvctZGrVJBK08zjezSk7bmbKFOXIVyChvDLw== dependencies: - "@smithy/node-config-provider" "^4.3.4" - "@smithy/types" "^4.8.1" + "@smithy/node-config-provider" "^4.3.5" + "@smithy/types" "^4.9.0" "@smithy/util-config-provider" "^4.2.0" - "@smithy/util-endpoints" "^3.2.4" - "@smithy/util-middleware" "^4.2.4" + "@smithy/util-endpoints" "^3.2.5" + "@smithy/util-middleware" "^4.2.5" tslib "^2.6.2" -"@smithy/core@^3.17.2": - version "3.17.2" - resolved "https://registry.yarnpkg.com/@smithy/core/-/core-3.17.2.tgz#bd27762dfd9f61e60b2789a20fa0dfd647827e98" - integrity sha512-n3g4Nl1Te+qGPDbNFAYf+smkRVB+JhFsGy9uJXXZQEufoP4u0r+WLh6KvTDolCswaagysDc/afS1yvb2jnj1gQ== +"@smithy/core@^3.18.7": + version "3.18.7" + resolved "https://registry.yarnpkg.com/@smithy/core/-/core-3.18.7.tgz#88c67b9474eadf51a632e2956c8756d36c7072c8" + integrity sha512-axG9MvKhMWOhFbvf5y2DuyTxQueO0dkedY9QC3mAfndLosRI/9LJv8WaL0mw7ubNhsO4IuXX9/9dYGPFvHrqlw== dependencies: - "@smithy/middleware-serde" "^4.2.4" - "@smithy/protocol-http" "^5.3.4" - "@smithy/types" "^4.8.1" + "@smithy/middleware-serde" "^4.2.6" + "@smithy/protocol-http" "^5.3.5" + "@smithy/types" "^4.9.0" "@smithy/util-base64" "^4.3.0" "@smithy/util-body-length-browser" "^4.2.0" - "@smithy/util-middleware" "^4.2.4" - "@smithy/util-stream" "^4.5.5" + "@smithy/util-middleware" "^4.2.5" + "@smithy/util-stream" "^4.5.6" "@smithy/util-utf8" "^4.2.0" "@smithy/uuid" "^1.1.0" tslib "^2.6.2" -"@smithy/credential-provider-imds@^4.2.4": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.4.tgz#eb2ab999136c97d942e69638e6126a3c4d8cf79d" - integrity sha512-YVNMjhdz2pVto5bRdux7GMs0x1m0Afz3OcQy/4Yf9DH4fWOtroGH7uLvs7ZmDyoBJzLdegtIPpXrpJOZWvUXdw== +"@smithy/credential-provider-imds@^4.2.5": + version "4.2.5" + resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.5.tgz#5acbcd1d02ae31700c2f027090c202d7315d70d3" + integrity sha512-BZwotjoZWn9+36nimwm/OLIcVe+KYRwzMjfhd4QT7QxPm9WY0HiOV8t/Wlh+HVUif0SBVV7ksq8//hPaBC/okQ== dependencies: - "@smithy/node-config-provider" "^4.3.4" - "@smithy/property-provider" "^4.2.4" - "@smithy/types" "^4.8.1" - "@smithy/url-parser" "^4.2.4" + "@smithy/node-config-provider" "^4.3.5" + "@smithy/property-provider" "^4.2.5" + "@smithy/types" "^4.9.0" + "@smithy/url-parser" "^4.2.5" tslib "^2.6.2" -"@smithy/eventstream-codec@^4.2.4": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-4.2.4.tgz#f9cc680b156d3fac4cc631a8b0159f5e87205143" - integrity sha512-aV8blR9RBDKrOlZVgjOdmOibTC2sBXNiT7WA558b4MPdsLTV6sbyc1WIE9QiIuYMJjYtnPLciefoqSW8Gi+MZQ== +"@smithy/eventstream-codec@^4.2.5": + version "4.2.5" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-4.2.5.tgz#331b3f23528137cb5f4ad861de7f34ddff68c62b" + integrity sha512-Ogt4Zi9hEbIP17oQMd68qYOHUzmH47UkK7q7Gl55iIm9oKt27MUGrC5JfpMroeHjdkOliOA4Qt3NQ1xMq/nrlA== dependencies: "@aws-crypto/crc32" "5.2.0" - "@smithy/types" "^4.8.1" + "@smithy/types" "^4.9.0" "@smithy/util-hex-encoding" "^4.2.0" tslib "^2.6.2" -"@smithy/eventstream-serde-browser@^4.2.4": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.2.4.tgz#6aa94f14dd4d3376cb3389a0f6f245994e9e97c7" - integrity sha512-d5T7ZS3J/r8P/PDjgmCcutmNxnSRvPH1U6iHeXjzI50sMr78GLmFcrczLw33Ap92oEKqa4CLrkAPeSSOqvGdUA== +"@smithy/eventstream-serde-browser@^4.2.5": + version "4.2.5" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.2.5.tgz#54a680006539601ce71306d8bf2946e3462a47b3" + integrity sha512-HohfmCQZjppVnKX2PnXlf47CW3j92Ki6T/vkAT2DhBR47e89pen3s4fIa7otGTtrVxmj7q+IhH0RnC5kpR8wtw== dependencies: - "@smithy/eventstream-serde-universal" "^4.2.4" - "@smithy/types" "^4.8.1" + "@smithy/eventstream-serde-universal" "^4.2.5" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@smithy/eventstream-serde-config-resolver@^4.3.4": - version "4.3.4" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.3.4.tgz#6ddd88c57274a6fe72e11bfd5ac858977573dc46" - integrity sha512-lxfDT0UuSc1HqltOGsTEAlZ6H29gpfDSdEPTapD5G63RbnYToZ+ezjzdonCCH90j5tRRCw3aLXVbiZaBW3VRVg== +"@smithy/eventstream-serde-config-resolver@^4.3.5": + version "4.3.5" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.3.5.tgz#d1490aa127f43ac242495fa6e2e5833e1949a481" + integrity sha512-ibjQjM7wEXtECiT6my1xfiMH9IcEczMOS6xiCQXoUIYSj5b1CpBbJ3VYbdwDy8Vcg5JHN7eFpOCGk8nyZAltNQ== dependencies: - "@smithy/types" "^4.8.1" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@smithy/eventstream-serde-node@^4.2.4": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.2.4.tgz#61934c44c511bec5b07cfbbf59a2282806cd2ff8" - integrity sha512-TPhiGByWnYyzcpU/K3pO5V7QgtXYpE0NaJPEZBCa1Y5jlw5SjqzMSbFiLb+ZkJhqoQc0ImGyVINqnq1ze0ZRcQ== +"@smithy/eventstream-serde-node@^4.2.5": + version "4.2.5" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.2.5.tgz#7dd64e0ba64fa930959f3d5b7995c310573ecaf3" + integrity sha512-+elOuaYx6F2H6x1/5BQP5ugv12nfJl66GhxON8+dWVUEDJ9jah/A0tayVdkLRP0AeSac0inYkDz5qBFKfVp2Gg== dependencies: - "@smithy/eventstream-serde-universal" "^4.2.4" - "@smithy/types" "^4.8.1" + "@smithy/eventstream-serde-universal" "^4.2.5" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@smithy/eventstream-serde-universal@^4.2.4": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.2.4.tgz#7c19762047b429d53af4664dc1168482706b4ee7" - integrity sha512-GNI/IXaY/XBB1SkGBFmbW033uWA0tj085eCxYih0eccUe/PFR7+UBQv9HNDk2fD9TJu7UVsCWsH99TkpEPSOzQ== +"@smithy/eventstream-serde-universal@^4.2.5": + version "4.2.5" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.2.5.tgz#34189de45cf5e1d9cb59978e94b76cc210fa984f" + integrity sha512-G9WSqbST45bmIFaeNuP/EnC19Rhp54CcVdX9PDL1zyEB514WsDVXhlyihKlGXnRycmHNmVv88Bvvt4EYxWef/Q== dependencies: - "@smithy/eventstream-codec" "^4.2.4" - "@smithy/types" "^4.8.1" + "@smithy/eventstream-codec" "^4.2.5" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@smithy/fetch-http-handler@^5.3.5": - version "5.3.5" - resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.5.tgz#5cfea38d9a1519741c7147fea10a4a064de03f66" - integrity sha512-mg83SM3FLI8Sa2ooTJbsh5MFfyMTyNRwxqpKHmE0ICRIa66Aodv80DMsTQI02xBLVJ0hckwqTRr5IGAbbWuFLQ== +"@smithy/fetch-http-handler@^5.3.6": + version "5.3.6" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.6.tgz#d9dcb8d8ca152918224492f4d1cc1b50df93ae13" + integrity sha512-3+RG3EA6BBJ/ofZUeTFJA7mHfSYrZtQIrDP9dI8Lf7X6Jbos2jptuLrAAteDiFVrmbEmLSuRG/bUKzfAXk7dhg== dependencies: - "@smithy/protocol-http" "^5.3.4" - "@smithy/querystring-builder" "^4.2.4" - "@smithy/types" "^4.8.1" + "@smithy/protocol-http" "^5.3.5" + "@smithy/querystring-builder" "^4.2.5" + "@smithy/types" "^4.9.0" "@smithy/util-base64" "^4.3.0" tslib "^2.6.2" -"@smithy/hash-blob-browser@^4.2.5": - version "4.2.5" - resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-4.2.5.tgz#c82e032747b72811f735c2c1f0ed0c1aeb4de910" - integrity sha512-kCdgjD2J50qAqycYx0imbkA9tPtyQr1i5GwbK/EOUkpBmJGSkJe4mRJm+0F65TUSvvui1HZ5FFGFCND7l8/3WQ== +"@smithy/hash-blob-browser@^4.2.6": + version "4.2.6" + resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-4.2.6.tgz#53d5ae0a069ae4a93abbc7165efe341dca0f9489" + integrity sha512-8P//tA8DVPk+3XURk2rwcKgYwFvwGwmJH/wJqQiSKwXZtf/LiZK+hbUZmPj/9KzM+OVSwe4o85KTp5x9DUZTjw== dependencies: "@smithy/chunked-blob-reader" "^5.2.0" "@smithy/chunked-blob-reader-native" "^4.2.1" - "@smithy/types" "^4.8.1" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@smithy/hash-node@^4.2.4": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-4.2.4.tgz#45bd19999625166825eb29aafb007819de031894" - integrity sha512-kKU0gVhx/ppVMntvUOZE7WRMFW86HuaxLwvqileBEjL7PoILI8/djoILw3gPQloGVE6O0oOzqafxeNi2KbnUJw== +"@smithy/hash-node@^4.2.5": + version "4.2.5" + resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-4.2.5.tgz#fb751ec4a4c6347612458430f201f878adc787f6" + integrity sha512-DpYX914YOfA3UDT9CN1BM787PcHfWRBB43fFGCYrZFUH0Jv+5t8yYl+Pd5PW4+QzoGEDvn5d5QIO4j2HyYZQSA== dependencies: - "@smithy/types" "^4.8.1" + "@smithy/types" "^4.9.0" "@smithy/util-buffer-from" "^4.2.0" "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@smithy/hash-stream-node@^4.2.4": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-4.2.4.tgz#553fa9a8fe567b0018cf99be3dafb920bc241a7f" - integrity sha512-amuh2IJiyRfO5MV0X/YFlZMD6banjvjAwKdeJiYGUbId608x+oSNwv3vlyW2Gt6AGAgl3EYAuyYLGRX/xU8npQ== +"@smithy/hash-stream-node@^4.2.5": + version "4.2.5" + resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-4.2.5.tgz#f200e6b755cb28f03968c199231774c3ad33db28" + integrity sha512-6+do24VnEyvWcGdHXomlpd0m8bfZePpUKBy7m311n+JuRwug8J4dCanJdTymx//8mi0nlkflZBvJe+dEO/O12Q== dependencies: - "@smithy/types" "^4.8.1" + "@smithy/types" "^4.9.0" "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@smithy/invalid-dependency@^4.2.4": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-4.2.4.tgz#ff957d711b72f432803fdee1e247f0dd4c98251d" - integrity sha512-z6aDLGiHzsMhbS2MjetlIWopWz//K+mCoPXjW6aLr0mypF+Y7qdEh5TyJ20Onf9FbWHiWl4eC+rITdizpnXqOw== +"@smithy/invalid-dependency@^4.2.5": + version "4.2.5" + resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-4.2.5.tgz#58d997e91e7683ffc59882d8fcb180ed9aa9c7dd" + integrity sha512-2L2erASEro1WC5nV+plwIMxrTXpvpfzl4e+Nre6vBVRR2HKeGGcvpJyyL3/PpiSg+cJG2KpTmZmq934Olb6e5A== dependencies: - "@smithy/types" "^4.8.1" + "@smithy/types" "^4.9.0" tslib "^2.6.2" "@smithy/is-array-buffer@^2.2.0": @@ -2058,180 +2135,180 @@ dependencies: tslib "^2.6.2" -"@smithy/md5-js@^4.2.4": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-4.2.4.tgz#e012464383ffde0bd423d38ef9b5caf720ee90eb" - integrity sha512-h7kzNWZuMe5bPnZwKxhVbY1gan5+TZ2c9JcVTHCygB14buVGOZxLl+oGfpY2p2Xm48SFqEWdghpvbBdmaz3ncQ== +"@smithy/md5-js@^4.2.5": + version "4.2.5" + resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-4.2.5.tgz#ca16f138dd0c4e91a61d3df57e8d4d15d1ddc97e" + integrity sha512-Bt6jpSTMWfjCtC0s79gZ/WZ1w90grfmopVOWqkI2ovhjpD5Q2XRXuecIPB9689L2+cCySMbaXDhBPU56FKNDNg== dependencies: - "@smithy/types" "^4.8.1" + "@smithy/types" "^4.9.0" "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@smithy/middleware-content-length@^4.2.4": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-4.2.4.tgz#8b625cb264c13c54440ecae59a3e6b1996dfd7b5" - integrity sha512-hJRZuFS9UsElX4DJSJfoX4M1qXRH+VFiLMUnhsWvtOOUWRNvvOfDaUSdlNbjwv1IkpVjj/Rd/O59Jl3nhAcxow== +"@smithy/middleware-content-length@^4.2.5": + version "4.2.5" + resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-4.2.5.tgz#a6942ce2d7513b46f863348c6c6a8177e9ace752" + integrity sha512-Y/RabVa5vbl5FuHYV2vUCwvh/dqzrEY/K2yWPSqvhFUwIY0atLqO4TienjBXakoy4zrKAMCZwg+YEqmH7jaN7A== dependencies: - "@smithy/protocol-http" "^5.3.4" - "@smithy/types" "^4.8.1" + "@smithy/protocol-http" "^5.3.5" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@smithy/middleware-endpoint@^4.3.6": - version "4.3.6" - resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-4.3.6.tgz#dce57120e72ffeb2d45f1d09d424a9bed1571a21" - integrity sha512-PXehXofGMFpDqr933rxD8RGOcZ0QBAWtuzTgYRAHAL2BnKawHDEdf/TnGpcmfPJGwonhginaaeJIKluEojiF/w== - dependencies: - "@smithy/core" "^3.17.2" - "@smithy/middleware-serde" "^4.2.4" - "@smithy/node-config-provider" "^4.3.4" - "@smithy/shared-ini-file-loader" "^4.3.4" - "@smithy/types" "^4.8.1" - "@smithy/url-parser" "^4.2.4" - "@smithy/util-middleware" "^4.2.4" +"@smithy/middleware-endpoint@^4.3.14": + version "4.3.14" + resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-4.3.14.tgz#da145b02f6a5d073595111bf73fa31da16e73773" + integrity sha512-v0q4uTKgBM8dsqGjqsabZQyH85nFaTnFcgpWU1uydKFsdyyMzfvOkNum9G7VK+dOP01vUnoZxIeRiJ6uD0kjIg== + dependencies: + "@smithy/core" "^3.18.7" + "@smithy/middleware-serde" "^4.2.6" + "@smithy/node-config-provider" "^4.3.5" + "@smithy/shared-ini-file-loader" "^4.4.0" + "@smithy/types" "^4.9.0" + "@smithy/url-parser" "^4.2.5" + "@smithy/util-middleware" "^4.2.5" tslib "^2.6.2" -"@smithy/middleware-retry@^4.4.6": - version "4.4.6" - resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-4.4.6.tgz#b3c781b42b8f1ab22ee71358c0e81303cb00d737" - integrity sha512-OhLx131znrEDxZPAvH/OYufR9d1nB2CQADyYFN4C3V/NQS7Mg4V6uvxHC/Dr96ZQW8IlHJTJ+vAhKt6oxWRndA== - dependencies: - "@smithy/node-config-provider" "^4.3.4" - "@smithy/protocol-http" "^5.3.4" - "@smithy/service-error-classification" "^4.2.4" - "@smithy/smithy-client" "^4.9.2" - "@smithy/types" "^4.8.1" - "@smithy/util-middleware" "^4.2.4" - "@smithy/util-retry" "^4.2.4" +"@smithy/middleware-retry@^4.4.14": + version "4.4.14" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-4.4.14.tgz#92e503946314278614f608537d77a04db6d7b810" + integrity sha512-Z2DG8Ej7FyWG1UA+7HceINtSLzswUgs2np3sZX0YBBxCt+CXG4QUxv88ZDS3+2/1ldW7LqtSY1UO/6VQ1pND8Q== + dependencies: + "@smithy/node-config-provider" "^4.3.5" + "@smithy/protocol-http" "^5.3.5" + "@smithy/service-error-classification" "^4.2.5" + "@smithy/smithy-client" "^4.9.10" + "@smithy/types" "^4.9.0" + "@smithy/util-middleware" "^4.2.5" + "@smithy/util-retry" "^4.2.5" "@smithy/uuid" "^1.1.0" tslib "^2.6.2" -"@smithy/middleware-serde@^4.2.4": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-4.2.4.tgz#43da8ac40e2bcdd30e705a6047a3a667ce44433c" - integrity sha512-jUr3x2CDhV15TOX2/Uoz4gfgeqLrRoTQbYAuhLS7lcVKNev7FeYSJ1ebEfjk+l9kbb7k7LfzIR/irgxys5ZTOg== +"@smithy/middleware-serde@^4.2.6": + version "4.2.6" + resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-4.2.6.tgz#7e710f43206e13a8c081a372b276e7b2c51bff5b" + integrity sha512-VkLoE/z7e2g8pirwisLz8XJWedUSY8my/qrp81VmAdyrhi94T+riBfwP+AOEEFR9rFTSonC/5D2eWNmFabHyGQ== dependencies: - "@smithy/protocol-http" "^5.3.4" - "@smithy/types" "^4.8.1" + "@smithy/protocol-http" "^5.3.5" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@smithy/middleware-stack@^4.2.4": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-4.2.4.tgz#9c833c3c8f2ddda1e2e31c9315ffa31f0f0aa85d" - integrity sha512-Gy3TKCOnm9JwpFooldwAboazw+EFYlC+Bb+1QBsSi5xI0W5lX81j/P5+CXvD/9ZjtYKRgxq+kkqd/KOHflzvgA== +"@smithy/middleware-stack@^4.2.5": + version "4.2.5" + resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-4.2.5.tgz#2d13415ed3561c882594c8e6340b801d9a2eb222" + integrity sha512-bYrutc+neOyWxtZdbB2USbQttZN0mXaOyYLIsaTbJhFsfpXyGWUxJpEuO1rJ8IIJm2qH4+xJT0mxUSsEDTYwdQ== dependencies: - "@smithy/types" "^4.8.1" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@smithy/node-config-provider@^4.3.4": - version "4.3.4" - resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-4.3.4.tgz#9e41d45167568dbd2e1bc2c24a25cb26c3fd847f" - integrity sha512-3X3w7qzmo4XNNdPKNS4nbJcGSwiEMsNsRSunMA92S4DJLLIrH5g1AyuOA2XKM9PAPi8mIWfqC+fnfKNsI4KvHw== +"@smithy/node-config-provider@^4.3.5": + version "4.3.5" + resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-4.3.5.tgz#c09137a79c2930dcc30e6c8bb4f2608d72c1e2c9" + integrity sha512-UTurh1C4qkVCtqggI36DGbLB2Kv8UlcFdMXDcWMbqVY2uRg0XmT9Pb4Vj6oSQ34eizO1fvR0RnFV4Axw4IrrAg== dependencies: - "@smithy/property-provider" "^4.2.4" - "@smithy/shared-ini-file-loader" "^4.3.4" - "@smithy/types" "^4.8.1" + "@smithy/property-provider" "^4.2.5" + "@smithy/shared-ini-file-loader" "^4.4.0" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@smithy/node-http-handler@^4.4.4": - version "4.4.4" - resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-4.4.4.tgz#e0ccaae333960df7e9387e9487554b98674b7720" - integrity sha512-VXHGfzCXLZeKnFp6QXjAdy+U8JF9etfpUXD1FAbzY1GzsFJiDQRQIt2CnMUvUdz3/YaHNqT3RphVWMUpXTIODA== +"@smithy/node-http-handler@^4.4.5": + version "4.4.5" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-4.4.5.tgz#2aea598fdf3dc4e32667d673d48abd4a073665f4" + integrity sha512-CMnzM9R2WqlqXQGtIlsHMEZfXKJVTIrqCNoSd/QpAyp+Dw0a1Vps13l6ma1fH8g7zSPNsA59B/kWgeylFuA/lw== dependencies: - "@smithy/abort-controller" "^4.2.4" - "@smithy/protocol-http" "^5.3.4" - "@smithy/querystring-builder" "^4.2.4" - "@smithy/types" "^4.8.1" + "@smithy/abort-controller" "^4.2.5" + "@smithy/protocol-http" "^5.3.5" + "@smithy/querystring-builder" "^4.2.5" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@smithy/property-provider@^4.2.4": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-4.2.4.tgz#ea36ed8f1e282060aaf5cd220f2b428682d52775" - integrity sha512-g2DHo08IhxV5GdY3Cpt/jr0mkTlAD39EJKN27Jb5N8Fb5qt8KG39wVKTXiTRCmHHou7lbXR8nKVU14/aRUf86w== +"@smithy/property-provider@^4.2.5": + version "4.2.5" + resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-4.2.5.tgz#f75dc5735d29ca684abbc77504be9246340a43f0" + integrity sha512-8iLN1XSE1rl4MuxvQ+5OSk/Zb5El7NJZ1td6Tn+8dQQHIjp59Lwl6bd0+nzw6SKm2wSSriH2v/I9LPzUic7EOg== dependencies: - "@smithy/types" "^4.8.1" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@smithy/protocol-http@^5.3.4": - version "5.3.4" - resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-5.3.4.tgz#2773de28d0b7e8b0ab83e94673fee0966fc8c68c" - integrity sha512-3sfFd2MAzVt0Q/klOmjFi3oIkxczHs0avbwrfn1aBqtc23WqQSmjvk77MBw9WkEQcwbOYIX5/2z4ULj8DuxSsw== +"@smithy/protocol-http@^5.3.5": + version "5.3.5" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-5.3.5.tgz#a8f4296dd6d190752589e39ee95298d5c65a60db" + integrity sha512-RlaL+sA0LNMp03bf7XPbFmT5gN+w3besXSWMkA8rcmxLSVfiEXElQi4O2IWwPfxzcHkxqrwBFMbngB8yx/RvaQ== dependencies: - "@smithy/types" "^4.8.1" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@smithy/querystring-builder@^4.2.4": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-4.2.4.tgz#9f57301a895bb986cf7740edd70a91df335e6109" - integrity sha512-KQ1gFXXC+WsbPFnk7pzskzOpn4s+KheWgO3dzkIEmnb6NskAIGp/dGdbKisTPJdtov28qNDohQrgDUKzXZBLig== +"@smithy/querystring-builder@^4.2.5": + version "4.2.5" + resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-4.2.5.tgz#00cafa5a4055600ab8058e26db42f580146b91f3" + integrity sha512-y98otMI1saoajeik2kLfGyRp11e5U/iJYH/wLCh3aTV/XutbGT9nziKGkgCaMD1ghK7p6htHMm6b6scl9JRUWg== dependencies: - "@smithy/types" "^4.8.1" + "@smithy/types" "^4.9.0" "@smithy/util-uri-escape" "^4.2.0" tslib "^2.6.2" -"@smithy/querystring-parser@^4.2.4": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-4.2.4.tgz#c0cc9b13855e9fc45a0c75ae26482eab6891a25e" - integrity sha512-aHb5cqXZocdzEkZ/CvhVjdw5l4r1aU/9iMEyoKzH4eXMowT6M0YjBpp7W/+XjkBnY8Xh0kVd55GKjnPKlCwinQ== +"@smithy/querystring-parser@^4.2.5": + version "4.2.5" + resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-4.2.5.tgz#61d2e77c62f44196590fa0927dbacfbeaffe8c53" + integrity sha512-031WCTdPYgiQRYNPXznHXof2YM0GwL6SeaSyTH/P72M1Vz73TvCNH2Nq8Iu2IEPq9QP2yx0/nrw5YmSeAi/AjQ== dependencies: - "@smithy/types" "^4.8.1" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@smithy/service-error-classification@^4.2.4": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-4.2.4.tgz#acace7208270c8a9c4f2218092866b4d650d4719" - integrity sha512-fdWuhEx4+jHLGeew9/IvqVU/fxT/ot70tpRGuOLxE3HzZOyKeTQfYeV1oaBXpzi93WOk668hjMuuagJ2/Qs7ng== +"@smithy/service-error-classification@^4.2.5": + version "4.2.5" + resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-4.2.5.tgz#a64eb78e096e59cc71141e3fea2b4194ce59b4fd" + integrity sha512-8fEvK+WPE3wUAcDvqDQG1Vk3ANLR8Px979te96m84CbKAjBVf25rPYSzb4xU4hlTyho7VhOGnh5i62D/JVF0JQ== dependencies: - "@smithy/types" "^4.8.1" + "@smithy/types" "^4.9.0" -"@smithy/shared-ini-file-loader@^4.3.4": - version "4.3.4" - resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.3.4.tgz#ba0707daba05d7705ae120abdc27dbfa5b5b9049" - integrity sha512-y5ozxeQ9omVjbnJo9dtTsdXj9BEvGx2X8xvRgKnV+/7wLBuYJQL6dOa/qMY6omyHi7yjt1OA97jZLoVRYi8lxA== +"@smithy/shared-ini-file-loader@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.4.0.tgz#a2f8282f49982f00bafb1fa8cb7fc188a202a594" + integrity sha512-5WmZ5+kJgJDjwXXIzr1vDTG+RhF9wzSODQBfkrQ2VVkYALKGvZX1lgVSxEkgicSAFnFhPj5rudJV0zoinqS0bA== dependencies: - "@smithy/types" "^4.8.1" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@smithy/signature-v4@^5.3.4": - version "5.3.4" - resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-5.3.4.tgz#d2233c39ce0b02041a11c5cfd210f3e61982931a" - integrity sha512-ScDCpasxH7w1HXHYbtk3jcivjvdA1VICyAdgvVqKhKKwxi+MTwZEqFw0minE+oZ7F07oF25xh4FGJxgqgShz0A== +"@smithy/signature-v4@^5.3.5": + version "5.3.5" + resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-5.3.5.tgz#13ab710653f9f16c325ee7e0a102a44f73f2643f" + integrity sha512-xSUfMu1FT7ccfSXkoLl/QRQBi2rOvi3tiBZU2Tdy3I6cgvZ6SEi9QNey+lqps/sJRnogIS+lq+B1gxxbra2a/w== dependencies: "@smithy/is-array-buffer" "^4.2.0" - "@smithy/protocol-http" "^5.3.4" - "@smithy/types" "^4.8.1" + "@smithy/protocol-http" "^5.3.5" + "@smithy/types" "^4.9.0" "@smithy/util-hex-encoding" "^4.2.0" - "@smithy/util-middleware" "^4.2.4" + "@smithy/util-middleware" "^4.2.5" "@smithy/util-uri-escape" "^4.2.0" "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@smithy/smithy-client@^4.9.2": - version "4.9.2" - resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-4.9.2.tgz#6f9d916da362de7ac8e685112e3f68a9eba56b94" - integrity sha512-gZU4uAFcdrSi3io8U99Qs/FvVdRxPvIMToi+MFfsy/DN9UqtknJ1ais+2M9yR8e0ASQpNmFYEKeIKVcMjQg3rg== - dependencies: - "@smithy/core" "^3.17.2" - "@smithy/middleware-endpoint" "^4.3.6" - "@smithy/middleware-stack" "^4.2.4" - "@smithy/protocol-http" "^5.3.4" - "@smithy/types" "^4.8.1" - "@smithy/util-stream" "^4.5.5" +"@smithy/smithy-client@^4.9.10": + version "4.9.10" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-4.9.10.tgz#a395bbc6ccf35cdbae44ce024909b6c5aec06283" + integrity sha512-Jaoz4Jw1QYHc1EFww/E6gVtNjhoDU+gwRKqXP6C3LKYqqH2UQhP8tMP3+t/ePrhaze7fhLE8vS2q6vVxBANFTQ== + dependencies: + "@smithy/core" "^3.18.7" + "@smithy/middleware-endpoint" "^4.3.14" + "@smithy/middleware-stack" "^4.2.5" + "@smithy/protocol-http" "^5.3.5" + "@smithy/types" "^4.9.0" + "@smithy/util-stream" "^4.5.6" tslib "^2.6.2" -"@smithy/types@^4.8.1": - version "4.8.1" - resolved "https://registry.yarnpkg.com/@smithy/types/-/types-4.8.1.tgz#0ecad4e329340c8844e38a18c7608d84cc1c853c" - integrity sha512-N0Zn0OT1zc+NA+UVfkYqQzviRh5ucWwO7mBV3TmHHprMnfcJNfhlPicDkBHi0ewbh+y3evR6cNAW0Raxvb01NA== +"@smithy/types@^4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-4.9.0.tgz#c6636ddfa142e1ddcb6e4cf5f3e1a628d420486f" + integrity sha512-MvUbdnXDTwykR8cB1WZvNNwqoWVaTRA0RLlLmf/cIFNMM2cKWz01X4Ly6SMC4Kks30r8tT3Cty0jmeWfiuyHTA== dependencies: tslib "^2.6.2" -"@smithy/url-parser@^4.2.4": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-4.2.4.tgz#36336ea90529ff00de473a2c82d1487d87a588b1" - integrity sha512-w/N/Iw0/PTwJ36PDqU9PzAwVElo4qXxCC0eCTlUtIz/Z5V/2j/cViMHi0hPukSBHp4DVwvUlUhLgCzqSJ6plrg== +"@smithy/url-parser@^4.2.5": + version "4.2.5" + resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-4.2.5.tgz#2fea006108f17f7761432c7ef98d6aa003421487" + integrity sha512-VaxMGsilqFnK1CeBX+LXnSuaMx4sTL/6znSZh2829txWieazdVxr54HmiyTsIbpOTLcf5nYpq9lpzmwRdxj6rQ== dependencies: - "@smithy/querystring-parser" "^4.2.4" - "@smithy/types" "^4.8.1" + "@smithy/querystring-parser" "^4.2.5" + "@smithy/types" "^4.9.0" tslib "^2.6.2" "@smithy/util-base64@^4.3.0": @@ -2280,36 +2357,36 @@ dependencies: tslib "^2.6.2" -"@smithy/util-defaults-mode-browser@^4.3.5": - version "4.3.5" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.5.tgz#c74f357b048d20c95aa636fa79d33bcfa799e2d0" - integrity sha512-GwaGjv/QLuL/QHQaqhf/maM7+MnRFQQs7Bsl6FlaeK6lm6U7mV5AAnVabw68cIoMl5FQFyKK62u7RWRzWL25OQ== +"@smithy/util-defaults-mode-browser@^4.3.13": + version "4.3.13" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.13.tgz#51e3cadfe772882f941f1dff07d2f8b7acb9c21e" + integrity sha512-hlVLdAGrVfyNei+pKIgqDTxfu/ZI2NSyqj4IDxKd5bIsIqwR/dSlkxlPaYxFiIaDVrBy0he8orsFy+Cz119XvA== dependencies: - "@smithy/property-provider" "^4.2.4" - "@smithy/smithy-client" "^4.9.2" - "@smithy/types" "^4.8.1" + "@smithy/property-provider" "^4.2.5" + "@smithy/smithy-client" "^4.9.10" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@smithy/util-defaults-mode-node@^4.2.7": - version "4.2.7" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.7.tgz#2657623ff6f326f152966bfa52a593cd3b5cd70e" - integrity sha512-6hinjVqec0WYGsqN7h9hL/ywfULmJJNXGXnNZW7jrIn/cFuC/aVlVaiDfBIJEvKcOrmN8/EgsW69eY0gXABeHw== - dependencies: - "@smithy/config-resolver" "^4.4.1" - "@smithy/credential-provider-imds" "^4.2.4" - "@smithy/node-config-provider" "^4.3.4" - "@smithy/property-provider" "^4.2.4" - "@smithy/smithy-client" "^4.9.2" - "@smithy/types" "^4.8.1" +"@smithy/util-defaults-mode-node@^4.2.16": + version "4.2.16" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.16.tgz#ab4abdebae65e8628473d1493b1de5f82aa0eec9" + integrity sha512-F1t22IUiJLHrxW9W1CQ6B9PN+skZ9cqSuzB18Eh06HrJPbjsyZ7ZHecAKw80DQtyGTRcVfeukKaCRYebFwclbg== + dependencies: + "@smithy/config-resolver" "^4.4.3" + "@smithy/credential-provider-imds" "^4.2.5" + "@smithy/node-config-provider" "^4.3.5" + "@smithy/property-provider" "^4.2.5" + "@smithy/smithy-client" "^4.9.10" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@smithy/util-endpoints@^3.2.4": - version "3.2.4" - resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-3.2.4.tgz#d68a4692a55b14f2060de75715bd4664b93a4353" - integrity sha512-f+nBDhgYRCmUEDKEQb6q0aCcOTXRDqH5wWaFHJxt4anB4pKHlgGoYP3xtioKXH64e37ANUkzWf6p4Mnv1M5/Vg== +"@smithy/util-endpoints@^3.2.5": + version "3.2.5" + resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-3.2.5.tgz#9e0fc34e38ddfbbc434d23a38367638dc100cb14" + integrity sha512-3O63AAWu2cSNQZp+ayl9I3NapW1p1rR5mlVHcF6hAB1dPZUQFfRPYtplWX/3xrzWthPGj5FqB12taJJCfH6s8A== dependencies: - "@smithy/node-config-provider" "^4.3.4" - "@smithy/types" "^4.8.1" + "@smithy/node-config-provider" "^4.3.5" + "@smithy/types" "^4.9.0" tslib "^2.6.2" "@smithy/util-hex-encoding@^4.2.0": @@ -2319,31 +2396,31 @@ dependencies: tslib "^2.6.2" -"@smithy/util-middleware@^4.2.4": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-4.2.4.tgz#d66d6b67c4c90be7bf0659f57000122b1a6bbf82" - integrity sha512-fKGQAPAn8sgV0plRikRVo6g6aR0KyKvgzNrPuM74RZKy/wWVzx3BMk+ZWEueyN3L5v5EDg+P582mKU+sH5OAsg== +"@smithy/util-middleware@^4.2.5": + version "4.2.5" + resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-4.2.5.tgz#1ace865afe678fd4b0f9217197e2fe30178d4835" + integrity sha512-6Y3+rvBF7+PZOc40ybeZMcGln6xJGVeY60E7jy9Mv5iKpMJpHgRE6dKy9ScsVxvfAYuEX4Q9a65DQX90KaQ3bA== dependencies: - "@smithy/types" "^4.8.1" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@smithy/util-retry@^4.2.4": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-4.2.4.tgz#1f466d3bc5b5f114994ac2298e859815f3a8deec" - integrity sha512-yQncJmj4dtv/isTXxRb4AamZHy4QFr4ew8GxS6XLWt7sCIxkPxPzINWd7WLISEFPsIan14zrKgvyAF+/yzfwoA== +"@smithy/util-retry@^4.2.5": + version "4.2.5" + resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-4.2.5.tgz#70fe4fbbfb9ad43a9ce2ba4ed111ff7b30d7b333" + integrity sha512-GBj3+EZBbN4NAqJ/7pAhsXdfzdlznOh8PydUijy6FpNIMnHPSMO2/rP4HKu+UFeikJxShERk528oy7GT79YiJg== dependencies: - "@smithy/service-error-classification" "^4.2.4" - "@smithy/types" "^4.8.1" + "@smithy/service-error-classification" "^4.2.5" + "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@smithy/util-stream@^4.5.5": - version "4.5.5" - resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-4.5.5.tgz#a3fd73775c65dd23370d021b8818914a2c44f28e" - integrity sha512-7M5aVFjT+HPilPOKbOmQfCIPchZe4DSBc1wf1+NvHvSoFTiFtauZzT+onZvCj70xhXd0AEmYnZYmdJIuwxOo4w== +"@smithy/util-stream@^4.5.6": + version "4.5.6" + resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-4.5.6.tgz#ebee9e52adeb6f88337778b2f3356a2cc615298c" + integrity sha512-qWw/UM59TiaFrPevefOZ8CNBKbYEP6wBAIlLqxn3VAIo9rgnTNc4ASbVrqDmhuwI87usnjhdQrxodzAGFFzbRQ== dependencies: - "@smithy/fetch-http-handler" "^5.3.5" - "@smithy/node-http-handler" "^4.4.4" - "@smithy/types" "^4.8.1" + "@smithy/fetch-http-handler" "^5.3.6" + "@smithy/node-http-handler" "^4.4.5" + "@smithy/types" "^4.9.0" "@smithy/util-base64" "^4.3.0" "@smithy/util-buffer-from" "^4.2.0" "@smithy/util-hex-encoding" "^4.2.0" @@ -2373,13 +2450,13 @@ "@smithy/util-buffer-from" "^4.2.0" tslib "^2.6.2" -"@smithy/util-waiter@^4.2.4": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-4.2.4.tgz#a28b7835aacd82ae2d10da5af5bf21b3c21b34ac" - integrity sha512-roKXtXIC6fopFvVOju8VYHtguc/jAcMlK8IlDOHsrQn0ayMkHynjm/D2DCMRf7MJFXzjHhlzg2edr3QPEakchQ== +"@smithy/util-waiter@^4.2.5": + version "4.2.5" + resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-4.2.5.tgz#e527816edae20ec5f68b25685f4b21d93424ea86" + integrity sha512-Dbun99A3InifQdIrsXZ+QLcC0PGBPAdrl4cj1mTgJvyc9N2zf7QSxg8TBkzsCmGJdE3TLbO9ycwpY0EkWahQ/g== dependencies: - "@smithy/abort-controller" "^4.2.4" - "@smithy/types" "^4.8.1" + "@smithy/abort-controller" "^4.2.5" + "@smithy/types" "^4.9.0" tslib "^2.6.2" "@smithy/uuid@^1.1.0": @@ -2390,9 +2467,9 @@ tslib "^2.6.2" "@swc/cli@^0.7.7": - version "0.7.8" - resolved "https://registry.yarnpkg.com/@swc/cli/-/cli-0.7.8.tgz#7c9e892e45cdb818f53eb0b96ada88014ae84c04" - integrity sha512-27Ov4rm0s2C6LLX+NDXfDVB69LGs8K94sXtFhgeUyQ4DBywZuCgTBu2loCNHRr8JhT9DeQvJM5j9FAu/THbo4w== + version "0.7.9" + resolved "https://registry.yarnpkg.com/@swc/cli/-/cli-0.7.9.tgz#67615740ccd3bf2ed807ce24fffef502906ba939" + integrity sha512-AFQu3ZZ9IcdClTknxbug08S9ed/q8F3aYkO5NoZ+6IjQ5UEo1s2HN1GRKNvUslYx2EoVYxd+6xGcp6C7wwtxyQ== dependencies: "@swc/counter" "^0.1.3" "@xhmikosr/bin-wrapper" "^13.0.5" @@ -2404,74 +2481,74 @@ source-map "^0.7.3" tinyglobby "^0.2.13" -"@swc/core-darwin-arm64@1.14.0": - version "1.14.0" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.14.0.tgz#1db614b52ed7369f47be2a1c6b5e80b6be923898" - integrity sha512-uHPC8rlCt04nvYNczWzKVdgnRhxCa3ndKTBBbBpResOZsRmiwRAvByIGh599j+Oo6Z5eyTPrgY+XfJzVmXnN7Q== - -"@swc/core-darwin-x64@1.14.0": - version "1.14.0" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.14.0.tgz#900e56924994d0e723e6088e2a2e1a1c08c59a95" - integrity sha512-2SHrlpl68vtePRknv9shvM9YKKg7B9T13tcTg9aFCwR318QTYo+FzsKGmQSv9ox/Ua0Q2/5y2BNjieffJoo4nA== - -"@swc/core-linux-arm-gnueabihf@1.14.0": - version "1.14.0" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.14.0.tgz#3c84966a8c6e308b0788d1c7875bce23c65134c6" - integrity sha512-SMH8zn01dxt809svetnxpeg/jWdpi6dqHKO3Eb11u4OzU2PK7I5uKS6gf2hx5LlTbcJMFKULZiVwjlQLe8eqtg== - -"@swc/core-linux-arm64-gnu@1.14.0": - version "1.14.0" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.14.0.tgz#5190097d2ca4ea8b198f46a3abe2272331575b54" - integrity sha512-q2JRu2D8LVqGeHkmpVCljVNltG0tB4o4eYg+dElFwCS8l2Mnt9qurMCxIeo9mgoqz0ax+k7jWtIRHktnVCbjvQ== - -"@swc/core-linux-arm64-musl@1.14.0": - version "1.14.0" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.14.0.tgz#420f510102a37feda0e3dfb8d21651515251476b" - integrity sha512-uofpVoPCEUjYIv454ZEZ3sLgMD17nIwlz2z7bsn7rl301Kt/01umFA7MscUovFfAK2IRGck6XB+uulMu6aFhKQ== - -"@swc/core-linux-x64-gnu@1.14.0": - version "1.14.0" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.14.0.tgz#953f741d577a81f6e1e1b434856c48eb674cdeb7" - integrity sha512-quTTx1Olm05fBfv66DEBuOsOgqdypnZ/1Bh3yGXWY7ANLFeeRpCDZpljD9BSjdsNdPOlwJmEUZXMHtGm3v1TZQ== - -"@swc/core-linux-x64-musl@1.14.0": - version "1.14.0" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.14.0.tgz#bdf241062d1433ba617ffe1451dccde8923a28a2" - integrity sha512-caaNAu+aIqT8seLtCf08i8C3/UC5ttQujUjejhMcuS1/LoCKtNiUs4VekJd2UGt+pyuuSrQ6dKl8CbCfWvWeXw== - -"@swc/core-win32-arm64-msvc@1.14.0": - version "1.14.0" - resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.14.0.tgz#960919015bc31c46a8fc10df5c384add651df91e" - integrity sha512-EeW3jFlT3YNckJ6V/JnTfGcX7UHGyh6/AiCPopZ1HNaGiXVCKHPpVQZicmtyr/UpqxCXLrTgjHOvyMke7YN26A== - -"@swc/core-win32-ia32-msvc@1.14.0": - version "1.14.0" - resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.14.0.tgz#826a76b2af0e4df4dee3674e91734cb85eb7b21f" - integrity sha512-dPai3KUIcihV5hfoO4QNQF5HAaw8+2bT7dvi8E5zLtecW2SfL3mUZipzampXq5FHll0RSCLzlrXnSx+dBRZIIQ== - -"@swc/core-win32-x64-msvc@1.14.0": - version "1.14.0" - resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.14.0.tgz#75fe708a702f57f176fd640eb9af394cf767be91" - integrity sha512-nm+JajGrTqUA6sEHdghDlHMNfH1WKSiuvljhdmBACW4ta4LC3gKurX2qZuiBARvPkephW9V/i5S8QPY1PzFEqg== +"@swc/core-darwin-arm64@1.15.3": + version "1.15.3" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.15.3.tgz#bd0bd3ab7730e3ffa64cf200c0ed7c572cbaba97" + integrity sha512-AXfeQn0CvcQ4cndlIshETx6jrAM45oeUrK8YeEY6oUZU/qzz0Id0CyvlEywxkWVC81Ajpd8TQQ1fW5yx6zQWkQ== + +"@swc/core-darwin-x64@1.15.3": + version "1.15.3" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.15.3.tgz#502b1e1c680df6b962265ca81a0c1a23e6ff070f" + integrity sha512-p68OeCz1ui+MZYG4wmfJGvcsAcFYb6Sl25H9TxWl+GkBgmNimIiRdnypK9nBGlqMZAcxngNPtnG3kEMNnvoJ2A== + +"@swc/core-linux-arm-gnueabihf@1.15.3": + version "1.15.3" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.3.tgz#e32cc6a2e06a75060d6f598ba2ca6f96c5c0cc43" + integrity sha512-Nuj5iF4JteFgwrai97mUX+xUOl+rQRHqTvnvHMATL/l9xE6/TJfPBpd3hk/PVpClMXG3Uvk1MxUFOEzM1JrMYg== + +"@swc/core-linux-arm64-gnu@1.15.3": + version "1.15.3" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.3.tgz#9b9861bc44059e393d4baf98b3cd3d6c4ea6f521" + integrity sha512-2Nc/s8jE6mW2EjXWxO/lyQuLKShcmTrym2LRf5Ayp3ICEMX6HwFqB1EzDhwoMa2DcUgmnZIalesq2lG3krrUNw== + +"@swc/core-linux-arm64-musl@1.15.3": + version "1.15.3" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.3.tgz#f6388743e5a159018bd468e8f710940b2614384b" + integrity sha512-j4SJniZ/qaZ5g8op+p1G9K1z22s/EYGg1UXIb3+Cg4nsxEpF5uSIGEE4mHUfA70L0BR9wKT2QF/zv3vkhfpX4g== + +"@swc/core-linux-x64-gnu@1.15.3": + version "1.15.3" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.3.tgz#15fea551c7a3aeb1bdc3ad5c652d73c9321ddba8" + integrity sha512-aKttAZnz8YB1VJwPQZtyU8Uk0BfMP63iDMkvjhJzRZVgySmqt/apWSdnoIcZlUoGheBrcqbMC17GGUmur7OT5A== + +"@swc/core-linux-x64-musl@1.15.3": + version "1.15.3" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.3.tgz#d3f17bab4ffcadbb47f135e6a14d6f3e401af289" + integrity sha512-oe8FctPu1gnUsdtGJRO2rvOUIkkIIaHqsO9xxN0bTR7dFTlPTGi2Fhk1tnvXeyAvCPxLIcwD8phzKg6wLv9yug== + +"@swc/core-win32-arm64-msvc@1.15.3": + version "1.15.3" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.3.tgz#9da386df7fed00b3473bcf4281ff3fcd14726d2c" + integrity sha512-L9AjzP2ZQ/Xh58e0lTRMLvEDrcJpR7GwZqAtIeNLcTK7JVE+QineSyHp0kLkO1rttCHyCy0U74kDTj0dRz6raA== + +"@swc/core-win32-ia32-msvc@1.15.3": + version "1.15.3" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.3.tgz#c398d4f0f10ffec2151a79733ee1ce86a945a1ea" + integrity sha512-B8UtogMzErUPDWUoKONSVBdsgKYd58rRyv2sHJWKOIMCHfZ22FVXICR4O/VwIYtlnZ7ahERcjayBHDlBZpR0aw== + +"@swc/core-win32-x64-msvc@1.15.3": + version "1.15.3" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.3.tgz#715596b034a654c82b03ef734a9b44c29bcd3a68" + integrity sha512-SpZKMR9QBTecHeqpzJdYEfgw30Oo8b/Xl6rjSzBt1g0ZsXyy60KLXrp6IagQyfTYqNYE/caDvwtF2FPn7pomog== "@swc/core@^1.10.7": - version "1.14.0" - resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.14.0.tgz#ff7d287fbac6b6fd3adedf7b440cadfd0c389df6" - integrity sha512-oExhY90bes5pDTVrei0xlMVosTxwd/NMafIpqsC4dMbRYZ5KB981l/CX8tMnGsagTplj/RcG9BeRYmV6/J5m3w== + version "1.15.3" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.15.3.tgz#2d0a5c4ac4c180c3dbf2f6d5d958b9fcbaa9755f" + integrity sha512-Qd8eBPkUFL4eAONgGjycZXj1jFCBW8Fd+xF0PzdTlBCWQIV1xnUT7B93wUANtW3KGjl3TRcOyxwSx/u/jyKw/Q== dependencies: "@swc/counter" "^0.1.3" "@swc/types" "^0.1.25" optionalDependencies: - "@swc/core-darwin-arm64" "1.14.0" - "@swc/core-darwin-x64" "1.14.0" - "@swc/core-linux-arm-gnueabihf" "1.14.0" - "@swc/core-linux-arm64-gnu" "1.14.0" - "@swc/core-linux-arm64-musl" "1.14.0" - "@swc/core-linux-x64-gnu" "1.14.0" - "@swc/core-linux-x64-musl" "1.14.0" - "@swc/core-win32-arm64-msvc" "1.14.0" - "@swc/core-win32-ia32-msvc" "1.14.0" - "@swc/core-win32-x64-msvc" "1.14.0" + "@swc/core-darwin-arm64" "1.15.3" + "@swc/core-darwin-x64" "1.15.3" + "@swc/core-linux-arm-gnueabihf" "1.15.3" + "@swc/core-linux-arm64-gnu" "1.15.3" + "@swc/core-linux-arm64-musl" "1.15.3" + "@swc/core-linux-x64-gnu" "1.15.3" + "@swc/core-linux-x64-musl" "1.15.3" + "@swc/core-win32-arm64-msvc" "1.15.3" + "@swc/core-win32-ia32-msvc" "1.15.3" + "@swc/core-win32-x64-msvc" "1.15.3" "@swc/counter@^0.1.3": version "0.1.3" @@ -2492,7 +2569,7 @@ dependencies: defer-to-connect "^2.0.1" -"@tokenizer/inflate@^0.2.6", "@tokenizer/inflate@^0.2.7": +"@tokenizer/inflate@^0.2.6": version "0.2.7" resolved "https://registry.yarnpkg.com/@tokenizer/inflate/-/inflate-0.2.7.tgz#32dd9dfc9abe457c89b3d9b760fc0690c85a103b" integrity sha512-MADQgmZT1eKjp06jpI2yozxaU9uVs4GzzgSL+uEq7bVcJ9V1ZXQkeGNql1fsSI0gMy1vhvNTNbUqrx+pZfJVmg== @@ -2501,6 +2578,15 @@ fflate "^0.8.2" token-types "^6.0.0" +"@tokenizer/inflate@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@tokenizer/inflate/-/inflate-0.3.1.tgz#f0b9162741e8e4c5fa0c56764a049355ad29e1f4" + integrity sha512-4oeoZEBQdLdt5WmP/hx1KZ6D3/Oid/0cUb2nk4F0pTDAWy+KCH3/EnAkZF/bvckWo8I33EqBm01lIPgmgc8rCA== + dependencies: + debug "^4.4.1" + fflate "^0.8.2" + token-types "^6.0.0" + "@tokenizer/token@^0.3.0": version "0.3.0" resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.3.0.tgz#fe98a93fe789247e998c75e74e9c7c63217aa276" @@ -2516,9 +2602,9 @@ tinyglobby "^0.2.14" "@tsconfig/node10@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2" - integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw== + version "1.0.12" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.12.tgz#be57ceac1e4692b41be9de6be8c32a106636dba4" + integrity sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ== "@tsconfig/node12@^1.0.7": version "1.0.11" @@ -2535,7 +2621,14 @@ resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== -"@types/babel__core@^7.1.14": +"@tybys/wasm-util@^0.10.0": + version "0.10.1" + resolved "https://registry.yarnpkg.com/@tybys/wasm-util/-/wasm-util-0.10.1.tgz#ecddd3205cf1e2d5274649ff0eedd2991ed7f414" + integrity sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg== + dependencies: + tslib "^2.4.0" + +"@types/babel__core@^7.20.5": version "7.20.5" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== @@ -2561,7 +2654,7 @@ "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": +"@types/babel__traverse@*": version "7.28.0" resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.28.0.tgz#07d713d6cce0d265c9849db0cbe62d3f61f36f74" integrity sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q== @@ -2632,20 +2725,13 @@ "@types/send" "*" "@types/express@*", "@types/express@^5.0.0": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.5.tgz#3ba069177caa34ab96585ca23b3984d752300cdc" - integrity sha512-LuIQOcb6UmnF7C1PCFmEU1u2hmiHL43fgFQX67sN3H4Z+0Yk0Neo++mFsBjhOAuLzvlQeqAAkeDOZrJs9rzumQ== + version "5.0.6" + resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.6.tgz#2d724b2c990dcb8c8444063f3580a903f6d500cc" + integrity sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^5.0.0" - "@types/serve-static" "^1" - -"@types/graceful-fs@^4.1.3": - version "4.1.9" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" - integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== - dependencies: - "@types/node" "*" + "@types/serve-static" "^2" "@types/http-cache-semantics@^4.0.2": version "4.0.4" @@ -2657,7 +2743,7 @@ resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.5.tgz#5b749ab2b16ba113423feb1a64a95dcd30398472" integrity sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg== -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.1", "@types/istanbul-lib-coverage@^2.0.6": version "2.0.6" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== @@ -2669,20 +2755,20 @@ dependencies: "@types/istanbul-lib-coverage" "*" -"@types/istanbul-reports@^3.0.0": +"@types/istanbul-reports@^3.0.4": version "3.0.4" resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@^29.5.14": - version "29.5.14" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.14.tgz#2b910912fa1d6856cadcd0c1f95af7df1d6049e5" - integrity sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ== +"@types/jest@^30.0.0": + version "30.0.0" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-30.0.0.tgz#5e85ae568006712e4ad66f25433e9bdac8801f1d" + integrity sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA== dependencies: - expect "^29.0.0" - pretty-format "^29.0.0" + expect "^30.0.0" + pretty-format "^30.0.0" "@types/json-schema@*", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.15" @@ -2702,11 +2788,6 @@ resolved "https://registry.yarnpkg.com/@types/methods/-/methods-1.1.4.tgz#d3b7ac30ac47c91054ea951ce9eed07b1051e547" integrity sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ== -"@types/mime@^1": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" - integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== - "@types/ms@*": version "2.1.0" resolved "https://registry.yarnpkg.com/@types/ms/-/ms-2.1.0.tgz#052aa67a48eccc4309d7f0191b7e41434b90bb78" @@ -2720,16 +2801,16 @@ "@types/express" "*" "@types/node@*": - version "24.9.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-24.9.2.tgz#90ded2422dbfcafcf72080f28975adc21366148d" - integrity sha512-uWN8YqxXxqFMX2RqGOrumsKeti4LlmIMIyV0lgut4jx7KQBcBiW6vkDtIBvHnHIquwNfJhk8v2OtmO8zXWHfPA== + version "24.10.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.1.tgz#91e92182c93db8bd6224fca031e2370cef9a8f01" + integrity sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ== dependencies: undici-types "~7.16.0" "@types/node@^22.10.7": - version "22.18.13" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.18.13.tgz#a037c4f474b860be660e05dbe92a9ef945472e28" - integrity sha512-Bo45YKIjnmFtv6I1TuC8AaHBbqXtIo+Om5fE4QiU1Tj8QR/qt+8O3BAtOimG5IFmwaWiPmB3Mv3jtYzBA4Us2A== + version "22.19.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.19.1.tgz#1188f1ddc9f46b4cc3aec76749050b4e1f459b7b" + integrity sha512-LCCV0HdSZZZb34qifBsyWlUmok6W7ouER+oQIGBScS8EsZsQbrtFTUrDX4hOl+CS6p7cnNC4td+qrSVGSCTUfQ== dependencies: undici-types "~6.21.0" @@ -2773,24 +2854,15 @@ dependencies: "@types/node" "*" -"@types/send@<1": - version "0.17.6" - resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.6.tgz#aeb5385be62ff58a52cd5459daa509ae91651d25" - integrity sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og== - dependencies: - "@types/mime" "^1" - "@types/node" "*" - -"@types/serve-static@^1": - version "1.15.10" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.10.tgz#768169145a778f8f5dfcb6360aead414a3994fee" - integrity sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw== +"@types/serve-static@^2": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-2.2.0.tgz#d4a447503ead0d1671132d1ab6bd58b805d8de6a" + integrity sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ== dependencies: "@types/http-errors" "*" "@types/node" "*" - "@types/send" "<1" -"@types/stack-utils@^2.0.0": +"@types/stack-utils@^2.0.3": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== @@ -2818,121 +2890,227 @@ resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-10.0.0.tgz#e9c07fe50da0f53dc24970cca94d619ff03f6f6d" integrity sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ== -"@types/validator@^13.11.8": - version "13.15.4" - resolved "https://registry.yarnpkg.com/@types/validator/-/validator-13.15.4.tgz#38a97ae54747416f745afdfc678f041713082635" - integrity sha512-LSFfpSnJJY9wbC0LQxgvfb+ynbHftFo0tMsFOl/J4wexLnYMmDSPaj2ZyDv3TkfL1UePxPrxOWJfbiRS8mQv7A== +"@types/validator@^13.15.3": + version "13.15.10" + resolved "https://registry.yarnpkg.com/@types/validator/-/validator-13.15.10.tgz#742b77ec34d58554b94a76a14cef30d59e3c16b9" + integrity sha512-T8L6i7wCuyoK8A/ZeLYt1+q0ty3Zb9+qbSSvrIVitzT3YjZqkTZ40IbRsPanlB4h1QB3JVL1SYCdR6ngtFYcuA== "@types/yargs-parser@*": version "21.0.3" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== -"@types/yargs@^17.0.8": - version "17.0.34" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.34.tgz#1c2f9635b71d5401827373a01ce2e8a7670ea839" - integrity sha512-KExbHVa92aJpw9WDQvzBaGVE2/Pz+pLZQloT2hjL8IqsZnV62rlPOYvNnLmf/L2dyllfVUOVBj64M0z/46eR2A== +"@types/yargs@^17.0.33": + version "17.0.35" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.35.tgz#07013e46aa4d7d7d50a49e15604c1c5340d4eb24" + integrity sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg== dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@8.46.2": - version "8.46.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.46.2.tgz#dc4ab93ee3d7e6c8e38820a0d6c7c93c7183e2dc" - integrity sha512-ZGBMToy857/NIPaaCucIUQgqueOiq7HeAKkhlvqVV4lm089zUFW6ikRySx2v+cAhKeUCPuWVHeimyk6Dw1iY3w== +"@types/zen-observable@0.8.3": + version "0.8.3" + resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.3.tgz#781d360c282436494b32fe7d9f7f8e64b3118aa3" + integrity sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw== + +"@typescript-eslint/eslint-plugin@8.48.1": + version "8.48.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.48.1.tgz#c772d1dbdd97cfddf85f5a161a97783233643631" + integrity sha512-X63hI1bxl5ohelzr0LY5coufyl0LJNthld+abwxpCoo6Gq+hSqhKwci7MUWkXo67mzgUK6YFByhmaHmUcuBJmA== dependencies: "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "8.46.2" - "@typescript-eslint/type-utils" "8.46.2" - "@typescript-eslint/utils" "8.46.2" - "@typescript-eslint/visitor-keys" "8.46.2" + "@typescript-eslint/scope-manager" "8.48.1" + "@typescript-eslint/type-utils" "8.48.1" + "@typescript-eslint/utils" "8.48.1" + "@typescript-eslint/visitor-keys" "8.48.1" graphemer "^1.4.0" ignore "^7.0.0" natural-compare "^1.4.0" ts-api-utils "^2.1.0" -"@typescript-eslint/parser@8.46.2": - version "8.46.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.46.2.tgz#dd938d45d581ac8ffa9d8a418a50282b306f7ebf" - integrity sha512-BnOroVl1SgrPLywqxyqdJ4l3S2MsKVLDVxZvjI1Eoe8ev2r3kGDo+PcMihNmDE+6/KjkTubSJnmqGZZjQSBq/g== +"@typescript-eslint/parser@8.48.1": + version "8.48.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.48.1.tgz#4e3c66d9ec20683ec142417fafeadab61c479c3f" + integrity sha512-PC0PDZfJg8sP7cmKe6L3QIL8GZwU5aRvUFedqSIpw3B+QjRSUZeeITC2M5XKeMXEzL6wccN196iy3JLwKNvDVA== dependencies: - "@typescript-eslint/scope-manager" "8.46.2" - "@typescript-eslint/types" "8.46.2" - "@typescript-eslint/typescript-estree" "8.46.2" - "@typescript-eslint/visitor-keys" "8.46.2" + "@typescript-eslint/scope-manager" "8.48.1" + "@typescript-eslint/types" "8.48.1" + "@typescript-eslint/typescript-estree" "8.48.1" + "@typescript-eslint/visitor-keys" "8.48.1" debug "^4.3.4" -"@typescript-eslint/project-service@8.46.2": - version "8.46.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.46.2.tgz#ab2f02a0de4da6a7eeb885af5e059be57819d608" - integrity sha512-PULOLZ9iqwI7hXcmL4fVfIsBi6AN9YxRc0frbvmg8f+4hQAjQ5GYNKK0DIArNo+rOKmR/iBYwkpBmnIwin4wBg== +"@typescript-eslint/project-service@8.48.1": + version "8.48.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.48.1.tgz#cfe1741613b9112d85ae766de9e09b27a7d3f2f1" + integrity sha512-HQWSicah4s9z2/HifRPQ6b6R7G+SBx64JlFQpgSSHWPKdvCZX57XCbszg/bapbRsOEv42q5tayTYcEFpACcX1w== dependencies: - "@typescript-eslint/tsconfig-utils" "^8.46.2" - "@typescript-eslint/types" "^8.46.2" + "@typescript-eslint/tsconfig-utils" "^8.48.1" + "@typescript-eslint/types" "^8.48.1" debug "^4.3.4" -"@typescript-eslint/scope-manager@8.46.2": - version "8.46.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.46.2.tgz#7d37df2493c404450589acb3b5d0c69cc0670a88" - integrity sha512-LF4b/NmGvdWEHD2H4MsHD8ny6JpiVNDzrSZr3CsckEgCbAGZbYM4Cqxvi9L+WqDMT+51Ozy7lt2M+d0JLEuBqA== +"@typescript-eslint/scope-manager@8.48.1": + version "8.48.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.48.1.tgz#8bc70643e7cca57864b1ff95dd350fc27756bec0" + integrity sha512-rj4vWQsytQbLxC5Bf4XwZ0/CKd362DkWMUkviT7DCS057SK64D5lH74sSGzhI6PDD2HCEq02xAP9cX68dYyg1w== dependencies: - "@typescript-eslint/types" "8.46.2" - "@typescript-eslint/visitor-keys" "8.46.2" + "@typescript-eslint/types" "8.48.1" + "@typescript-eslint/visitor-keys" "8.48.1" -"@typescript-eslint/tsconfig-utils@8.46.2", "@typescript-eslint/tsconfig-utils@^8.46.2": - version "8.46.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.2.tgz#d110451cb93bbd189865206ea37ef677c196828c" - integrity sha512-a7QH6fw4S57+F5y2FIxxSDyi5M4UfGF+Jl1bCGd7+L4KsaUY80GsiF/t0UoRFDHAguKlBaACWJRmdrc6Xfkkag== +"@typescript-eslint/tsconfig-utils@8.48.1", "@typescript-eslint/tsconfig-utils@^8.48.1": + version "8.48.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.48.1.tgz#68139ce2d258f984e2b33a95389158f1212af646" + integrity sha512-k0Jhs4CpEffIBm6wPaCXBAD7jxBtrHjrSgtfCjUvPp9AZ78lXKdTR8fxyZO5y4vWNlOvYXRtngSZNSn+H53Jkw== -"@typescript-eslint/type-utils@8.46.2": - version "8.46.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.46.2.tgz#802d027864e6fb752e65425ed09f3e089fb4d384" - integrity sha512-HbPM4LbaAAt/DjxXaG9yiS9brOOz6fabal4uvUmaUYe6l3K1phQDMQKBRUrr06BQkxkvIZVVHttqiybM9nJsLA== +"@typescript-eslint/type-utils@8.48.1": + version "8.48.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.48.1.tgz#955bd3ddd648450f0a627925ff12ade63fb7516d" + integrity sha512-1jEop81a3LrJQLTf/1VfPQdhIY4PlGDBc/i67EVWObrtvcziysbLN3oReexHOM6N3jyXgCrkBsZpqwH0hiDOQg== dependencies: - "@typescript-eslint/types" "8.46.2" - "@typescript-eslint/typescript-estree" "8.46.2" - "@typescript-eslint/utils" "8.46.2" + "@typescript-eslint/types" "8.48.1" + "@typescript-eslint/typescript-estree" "8.48.1" + "@typescript-eslint/utils" "8.48.1" debug "^4.3.4" ts-api-utils "^2.1.0" -"@typescript-eslint/types@8.46.2", "@typescript-eslint/types@^8.46.2": - version "8.46.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.46.2.tgz#2bad7348511b31e6e42579820e62b73145635763" - integrity sha512-lNCWCbq7rpg7qDsQrd3D6NyWYu+gkTENkG5IKYhUIcxSb59SQC/hEQ+MrG4sTgBVghTonNWq42bA/d4yYumldQ== +"@typescript-eslint/types@8.48.1", "@typescript-eslint/types@^8.48.1": + version "8.48.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.48.1.tgz#a9ff808f5f798f28767d5c0b015a88fa7ce46bd7" + integrity sha512-+fZ3LZNeiELGmimrujsDCT4CRIbq5oXdHe7chLiW8qzqyPMnn1puNstCrMNVAqwcl2FdIxkuJ4tOs/RFDBVc/Q== -"@typescript-eslint/typescript-estree@8.46.2": - version "8.46.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.2.tgz#ab547a27e4222bb6a3281cb7e98705272e2c7d08" - integrity sha512-f7rW7LJ2b7Uh2EiQ+7sza6RDZnajbNbemn54Ob6fRwQbgcIn+GWfyuHDHRYgRoZu1P4AayVScrRW+YfbTvPQoQ== +"@typescript-eslint/typescript-estree@8.48.1": + version "8.48.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.48.1.tgz#0d0e31fc47c5796c6463ab50cde19e1718d465b1" + integrity sha512-/9wQ4PqaefTK6POVTjJaYS0bynCgzh6ClJHGSBj06XEHjkfylzB+A3qvyaXnErEZSaxhIo4YdyBgq6j4RysxDg== dependencies: - "@typescript-eslint/project-service" "8.46.2" - "@typescript-eslint/tsconfig-utils" "8.46.2" - "@typescript-eslint/types" "8.46.2" - "@typescript-eslint/visitor-keys" "8.46.2" + "@typescript-eslint/project-service" "8.48.1" + "@typescript-eslint/tsconfig-utils" "8.48.1" + "@typescript-eslint/types" "8.48.1" + "@typescript-eslint/visitor-keys" "8.48.1" debug "^4.3.4" - fast-glob "^3.3.2" - is-glob "^4.0.3" minimatch "^9.0.4" semver "^7.6.0" + tinyglobby "^0.2.15" ts-api-utils "^2.1.0" -"@typescript-eslint/utils@8.46.2": - version "8.46.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.46.2.tgz#b313d33d67f9918583af205bd7bcebf20f231732" - integrity sha512-sExxzucx0Tud5tE0XqR0lT0psBQvEpnpiul9XbGUB1QwpWJJAps1O/Z7hJxLGiZLBKMCutjTzDgmd1muEhBnVg== +"@typescript-eslint/utils@8.48.1": + version "8.48.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.48.1.tgz#6cf7b99e0943b33a983ef687b9a86b65578b5c32" + integrity sha512-fAnhLrDjiVfey5wwFRwrweyRlCmdz5ZxXz2G/4cLn0YDLjTapmN4gcCsTBR1N2rWnZSDeWpYtgLDsJt+FpmcwA== dependencies: "@eslint-community/eslint-utils" "^4.7.0" - "@typescript-eslint/scope-manager" "8.46.2" - "@typescript-eslint/types" "8.46.2" - "@typescript-eslint/typescript-estree" "8.46.2" + "@typescript-eslint/scope-manager" "8.48.1" + "@typescript-eslint/types" "8.48.1" + "@typescript-eslint/typescript-estree" "8.48.1" -"@typescript-eslint/visitor-keys@8.46.2": - version "8.46.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.2.tgz#803fa298948c39acf810af21bdce6f8babfa9738" - integrity sha512-tUFMXI4gxzzMXt4xpGJEsBsTox0XbNQ1y94EwlD/CuZwFcQP79xfQqMhau9HsRc/J0cAPA/HZt1dZPtGn9V/7w== +"@typescript-eslint/visitor-keys@8.48.1": + version "8.48.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.48.1.tgz#247d4fe6dcc044f45b7f1c15110bf95e5d73b334" + integrity sha512-BmxxndzEWhE4TIEEMBs8lP3MBWN3jFPs/p6gPm/wkv02o41hI6cq9AuSmGAaTTHPtA1FTi2jBre4A9rm5ZmX+Q== dependencies: - "@typescript-eslint/types" "8.46.2" + "@typescript-eslint/types" "8.48.1" eslint-visitor-keys "^4.2.1" +"@ungap/structured-clone@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8" + integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== + +"@unrs/resolver-binding-android-arm-eabi@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz#9f5b04503088e6a354295e8ea8fe3cb99e43af81" + integrity sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw== + +"@unrs/resolver-binding-android-arm64@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz#7414885431bd7178b989aedc4d25cccb3865bc9f" + integrity sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g== + +"@unrs/resolver-binding-darwin-arm64@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz#b4a8556f42171fb9c9f7bac8235045e82aa0cbdf" + integrity sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g== + +"@unrs/resolver-binding-darwin-x64@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz#fd4d81257b13f4d1a083890a6a17c00de571f0dc" + integrity sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ== + +"@unrs/resolver-binding-freebsd-x64@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz#d2513084d0f37c407757e22f32bd924a78cfd99b" + integrity sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw== + +"@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz#844d2605d057488d77fab09705f2866b86164e0a" + integrity sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw== + +"@unrs/resolver-binding-linux-arm-musleabihf@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz#204892995cefb6bd1d017d52d097193bc61ddad3" + integrity sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw== + +"@unrs/resolver-binding-linux-arm64-gnu@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz#023eb0c3aac46066a10be7a3f362e7b34f3bdf9d" + integrity sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ== + +"@unrs/resolver-binding-linux-arm64-musl@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz#9e6f9abb06424e3140a60ac996139786f5d99be0" + integrity sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w== + +"@unrs/resolver-binding-linux-ppc64-gnu@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz#b111417f17c9d1b02efbec8e08398f0c5527bb44" + integrity sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA== + +"@unrs/resolver-binding-linux-riscv64-gnu@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz#92ffbf02748af3e99873945c9a8a5ead01d508a9" + integrity sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ== + +"@unrs/resolver-binding-linux-riscv64-musl@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz#0bec6f1258fc390e6b305e9ff44256cb207de165" + integrity sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew== + +"@unrs/resolver-binding-linux-s390x-gnu@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz#577843a084c5952f5906770633ccfb89dac9bc94" + integrity sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg== + +"@unrs/resolver-binding-linux-x64-gnu@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz#36fb318eebdd690f6da32ac5e0499a76fa881935" + integrity sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w== + +"@unrs/resolver-binding-linux-x64-musl@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz#bfb9af75f783f98f6a22c4244214efe4df1853d6" + integrity sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA== + +"@unrs/resolver-binding-wasm32-wasi@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz#752c359dd875684b27429500d88226d7cc72f71d" + integrity sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ== + dependencies: + "@napi-rs/wasm-runtime" "^0.2.11" + +"@unrs/resolver-binding-win32-arm64-msvc@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz#ce5735e600e4c2fbb409cd051b3b7da4a399af35" + integrity sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw== + +"@unrs/resolver-binding-win32-ia32-msvc@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz#72fc57bc7c64ec5c3de0d64ee0d1810317bc60a6" + integrity sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ== + +"@unrs/resolver-binding-win32-x64-msvc@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz#538b1e103bf8d9864e7b85cc96fa8d6fb6c40777" + integrity sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g== + "@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.14.1": version "1.14.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.14.1.tgz#a9f6a07f2b03c95c8d38c4536a1fdfb521ff55b6" @@ -3242,7 +3420,7 @@ ansi-colors@4.1.3: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== -ansi-escapes@^4.2.1: +ansi-escapes@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== @@ -3266,7 +3444,7 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -ansi-styles@^5.0.0: +ansi-styles@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== @@ -3276,12 +3454,12 @@ ansi-styles@^6.1.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== -ansis@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansis/-/ansis-4.1.0.tgz#cd43ecd3f814f37223e518291c0e0b04f2915a0d" - integrity sha512-BGcItUBWSMRgOCe+SVZJ+S7yTRG0eGt9cXAHev72yuGcY23hnLA7Bky5L/xLyPINoSN95geovfBkqoTlNZYa7w== +ansis@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/ansis/-/ansis-4.2.0.tgz#2e6e61c46b11726ac67f78785385618b9e658780" + integrity sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig== -anymatch@^3.0.3: +anymatch@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== @@ -3342,9 +3520,9 @@ aws-ssl-profiles@^1.1.1: integrity sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g== axios@^1.11.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.13.1.tgz#45b62dc8fe04e0e92274e08b98e910ba3d7963a7" - integrity sha512-hU4EGxxt+j7TQijx1oYdAjw4xuIp1wRQSsbMFwSthCWeBQur1eF+qJ5iQ5sN3Tw8YRzQNKb8jszgBdMDVqwJcw== + version "1.13.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.13.2.tgz#9ada120b7b5ab24509553ec3e40123521117f687" + integrity sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA== dependencies: follow-redirects "^1.15.6" form-data "^4.0.4" @@ -3355,41 +3533,38 @@ b4a@^1.6.4: resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.7.3.tgz#24cf7ccda28f5465b66aec2bac69e32809bf112f" integrity sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q== -babel-jest@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5" - integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== +babel-jest@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-30.2.0.tgz#fd44a1ec9552be35ead881f7381faa7d8f3b95ac" + integrity sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw== dependencies: - "@jest/transform" "^29.7.0" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.6.3" - chalk "^4.0.0" - graceful-fs "^4.2.9" + "@jest/transform" "30.2.0" + "@types/babel__core" "^7.20.5" + babel-plugin-istanbul "^7.0.1" + babel-preset-jest "30.2.0" + chalk "^4.1.2" + graceful-fs "^4.2.11" slash "^3.0.0" -babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== +babel-plugin-istanbul@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.1.tgz#d8b518c8ea199364cf84ccc82de89740236daf92" + integrity sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" + "@istanbuljs/schema" "^0.1.3" + istanbul-lib-instrument "^6.0.2" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626" - integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== +babel-plugin-jest-hoist@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.2.0.tgz#94c250d36b43f95900f3a219241e0f4648191ce2" + integrity sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA== dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" + "@types/babel__core" "^7.20.5" -babel-preset-current-node-syntax@^1.0.0: +babel-preset-current-node-syntax@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz#20730d6cdc7dda5d89401cab10ac6a32067acde6" integrity sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg== @@ -3410,13 +3585,13 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" -babel-preset-jest@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c" - integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA== +babel-preset-jest@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-30.2.0.tgz#04717843e561347781d6d7f69c81e6bcc3ed11ce" + integrity sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ== dependencies: - babel-plugin-jest-hoist "^29.6.3" - babel-preset-current-node-syntax "^1.0.0" + babel-plugin-jest-hoist "30.2.0" + babel-preset-current-node-syntax "^1.2.0" balanced-match@^1.0.0: version "1.0.2" @@ -3424,19 +3599,19 @@ balanced-match@^1.0.0: integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== bare-events@^2.7.0: - version "2.8.1" - resolved "https://registry.yarnpkg.com/bare-events/-/bare-events-2.8.1.tgz#121afaeee9e9a8eb92e71d125bc85753d39913d0" - integrity sha512-oxSAxTS1hRfnyit2CL5QpAOS5ixfBjj6ex3yTNvXyY/kE719jQ/IjuESJBK2w5v4wwQRAHGseVJXx9QBYOtFGQ== + version "2.8.2" + resolved "https://registry.yarnpkg.com/bare-events/-/bare-events-2.8.2.tgz#7b3e10bd8e1fc80daf38bb516921678f566ab89f" + integrity sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ== base64-js@^1.3.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -baseline-browser-mapping@^2.8.19: - version "2.8.22" - resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.8.22.tgz#9d98661721ebe0812def25858f4cb2561820d2e6" - integrity sha512-/tk9kky/d8T8CTXIQYASLyhAxR5VwL3zct1oAoVTaOUHwrmsGnfbRwNdEq+vOl2BN8i3PcDdP0o4Q+jjKQoFbQ== +baseline-browser-mapping@^2.9.0: + version "2.9.3" + resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.9.3.tgz#5eaccdbbe2006e55ec9978a0ccacd59eb785215c" + integrity sha512-8QdH6czo+G7uBsNo0GiUfouPN1lRzKdJTGnKXwe12gkFbnnOUaUKGN55dMkfy+mnxmvjwl9zcI4VncczcVXDhA== bcrypt@^6.0.0: version "6.0.0" @@ -3472,25 +3647,25 @@ bl@^4.1.0: inherits "^2.0.4" readable-stream "^3.4.0" -body-parser@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-2.2.0.tgz#f7a9656de305249a715b549b7b8fd1ab9dfddcfa" - integrity sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg== +body-parser@^2.2.0, body-parser@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-2.2.1.tgz#6df606b0eb0a6e3f783dde91dde182c24c82438c" + integrity sha512-nfDwkulwiZYQIGwxdy0RUmowMhKcFVcYXUU7m4QlKYim1rUtg83xm2yjZ40QjDuc291AJjjeSc9b++AWHSgSHw== dependencies: bytes "^3.1.2" content-type "^1.0.5" - debug "^4.4.0" + debug "^4.4.3" http-errors "^2.0.0" - iconv-lite "^0.6.3" + iconv-lite "^0.7.0" on-finished "^2.4.1" qs "^6.14.0" - raw-body "^3.0.0" - type-is "^2.0.0" + raw-body "^3.0.1" + type-is "^2.0.1" bowser@^2.11.0: - version "2.12.1" - resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.12.1.tgz#f9ad78d7aebc472feb63dd9635e3ce2337e0e2c1" - integrity sha512-z4rE2Gxh7tvshQ4hluIT7XcFrgLIQaw9X3A+kTTRdovCz5PMukm/0QC/BKSYPj3omF5Qfypn9O/c5kgpmvYUCw== + version "2.13.1" + resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.13.1.tgz#5a4c652de1d002f847dd011819f5fc729f308a7e" + integrity sha512-OHawaAbjwx6rqICCKgSG0SAnT05bzd7ppyKLVUITZpANBaaMFBAsaNkto3LoQ31tyFP5kNujE8Cdx85G9VzOkw== brace-expansion@^1.1.7: version "1.1.12" @@ -3514,16 +3689,16 @@ braces@^3.0.3: dependencies: fill-range "^7.1.1" -browserslist@^4.24.0: - version "4.27.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.27.0.tgz#755654744feae978fbb123718b2f139bc0fa6697" - integrity sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw== +browserslist@^4.24.0, browserslist@^4.26.3: + version "4.28.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.1.tgz#7f534594628c53c63101079e27e40de490456a95" + integrity sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA== dependencies: - baseline-browser-mapping "^2.8.19" - caniuse-lite "^1.0.30001751" - electron-to-chromium "^1.5.238" - node-releases "^2.0.26" - update-browserslist-db "^1.1.4" + baseline-browser-mapping "^2.9.0" + caniuse-lite "^1.0.30001759" + electron-to-chromium "^1.5.263" + node-releases "^2.0.27" + update-browserslist-db "^1.2.0" bs-logger@^0.2.6: version "0.2.6" @@ -3569,7 +3744,7 @@ busboy@^1.6.0: dependencies: streamsearch "^1.1.0" -bytes@3.1.2, bytes@^3.1.2: +bytes@^3.1.2, bytes@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== @@ -3608,7 +3783,7 @@ call-bound@^1.0.2: call-bind-apply-helpers "^1.0.2" get-intrinsic "^1.3.0" -callsites@^3.0.0: +callsites@^3.0.0, callsites@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== @@ -3618,15 +3793,15 @@ camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.2.0: +camelcase@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001751: - version "1.0.30001752" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001752.tgz#afa28d0830709507162bc6ed3f7cb23b00926a99" - integrity sha512-vKUk7beoukxE47P5gcVNKkDRzXdVofotshHwfR9vmpeFKxmI5PBpgOMC18LUJUA/DvJ70Y7RveasIBraqsyO/g== +caniuse-lite@^1.0.30001759: + version "1.0.30001759" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001759.tgz#d569e7b010372c6b0ca3946e30dada0a2e9d5006" + integrity sha512-Pzfx9fOKoKvevQf8oCXoyNRQ5QyxJj+3O0Rqx2V5oxT61KGx8+n6hV/IUyJeifUci2clnmmKVpvtiqRzgiWjSw== chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" @@ -3641,7 +3816,7 @@ char-regex@^1.0.2: resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== -chardet@^2.1.0: +chardet@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/chardet/-/chardet-2.1.1.tgz#5c75593704a642f71ee53717df234031e65373c8" integrity sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ== @@ -3658,29 +3833,29 @@ chrome-trace-event@^1.0.2: resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== -ci-info@^3.2.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" - integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== +ci-info@^4.2.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.3.1.tgz#355ad571920810b5623e11d40232f443f16f1daa" + integrity sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA== -cjs-module-lexer@^1.0.0: - version "1.4.3" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz#0f79731eb8cfe1ec72acd4066efac9d61991b00d" - integrity sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q== +cjs-module-lexer@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-2.1.1.tgz#bff23b0609cc9afa428bd35f1918f7d03b448562" + integrity sha512-+CmxIZ/L2vNcEfvNtLdU0ZQ6mbq3FZnwAP2PPTiKP+1QOoKwlKlPgb8UKV0Dds7QVaMnHm+FwSft2VB0s/SLjQ== class-transformer@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/class-transformer/-/class-transformer-0.5.1.tgz#24147d5dffd2a6cea930a3250a677addf96ab336" integrity sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw== -class-validator@^0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/class-validator/-/class-validator-0.14.2.tgz#a3de95edd26b703e89c151a2023d3c115030340d" - integrity sha512-3kMVRF2io8N8pY1IFIXlho9r8IPUUIfHe2hYVtiebvAzU2XeQFXTv+XI4WX+TnXmtwXMDcjngcpkiPM0O9PvLw== +class-validator@^0.14.3: + version "0.14.3" + resolved "https://registry.yarnpkg.com/class-validator/-/class-validator-0.14.3.tgz#834a4caafa8359aed73d7708badb4cf271be50fe" + integrity sha512-rXXekcjofVN1LTOSw+u4u9WXVEUvNBVjORW154q/IdmYWy1nMbOU9aNtZB0t8m+FJQ9q91jlr2f9CwwUFdFMRA== dependencies: - "@types/validator" "^13.11.8" + "@types/validator" "^13.15.3" libphonenumber-js "^1.11.1" - validator "^13.9.0" + validator "^13.15.20" cli-cursor@^3.1.0: version "3.1.0" @@ -3732,7 +3907,7 @@ code-block-writer@^13.0.3: resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-13.0.3.tgz#90f8a84763a5012da7af61319dd638655ae90b5b" integrity sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg== -collect-v8-coverage@^1.0.0: +collect-v8-coverage@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz#cc1f01eb8d02298cbc9a437c74c70ab4e5210b80" integrity sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw== @@ -3833,11 +4008,9 @@ content-disposition@^0.5.4: safe-buffer "5.2.1" content-disposition@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-1.0.0.tgz#844426cb398f934caefcbb172200126bc7ceace2" - integrity sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg== - dependencies: - safe-buffer "5.2.1" + version "1.0.1" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-1.0.1.tgz#a8b7bbeb2904befdfb6787e5c0c086959f605f9b" + integrity sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q== content-type@^1.0.5: version "1.0.5" @@ -3900,19 +4073,6 @@ cosmiconfig@^8.2.0: parse-json "^5.2.0" path-type "^4.0.0" -create-jest@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320" - integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q== - dependencies: - "@jest/types" "^29.6.3" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-config "^29.7.0" - jest-util "^29.7.0" - prompts "^2.0.1" - create-require@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" @@ -3939,7 +4099,7 @@ debug@4.3.4: dependencies: ms "2.1.2" -debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5, debug@^4.3.7, debug@^4.4.0: +debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5, debug@^4.3.7, debug@^4.4.0, debug@^4.4.1, debug@^4.4.3: version "4.4.3" resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== @@ -3953,7 +4113,7 @@ decompress-response@^6.0.0: dependencies: mimic-response "^3.1.0" -dedent@^1.0.0: +dedent@^1.6.0: version "1.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.7.0.tgz#c1f9445335f0175a96587be245a282ff451446ca" integrity sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ== @@ -3963,7 +4123,7 @@ deep-is@^0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -deepmerge@^4.2.2: +deepmerge@^4.2.2, deepmerge@^4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== @@ -3995,12 +4155,12 @@ denque@^2.1.0: resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1" integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== -depd@2.0.0, depd@^2.0.0: +depd@^2.0.0, depd@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== -detect-newline@^3.0.0: +detect-newline@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== @@ -4013,11 +4173,6 @@ dezalgo@^1.0.4: asap "^2.0.0" wrappy "1" -diff-sequences@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" - integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== - diff@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" @@ -4078,10 +4233,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.5.238: - version "1.5.244" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.244.tgz#b9b61e3d24ef4203489951468614f2a360763820" - integrity sha512-OszpBN7xZX4vWMPJwB9illkN/znA8M36GQqQxi6MNy9axWxhOfJyZZJtSLQCpEFLHP2xK33BiWx9aIuIEXVCcw== +electron-to-chromium@^1.5.263: + version "1.5.266" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.266.tgz#41ed029b3cf641c4ee071de42954b36dca8f5f4e" + integrity sha512-kgWEglXvkEfMH7rxP5OSZZwnaDWT7J9EoZCujhnpLbfi0bbNtRkgdX2E3gt0Uer11c61qCYktB3hwkAS325sJg== emittery@^0.13.1: version "0.13.1" @@ -4103,7 +4258,7 @@ encodeurl@^2.0.0: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== -enhanced-resolve@^5.0.0, enhanced-resolve@^5.17.2, enhanced-resolve@^5.7.0: +enhanced-resolve@^5.0.0, enhanced-resolve@^5.17.3, enhanced-resolve@^5.7.0: version "5.18.3" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz#9b5f4c5c076b8787c78fe540392ce76a88855b44" integrity sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww== @@ -4209,10 +4364,10 @@ eslint-visitor-keys@^4.2.1: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz#4cfea60fe7dd0ad8e816e1ed026c1d5251b512c1" integrity sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ== -eslint@^9.34.0: - version "9.39.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.39.0.tgz#33c90ddf62b64e1e3f83b689934b336f21b5f0e5" - integrity sha512-iy2GE3MHrYTL5lrCtMZ0X1KLEKKUjmK0kzwcnefhR66txcEmXZD2YWgR5GNdcEwkNx3a0siYkSvl0vIC+Svjmg== +eslint@^9.39.1: + version "9.39.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.39.1.tgz#be8bf7c6de77dcc4252b5a8dcb31c2efff74a6e5" + integrity sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g== dependencies: "@eslint-community/eslint-utils" "^4.8.0" "@eslint-community/regexpp" "^4.12.1" @@ -4220,7 +4375,7 @@ eslint@^9.34.0: "@eslint/config-helpers" "^0.4.2" "@eslint/core" "^0.17.0" "@eslint/eslintrc" "^3.3.1" - "@eslint/js" "9.39.0" + "@eslint/js" "9.39.1" "@eslint/plugin-kit" "^0.4.1" "@humanfs/node" "^0.16.6" "@humanwhocodes/module-importer" "^1.0.1" @@ -4329,23 +4484,24 @@ execa@^5.0.0, execa@^5.1.1: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== - -expect@^29.0.0, expect@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" - integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== - dependencies: - "@jest/expect-utils" "^29.7.0" - jest-get-type "^29.6.3" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - -express@5.1.0, express@^5.1.0: +exit-x@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/exit-x/-/exit-x-0.2.2.tgz#1f9052de3b8d99a696b10dad5bced9bdd5c3aa64" + integrity sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ== + +expect@30.2.0, expect@^30.0.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-30.2.0.tgz#d4013bed267013c14bc1199cec8aa57cee9b5869" + integrity sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw== + dependencies: + "@jest/expect-utils" "30.2.0" + "@jest/get-type" "30.1.0" + jest-matcher-utils "30.2.0" + jest-message-util "30.2.0" + jest-mock "30.2.0" + jest-util "30.2.0" + +express@5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/express/-/express-5.1.0.tgz#d31beaf715a0016f0d53f47d3b4d7acf28c75cc9" integrity sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA== @@ -4378,6 +4534,40 @@ express@5.1.0, express@^5.1.0: type-is "^2.0.1" vary "^1.1.2" +express@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/express/-/express-5.2.1.tgz#8f21d15b6d327f92b4794ecf8cb08a72f956ac04" + integrity sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw== + dependencies: + accepts "^2.0.0" + body-parser "^2.2.1" + content-disposition "^1.0.0" + content-type "^1.0.5" + cookie "^0.7.1" + cookie-signature "^1.2.1" + debug "^4.4.0" + depd "^2.0.0" + encodeurl "^2.0.0" + escape-html "^1.0.3" + etag "^1.8.1" + finalhandler "^2.1.0" + fresh "^2.0.0" + http-errors "^2.0.0" + merge-descriptors "^2.0.0" + mime-types "^3.0.0" + on-finished "^2.4.1" + once "^1.4.0" + parseurl "^1.3.3" + proxy-addr "^2.0.7" + qs "^6.14.0" + range-parser "^1.2.1" + router "^2.2.0" + send "^1.1.0" + serve-static "^2.2.0" + statuses "^2.0.1" + type-is "^2.0.1" + vary "^1.1.2" + ext-list@^2.0.0: version "2.2.2" resolved "https://registry.yarnpkg.com/ext-list/-/ext-list-2.2.2.tgz#0b98e64ed82f5acf0f2931babf69212ef52ddd37" @@ -4408,7 +4598,7 @@ fast-fifo@^1.2.0, fast-fifo@^1.3.2: resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c" integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== -fast-glob@^3.2.9, fast-glob@^3.3.2: +fast-glob@^3.2.9: version "3.3.3" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818" integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== @@ -4453,7 +4643,7 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" -fb-watchman@^2.0.0: +fb-watchman@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== @@ -4471,9 +4661,9 @@ fflate@^0.8.2: integrity sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A== figlet@^1.5.2: - version "1.9.3" - resolved "https://registry.yarnpkg.com/figlet/-/figlet-1.9.3.tgz#d30906aa6017608e924e7fb82ca6c11802f55680" - integrity sha512-majPgOpVtrZN1iyNGbsUP6bOtZ6eaJgg5HHh0vFvm5DJhh8dc+FJpOC4GABvMZ/A7XHAJUuJujhgUY/2jPWgMA== + version "1.9.4" + resolved "https://registry.yarnpkg.com/figlet/-/figlet-1.9.4.tgz#2f642d6ba473b186cb6b9052c180045ba638685d" + integrity sha512-uN6QE+TrzTAHC1IWTyrc4FfGo2KH/82J8Jl1tyKB7+z5DBit/m3D++Iu5lg91qJMnQQ3vpJrj5gxcK/pk4R9tQ== dependencies: commander "^14.0.0" @@ -4484,13 +4674,13 @@ file-entry-cache@^8.0.0: dependencies: flat-cache "^4.0.0" -file-type@21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-21.0.0.tgz#b6c5990064bc4b704f8e5c9b6010c59064d268bc" - integrity sha512-ek5xNX2YBYlXhiUXui3D/BXa3LdqPmoLJ7rqEx2bKJ7EAUEfmXgW0Das7Dc6Nr9MvqaOnIqiPV0mZk/r/UpNAg== +file-type@21.1.0: + version "21.1.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-21.1.0.tgz#fb659aca041d3313bf2ae5336eeb008a2e0aa229" + integrity sha512-boU4EHmP3JXkwDo4uhyBhTt5pPstxB6eEXKJBu2yu2l7aAMMm7QQYQEzssJmKReZYrFdFOJS8koVo6bXIBGDqA== dependencies: - "@tokenizer/inflate" "^0.2.7" - strtok3 "^10.2.2" + "@tokenizer/inflate" "^0.3.1" + strtok3 "^10.3.1" token-types "^6.0.0" uint8array-extras "^1.4.0" @@ -4524,9 +4714,9 @@ fill-range@^7.1.1: to-regex-range "^5.0.1" finalhandler@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-2.1.0.tgz#72306373aa89d05a8242ed569ed86a1bff7c561f" - integrity sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q== + version "2.1.1" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-2.1.1.tgz#a2c517a6559852bcdb06d1f8bd7f51b68fad8099" + integrity sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA== dependencies: debug "^4.4.0" encodeurl "^2.0.0" @@ -4576,7 +4766,7 @@ follow-redirects@^1.15.6: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.11.tgz#777d73d72a92f8ec4d2e410eb47352a56b8e8340" integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ== -foreground-child@^3.3.1: +foreground-child@^3.1.0: version "3.3.1" resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== @@ -4608,9 +4798,9 @@ form-data-encoder@^2.1.2: integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== form-data@^4.0.0, form-data@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.4.tgz#784cdcce0669a9d68e94d11ac4eea98088edd2c4" - integrity sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow== + version "4.0.5" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.5.tgz#b49e48858045ff4cbf6b03e1805cebcad3679053" + integrity sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" @@ -4665,7 +4855,7 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@^2.3.2: +fsevents@^2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== @@ -4750,19 +4940,28 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@11.0.3: - version "11.0.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-11.0.3.tgz#9d8087e6d72ddb3c4707b1d2778f80ea3eaefcd6" - integrity sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA== +glob@13.0.0: + version "13.0.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-13.0.0.tgz#9d9233a4a274fc28ef7adce5508b7ef6237a1be3" + integrity sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA== dependencies: - foreground-child "^3.3.1" - jackspeak "^4.1.1" - minimatch "^10.0.3" + minimatch "^10.1.1" minipass "^7.1.2" - package-json-from-dist "^1.0.0" path-scurry "^2.0.0" -glob@^7.1.3, glob@^7.1.4: +glob@^10.3.10: + version "10.5.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.5.0.tgz#8ec0355919cd3338c28428a23d4f24ecc5fe738c" + integrity sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg== + dependencies: + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" + +glob@^7.1.4: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -4818,7 +5017,7 @@ got@^13.0.0: p-cancelable "^3.0.0" responselike "^3.0.0" -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.9: +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -4874,16 +5073,16 @@ http-cache-semantics@^4.1.1: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz#205f4db64f8562b76a4ff9235aa5279839a09dd5" integrity sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ== -http-errors@2.0.0, http-errors@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== +http-errors@^2.0.0, http-errors@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.1.tgz#36d2f65bc909c8790018dd36fb4d93da6caae06b" + integrity sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ== dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" + depd "~2.0.0" + inherits "~2.0.4" + setprototypeof "~1.2.0" + statuses "~2.0.2" + toidentifier "~1.0.1" http2-wrapper@^2.1.10: version "2.2.1" @@ -4898,20 +5097,13 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -iconv-lite@0.7.0, iconv-lite@^0.7.0: +iconv-lite@^0.7.0, iconv-lite@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.7.0.tgz#c50cd80e6746ca8115eb98743afa81aa0e147a3e" integrity sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" -iconv-lite@^0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - ieee754@^1.1.13, ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" @@ -4935,7 +5127,7 @@ import-fresh@^3.2.1, import-fresh@^3.3.0: parent-module "^1.0.0" resolve-from "^4.0.0" -import-local@^3.0.2: +import-local@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260" integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== @@ -4956,7 +5148,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4: +inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -5000,7 +5192,7 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-generator-fn@^2.0.0: +is-generator-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== @@ -5057,18 +5249,7 @@ istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== -istanbul-lib-instrument@^5.0.4: - version "5.2.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" - integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-instrument@^6.0.0: +istanbul-lib-instrument@^6.0.0, istanbul-lib-instrument@^6.0.2: version "6.0.3" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz#fa15401df6c15874bcb2105f773325d78c666765" integrity sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q== @@ -5088,14 +5269,14 @@ istanbul-lib-report@^3.0.0: make-dir "^4.0.0" supports-color "^7.1.0" -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== +istanbul-lib-source-maps@^5.0.0: + version "5.0.6" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz#acaef948df7747c8eb5fbf1265cb980f6353a441" + integrity sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A== dependencies: + "@jridgewell/trace-mapping" "^0.3.23" debug "^4.1.1" istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" istanbul-reports@^3.1.3: version "3.2.0" @@ -5110,396 +5291,396 @@ iterare@1.2.1: resolved "https://registry.yarnpkg.com/iterare/-/iterare-1.2.1.tgz#139c400ff7363690e33abffa33cbba8920f00042" integrity sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q== -jackspeak@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-4.1.1.tgz#96876030f450502047fc7e8c7fcf8ce8124e43ae" - integrity sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ== +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== dependencies: "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" -jest-changed-files@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a" - integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w== +jest-changed-files@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-30.2.0.tgz#602266e478ed554e1e1469944faa7efd37cee61c" + integrity sha512-L8lR1ChrRnSdfeOvTrwZMlnWV8G/LLjQ0nG9MBclwWZidA2N5FviRki0Bvh20WRMOX31/JYvzdqTJrk5oBdydQ== dependencies: - execa "^5.0.0" - jest-util "^29.7.0" + execa "^5.1.1" + jest-util "30.2.0" p-limit "^3.1.0" -jest-circus@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a" - integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw== +jest-circus@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-30.2.0.tgz#98b8198b958748a2f322354311023d1d02e7603f" + integrity sha512-Fh0096NC3ZkFx05EP2OXCxJAREVxj1BcW/i6EWqqymcgYKWjyyDpral3fMxVcHXg6oZM7iULer9wGRFvfpl+Tg== dependencies: - "@jest/environment" "^29.7.0" - "@jest/expect" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/types" "^29.6.3" + "@jest/environment" "30.2.0" + "@jest/expect" "30.2.0" + "@jest/test-result" "30.2.0" + "@jest/types" "30.2.0" "@types/node" "*" - chalk "^4.0.0" + chalk "^4.1.2" co "^4.6.0" - dedent "^1.0.0" - is-generator-fn "^2.0.0" - jest-each "^29.7.0" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-runtime "^29.7.0" - jest-snapshot "^29.7.0" - jest-util "^29.7.0" + dedent "^1.6.0" + is-generator-fn "^2.1.0" + jest-each "30.2.0" + jest-matcher-utils "30.2.0" + jest-message-util "30.2.0" + jest-runtime "30.2.0" + jest-snapshot "30.2.0" + jest-util "30.2.0" p-limit "^3.1.0" - pretty-format "^29.7.0" - pure-rand "^6.0.0" + pretty-format "30.2.0" + pure-rand "^7.0.0" slash "^3.0.0" - stack-utils "^2.0.3" + stack-utils "^2.0.6" -jest-cli@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995" - integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg== +jest-cli@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-30.2.0.tgz#1780f8e9d66bf84a10b369aea60aeda7697dcc67" + integrity sha512-Os9ukIvADX/A9sLt6Zse3+nmHtHaE6hqOsjQtNiugFTbKRHYIYtZXNGNK9NChseXy7djFPjndX1tL0sCTlfpAA== dependencies: - "@jest/core" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/types" "^29.6.3" - chalk "^4.0.0" - create-jest "^29.7.0" - exit "^0.1.2" - import-local "^3.0.2" - jest-config "^29.7.0" - jest-util "^29.7.0" - jest-validate "^29.7.0" - yargs "^17.3.1" - -jest-config@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f" - integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ== - dependencies: - "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.7.0" - "@jest/types" "^29.6.3" - babel-jest "^29.7.0" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-circus "^29.7.0" - jest-environment-node "^29.7.0" - jest-get-type "^29.6.3" - jest-regex-util "^29.6.3" - jest-resolve "^29.7.0" - jest-runner "^29.7.0" - jest-util "^29.7.0" - jest-validate "^29.7.0" - micromatch "^4.0.4" + "@jest/core" "30.2.0" + "@jest/test-result" "30.2.0" + "@jest/types" "30.2.0" + chalk "^4.1.2" + exit-x "^0.2.2" + import-local "^3.2.0" + jest-config "30.2.0" + jest-util "30.2.0" + jest-validate "30.2.0" + yargs "^17.7.2" + +jest-config@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-30.2.0.tgz#29df8c50e2ad801cc59c406b50176c18c362a90b" + integrity sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA== + dependencies: + "@babel/core" "^7.27.4" + "@jest/get-type" "30.1.0" + "@jest/pattern" "30.0.1" + "@jest/test-sequencer" "30.2.0" + "@jest/types" "30.2.0" + babel-jest "30.2.0" + chalk "^4.1.2" + ci-info "^4.2.0" + deepmerge "^4.3.1" + glob "^10.3.10" + graceful-fs "^4.2.11" + jest-circus "30.2.0" + jest-docblock "30.2.0" + jest-environment-node "30.2.0" + jest-regex-util "30.0.1" + jest-resolve "30.2.0" + jest-runner "30.2.0" + jest-util "30.2.0" + jest-validate "30.2.0" + micromatch "^4.0.8" parse-json "^5.2.0" - pretty-format "^29.7.0" + pretty-format "30.2.0" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" - integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== +jest-diff@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-30.2.0.tgz#e3ec3a6ea5c5747f605c9e874f83d756cba36825" + integrity sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A== dependencies: - chalk "^4.0.0" - diff-sequences "^29.6.3" - jest-get-type "^29.6.3" - pretty-format "^29.7.0" + "@jest/diff-sequences" "30.0.1" + "@jest/get-type" "30.1.0" + chalk "^4.1.2" + pretty-format "30.2.0" -jest-docblock@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a" - integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g== +jest-docblock@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-30.2.0.tgz#42cd98d69f887e531c7352309542b1ce4ee10256" + integrity sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA== dependencies: - detect-newline "^3.0.0" + detect-newline "^3.1.0" -jest-each@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1" - integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ== +jest-each@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-30.2.0.tgz#39e623ae71641c2ac3ee69b3ba3d258fce8e768d" + integrity sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ== dependencies: - "@jest/types" "^29.6.3" - chalk "^4.0.0" - jest-get-type "^29.6.3" - jest-util "^29.7.0" - pretty-format "^29.7.0" - -jest-environment-node@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376" - integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/fake-timers" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-mock "^29.7.0" - jest-util "^29.7.0" + "@jest/get-type" "30.1.0" + "@jest/types" "30.2.0" + chalk "^4.1.2" + jest-util "30.2.0" + pretty-format "30.2.0" -jest-get-type@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" - integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== +jest-environment-node@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-30.2.0.tgz#3def7980ebd2fd86e74efd4d2e681f55ab38da0f" + integrity sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA== + dependencies: + "@jest/environment" "30.2.0" + "@jest/fake-timers" "30.2.0" + "@jest/types" "30.2.0" + "@types/node" "*" + jest-mock "30.2.0" + jest-util "30.2.0" + jest-validate "30.2.0" -jest-haste-map@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104" - integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== +jest-haste-map@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-30.2.0.tgz#808e3889f288603ac70ff0ac047598345a66022e" + integrity sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw== dependencies: - "@jest/types" "^29.6.3" - "@types/graceful-fs" "^4.1.3" + "@jest/types" "30.2.0" "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^29.6.3" - jest-util "^29.7.0" - jest-worker "^29.7.0" - micromatch "^4.0.4" + anymatch "^3.1.3" + fb-watchman "^2.0.2" + graceful-fs "^4.2.11" + jest-regex-util "30.0.1" + jest-util "30.2.0" + jest-worker "30.2.0" + micromatch "^4.0.8" walker "^1.0.8" optionalDependencies: - fsevents "^2.3.2" + fsevents "^2.3.3" -jest-leak-detector@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728" - integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw== +jest-leak-detector@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-30.2.0.tgz#292fdca7b7c9cf594e1e570ace140b01d8beb736" + integrity sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ== dependencies: - jest-get-type "^29.6.3" - pretty-format "^29.7.0" + "@jest/get-type" "30.1.0" + pretty-format "30.2.0" -jest-matcher-utils@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" - integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== +jest-matcher-utils@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-30.2.0.tgz#69a0d4c271066559ec8b0d8174829adc3f23a783" + integrity sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg== dependencies: - chalk "^4.0.0" - jest-diff "^29.7.0" - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - -jest-message-util@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" - integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.6.3" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^29.7.0" + "@jest/get-type" "30.1.0" + chalk "^4.1.2" + jest-diff "30.2.0" + pretty-format "30.2.0" + +jest-message-util@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-30.2.0.tgz#fc97bf90d11f118b31e6131e2b67fc4f39f92152" + integrity sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw== + dependencies: + "@babel/code-frame" "^7.27.1" + "@jest/types" "30.2.0" + "@types/stack-utils" "^2.0.3" + chalk "^4.1.2" + graceful-fs "^4.2.11" + micromatch "^4.0.8" + pretty-format "30.2.0" slash "^3.0.0" - stack-utils "^2.0.3" + stack-utils "^2.0.6" -jest-mock@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347" - integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== +jest-mock@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-30.2.0.tgz#69f991614eeb4060189459d3584f710845bff45e" + integrity sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw== dependencies: - "@jest/types" "^29.6.3" + "@jest/types" "30.2.0" "@types/node" "*" - jest-util "^29.7.0" + jest-util "30.2.0" -jest-pnp-resolver@^1.2.2: +jest-pnp-resolver@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== -jest-regex-util@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52" - integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== +jest-regex-util@30.0.1: + version "30.0.1" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-30.0.1.tgz#f17c1de3958b67dfe485354f5a10093298f2a49b" + integrity sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA== -jest-resolve-dependencies@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428" - integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA== +jest-resolve-dependencies@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-30.2.0.tgz#3370e2c0b49cc560f6a7e8ec3a59dd99525e1a55" + integrity sha512-xTOIGug/0RmIe3mmCqCT95yO0vj6JURrn1TKWlNbhiAefJRWINNPgwVkrVgt/YaerPzY3iItufd80v3lOrFJ2w== dependencies: - jest-regex-util "^29.6.3" - jest-snapshot "^29.7.0" + jest-regex-util "30.0.1" + jest-snapshot "30.2.0" -jest-resolve@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30" - integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== +jest-resolve@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-30.2.0.tgz#2e2009cbd61e8f1f003355d5ec87225412cebcd7" + integrity sha512-TCrHSxPlx3tBY3hWNtRQKbtgLhsXa1WmbJEqBlTBrGafd5fiQFByy2GNCEoGR+Tns8d15GaL9cxEzKOO3GEb2A== dependencies: - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-pnp-resolver "^1.2.2" - jest-util "^29.7.0" - jest-validate "^29.7.0" - resolve "^1.20.0" - resolve.exports "^2.0.0" + chalk "^4.1.2" + graceful-fs "^4.2.11" + jest-haste-map "30.2.0" + jest-pnp-resolver "^1.2.3" + jest-util "30.2.0" + jest-validate "30.2.0" slash "^3.0.0" - -jest-runner@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e" - integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ== - dependencies: - "@jest/console" "^29.7.0" - "@jest/environment" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" + unrs-resolver "^1.7.11" + +jest-runner@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-30.2.0.tgz#c62b4c3130afa661789705e13a07bdbcec26a114" + integrity sha512-PqvZ2B2XEyPEbclp+gV6KO/F1FIFSbIwewRgmROCMBo/aZ6J1w8Qypoj2pEOcg3G2HzLlaP6VUtvwCI8dM3oqQ== + dependencies: + "@jest/console" "30.2.0" + "@jest/environment" "30.2.0" + "@jest/test-result" "30.2.0" + "@jest/transform" "30.2.0" + "@jest/types" "30.2.0" "@types/node" "*" - chalk "^4.0.0" + chalk "^4.1.2" emittery "^0.13.1" - graceful-fs "^4.2.9" - jest-docblock "^29.7.0" - jest-environment-node "^29.7.0" - jest-haste-map "^29.7.0" - jest-leak-detector "^29.7.0" - jest-message-util "^29.7.0" - jest-resolve "^29.7.0" - jest-runtime "^29.7.0" - jest-util "^29.7.0" - jest-watcher "^29.7.0" - jest-worker "^29.7.0" + exit-x "^0.2.2" + graceful-fs "^4.2.11" + jest-docblock "30.2.0" + jest-environment-node "30.2.0" + jest-haste-map "30.2.0" + jest-leak-detector "30.2.0" + jest-message-util "30.2.0" + jest-resolve "30.2.0" + jest-runtime "30.2.0" + jest-util "30.2.0" + jest-watcher "30.2.0" + jest-worker "30.2.0" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817" - integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/fake-timers" "^29.7.0" - "@jest/globals" "^29.7.0" - "@jest/source-map" "^29.6.3" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" +jest-runtime@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-30.2.0.tgz#395ea792cde048db1b0cd1a92dc9cb9f1921bf8a" + integrity sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg== + dependencies: + "@jest/environment" "30.2.0" + "@jest/fake-timers" "30.2.0" + "@jest/globals" "30.2.0" + "@jest/source-map" "30.0.1" + "@jest/test-result" "30.2.0" + "@jest/transform" "30.2.0" + "@jest/types" "30.2.0" "@types/node" "*" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-message-util "^29.7.0" - jest-mock "^29.7.0" - jest-regex-util "^29.6.3" - jest-resolve "^29.7.0" - jest-snapshot "^29.7.0" - jest-util "^29.7.0" + chalk "^4.1.2" + cjs-module-lexer "^2.1.0" + collect-v8-coverage "^1.0.2" + glob "^10.3.10" + graceful-fs "^4.2.11" + jest-haste-map "30.2.0" + jest-message-util "30.2.0" + jest-mock "30.2.0" + jest-regex-util "30.0.1" + jest-resolve "30.2.0" + jest-snapshot "30.2.0" + jest-util "30.2.0" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5" - integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw== - dependencies: - "@babel/core" "^7.11.6" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-jsx" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^29.7.0" - graceful-fs "^4.2.9" - jest-diff "^29.7.0" - jest-get-type "^29.6.3" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - natural-compare "^1.4.0" - pretty-format "^29.7.0" - semver "^7.5.3" - -jest-util@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" - integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== - dependencies: - "@jest/types" "^29.6.3" +jest-snapshot@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-30.2.0.tgz#266fbbb4b95fc4665ce6f32f1f38eeb39f4e26d0" + integrity sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA== + dependencies: + "@babel/core" "^7.27.4" + "@babel/generator" "^7.27.5" + "@babel/plugin-syntax-jsx" "^7.27.1" + "@babel/plugin-syntax-typescript" "^7.27.1" + "@babel/types" "^7.27.3" + "@jest/expect-utils" "30.2.0" + "@jest/get-type" "30.1.0" + "@jest/snapshot-utils" "30.2.0" + "@jest/transform" "30.2.0" + "@jest/types" "30.2.0" + babel-preset-current-node-syntax "^1.2.0" + chalk "^4.1.2" + expect "30.2.0" + graceful-fs "^4.2.11" + jest-diff "30.2.0" + jest-matcher-utils "30.2.0" + jest-message-util "30.2.0" + jest-util "30.2.0" + pretty-format "30.2.0" + semver "^7.7.2" + synckit "^0.11.8" + +jest-util@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-30.2.0.tgz#5142adbcad6f4e53c2776c067a4db3c14f913705" + integrity sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA== + dependencies: + "@jest/types" "30.2.0" "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" + chalk "^4.1.2" + ci-info "^4.2.0" + graceful-fs "^4.2.11" + picomatch "^4.0.2" -jest-validate@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c" - integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== +jest-validate@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-30.2.0.tgz#273eaaed4c0963b934b5b31e96289edda6e0a2ef" + integrity sha512-FBGWi7dP2hpdi8nBoWxSsLvBFewKAg0+uSQwBaof4Y4DPgBabXgpSYC5/lR7VmnIlSpASmCi/ntRWPbv7089Pw== dependencies: - "@jest/types" "^29.6.3" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^29.6.3" + "@jest/get-type" "30.1.0" + "@jest/types" "30.2.0" + camelcase "^6.3.0" + chalk "^4.1.2" leven "^3.1.0" - pretty-format "^29.7.0" + pretty-format "30.2.0" -jest-watcher@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2" - integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g== +jest-watcher@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-30.2.0.tgz#f9c055de48e18c979e7756a3917e596e2d69b07b" + integrity sha512-PYxa28dxJ9g777pGm/7PrbnMeA0Jr7osHP9bS7eJy9DuAjMgdGtxgf0uKMyoIsTWAkIbUW5hSDdJ3urmgXBqxg== dependencies: - "@jest/test-result" "^29.7.0" - "@jest/types" "^29.6.3" + "@jest/test-result" "30.2.0" + "@jest/types" "30.2.0" "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" + ansi-escapes "^4.3.2" + chalk "^4.1.2" emittery "^0.13.1" - jest-util "^29.7.0" - string-length "^4.0.1" + jest-util "30.2.0" + string-length "^4.0.2" -jest-worker@^27.4.5: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" - integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== +jest-worker@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-30.2.0.tgz#fd5c2a36ff6058ec8f74366ec89538cc99539d26" + integrity sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g== dependencies: "@types/node" "*" + "@ungap/structured-clone" "^1.3.0" + jest-util "30.2.0" merge-stream "^2.0.0" - supports-color "^8.0.0" + supports-color "^8.1.1" -jest-worker@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" - integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== dependencies: "@types/node" "*" - jest-util "^29.7.0" merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613" - integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== +jest@^30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-30.2.0.tgz#9f0a71e734af968f26952b5ae4b724af82681630" + integrity sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A== dependencies: - "@jest/core" "^29.7.0" - "@jest/types" "^29.6.3" - import-local "^3.0.2" - jest-cli "^29.7.0" + "@jest/core" "30.2.0" + "@jest/types" "30.2.0" + import-local "^3.2.0" + jest-cli "30.2.0" js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@4.1.0, js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== +js-yaml@4.1.1, js-yaml@^4.1.0, js-yaml@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" + integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== dependencies: argparse "^2.0.1" js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + version "3.14.2" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.2.tgz#77485ce1dd7f33c061fd1b16ecea23b55fcb04b0" + integrity sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg== dependencies: argparse "^1.0.7" esprima "^4.0.0" @@ -5553,12 +5734,12 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -jsonwebtoken@9.0.2, jsonwebtoken@^9.0.0: - version "9.0.2" - resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz#65ff91f4abef1784697d40952bb1998c504caaf3" - integrity sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ== +jsonwebtoken@9.0.3, jsonwebtoken@^9.0.0: + version "9.0.3" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.3.tgz#6cd57ab01e9b0ac07cb847d53d3c9b6ee31f7ae2" + integrity sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g== dependencies: - jws "^3.2.2" + jws "^4.0.1" lodash.includes "^4.3.0" lodash.isboolean "^3.0.3" lodash.isinteger "^4.0.4" @@ -5569,21 +5750,21 @@ jsonwebtoken@9.0.2, jsonwebtoken@^9.0.0: ms "^2.1.1" semver "^7.5.4" -jwa@^1.4.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.2.tgz#16011ac6db48de7b102777e57897901520eec7b9" - integrity sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw== +jwa@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-2.0.1.tgz#bf8176d1ad0cd72e0f3f58338595a13e110bc804" + integrity sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg== dependencies: buffer-equal-constant-time "^1.0.1" ecdsa-sig-formatter "1.0.11" safe-buffer "^5.0.1" -jws@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" - integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== +jws@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/jws/-/jws-4.0.1.tgz#07edc1be8fac20e677b283ece261498bd38f0690" + integrity sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA== dependencies: - jwa "^1.4.1" + jwa "^2.0.1" safe-buffer "^5.0.1" keyv@^4.5.3, keyv@^4.5.4: @@ -5598,11 +5779,6 @@ kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - knex@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/knex/-/knex-3.1.0.tgz#b6ddd5b5ad26a6315234a5b09ec38dc4a370bd8c" @@ -5637,9 +5813,9 @@ levn@^0.4.1: type-check "~0.4.0" libphonenumber-js@^1.11.1: - version "1.12.25" - resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.12.25.tgz#1af48b816082100bf88f47d342387fbac1f1a773" - integrity sha512-u90tUu/SEF8b+RaDKCoW7ZNFDakyBtFlX1ex3J+VH+ElWes/UaitJLt/w4jGu8uAE41lltV/s+kMVtywcMEg7g== + version "1.12.31" + resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.12.31.tgz#3cdb45641c6b77228dd1238f3d810c3bb5d91199" + integrity sha512-Z3IhgVgrqO1S5xPYM3K5XwbkDasU67/Vys4heW+lfSBALcUZjeIIzI8zCLifY+OCzSq+fpDdywMDa7z+4srJPQ== lines-and-columns@^1.1.6: version "1.2.4" @@ -5651,7 +5827,7 @@ load-esm@1.0.3: resolved "https://registry.yarnpkg.com/load-esm/-/load-esm-1.0.3.tgz#2073afe3da63902c323e80d9f135c301173ac92c" integrity sha512-v5xlu8eHD1+6r8EHTg6hfmO97LN8ugKtiXcy5e6oN72iD2r6u0RPfLl6fxM+7Wnh2ZRq15o0russMst44WauPA== -loader-runner@^4.2.0: +loader-runner@^4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.1.tgz#6c76ed29b0ccce9af379208299f07f876de737e3" integrity sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q== @@ -5738,10 +5914,15 @@ lowercase-keys@^3.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== +lru-cache@^10.2.0: + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + lru-cache@^11.0.0: - version "11.2.2" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.2.2.tgz#40fd37edffcfae4b2940379c0722dc6eeaa75f24" - integrity sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg== + version "11.2.4" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.2.4.tgz#ecb523ebb0e6f4d837c807ad1abaea8e0619770d" + integrity sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg== lru-cache@^5.1.1: version "5.1.1" @@ -5756,9 +5937,9 @@ lru-cache@^7.14.1: integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== lru.min@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/lru.min/-/lru.min-1.1.2.tgz#01ce1d72cc50c7faf8bd1f809ebf05d4331021eb" - integrity sha512-Nv9KddBcQSlQopmBHXSsZVY5xsdlZkdH/Iey0BlcBYggMd4two7cZnKOK9vmy3nY0O5RGH99z1PCeTpPqszUYg== + version "1.1.3" + resolved "https://registry.yarnpkg.com/lru.min/-/lru.min-1.1.3.tgz#c8c3d001dfb4cbe5b8d1f4bea207d4a320e5d76f" + integrity sha512-Lkk/vx6ak3rYkRR0Nhu4lFUT2VDnQSxBe8Hbl7f36358p6ow8Bnvr8lrLt98H8J1aGxfhbX4Fs5tYg2+FTwr5Q== magic-string@0.30.17: version "0.30.17" @@ -5828,7 +6009,7 @@ methods@^1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== -micromatch@^4.0.0, micromatch@^4.0.4, micromatch@^4.0.8: +micromatch@^4.0.0, micromatch@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== @@ -5836,10 +6017,10 @@ micromatch@^4.0.0, micromatch@^4.0.4, micromatch@^4.0.8: braces "^3.0.3" picomatch "^2.3.1" -mikro-orm@6.5.9: - version "6.5.9" - resolved "https://registry.yarnpkg.com/mikro-orm/-/mikro-orm-6.5.9.tgz#a72fe4310de789ca8979552c2ed53ed01ff929b7" - integrity sha512-qbEZsQG8HbGfBHeeSpmWGD+bcaZmYEE8TU3Mi9iXRoJ1yPBd6GXbUjBejMVUAkqzBL+LMZjE9sRyIG+Fg+kTvw== +mikro-orm@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/mikro-orm/-/mikro-orm-6.6.1.tgz#e3183241c51a14c9c7e39ea98081e7cca50881bc" + integrity sha512-AaYXM3M4/X/Jum/RlZXuI7QngQX8DhyY4LM5phV01PFMtFZAvKHzRr62IrOJVtmJiKYKEHWmEYpuc+bD4169Zg== mime-db@1.52.0: version "1.52.0" @@ -5859,9 +6040,9 @@ mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.24: mime-db "1.52.0" mime-types@^3.0.0, mime-types@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-3.0.1.tgz#b1d94d6997a9b32fd69ebaed0db73de8acb519ce" - integrity sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA== + version "3.0.2" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-3.0.2.tgz#39002d4182575d5af036ffa118100f2524b2e2ab" + integrity sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A== dependencies: mime-db "^1.54.0" @@ -5885,7 +6066,7 @@ mimic-response@^4.0.0: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-4.0.0.tgz#35468b19e7c75d10f5165ea25e75a5ceea7cf70f" integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== -minimatch@^10.0.1, minimatch@^10.0.3: +minimatch@^10.0.1, minimatch@^10.1.1: version "10.1.1" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.1.1.tgz#e6e61b9b0c1dcab116b5a7d1458e8b6ae9e73a55" integrity sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ== @@ -5911,7 +6092,7 @@ minimist@^1.2.5, minimist@^1.2.6: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -minipass@^7.1.2: +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== @@ -5973,6 +6154,11 @@ named-placeholders@^1.1.3: dependencies: lru-cache "^7.14.1" +napi-postinstall@^0.3.0: + version "0.3.4" + resolved "https://registry.yarnpkg.com/napi-postinstall/-/napi-postinstall-0.3.4.tgz#7af256d6588b5f8e952b9190965d6b019653bbb9" + integrity sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -6015,7 +6201,7 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== -node-releases@^2.0.26: +node-releases@^2.0.27: version "2.0.27" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.27.tgz#eedca519205cf20f650f61d56b070db111231e4e" integrity sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA== @@ -6219,10 +6405,18 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-2.0.0.tgz#9f052289f23ad8bf9397a2a0425e7b8615c58580" - integrity sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg== + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-2.0.1.tgz#4b6572376cfd8b811fca9cd1f5c24b3cbac0fe10" + integrity sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA== dependencies: lru-cache "^11.0.0" minipass "^7.1.2" @@ -6262,17 +6456,17 @@ picomatch@4.0.2: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== -picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -picomatch@^4.0.3: +picomatch@^4.0.2, picomatch@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042" integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== -pirates@^4.0.4: +pirates@^4.0.7: version "4.0.7" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.7.tgz#643b4a18c4257c8a65104b73f3049ce9a0a15e22" integrity sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA== @@ -6309,26 +6503,18 @@ prettier-linter-helpers@^1.0.0: fast-diff "^1.1.2" prettier@^3.4.2: - version "3.6.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.6.2.tgz#ccda02a1003ebbb2bfda6f83a074978f608b9393" - integrity sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ== - -pretty-format@^29.0.0, pretty-format@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" - integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== - dependencies: - "@jest/schemas" "^29.6.3" - ansi-styles "^5.0.0" - react-is "^18.0.0" + version "3.7.4" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.7.4.tgz#d2f8335d4b1cec47e1c8098645411b0c9dff9c0f" + integrity sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA== -prompts@^2.0.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== +pretty-format@30.2.0, pretty-format@^30.0.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-30.2.0.tgz#2d44fe6134529aed18506f6d11509d8a62775ebe" + integrity sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA== dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" + "@jest/schemas" "30.0.5" + ansi-styles "^5.2.0" + react-is "^18.3.1" proxy-addr@^2.0.7: version "2.0.7" @@ -6348,10 +6534,10 @@ punycode@^2.1.0: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== -pure-rand@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.1.0.tgz#d173cf23258231976ccbdb05247c9787957604f2" - integrity sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA== +pure-rand@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-7.0.1.tgz#6f53a5a9e3e4a47445822af96821ca509ed37566" + integrity sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ== qs@^6.11.2, qs@^6.14.0: version "6.14.0" @@ -6382,17 +6568,17 @@ range-parser@^1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-3.0.1.tgz#ced5cd79a77bbb0496d707f2a0f9e1ae3aecdcb1" - integrity sha512-9G8cA+tuMS75+6G/TzW8OtLzmBDMo8p1JRxN5AZ+LAp8uxGA8V8GZm4GQ4/N5QNQEnLmg6SS7wyuSmbKepiKqA== +raw-body@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-3.0.2.tgz#3e3ada5ae5568f9095d84376fd3a49b8fb000a51" + integrity sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA== dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.7.0" - unpipe "1.0.0" + bytes "~3.1.2" + http-errors "~2.0.1" + iconv-lite "~0.7.0" + unpipe "~1.0.0" -react-is@^18.0.0: +react-is@^18.3.1: version "18.3.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== @@ -6455,11 +6641,6 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve.exports@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.3.tgz#41955e6f1b4013b7586f873749a635dea07ebe3f" - integrity sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A== - resolve@^1.20.0: version "1.22.11" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.11.tgz#aad857ce1ffb8bfa9b0b1ac29f1156383f68c262" @@ -6540,7 +6721,7 @@ schema-utils@^3.1.1: ajv "^6.12.5" ajv-keywords "^3.5.2" -schema-utils@^4.3.0, schema-utils@^4.3.2: +schema-utils@^4.3.0, schema-utils@^4.3.3: version "4.3.3" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.3.tgz#5b1850912fa31df90716963d45d9121fdfc09f46" integrity sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA== @@ -6569,12 +6750,12 @@ semver-truncate@^3.0.0: dependencies: semver "^7.3.5" -semver@^6.3.0, semver@^6.3.1: +semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.4, semver@^7.3.5, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.7.3: +semver@^7.3.4, semver@^7.3.5, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.7.2, semver@^7.7.3: version "7.7.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz#4b5f4143d007633a8dc671cd0a6ef9147b8bb946" integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q== @@ -6618,7 +6799,7 @@ serve-static@^2.2.0: parseurl "^1.3.3" send "^1.2.0" -setprototypeof@1.2.0: +setprototypeof@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== @@ -6675,7 +6856,7 @@ side-channel@^1.1.0: side-channel-map "^1.0.1" side-channel-weakmap "^1.0.2" -signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: +signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== @@ -6685,11 +6866,6 @@ signal-exit@^4.0.1, signal-exit@^4.1.0: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - slash@3.0.0, slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -6750,19 +6926,14 @@ sqlstring@2.3.3, sqlstring@^2.3.2: resolved "https://registry.yarnpkg.com/sqlstring/-/sqlstring-2.3.3.tgz#2ddc21f03bce2c387ed60680e739922c65751d0c" integrity sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg== -stack-utils@^2.0.3: +stack-utils@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== dependencies: escape-string-regexp "^2.0.0" -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -statuses@^2.0.1: +statuses@^2.0.1, statuses@~2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.2.tgz#8f75eecef765b5e1cfcdc080da59409ed424e382" integrity sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw== @@ -6781,7 +6952,7 @@ streamx@^2.15.0: fast-fifo "^1.3.2" text-decoder "^1.1.0" -string-length@^4.0.1: +string-length@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== @@ -6877,7 +7048,7 @@ strnum@^2.1.0: resolved "https://registry.yarnpkg.com/strnum/-/strnum-2.1.1.tgz#cf2a6e0cf903728b8b2c4b971b7e36b4e82d46ab" integrity sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw== -strtok3@^10.2.0, strtok3@^10.2.2: +strtok3@^10.2.0, strtok3@^10.3.1: version "10.3.4" resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-10.3.4.tgz#793ebd0d59df276a085586134b73a406e60be9c1" integrity sha512-KIy5nylvC5le1OdaaoCJ07L+8iQzJHGH6pWDuzS+d07Cu7n1MZ2x26P8ZKIWfbK02+XIL8Mp4RkWeqdUCrDMfg== @@ -6914,7 +7085,7 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-color@^8.0.0: +supports-color@^8.0.0, supports-color@^8.1.1: version "8.1.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== @@ -6926,10 +7097,10 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -swagger-ui-dist@5.29.4: - version "5.29.4" - resolved "https://registry.yarnpkg.com/swagger-ui-dist/-/swagger-ui-dist-5.29.4.tgz#ba86ff7e18b6b23eecfc32a81220f032d748b468" - integrity sha512-gJFDz/gyLOCQtWwAgqs6Rk78z9ONnqTnlW11gimG9nLap8drKa3AJBKpzIQMIjl5PD2Ix+Tn+mc/tfoT2tgsng== +swagger-ui-dist@5.30.2: + version "5.30.2" + resolved "https://registry.yarnpkg.com/swagger-ui-dist/-/swagger-ui-dist-5.30.2.tgz#b146c5bd92cc712340f8847b546ea64d785efeb2" + integrity sha512-HWCg1DTNE/Nmapt+0m2EPXFwNKNeKK4PwMjkwveN/zn1cV2Kxi9SURd+m0SpdcSgWEK/O64sf8bzXdtUhigtHA== dependencies: "@scarf/scarf" "=1.4.0" @@ -6938,14 +7109,14 @@ symbol-observable@4.0.0: resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205" integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== -synckit@^0.11.7: +synckit@^0.11.7, synckit@^0.11.8: version "0.11.11" resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.11.11.tgz#c0b619cf258a97faa209155d9cd1699b5c998cb0" integrity sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw== dependencies: "@pkgr/core" "^0.2.9" -tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: +tapable@^2.2.0, tapable@^2.2.1, tapable@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.3.0.tgz#7e3ea6d5ca31ba8e078b560f0d83ce9a14aa8be6" integrity sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg== @@ -6965,9 +7136,9 @@ tarn@^3.0.2: integrity sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ== terser-webpack-plugin@^5.3.11: - version "5.3.14" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz#9031d48e57ab27567f02ace85c7d690db66c3e06" - integrity sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw== + version "5.3.15" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.15.tgz#0a26860b765eaffa8e840170aabc5b3a3f6f6bb9" + integrity sha512-PGkOdpRFK+rb1TzVz+msVhw4YMRT9txLF4kRqvJhGhCM324xuR3REBSHALN+l+sAhKUmz0aotnjp5D+P83mLhQ== dependencies: "@jridgewell/trace-mapping" "^0.3.25" jest-worker "^27.4.5" @@ -6976,9 +7147,9 @@ terser-webpack-plugin@^5.3.11: terser "^5.31.1" terser@^5.31.1: - version "5.44.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.44.0.tgz#ebefb8e5b8579d93111bfdfc39d2cf63879f4a82" - integrity sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w== + version "5.44.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.44.1.tgz#e391e92175c299b8c284ad6ded609e37303b0a9c" + integrity sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.15.0" @@ -7011,7 +7182,7 @@ tildify@2.0.0: resolved "https://registry.yarnpkg.com/tildify/-/tildify-2.0.0.tgz#f205f3674d677ce698b7067a99e949ce03b4754a" integrity sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw== -tinyglobby@^0.2.13, tinyglobby@^0.2.14: +tinyglobby@^0.2.13, tinyglobby@^0.2.14, tinyglobby@^0.2.15: version "0.2.15" resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.15.tgz#e228dd1e638cea993d2fdb4fcd2d4602a79951c2" integrity sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ== @@ -7031,7 +7202,7 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -toidentifier@1.0.1: +toidentifier@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== @@ -7045,20 +7216,15 @@ token-types@^6.0.0: "@tokenizer/token" "^0.3.0" ieee754 "^1.2.1" -tree-kill@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" - integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== - ts-api-utils@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.1.0.tgz#595f7094e46eed364c13fd23e75f9513d29baf91" integrity sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ== ts-jest@^29.4.0: - version "29.4.5" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.4.5.tgz#a6b0dc401e521515d5342234be87f1ca96390a6f" - integrity sha512-HO3GyiWn2qvTQA4kTgjDcXiMwYQt68a1Y8+JuLRVpdIzm+UOLSHgl/XqR4c6nzJkq5rOkjc02O2I7P7l/Yof0Q== + version "29.4.6" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.4.6.tgz#51cb7c133f227396818b71297ad7409bb77106e9" + integrity sha512-fSpWtOO/1AjSNQguk43hb/JCo16oJDnMJf3CdEGNkqsEX3t0KX96xvyX1D7PfLCpVoKu4MfVrqUkFyblYoY4lA== dependencies: bs-logger "^0.2.6" fast-json-stable-stringify "^2.1.0" @@ -7127,7 +7293,7 @@ tsconfig-paths@4.2.0, tsconfig-paths@^4.1.2, tsconfig-paths@^4.2.0: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@2.8.1, tslib@^2.1.0, tslib@^2.4.1, tslib@^2.6.2: +tslib@2.8.1, tslib@^2.1.0, tslib@^2.4.0, tslib@^2.4.1, tslib@^2.6.2: version "2.8.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== @@ -7162,7 +7328,7 @@ type-is@^1.6.18: media-typer "0.3.0" mime-types "~2.1.24" -type-is@^2.0.0, type-is@^2.0.1: +type-is@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/type-is/-/type-is-2.0.1.tgz#64f6cf03f92fce4015c2b224793f6bdd4b068c97" integrity sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw== @@ -7177,21 +7343,16 @@ typedarray@^0.0.6: integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== typescript-eslint@^8.34.1: - version "8.46.2" - resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.46.2.tgz#da1adec683ba93a1b6c3850a4efb0922ffbc627d" - integrity sha512-vbw8bOmiuYNdzzV3lsiWv6sRwjyuKJMQqWulBOU7M0RrxedXledX8G8kBbQeiOYDnTfiXz0Y4081E1QMNB6iQg== + version "8.48.1" + resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.48.1.tgz#436028540f5859755687b8b1b28e19ed9194aaad" + integrity sha512-FbOKN1fqNoXp1hIl5KYpObVrp0mCn+CLgn479nmu2IsRMrx2vyv74MmsBLVlhg8qVwNFGbXSp8fh1zp8pEoC2A== dependencies: - "@typescript-eslint/eslint-plugin" "8.46.2" - "@typescript-eslint/parser" "8.46.2" - "@typescript-eslint/typescript-estree" "8.46.2" - "@typescript-eslint/utils" "8.46.2" - -typescript@5.8.3: - version "5.8.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.3.tgz#92f8a3e5e3cf497356f4178c34cd65a7f5e8440e" - integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ== + "@typescript-eslint/eslint-plugin" "8.48.1" + "@typescript-eslint/parser" "8.48.1" + "@typescript-eslint/typescript-estree" "8.48.1" + "@typescript-eslint/utils" "8.48.1" -typescript@^5.7.3: +typescript@5.9.3, typescript@^5.7.3: version "5.9.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== @@ -7236,15 +7397,42 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== -unpipe@1.0.0: +unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== -update-browserslist-db@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz#7802aa2ae91477f255b86e0e46dbc787a206ad4a" - integrity sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A== +unrs-resolver@^1.7.11: + version "1.11.1" + resolved "https://registry.yarnpkg.com/unrs-resolver/-/unrs-resolver-1.11.1.tgz#be9cd8686c99ef53ecb96df2a473c64d304048a9" + integrity sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg== + dependencies: + napi-postinstall "^0.3.0" + optionalDependencies: + "@unrs/resolver-binding-android-arm-eabi" "1.11.1" + "@unrs/resolver-binding-android-arm64" "1.11.1" + "@unrs/resolver-binding-darwin-arm64" "1.11.1" + "@unrs/resolver-binding-darwin-x64" "1.11.1" + "@unrs/resolver-binding-freebsd-x64" "1.11.1" + "@unrs/resolver-binding-linux-arm-gnueabihf" "1.11.1" + "@unrs/resolver-binding-linux-arm-musleabihf" "1.11.1" + "@unrs/resolver-binding-linux-arm64-gnu" "1.11.1" + "@unrs/resolver-binding-linux-arm64-musl" "1.11.1" + "@unrs/resolver-binding-linux-ppc64-gnu" "1.11.1" + "@unrs/resolver-binding-linux-riscv64-gnu" "1.11.1" + "@unrs/resolver-binding-linux-riscv64-musl" "1.11.1" + "@unrs/resolver-binding-linux-s390x-gnu" "1.11.1" + "@unrs/resolver-binding-linux-x64-gnu" "1.11.1" + "@unrs/resolver-binding-linux-x64-musl" "1.11.1" + "@unrs/resolver-binding-wasm32-wasi" "1.11.1" + "@unrs/resolver-binding-win32-arm64-msvc" "1.11.1" + "@unrs/resolver-binding-win32-ia32-msvc" "1.11.1" + "@unrs/resolver-binding-win32-x64-msvc" "1.11.1" + +update-browserslist-db@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.2.2.tgz#cfb4358afa08b3d5731a2ecd95eebf4ddef8033e" + integrity sha512-E85pfNzMQ9jpKkA7+TJAi4TJN+tBCuWh5rUcS/sv6cFi+1q9LYDwDI5dpUL0u/73EElyQ8d3TEaeW4sPedBqYA== dependencies: escalade "^3.2.0" picocolors "^1.1.1" @@ -7285,10 +7473,10 @@ v8-to-istanbul@^9.0.1: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^2.0.0" -validator@^13.9.0: - version "13.15.20" - resolved "https://registry.yarnpkg.com/validator/-/validator-13.15.20.tgz#054e9238109538a1bf46ae3e1290845a64fa2186" - integrity sha512-KxPOq3V2LmfQPP4eqf3Mq/zrT0Dqp2Vmx2Bn285LwVahLc+CsxOM0crBHczm8ijlcjZ0Q5Xd6LW3z3odTPnlrw== +validator@^13.15.20: + version "13.15.23" + resolved "https://registry.yarnpkg.com/validator/-/validator-13.15.23.tgz#59a874f84e4594588e3409ab1edbe64e96d0c62d" + integrity sha512-4yoz1kEWqUjzi5zsPbAS/903QXSYp0UOtHsPpp7p9rHAw/W+dkInskAE386Fat3oKRROwO98d9ZB0G4cObgUyw== vary@^1, vary@^1.1.2: version "1.1.2" @@ -7302,7 +7490,7 @@ walker@^1.0.8: dependencies: makeerror "1.0.12" -watchpack@^2.4.1: +watchpack@^2.4.4: version "2.4.4" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.4.tgz#473bda72f0850453da6425081ea46fc0d7602947" integrity sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA== @@ -7327,10 +7515,10 @@ webpack-sources@^3.3.3: resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.3.3.tgz#d4bf7f9909675d7a070ff14d0ef2a4f3c982c723" integrity sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg== -webpack@5.100.2: - version "5.100.2" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.100.2.tgz#e2341facf9f7de1d702147c91bcb65b693adf9e8" - integrity sha512-QaNKAvGCDRh3wW1dsDjeMdDXwZm2vqq3zn6Pvq4rHOEOGSaUMgOOjG2Y9ZbIGzpfkJk9ZYTHpDqgDfeBDcnLaw== +webpack@5.103.0: + version "5.103.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.103.0.tgz#17a7c5a5020d5a3a37c118d002eade5ee2c6f3da" + integrity sha512-HU1JOuV1OavsZ+mfigY0j8d1TgQgbZ6M+J75zDkpEAwYeXjWSqrGJtgnPblJjd/mAyTNQ7ygw0MiKOn6etz8yw== dependencies: "@types/eslint-scope" "^3.7.7" "@types/estree" "^1.0.8" @@ -7340,22 +7528,22 @@ webpack@5.100.2: "@webassemblyjs/wasm-parser" "^1.14.1" acorn "^8.15.0" acorn-import-phases "^1.0.3" - browserslist "^4.24.0" + browserslist "^4.26.3" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.17.2" + enhanced-resolve "^5.17.3" es-module-lexer "^1.2.1" eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" graceful-fs "^4.2.11" json-parse-even-better-errors "^2.3.1" - loader-runner "^4.2.0" + loader-runner "^4.3.1" mime-types "^2.1.27" neo-async "^2.6.2" - schema-utils "^4.3.2" - tapable "^2.1.1" + schema-utils "^4.3.3" + tapable "^2.3.0" terser-webpack-plugin "^5.3.11" - watchpack "^2.4.1" + watchpack "^2.4.4" webpack-sources "^3.3.3" which@^2.0.1: @@ -7416,13 +7604,13 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -write-file-atomic@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" - integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== +write-file-atomic@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7" + integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw== dependencies: imurmurhash "^0.1.4" - signal-exit "^3.0.7" + signal-exit "^4.0.1" xtend@^4.0.2: version "4.0.2" @@ -7444,7 +7632,7 @@ yargs-parser@21.1.1, yargs-parser@^21.1.1: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== -yargs@17.7.2, yargs@^17.3.1: +yargs@17.7.2, yargs@^17.7.2: version "17.7.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== @@ -7475,7 +7663,20 @@ yocto-queue@^0.1.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== -yoctocolors-cjs@^2.1.2: +yoctocolors-cjs@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz#7e4964ea8ec422b7a40ac917d3a344cfd2304baa" integrity sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw== + +zen-observable-ts@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-1.1.0.tgz#2d1aa9d79b87058e9b75698b92791c1838551f83" + integrity sha512-1h4zlLSqI2cRLPJUHJFL8bCWHhkpuXkF+dbGkRaWjgDIG26DmzyshUMrdV/rL3UnR+mhaX4fRq8LPouq0MYYIA== + dependencies: + "@types/zen-observable" "0.8.3" + zen-observable "0.8.15" + +zen-observable@0.8.15: + version "0.8.15" + resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" + integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== From 67c0f3f7c984d91a7961dd5f92ec9aab863618dd Mon Sep 17 00:00:00 2001 From: liverforpresent Date: Sat, 6 Dec 2025 20:40:46 +0900 Subject: [PATCH 14/14] =?UTF-8?q?fix:=20copilot=20PR=20=EB=A6=AC=EB=B7=B0?= =?UTF-8?q?=20=EC=88=98=EC=A0=95=EC=82=AC=ED=95=AD=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iam/user/application/create/create.result.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/iam/user/application/create/create.result.ts b/iam/user/application/create/create.result.ts index 42da2fa..83b98e0 100644 --- a/iam/user/application/create/create.result.ts +++ b/iam/user/application/create/create.result.ts @@ -1,3 +1,3 @@ export class CreateUserResult { - constructor(public readonly userId: string) {} + userId: string; }