From 49894bc1454e53a3155e93779f775897584b2ba6 Mon Sep 17 00:00:00 2001 From: Jaehyeon Kim Date: Thu, 3 Oct 2024 22:46:49 +0900 Subject: [PATCH 001/113] refactor(be): apply global exception filter to admin contest and admin group modules (#2099) * refactor(be): apply global exception filter to contest module * refactor(be): apply global exception filter to admin group module * chore(be): add error handling logic --- .../admin/src/contest/contest.resolver.ts | 212 +++--------- .../apps/admin/src/contest/contest.service.ts | 302 ++++++++++-------- .../apps/admin/src/group/group.resolver.ts | 58 +--- .../apps/admin/src/group/group.service.ts | 70 ++-- 4 files changed, 255 insertions(+), 387 deletions(-) diff --git a/apps/backend/apps/admin/src/contest/contest.resolver.ts b/apps/backend/apps/admin/src/contest/contest.resolver.ts index c749795e55..f32b10d874 100644 --- a/apps/backend/apps/admin/src/contest/contest.resolver.ts +++ b/apps/backend/apps/admin/src/contest/contest.resolver.ts @@ -1,19 +1,8 @@ -import { - InternalServerErrorException, - Logger, - NotFoundException, - ParseBoolPipe -} from '@nestjs/common' +import { ParseBoolPipe } from '@nestjs/common' import { Args, Context, Int, Mutation, Query, Resolver } from '@nestjs/graphql' import { Contest, ContestProblem } from '@generated' -import { PrismaClientKnownRequestError } from '@prisma/client/runtime/library' import { AuthenticatedRequest, UseRolesGuard } from '@libs/auth' import { OPEN_SPACE_ID } from '@libs/constants' -import { - ConflictFoundException, - EntityNotExistException, - UnprocessableDataException -} from '@libs/exception' import { CursorValidationPipe, GroupIDPipe, @@ -34,7 +23,6 @@ import { UserContestScoreSummaryWithUserInfo } from './model/score-summary' @Resolver(() => Contest) export class ContestResolver { - private readonly logger = new Logger(ContestResolver.name) constructor(private readonly contestService: ContestService) {} @Query(() => [ContestWithParticipants]) @@ -62,16 +50,7 @@ export class ContestResolver { @Args('contestId', { type: () => Int }, new RequiredIntPipe('contestId')) contestId: number ) { - try { - return await this.contestService.getContest(contestId) - } catch (error) { - if ( - error instanceof PrismaClientKnownRequestError && - error.code == 'P2025' - ) { - throw new NotFoundException(error.message) - } - } + return await this.contestService.getContest(contestId) } @Mutation(() => Contest) @@ -85,22 +64,7 @@ export class ContestResolver { groupId: number, @Context('req') req: AuthenticatedRequest ) { - try { - return await this.contestService.createContest( - groupId, - req.user.id, - input - ) - } catch (error) { - if ( - error instanceof UnprocessableDataException || - error instanceof EntityNotExistException - ) { - throw error.convert2HTTPException() - } - this.logger.error(error) - throw new InternalServerErrorException() - } + return await this.contestService.createContest(groupId, req.user.id, input) } @Mutation(() => Contest) @@ -108,18 +72,7 @@ export class ContestResolver { @Args('groupId', { type: () => Int }, GroupIDPipe) groupId: number, @Args('input') input: UpdateContestInput ) { - try { - return await this.contestService.updateContest(groupId, input) - } catch (error) { - if ( - error instanceof EntityNotExistException || - error instanceof UnprocessableDataException - ) { - throw error.convert2HTTPException() - } - this.logger.error(error) - throw new InternalServerErrorException() - } + return await this.contestService.updateContest(groupId, input) } @Mutation(() => Contest) @@ -127,15 +80,7 @@ export class ContestResolver { @Args('groupId', { type: () => Int }, GroupIDPipe) groupId: number, @Args('contestId', { type: () => Int }) contestId: number ) { - try { - return await this.contestService.deleteContest(groupId, contestId) - } catch (error) { - if (error instanceof EntityNotExistException) { - throw error.convert2HTTPException() - } - this.logger.error(error) - throw new InternalServerErrorException() - } + return await this.contestService.deleteContest(groupId, contestId) } @Query(() => [PublicizingRequest]) @@ -149,21 +94,10 @@ export class ContestResolver { @Args('groupId', { type: () => Int }, GroupIDPipe) groupId: number, @Args('contestId', { type: () => Int }) contestId: number ) { - try { - return await this.contestService.createPublicizingRequest( - groupId, - contestId - ) - } catch (error) { - if ( - error instanceof EntityNotExistException || - error instanceof ConflictFoundException - ) { - throw error.convert2HTTPException() - } - this.logger.error(error) - throw new InternalServerErrorException() - } + return await this.contestService.createPublicizingRequest( + groupId, + contestId + ) } @Mutation(() => PublicizingResponse) @@ -172,18 +106,10 @@ export class ContestResolver { @Args('contestId', { type: () => Int }) contestId: number, @Args('isAccepted', ParseBoolPipe) isAccepted: boolean ) { - try { - return await this.contestService.handlePublicizingRequest( - contestId, - isAccepted - ) - } catch (error) { - if (error instanceof EntityNotExistException) { - throw error.convert2HTTPException() - } - this.logger.error(error) - throw new InternalServerErrorException() - } + return await this.contestService.handlePublicizingRequest( + contestId, + isAccepted + ) } @Mutation(() => [ContestProblem]) @@ -193,22 +119,11 @@ export class ContestResolver { @Args('problemIdsWithScore', { type: () => [ProblemScoreInput] }) problemIdsWithScore: ProblemScoreInput[] ) { - try { - return await this.contestService.importProblemsToContest( - groupId, - contestId, - problemIdsWithScore - ) - } catch (error) { - if ( - error instanceof EntityNotExistException || - error instanceof UnprocessableDataException - ) { - throw error.convert2HTTPException() - } - this.logger.error(error) - throw new InternalServerErrorException() - } + return await this.contestService.importProblemsToContest( + groupId, + contestId, + problemIdsWithScore + ) } @Mutation(() => [ContestProblem]) @@ -218,22 +133,11 @@ export class ContestResolver { contestId: number, @Args('problemIds', { type: () => [Int] }) problemIds: number[] ) { - try { - return await this.contestService.removeProblemsFromContest( - groupId, - contestId, - problemIds - ) - } catch (error) { - if ( - error instanceof EntityNotExistException || - error instanceof UnprocessableDataException - ) { - throw error.convert2HTTPException() - } - this.logger.error(error) - throw new InternalServerErrorException() - } + return await this.contestService.removeProblemsFromContest( + groupId, + contestId, + problemIds + ) } /** @@ -257,18 +161,13 @@ export class ContestResolver { @Args('cursor', { nullable: true, type: () => Int }, CursorValidationPipe) cursor: number | null ) { - try { - return await this.contestService.getContestSubmissionSummaryByUserId( - take, - contestId, - userId, - problemId, - cursor - ) - } catch (error) { - this.logger.error(error) - throw new InternalServerErrorException() - } + return await this.contestService.getContestSubmissionSummaryByUserId( + take, + contestId, + userId, + problemId, + cursor + ) } @Mutation(() => DuplicatedContestResponse) @@ -278,22 +177,11 @@ export class ContestResolver { contestId: number, @Context('req') req: AuthenticatedRequest ) { - try { - return await this.contestService.duplicateContest( - groupId, - contestId, - req.user.id - ) - } catch (error) { - if ( - error instanceof UnprocessableDataException || - error instanceof EntityNotExistException - ) { - throw error.convert2HTTPException() - } - this.logger.error(error) - throw new InternalServerErrorException() - } + return await this.contestService.duplicateContest( + groupId, + contestId, + req.user.id + ) } /** @@ -313,34 +201,18 @@ export class ContestResolver { @Args('searchingName', { type: () => String, nullable: true }) searchingName?: string ) { - try { - return await this.contestService.getContestScoreSummaries( - contestId, - take, - cursor, - searchingName - ) - } catch (error) { - if (error instanceof EntityNotExistException) { - throw error.convert2HTTPException() - } - this.logger.error(error) - throw new InternalServerErrorException() - } + return await this.contestService.getContestScoreSummaries( + contestId, + take, + cursor, + searchingName + ) } @Query(() => ContestsGroupedByStatus) async getContestsByProblemId( @Args('problemId', { type: () => Int }) problemId: number ) { - try { - return await this.contestService.getContestsByProblemId(problemId) - } catch (error) { - if (error instanceof EntityNotExistException) { - throw error.convert2HTTPException() - } - this.logger.error(error) - throw new InternalServerErrorException() - } + return await this.contestService.getContestsByProblemId(problemId) } } diff --git a/apps/backend/apps/admin/src/contest/contest.service.ts b/apps/backend/apps/admin/src/contest/contest.service.ts index 3ba76eeb14..44344d9644 100644 --- a/apps/backend/apps/admin/src/contest/contest.service.ts +++ b/apps/backend/apps/admin/src/contest/contest.service.ts @@ -58,7 +58,7 @@ export class ContestService { } async getContest(contestId: number) { - const { _count, ...data } = await this.prisma.contest.findFirstOrThrow({ + const contest = await this.prisma.contest.findFirst({ where: { id: contestId }, @@ -70,6 +70,12 @@ export class ContestService { } }) + if (!contest) { + throw new EntityNotExistException('contest') + } + + const { _count, ...data } = contest + return { ...data, participants: _count.contestRecord @@ -96,15 +102,17 @@ export class ContestService { throw new EntityNotExistException('Group') } - const newContest: Contest = await this.prisma.contest.create({ - data: { - createdById: userId, - groupId, - ...contest - } - }) - - return newContest + try { + return await this.prisma.contest.create({ + data: { + createdById: userId, + groupId, + ...contest + } + }) + } catch (error) { + throw new UnprocessableDataException(error.message) + } } async updateContest( @@ -184,21 +192,25 @@ export class ContestService { visibleLockTime } }) - } catch (error) { + } catch { continue } } } - return await this.prisma.contest.update({ - where: { - id: contest.id - }, - data: { - title: contest.title, - ...contest - } - }) + try { + return await this.prisma.contest.update({ + where: { + id: contest.id + }, + data: { + title: contest.title, + ...contest + } + }) + } catch (error) { + throw new UnprocessableDataException(error.message) + } } async deleteContest(groupId: number, contestId: number) { @@ -226,11 +238,15 @@ export class ContestService { await this.removeProblemsFromContest(groupId, contestId, problemIds) } - return await this.prisma.contest.delete({ - where: { - id: contestId - } - }) + try { + return await this.prisma.contest.delete({ + where: { + id: contestId + } + }) + } catch (error) { + throw new UnprocessableDataException(error.message) + } } async getPublicizingRequests() { @@ -277,16 +293,17 @@ export class ContestService { ) if (isAccepted) { - const updatedContest = await this.prisma.contest.update({ - where: { - id: contestId - }, - data: { - groupId: OPEN_SPACE_ID - } - }) - if (!updatedContest) { - throw new EntityNotExistException('contest') + try { + await this.prisma.contest.update({ + where: { + id: contestId + }, + data: { + groupId: OPEN_SPACE_ID + } + }) + } catch (error) { + throw new UnprocessableDataException(error.message) } } @@ -382,44 +399,48 @@ export class ContestService { continue } - const [contestProblem] = await this.prisma.$transaction([ - this.prisma.contestProblem.create({ - data: { - // 원래 id: 'temp'이었는데, contestProblem db schema field가 바뀌어서 - // 임시 방편으로 order: 0으로 설정합니다. - order: 0, - contestId, - problemId, - score - } - }), - this.prisma.problem.updateMany({ - where: { - id: problemId, - OR: [ - { - visibleLockTime: { - equals: MIN_DATE - } - }, - { - visibleLockTime: { - equals: MAX_DATE - } - }, - { - visibleLockTime: { - lte: contest.endTime + try { + const [contestProblem] = await this.prisma.$transaction([ + this.prisma.contestProblem.create({ + data: { + // 원래 id: 'temp'이었는데, contestProblem db schema field가 바뀌어서 + // 임시 방편으로 order: 0으로 설정합니다. + order: 0, + contestId, + problemId, + score + } + }), + this.prisma.problem.updateMany({ + where: { + id: problemId, + OR: [ + { + visibleLockTime: { + equals: MIN_DATE + } + }, + { + visibleLockTime: { + equals: MAX_DATE + } + }, + { + visibleLockTime: { + lte: contest.endTime + } } - } - ] - }, - data: { - visibleLockTime: contest.endTime - } - }) - ]) - contestProblems.push(contestProblem) + ] + }, + data: { + visibleLockTime: contest.endTime + } + }) + ]) + contestProblems.push(contestProblem) + } catch (error) { + throw new UnprocessableDataException(error.message) + } } return contestProblems @@ -469,7 +490,7 @@ export class ContestService { .map((contestProblem) => contestProblem.contestId) if (contestIds.length) { - const latestContest = await this.prisma.contest.findFirstOrThrow({ + const latestContest = await this.prisma.contest.findFirst({ where: { id: { in: contestIds @@ -482,33 +503,42 @@ export class ContestService { endTime: true } }) + + if (!latestContest) { + throw new EntityNotExistException('contest') + } + visibleLockTime = latestContest.endTime } - const [, contestProblem] = await this.prisma.$transaction([ - this.prisma.problem.updateMany({ - where: { - id: problemId, - visibleLockTime: { - lte: contest.endTime + try { + const [, contestProblem] = await this.prisma.$transaction([ + this.prisma.problem.updateMany({ + where: { + id: problemId, + visibleLockTime: { + lte: contest.endTime + } + }, + data: { + visibleLockTime } - }, - data: { - visibleLockTime - } - }), - this.prisma.contestProblem.delete({ - where: { - // eslint-disable-next-line @typescript-eslint/naming-convention - contestId_problemId: { - contestId, - problemId + }), + this.prisma.contestProblem.delete({ + where: { + // eslint-disable-next-line @typescript-eslint/naming-convention + contestId_problemId: { + contestId, + problemId + } } - } - }) - ]) + }) + ]) - contestProblems.push(contestProblem) + contestProblems.push(contestProblem) + } catch (error) { + throw new UnprocessableDataException(error.message) + } } return contestProblems @@ -622,51 +652,55 @@ export class ContestService { const { id, createTime, updateTime, title, ...contestDataToCopy } = contestFound - const [newContest, newContestProblems, newContestRecords] = - await this.prisma.$transaction(async (tx) => { - // 1. copy contest - const newContest = await tx.contest.create({ - data: { - ...contestDataToCopy, - title: 'Copy of ' + title, - createdById: userId, - groupId, - isVisible: newVisible - } - }) + try { + const [newContest, newContestProblems, newContestRecords] = + await this.prisma.$transaction(async (tx) => { + // 1. copy contest + const newContest = await tx.contest.create({ + data: { + ...contestDataToCopy, + title: 'Copy of ' + title, + createdById: userId, + groupId, + isVisible: newVisible + } + }) - // 2. copy contest problems - const newContestProblems = await Promise.all( - contestProblemsFound.map((contestProblem) => - tx.contestProblem.create({ - data: { - order: contestProblem.order, - contestId: newContest.id, - problemId: contestProblem.problemId - } - }) + // 2. copy contest problems + const newContestProblems = await Promise.all( + contestProblemsFound.map((contestProblem) => + tx.contestProblem.create({ + data: { + order: contestProblem.order, + contestId: newContest.id, + problemId: contestProblem.problemId + } + }) + ) ) - ) - - // 3. copy contest records (users who participated in the contest) - const newContestRecords = await Promise.all( - userContestRecords.map((userContestRecord) => - tx.contestRecord.create({ - data: { - contestId: newContest.id, - userId: userContestRecord.userId - } - }) + + // 3. copy contest records (users who participated in the contest) + const newContestRecords = await Promise.all( + userContestRecords.map((userContestRecord) => + tx.contestRecord.create({ + data: { + contestId: newContest.id, + userId: userContestRecord.userId + } + }) + ) ) - ) - return [newContest, newContestProblems, newContestRecords] - }) + return [newContest, newContestProblems, newContestRecords] + }) - return { - contest: newContest, - problems: newContestProblems, - records: newContestRecords + return { + contest: newContest, + problems: newContestProblems, + records: newContestRecords + } + } catch (error) { + throw new UnprocessableDataException(error.message) } } diff --git a/apps/backend/apps/admin/src/group/group.resolver.ts b/apps/backend/apps/admin/src/group/group.resolver.ts index 31eeb01d74..18d4d41a45 100644 --- a/apps/backend/apps/admin/src/group/group.resolver.ts +++ b/apps/backend/apps/admin/src/group/group.resolver.ts @@ -1,13 +1,7 @@ -import { InternalServerErrorException, Logger } from '@nestjs/common' import { Args, Int, Query, Mutation, Resolver, Context } from '@nestjs/graphql' import { Group } from '@generated' import { Role } from '@prisma/client' import { AuthenticatedRequest, UseRolesGuard } from '@libs/auth' -import { - ConflictFoundException, - DuplicateFoundException, - ForbiddenAccessException -} from '@libs/exception' import { CursorValidationPipe, GroupIDPipe } from '@libs/pipe' import { GroupService } from './group.service' import { CreateGroupInput, UpdateGroupInput } from './model/group.input' @@ -15,8 +9,6 @@ import { DeletedUserGroup, FindGroup } from './model/group.output' @Resolver(() => Group) export class GroupResolver { - private readonly logger = new Logger(GroupResolver.name) - constructor(private readonly groupService: GroupService) {} @Mutation(() => Group) @@ -25,15 +17,7 @@ export class GroupResolver { @Context('req') req: AuthenticatedRequest, @Args('input') input: CreateGroupInput ) { - try { - return await this.groupService.createGroup(input, req.user.id) - } catch (error) { - if (error instanceof DuplicateFoundException) { - throw error.convert2HTTPException() - } - this.logger.error(error) - throw new InternalServerErrorException() - } + return await this.groupService.createGroup(input, req.user.id) } @Query(() => [FindGroup]) @@ -58,18 +42,7 @@ export class GroupResolver { @Args('groupId', { type: () => Int }, GroupIDPipe) id: number, @Args('input') input: UpdateGroupInput ) { - try { - return await this.groupService.updateGroup(id, input) - } catch (error) { - if ( - error instanceof DuplicateFoundException || - error instanceof ForbiddenAccessException - ) { - throw error.convert2HTTPException() - } - this.logger.error(error) - throw new InternalServerErrorException() - } + return await this.groupService.updateGroup(id, input) } @Mutation(() => DeletedUserGroup) @@ -77,41 +50,20 @@ export class GroupResolver { @Context('req') req: AuthenticatedRequest, @Args('groupId', { type: () => Int }, GroupIDPipe) id: number ) { - try { - return await this.groupService.deleteGroup(id, req.user) - } catch (error) { - if (error instanceof ForbiddenAccessException) { - throw error.convert2HTTPException() - } - this.logger.error(error) - throw new InternalServerErrorException() - } + return await this.groupService.deleteGroup(id, req.user) } @Mutation(() => String) async issueInvitation( @Args('groupId', { type: () => Int }, GroupIDPipe) id: number ) { - try { - return await this.groupService.issueInvitation(id) - } catch (error) { - if (error instanceof ConflictFoundException) { - throw error.convert2HTTPException() - } - this.logger.error(error) - throw new InternalServerErrorException() - } + return await this.groupService.issueInvitation(id) } @Mutation(() => String) async revokeInvitation( @Args('groupId', { type: () => Int }, GroupIDPipe) id: number ) { - try { - return await this.groupService.revokeInvitation(id) - } catch (error) { - this.logger.error(error) - throw new InternalServerErrorException() - } + return await this.groupService.revokeInvitation(id) } } diff --git a/apps/backend/apps/admin/src/group/group.service.ts b/apps/backend/apps/admin/src/group/group.service.ts index 0c8b67e148..48cb9896ba 100644 --- a/apps/backend/apps/admin/src/group/group.service.ts +++ b/apps/backend/apps/admin/src/group/group.service.ts @@ -8,7 +8,8 @@ import { ConflictFoundException, DuplicateFoundException, EntityNotExistException, - ForbiddenAccessException + ForbiddenAccessException, + UnprocessableDataException } from '@libs/exception' import { PrismaService } from '@libs/prisma' import type { CreateGroupInput, UpdateGroupInput } from './model/group.input' @@ -33,25 +34,29 @@ export class GroupService { input.config.allowJoinFromSearch = false } - const group = await this.prisma.group.create({ - data: { - groupName: input.groupName, - description: input.description, - config: JSON.stringify(input.config) - } - }) - await this.prisma.userGroup.create({ - data: { - user: { - connect: { id: userId } - }, - group: { - connect: { id: group.id } - }, - isGroupLeader: true - } - }) - return group + try { + const group = await this.prisma.group.create({ + data: { + groupName: input.groupName, + description: input.description, + config: JSON.stringify(input.config) + } + }) + await this.prisma.userGroup.create({ + data: { + user: { + connect: { id: userId } + }, + group: { + connect: { id: group.id } + }, + isGroupLeader: true + } + }) + return group + } catch (error) { + throw new UnprocessableDataException(error.message) + } } async getGroups(cursor: number | null, take: number) { @@ -133,16 +138,21 @@ export class GroupService { if (!input.config.showOnList) { input.config.allowJoinFromSearch = false } - return await this.prisma.group.update({ - where: { - id - }, - data: { - groupName: input.groupName, - description: input.description, - config: JSON.stringify(input.config) - } - }) + + try { + return await this.prisma.group.update({ + where: { + id + }, + data: { + groupName: input.groupName, + description: input.description, + config: JSON.stringify(input.config) + } + }) + } catch (error) { + throw new UnprocessableDataException(error.message) + } } async deleteGroup(id: number, user: AuthenticatedUser) { From d85d1e4e60dd5ca05ed042d047e4cd68bfadd5af Mon Sep 17 00:00:00 2001 From: Jisoo Park Date: Fri, 4 Oct 2024 11:15:05 +0900 Subject: [PATCH 002/113] feat(iris): pass run output when test submission (#2137) * feat: pass run output when test submission * chore: remove typo * feat: add output property on run result cache object * fix: test code --- .../submission/class/judger-response.dto.ts | 1 + .../src/submission/submission-sub.service.ts | 18 ++++++++++++++++++ .../src/submission/submission.service.ts | 1 + .../test/submission-sub.service.spec.ts | 3 ++- apps/iris/src/handler/judge-handler.go | 2 ++ 5 files changed, 24 insertions(+), 1 deletion(-) diff --git a/apps/backend/apps/client/src/submission/class/judger-response.dto.ts b/apps/backend/apps/client/src/submission/class/judger-response.dto.ts index efa3a6a7c4..dabf3e77fd 100644 --- a/apps/backend/apps/client/src/submission/class/judger-response.dto.ts +++ b/apps/backend/apps/client/src/submission/class/judger-response.dto.ts @@ -17,6 +17,7 @@ class JudgeResult { signal: number exitCode: number errorCode: number + output?: string } export class JudgerResponse { diff --git a/apps/backend/apps/client/src/submission/submission-sub.service.ts b/apps/backend/apps/client/src/submission/submission-sub.service.ts index a7bf1ec79f..214818add5 100644 --- a/apps/backend/apps/client/src/submission/submission-sub.service.ts +++ b/apps/backend/apps/client/src/submission/submission-sub.service.ts @@ -79,24 +79,42 @@ export class SubmissionSubscriptionService implements OnModuleInit { const key = testKey(userId) const status = Status(msg.resultCode) const testcaseId = msg.judgeResult?.testcaseId + const output = this.parseError(msg, status) const testcases = (await this.cacheManager.get< { id: number result: ResultStatus + output?: string }[] >(key)) ?? [] testcases.forEach((tc) => { if (!testcaseId || tc.id === testcaseId) { tc.result = status + tc.output = output } }) await this.cacheManager.set(key, testcases, TEST_SUBMISSION_EXPIRE_TIME) } + parseError(msg: JudgerResponse, status: ResultStatus): string { + if (msg.judgeResult?.output) return msg.judgeResult.output + + switch (status) { + case ResultStatus.CompileError: + return msg.error ?? '' + case ResultStatus.SegmentationFaultError: + return 'Segmentation Fault' + case ResultStatus.RuntimeError: + return 'Value Error' + default: + return '' + } + } + async validateJudgerResponse(msg: object): Promise { const res: JudgerResponse = plainToInstance(JudgerResponse, msg) await validateOrReject(res) diff --git a/apps/backend/apps/client/src/submission/submission.service.ts b/apps/backend/apps/client/src/submission/submission.service.ts index 7932d5ae04..3670858765 100644 --- a/apps/backend/apps/client/src/submission/submission.service.ts +++ b/apps/backend/apps/client/src/submission/submission.service.ts @@ -406,6 +406,7 @@ export class SubmissionService { { id: number result: ResultStatus + output?: string }[] >(key) } diff --git a/apps/backend/apps/client/src/submission/test/submission-sub.service.spec.ts b/apps/backend/apps/client/src/submission/test/submission-sub.service.spec.ts index 5b686f6260..5597b90158 100644 --- a/apps/backend/apps/client/src/submission/test/submission-sub.service.spec.ts +++ b/apps/backend/apps/client/src/submission/test/submission-sub.service.spec.ts @@ -34,7 +34,8 @@ const judgeResult = { memory: 10000000, signal: 0, exitCode: 0, - errorCode: 0 + errorCode: 0, + output: undefined } const msg = { diff --git a/apps/iris/src/handler/judge-handler.go b/apps/iris/src/handler/judge-handler.go index ce19c1d357..72dccca5ec 100644 --- a/apps/iris/src/handler/judge-handler.go +++ b/apps/iris/src/handler/judge-handler.go @@ -55,6 +55,7 @@ func (r Request) Validate() (*Request, error) { type JudgeResult struct { TestcaseId int `json:"testcaseId"` ResultCode JudgeResultCode `json:"resultCode"` + Output string `json:"output"` CpuTime int `json:"cpuTime"` RealTime int `json:"realTime"` Memory int `json:"memory"` @@ -339,6 +340,7 @@ func (j *JudgeHandler) judgeTestcase(idx int, dir string, validReq *Request, res.TestcaseId = tc.Id res.SetJudgeExecResult(runResult.ExecResult) + res.Output = string(runResult.Output) if runResult.ExecResult.ResultCode != sandbox.RUN_SUCCESS { res.SetJudgeResultCode(SandboxResultCodeToJudgeResultCode(runResult.ExecResult.ResultCode)) From 2a5869c8dda28f2188a522970f15e6adff3b065a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=A3=BC=ED=98=95?= <80684730+juhyeong0505@users.noreply.github.com> Date: Fri, 4 Oct 2024 11:53:38 +0900 Subject: [PATCH 003/113] fix(fe): fix updateinfo modal (#2129) --- apps/frontend/components/auth/UpdateInformation.tsx | 7 +++---- apps/frontend/playwright/test-results/.last-run.json | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/apps/frontend/components/auth/UpdateInformation.tsx b/apps/frontend/components/auth/UpdateInformation.tsx index 0a8a6eb0f2..03f96519b3 100644 --- a/apps/frontend/components/auth/UpdateInformation.tsx +++ b/apps/frontend/components/auth/UpdateInformation.tsx @@ -24,15 +24,14 @@ export default function UpdateInformation() {

Update Information

-

To continue using the service,

+

To continue using our service,

you must update your information.

-

Your account will be DELETED if you do not

-

update your information by August 31.

+

You must your information by October 31.

-

We need the information

+

Your information

  • Your Student ID
  • Your First Major
  • diff --git a/apps/frontend/playwright/test-results/.last-run.json b/apps/frontend/playwright/test-results/.last-run.json index 5fca3f84bc..544c11fbc3 100644 --- a/apps/frontend/playwright/test-results/.last-run.json +++ b/apps/frontend/playwright/test-results/.last-run.json @@ -1,4 +1,4 @@ { "status": "failed", "failedTests": [] -} \ No newline at end of file +} From f1a7c02b9aae9f8fff132705fce702111925db63 Mon Sep 17 00:00:00 2001 From: Woojin Jung <44637040+jwoojin9@users.noreply.github.com> Date: Fri, 4 Oct 2024 11:58:57 +0900 Subject: [PATCH 004/113] feat(fe): create submission detail modal (#2104) * feat(fe): create submission detail modal * chore(fe): reorder source code * chore(fe): remove console log --- .../_components/SubmissionDetailAdmin.tsx | 133 ++++++++++++++++++ apps/frontend/components/DataTableAdmin.tsx | 24 +++- apps/frontend/graphql/submission/queries.ts | 49 ++++++- 3 files changed, 204 insertions(+), 2 deletions(-) create mode 100644 apps/frontend/app/admin/contest/[id]/_components/SubmissionDetailAdmin.tsx diff --git a/apps/frontend/app/admin/contest/[id]/_components/SubmissionDetailAdmin.tsx b/apps/frontend/app/admin/contest/[id]/_components/SubmissionDetailAdmin.tsx new file mode 100644 index 0000000000..7a154849bc --- /dev/null +++ b/apps/frontend/app/admin/contest/[id]/_components/SubmissionDetailAdmin.tsx @@ -0,0 +1,133 @@ +'use client' + +import CodeEditor from '@/components/CodeEditor' +import { ScrollArea, ScrollBar } from '@/components/ui/scroll-area' +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow +} from '@/components/ui/table' +import { GET_SUBMISSION } from '@/graphql/submission/queries' +import { dateFormatter } from '@/lib/utils' +import type { Language } from '@/types/type' +import { useQuery } from '@apollo/client' + +export default function SubmissionDetailAdmin({ + submissionId +}: { + submissionId: number +}) { + const { data, loading } = useQuery(GET_SUBMISSION, { + variables: { + id: Number(submissionId) + } + }) + const submission = data?.getSubmission + return ( + + {!loading && ( +
    +

    + + {submission?.user?.userProfile?.realName}( + {submission?.user?.studentId}) + + +   >  {submission?.problem.title} + + +   >  Submission #{submissionId} + +

    +

    Summary

    + +
    +
    +

    User

    +

    {submission?.user?.username}

    +
    +
    +

    Result

    +

    + {submission?.result} +

    +
    +
    +

    Language

    +

    {submission?.language}

    +
    +
    +

    Submission Time

    +

    + {dateFormatter(submission?.createTime, 'YYYY-MM-DD HH:mm:ss')} +

    +
    +
    +

    Code Size

    +

    {new TextEncoder().encode(submission?.code).length} B

    +
    +
    + +
    + {submission?.testcaseResult.length !== 0 && ( +
    +

    Test case

    + + + + + Result + Runtime + Memory + + + + {submission?.testcaseResult.map((item) => ( + + {item.id} + + {item.result} + + {item.cpuTime} ms + + {( + (item?.memoryUsage as number) / + (1024 * 1024) + ).toFixed(2)}{' '} + MB + + + ))} + +
    +
    + )} +
    +

    Source Code

    + +
    +
    + )} +
    + ) +} diff --git a/apps/frontend/components/DataTableAdmin.tsx b/apps/frontend/components/DataTableAdmin.tsx index f56b643448..1ce9b8ed7a 100644 --- a/apps/frontend/components/DataTableAdmin.tsx +++ b/apps/frontend/components/DataTableAdmin.tsx @@ -1,5 +1,6 @@ 'use client' +import SubmissionDetailAdmin from '@/app/admin/contest/[id]/_components/SubmissionDetailAdmin' import DuplicateContest from '@/app/admin/contest/_components/DuplicateContest' import { AlertDialog, @@ -12,6 +13,7 @@ import { AlertDialogTitle } from '@/components/ui/alert-dialog' import { Button } from '@/components/ui/button' +import { Dialog, DialogContent } from '@/components/ui/dialog' import { Table, TableBody, @@ -167,6 +169,8 @@ export function DataTableAdmin({ const [deleteProblem] = useMutation(DELETE_PROBLEM) const [deleteContest] = useMutation(DELETE_CONTEST) const [isDeleteAlertDialogOpen, setIsDeleteAlertDialogOpen] = useState(false) + const [isSubmissionDialogOpen, setIsSubmissionDialogOpen] = useState(false) + const [submissionId, setSubmissionId] = useState(0) useEffect(() => { if (checkedRows.length !== 0) { @@ -484,7 +488,15 @@ export function DataTableAdmin({ ) } } else { - href && router.push(href) + if (href) { + if (href.includes('submission')) { + const submissionId = Number(href.split('/')[6]) + setSubmissionId(submissionId) + setIsSubmissionDialogOpen(true) + } else { + router.push(href) + } + } } }} > @@ -539,6 +551,16 @@ export function DataTableAdmin({ showRowsPerPage={enableRowsPerpage} /> )} + { + setIsSubmissionDialogOpen(false) + }} + > + + + +
) } diff --git a/apps/frontend/graphql/submission/queries.ts b/apps/frontend/graphql/submission/queries.ts index 81ce0ca97f..dbe1e52d7c 100644 --- a/apps/frontend/graphql/submission/queries.ts +++ b/apps/frontend/graphql/submission/queries.ts @@ -27,4 +27,51 @@ const GET_CONTEST_SUBMISSIONS = gql(` } `) -export { GET_CONTEST_SUBMISSIONS } +const GET_SUBMISSION = gql(`query GetSubmission( + $id: Int! +) { + getSubmission(id: $id) { + id + userId + userIp + problemId + contestId + workbookId + code + codeSize + language + result + score + createTime + updateTime + testcaseResult { + cpuTime + id + submissionId + problemTestcaseId + result + memoryUsage + createTime + updateTime + } + user { + id + studentId + username + userProfile { + realName + } + } + contest { + id + title + } + problem { + id + title + + } + } +}`) + +export { GET_CONTEST_SUBMISSIONS, GET_SUBMISSION } From ff0d201b2a002cef99d2ac3437ef413f3e8c827b Mon Sep 17 00:00:00 2001 From: Jiyun Park <80032256+cho-to@users.noreply.github.com> Date: Fri, 4 Oct 2024 14:08:51 +0900 Subject: [PATCH 005/113] refactor(be): refactor client group and admin notice module (#2133) --- .../apps/admin/src/notice/notice.resolver.ts | 81 ++------------ .../admin/src/notice/notice.service.spec.ts | 14 ++- .../apps/admin/src/notice/notice.service.ts | 74 ++++--------- .../apps/client/src/group/group.controller.ts | 104 ++---------------- .../apps/client/src/group/group.service.ts | 3 +- 5 files changed, 51 insertions(+), 225 deletions(-) diff --git a/apps/backend/apps/admin/src/notice/notice.resolver.ts b/apps/backend/apps/admin/src/notice/notice.resolver.ts index 49be1822fa..4e72977a40 100644 --- a/apps/backend/apps/admin/src/notice/notice.resolver.ts +++ b/apps/backend/apps/admin/src/notice/notice.resolver.ts @@ -1,8 +1,4 @@ -import { - InternalServerErrorException, - Logger, - NotFoundException -} from '@nestjs/common' +import { Logger } from '@nestjs/common' import { Args, Context, @@ -15,7 +11,6 @@ import { } from '@nestjs/graphql' import { Group, Notice, User } from '@generated' import { AuthenticatedRequest } from '@libs/auth' -import { EntityNotExistException } from '@libs/exception' import { CursorValidationPipe, GroupIDPipe, IDValidationPipe } from '@libs/pipe' import { GroupService } from '@admin/group/group.service' import { UserService } from '@admin/user/user.service' @@ -38,15 +33,7 @@ export class NoticeResolver { groupId: number, @Context('req') req: AuthenticatedRequest ) { - try { - return await this.noticeService.createNotice(req.user.id, groupId, input) - } catch (error) { - if (error instanceof EntityNotExistException) { - throw new NotFoundException(error.message) - } - this.logger.error(error) - throw new InternalServerErrorException() - } + return await this.noticeService.createNotice(req.user.id, groupId, input) } @Mutation(() => Notice) @@ -55,15 +42,7 @@ export class NoticeResolver { groupId: number, @Args('noticeId', { type: () => Int }, IDValidationPipe) noticeId: number ) { - try { - return await this.noticeService.deleteNotice(groupId, noticeId) - } catch (error) { - if (error instanceof EntityNotExistException) { - throw new NotFoundException(error.message) - } - this.logger.error(error) - throw new InternalServerErrorException() - } + return await this.noticeService.deleteNotice(groupId, noticeId) } @Mutation(() => Notice) @@ -73,15 +52,7 @@ export class NoticeResolver { @Args('noticeId', { type: () => Int }, IDValidationPipe) noticeId: number, @Args('input') input: UpdateNoticeInput ) { - try { - return await this.noticeService.updateNotice(groupId, noticeId, input) - } catch (error) { - if (error instanceof EntityNotExistException) { - throw new NotFoundException(error.message) - } - this.logger.error(error) - throw new InternalServerErrorException() - } + return await this.noticeService.updateNotice(groupId, noticeId, input) } @Query(() => Notice) @@ -90,15 +61,7 @@ export class NoticeResolver { groupId: number, @Args('noticeId', { type: () => Int }, IDValidationPipe) noticeId: number ) { - try { - return await this.noticeService.getNotice(groupId, noticeId) - } catch (error) { - if (error instanceof EntityNotExistException) { - throw new NotFoundException(error.message) - } - this.logger.error(error) - throw new InternalServerErrorException() - } + return await this.noticeService.getNotice(groupId, noticeId) } @Query(() => [Notice], { nullable: 'items' }) @@ -110,42 +73,20 @@ export class NoticeResolver { @Args('take', { type: () => Int, defaultValue: 10 }) take: number ) { - try { - return await this.noticeService.getNotices(groupId, cursor, take) - } catch (error) { - this.logger.error(error) - throw new InternalServerErrorException() - } + return await this.noticeService.getNotices(groupId, cursor, take) } @ResolveField('createdBy', () => User) async getUser(@Parent() notice: Notice) { - try { - const { createdById } = notice - if (createdById == null) { - return null - } - return this.userService.getUser(createdById) - } catch (error) { - if (error instanceof EntityNotExistException) { - throw new NotFoundException(error.message) - } - this.logger.error(error) - throw new InternalServerErrorException() + const { createdById } = notice + if (createdById == null) { + return null } + return this.userService.getUser(createdById) } @ResolveField('group', () => Group) async getGroup(@Parent() notice: Notice) { - try { - const { groupId } = notice - return this.groupService.getGroupById(groupId) - } catch (error) { - if (error instanceof EntityNotExistException) { - throw new NotFoundException(error.message) - } - this.logger.error(error) - throw new InternalServerErrorException() - } + return this.groupService.getGroupById(notice.groupId) } } diff --git a/apps/backend/apps/admin/src/notice/notice.service.spec.ts b/apps/backend/apps/admin/src/notice/notice.service.spec.ts index eb6d5019c9..3176ab825e 100644 --- a/apps/backend/apps/admin/src/notice/notice.service.spec.ts +++ b/apps/backend/apps/admin/src/notice/notice.service.spec.ts @@ -4,7 +4,6 @@ import { faker } from '@faker-js/faker' import { PrismaClientKnownRequestError } from '@prisma/client/runtime/library' import { expect } from 'chai' import { stub } from 'sinon' -import { EntityNotExistException } from '@libs/exception' import { PrismaService } from '@libs/prisma' import type { CreateNoticeInput, UpdateNoticeInput } from './model/notice.input' import { NoticeService } from './notice.service' @@ -49,6 +48,7 @@ const db = { notice: { findFirst: stub(), findMany: stub(), + findUniqueOrThrow: stub(), create: stub(), delete: stub(), update: stub() @@ -86,6 +86,7 @@ describe('NoticeService', () => { afterEach(() => { db.notice.findFirst.reset() db.notice.findMany.reset() + db.notice.findUniqueOrThrow.reset() db.notice.create.reset() db.notice.delete.reset() db.notice.update.reset() @@ -107,7 +108,7 @@ describe('NoticeService', () => { db.notice.create.rejects(foreignKeyFailedPrismaError) await expect( service.createNotice(failGroupId, userId, createNoticeInput) - ).to.be.rejectedWith(EntityNotExistException) + ).to.be.rejectedWith(PrismaClientKnownRequestError) }) }) @@ -123,7 +124,7 @@ describe('NoticeService', () => { db.notice.update.rejects(relatedRecordsNotFoundPrismaError) await expect( service.updateNotice(failGroupId, noticeId, updateNoticeInput) - ).to.be.rejectedWith(EntityNotExistException) + ).to.be.rejectedWith(PrismaClientKnownRequestError) }) }) @@ -139,7 +140,7 @@ describe('NoticeService', () => { db.notice.delete.rejects(relatedRecordsNotFoundPrismaError) await expect( service.deleteNotice(failGroupId, noticeId) - ).to.be.rejectedWith(EntityNotExistException) + ).to.be.rejectedWith(PrismaClientKnownRequestError) }) }) @@ -153,13 +154,14 @@ describe('NoticeService', () => { describe('getNotice', () => { it('should return a notice', async () => { - db.notice.findFirst.resolves(notice) + db.notice.findUniqueOrThrow.resolves(notice) expect(await service.getNotice(groupId, noticeId)).to.deep.equal(notice) }) it('should throw error when notice not found', async () => { + db.notice.findUniqueOrThrow.rejects(relatedRecordsNotFoundPrismaError) await expect(service.getNotice(failGroupId, noticeId)).to.be.rejectedWith( - EntityNotExistException + PrismaClientKnownRequestError ) }) }) diff --git a/apps/backend/apps/admin/src/notice/notice.service.ts b/apps/backend/apps/admin/src/notice/notice.service.ts index ef87812d2d..1060c1bf5d 100644 --- a/apps/backend/apps/admin/src/notice/notice.service.ts +++ b/apps/backend/apps/admin/src/notice/notice.service.ts @@ -1,6 +1,4 @@ import { Injectable } from '@nestjs/common' -import { PrismaClientKnownRequestError } from '@prisma/client/runtime/library' -import { EntityNotExistException } from '@libs/exception' import { PrismaService } from '@libs/prisma' import type { CreateNoticeInput, UpdateNoticeInput } from './model/notice.input' @@ -13,42 +11,22 @@ export class NoticeService { groupId: number, createNoticeInput: CreateNoticeInput ) { - try { - return await this.prisma.notice.create({ - data: { - createdById: userId, - groupId, - ...createNoticeInput - } - }) - } catch (error) { - if ( - error instanceof PrismaClientKnownRequestError && - error.code === 'P2003' - ) { - throw new EntityNotExistException('Group') + return await this.prisma.notice.create({ + data: { + createdById: userId, + groupId, + ...createNoticeInput } - throw error - } + }) } async deleteNotice(groupId: number, noticeId: number) { - try { - return await this.prisma.notice.delete({ - where: { - id: noticeId, - groupId - } - }) - } catch (error) { - if ( - error instanceof PrismaClientKnownRequestError && - error.code === 'P2025' - ) { - throw new EntityNotExistException('Notice') + return await this.prisma.notice.delete({ + where: { + id: noticeId, + groupId } - throw error - } + }) } async updateNotice( @@ -56,36 +34,22 @@ export class NoticeService { noticeId: number, updateNoticeInput: UpdateNoticeInput ) { - try { - return await this.prisma.notice.update({ - where: { - id: noticeId, - groupId - }, - data: updateNoticeInput - }) - } catch (error) { - if ( - error instanceof PrismaClientKnownRequestError && - error.code === 'P2025' - ) { - throw new EntityNotExistException('Notice') - } - throw error - } + return await this.prisma.notice.update({ + where: { + id: noticeId, + groupId + }, + data: updateNoticeInput + }) } async getNotice(groupId: number, noticeId: number) { - const notice = await this.prisma.notice.findFirst({ + return await this.prisma.notice.findUniqueOrThrow({ where: { id: noticeId, groupId } }) - if (notice == null) { - throw new EntityNotExistException('Notice') - } - return notice } async getNotices(groupId: number, cursor: number | null, take: number) { diff --git a/apps/backend/apps/client/src/group/group.controller.ts b/apps/backend/apps/client/src/group/group.controller.ts index 8a6815d413..09a35c29a8 100644 --- a/apps/backend/apps/client/src/group/group.controller.ts +++ b/apps/backend/apps/client/src/group/group.controller.ts @@ -3,26 +3,18 @@ import { DefaultValuePipe, Delete, Get, - InternalServerErrorException, Logger, - NotFoundException, Param, Post, Query, Req, UseGuards } from '@nestjs/common' -import { Prisma } from '@prisma/client' import { AuthenticatedRequest, AuthNotNeededIfOpenSpace, GroupMemberGuard } from '@libs/auth' -import { - ConflictFoundException, - EntityNotExistException, - ForbiddenAccessException -} from '@libs/exception' import { CursorValidationPipe, GroupIDPipe, RequiredIntPipe } from '@libs/pipe' import { GroupService } from './group.service' @@ -39,22 +31,12 @@ export class GroupController { @Query('take', new DefaultValuePipe(10), new RequiredIntPipe('take')) take: number ) { - try { - return await this.groupService.getGroups(cursor, take) - } catch (error) { - this.logger.error(error) - throw new InternalServerErrorException() - } + return await this.groupService.getGroups(cursor, take) } @Get('joined') async getJoinedGroups(@Req() req: AuthenticatedRequest) { - try { - return await this.groupService.getJoinedGroups(req.user.id) - } catch (error) { - this.logger.error(error) - throw new InternalServerErrorException() - } + return await this.groupService.getJoinedGroups(req.user.id) } @Get(':groupId') @@ -62,18 +44,7 @@ export class GroupController { @Req() req: AuthenticatedRequest, @Param('groupId', GroupIDPipe) groupId: number ) { - try { - return await this.groupService.getGroup(groupId, req.user.id) - } catch (error) { - if ( - error instanceof Prisma.PrismaClientKnownRequestError && - error.name === 'NotFoundError' - ) { - throw new NotFoundException(error.message) - } - this.logger.error(error) - throw new InternalServerErrorException() - } + return await this.groupService.getGroup(groupId, req.user.id) } @Get('invite/:invitation') @@ -81,23 +52,7 @@ export class GroupController { @Req() req: AuthenticatedRequest, @Param('invitation') invitation: string ) { - try { - return await this.groupService.getGroupByInvitation( - invitation, - req.user.id - ) - } catch (error) { - if ( - error instanceof Prisma.PrismaClientKnownRequestError && - error.name === 'NotFoundError' - ) { - throw new NotFoundException('Invalid invitation') - } else if (error instanceof EntityNotExistException) { - throw error.convert2HTTPException() - } - this.logger.error(error) - throw new InternalServerErrorException() - } + return await this.groupService.getGroupByInvitation(invitation, req.user.id) } @Post(':groupId/join') @@ -106,27 +61,11 @@ export class GroupController { @Param('groupId', GroupIDPipe) groupId: number, @Query('invitation') invitation?: string ) { - try { - return await this.groupService.joinGroupById( - req.user.id, - groupId, - invitation - ) - } catch (error) { - if ( - error instanceof Prisma.PrismaClientKnownRequestError && - error.name === 'NotFoundError' - ) { - throw new NotFoundException(error.message) - } else if ( - error instanceof ForbiddenAccessException || - error instanceof ConflictFoundException - ) { - throw error.convert2HTTPException() - } - this.logger.error(error) - throw new InternalServerErrorException() - } + return await this.groupService.joinGroupById( + req.user.id, + groupId, + invitation + ) } @Delete(':groupId/leave') @@ -135,37 +74,18 @@ export class GroupController { @Req() req: AuthenticatedRequest, @Param('groupId', GroupIDPipe) groupId: number ) { - try { - return await this.groupService.leaveGroup(req.user.id, groupId) - } catch (error) { - if (error instanceof ConflictFoundException) { - throw error.convert2HTTPException() - } - - this.logger.error(error) - throw new InternalServerErrorException() - } + return await this.groupService.leaveGroup(req.user.id, groupId) } @Get(':groupId/leaders') @UseGuards(GroupMemberGuard) async getGroupLeaders(@Param('groupId', GroupIDPipe) groupId: number) { - try { - return await this.groupService.getGroupLeaders(groupId) - } catch (error) { - this.logger.error(error) - throw new InternalServerErrorException() - } + return await this.groupService.getGroupLeaders(groupId) } @Get(':groupId/members') @UseGuards(GroupMemberGuard) async getGroupMembers(@Param('groupId', GroupIDPipe) groupId: number) { - try { - return await this.groupService.getGroupMembers(groupId) - } catch (error) { - this.logger.error(error) - throw new InternalServerErrorException() - } + return await this.groupService.getGroupMembers(groupId) } } diff --git a/apps/backend/apps/client/src/group/group.service.ts b/apps/backend/apps/client/src/group/group.service.ts index c6aedc41fd..d6e7ca34a7 100644 --- a/apps/backend/apps/client/src/group/group.service.ts +++ b/apps/backend/apps/client/src/group/group.service.ts @@ -77,7 +77,6 @@ export class GroupService { async getGroupByInvitation(code: string, userId: number) { const groupId = await this.cacheManager.get(invitationCodeKey(code)) - if (!groupId) { throw new EntityNotExistException('Invalid invitation') } @@ -329,7 +328,7 @@ export class GroupService { } async createUserGroup(userGroupData: UserGroupData): Promise { - const user = await this.prisma.user.findUnique({ + const user = await this.prisma.user.findUniqueOrThrow({ where: { id: userGroupData.userId } From 9eb188750e903d616a453192d50ecd4c392cbe8e Mon Sep 17 00:00:00 2001 From: Kohminchae <72334086+Kohminchae@users.noreply.github.com> Date: Sat, 5 Oct 2024 23:09:01 +0900 Subject: [PATCH 006/113] feat(fe): add code manually save button (#2095) * feat(fe): add code manually save button * feat(fe): modify localStorage key * fix(fe): fix to localstorage * chore(fe): fix toast message * fix(fe): remove code context * chore(fe): fix code based on review * chore(fe): add useEffect dependency --- apps/frontend/components/EditorHeader.tsx | 72 +++++++++++++++++-- .../components/EditorResizablePanel.tsx | 17 +---- apps/frontend/components/auth/SignIn.tsx | 6 +- apps/frontend/stores/editor.ts | 42 ++++++----- 4 files changed, 99 insertions(+), 38 deletions(-) diff --git a/apps/frontend/components/EditorHeader.tsx b/apps/frontend/components/EditorHeader.tsx index 7275d4bca8..46a0061a07 100644 --- a/apps/frontend/components/EditorHeader.tsx +++ b/apps/frontend/components/EditorHeader.tsx @@ -24,7 +24,13 @@ import { auth } from '@/lib/auth' import { fetcherWithAuth } from '@/lib/utils' import submitIcon from '@/public/submit.svg' import useAuthModalStore from '@/stores/authModal' -import { CodeContext, useLanguageStore } from '@/stores/editor' +import { + useLanguageStore, + getKey, + setItem, + getItem, + CodeContext +} from '@/stores/editor' import type { Language, ProblemDetail, @@ -32,10 +38,11 @@ import type { Template } from '@/types/type' import JSConfetti from 'js-confetti' +import { Save } from 'lucide-react' import type { Route } from 'next' import Image from 'next/image' import { useRouter } from 'next/navigation' -import { useContext, useEffect, useState } from 'react' +import { useContext, useEffect, useRef, useState } from 'react' import { BsTrash3 } from 'react-icons/bs' //import { IoPlayCircleOutline } from 'react-icons/io5' import { useInterval } from 'react-use' @@ -60,8 +67,12 @@ export default function Editor({ const [loading, setLoading] = useState(false) const [submissionId, setSubmissionId] = useState(null) const [templateCode, setTemplateCode] = useState(null) + const [userName, setUserName] = useState('') const router = useRouter() const confetti = typeof window !== 'undefined' ? new JSConfetti() : null + const storageKey = useRef(getKey(language, problem.id, userName, contestId)) + const { currentModal, showSignIn } = useAuthModalStore((state) => state) + useInterval( async () => { const res = await fetcherWithAuth(`submission/${submissionId}`, { @@ -90,14 +101,15 @@ export default function Editor({ loading && submissionId ? 500 : null ) - const { showSignIn } = useAuthModalStore((state) => state) useEffect(() => { auth().then((session) => { if (!session) { - toast.info('Log in to use submission & auto save feature') + toast.info('Log in to use submission & save feature') + } else { + setUserName(session.user.username) } }) - }, []) + }, [currentModal]) useEffect(() => { if (!templateString) return @@ -109,6 +121,11 @@ export default function Editor({ setTemplateCode(filteredTemplate[0].code[0].text) }, [language]) + useEffect(() => { + storageKey.current = getKey(language, problem.id, userName, contestId) + getLocalstorageCode() + }, [userName, problem, contestId, language, templateCode]) + const submit = async () => { if (code === '') { toast.error('Please write code before submission') @@ -136,6 +153,7 @@ export default function Editor({ } }) if (res.ok) { + saveCode() const submission: Submission = await res.json() setSubmissionId(submission.id) } else { @@ -147,6 +165,40 @@ export default function Editor({ } } + const saveCode = async () => { + const session = await auth() + if (!session) { + toast.error('Log in first to save your code') + } else { + if (storeCodeToLocalstorage()) + toast.success('Successfully saved the code') + else toast.error('Failed to save the code') + } + } + + const storeCodeToLocalstorage = () => { + if (storageKey.current !== undefined) { + setItem(storageKey.current, code) + return true + } + return false + } + + const getLocalstorageCode = () => { + if (storageKey.current !== undefined) { + const storedCode = getItem(storageKey.current) ?? '' + setCode(storedCode ? JSON.parse(storedCode) : templateCode) + } + } + + const resetCode = () => { + if (storageKey.current !== undefined) { + setItem(storageKey.current, templateCode ?? '') + setCode(templateCode ?? '') + toast.success('Successfully reset the code') + } else toast.error('Failed to reset the code') + } + return (
@@ -173,7 +225,7 @@ export default function Editor({ Cancel setCode(templateCode ?? '')} + onClick={resetCode} > Reset @@ -182,6 +234,14 @@ export default function Editor({
+ {/* TODO: Add Test function - {/* TODO: Add Test function - - */}
- {children} - +
) } diff --git a/apps/frontend/components/EditorResizablePanel.tsx b/apps/frontend/components/EditorResizablePanel.tsx index 146f3d913e..e7cc7ca537 100644 --- a/apps/frontend/components/EditorResizablePanel.tsx +++ b/apps/frontend/components/EditorResizablePanel.tsx @@ -6,9 +6,14 @@ import { ResizablePanel, ResizablePanelGroup } from '@/components/ui/resizable' -import { ScrollArea } from '@/components/ui/scroll-area' +import { ScrollArea, ScrollBar } from '@/components/ui/scroll-area' import { Tabs, TabsList, TabsTrigger } from '@/components/ui/tabs' -import { CodeContext, createCodeStore, useLanguageStore } from '@/stores/editor' +import { + CodeContext, + TestResultsContext, + createCodeStore, + useLanguageStore +} from '@/stores/editor' import type { Language, ProblemDetail } from '@/types/type' import type { Route } from 'next' import Link from 'next/link' @@ -17,6 +22,7 @@ import { Suspense, useContext, useEffect } from 'react' import { useStore } from 'zustand' import Loading from '../app/problem/[problemId]/loading' import EditorHeader from './EditorHeader' +import TestcasePanel from './TestcasePanel' interface ProblemEditorProps { problem: ProblemDetail @@ -34,7 +40,21 @@ export default function EditorMainResizablePanel({ const pathname = usePathname() const base = contestId ? `/contest/${contestId}` : '' const { language, setLanguage } = useLanguageStore() - const store = createCodeStore() + const codeStore = createCodeStore() + const testResultStore = useContext(TestResultsContext) + if (!testResultStore) throw new Error('TestResultsContext is not provided') + const { testResults } = useStore(testResultStore) + const testcases = problem.problemTestcase + const testResultData = + testResults.length > 0 + ? testcases.map((testcase, index) => ({ + id: testcase.id, + input: testcase.input, + expectedOutput: testcase.output, + output: testResults[index]?.output, + result: testResults[index]?.result + })) + : null useEffect(() => { if (!problem.languages.includes(language)) { setLanguage(problem.languages[0]) @@ -91,16 +111,38 @@ export default function EditorMainResizablePanel({
- + - + + + + + + + + + + {testResultData && ( + <> + + + + + + )} +
@@ -109,7 +151,6 @@ export default function EditorMainResizablePanel({ } interface CodeEditorInEditorResizablePanelProps { - templateString: string enableCopyPaste: boolean } @@ -123,7 +164,7 @@ function CodeEditorInEditorResizablePanel({ return ( + + {children} + + + ) +} diff --git a/apps/frontend/components/TestcasePanel.tsx b/apps/frontend/components/TestcasePanel.tsx new file mode 100644 index 0000000000..91330073e3 --- /dev/null +++ b/apps/frontend/components/TestcasePanel.tsx @@ -0,0 +1,236 @@ +'use client' + +import { cn } from '@/lib/utils' +import type { TestResultDetail } from '@/types/type' +import { sanitize } from 'isomorphic-dompurify' +import { useState } from 'react' +import { IoMdClose } from 'react-icons/io' +import TestcaseTable from './TestcaseTable' +import { ScrollArea } from './ui/scroll-area' + +interface TestcasePanelProps { + testResult: TestResultDetail[] +} + +export default function TestcasePanel({ testResult }: TestcasePanelProps) { + const [testcaseTabList, setTestcaseTabList] = useState([]) + const [currentTab, setCurrentTab] = useState(0) + const acceptedCount = testResult.filter( + (testcase) => testcase.result === 'Accepted' + ).length + const total = testResult.length + const dataWithIndex = testResult.map((testcase, index) => ({ + ...testcase, + id: index + 1 + })) + const notAcceptedIndexes = dataWithIndex + .map((testcase, index) => (testcase.result !== 'Accepted' ? index : -1)) + .filter((index) => index !== -1) + const tabLength = testcaseTabList.length + + return dataWithIndex.length !== 0 ? ( + <> +
+
0 && + currentTab === testcaseTabList[0].id && + 'rounded-br-xl' + )} + onClick={() => setCurrentTab(0)} + > + {tabLength < 7 ? 'Testcase Result' : 'TC Res'} +
+ {testcaseTabList.map((testcase, index) => { + return ( + + ) + })} +
+
+ + {currentTab === 0 ? ( +
+ + +
+ ) : ( + + )} +
+ + ) : null +} + +function TestcaseTab({ + testcaseTabList, + setTestcaseTabList, + currentTab, + setCurrentTab, + testcase, + index +}: { + testcaseTabList: TestResultDetail[] + setTestcaseTabList: (data: TestResultDetail[]) => void + currentTab: number + setCurrentTab: (data: number) => void + testcase: TestResultDetail + index: number +}) { + function handleDelete(testcase: TestResultDetail) { + const updatedList = testcaseTabList.filter( + (item) => item.id !== testcase.id + ) + setTestcaseTabList(updatedList) + if (currentTab === testcase.id) { + setCurrentTab(0) + } + } + + return ( +
+ handleDelete(testcase)} + /> +
setCurrentTab(testcase.id)} + > + {testcaseTabList.length < 7 ? 'Samples' : 'S'} #{testcase.id} +
+
+ ) +} + +function LabeledField({ label, text }: { label: string; text: string }) { + return ( +
+

{label}

+
+
+    
+ ) +} + +function TestSummary({ + acceptedCount, + total, + notAcceptedIndexes +}: { + acceptedCount: number + total: number + notAcceptedIndexes: number[] +}) { + return ( + + + + + + + {notAcceptedIndexes.length > 0 && ( + + + + + )} + +
Correct Testcase + {acceptedCount}/{total} +
+ Wrong Testcase Number + + {notAcceptedIndexes + .map((index) => `Sample #${index + 1}`) + .join(', ')} +
+ ) +} + +function TestResultDetail({ + dataWithIndex, + currentTab +}: { + dataWithIndex: TestResultDetail[] + currentTab: number +}) { + return ( +
+
+ Result + + {dataWithIndex[currentTab - 1].result} + +
+
+ + + +
+
+ ) +} diff --git a/apps/frontend/components/TestcaseTable.tsx b/apps/frontend/components/TestcaseTable.tsx new file mode 100644 index 0000000000..70a0c8e6d7 --- /dev/null +++ b/apps/frontend/components/TestcaseTable.tsx @@ -0,0 +1,78 @@ +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow +} from '@/components/ui/table' +import { cn } from '@/lib/utils' +import type { TestResultDetail } from '@/types/type' + +export default function TestcaseTable({ + data, + testcaseTabList, + setTestcaseTabList, + setCurrentTab +}: { + data: TestResultDetail[] + testcaseTabList: TestResultDetail[] + setTestcaseTabList: (data: TestResultDetail[]) => void + setCurrentTab: (data: number) => void +}) { + function handleRowClick(index: number) { + setCurrentTab(index + 1) + const updatedList = [...testcaseTabList, data[index]] + const uniqueList = updatedList.filter( + (item, index, self) => index === self.findIndex((t) => t.id === item.id) + ) + setTestcaseTabList(uniqueList) + } + + return ( + + + + No + Input + Output + Result + + + + {data.map((testResult, index) => ( + { + handleRowClick(index) + }} + > + + Sample #{testResult.id} + + + {testResult.input} + + + {testResult.expectedOutput} + + + + {testResult.result} + + + ))} + +
+ ) +} diff --git a/apps/frontend/stores/editor.ts b/apps/frontend/stores/editor.ts index fc5a0e576f..743d54f248 100644 --- a/apps/frontend/stores/editor.ts +++ b/apps/frontend/stores/editor.ts @@ -1,4 +1,4 @@ -import type { Language } from '@/types/type' +import type { Language, TestResult } from '@/types/type' import { createContext } from 'react' import { create, createStore } from 'zustand' import { persist } from 'zustand/middleware' @@ -60,3 +60,32 @@ export const setItem = (name: string, value: string) => { export const removeItem = (name: string) => localStorage.removeItem(name) export const CodeContext = createContext(null) + +interface TestResultsState { + testResults: TestResult[] + setTestResults: (results: TestResult[]) => void +} + +type TestResultsStore = ReturnType + +export const createTestResultsStore = ( + problemId: number, + contestId?: number +) => { + const problemKey = `${problemId}${contestId ? `_${contestId}` : ''}_test_results` + return createStore()( + persist( + (set) => ({ + testResults: [], + setTestResults: (results) => { + set({ testResults: results }) + } + }), + { + name: problemKey + } + ) + ) +} + +export const TestResultsContext = createContext(null) diff --git a/apps/frontend/types/type.ts b/apps/frontend/types/type.ts index 2b30fe3c21..0ba713a335 100644 --- a/apps/frontend/types/type.ts +++ b/apps/frontend/types/type.ts @@ -170,6 +170,19 @@ export interface SubmissionDetail { }[] } +// Test type definition + +export interface TestResult { + id: number + output: string + result: string +} + +export interface TestResultDetail extends TestResult { + input: string + expectedOutput: string +} + export interface SettingsFormat { currentPassword: string newPassword: string From d8b2301a4887fb1e0e28b6a733279f7816819faa Mon Sep 17 00:00:00 2001 From: Kwon Seo Jin <97675977+B0XERCAT@users.noreply.github.com> Date: Sun, 6 Oct 2024 09:32:42 +0900 Subject: [PATCH 008/113] fix(fe): show warning when editing contest if submission exists (#2139) * fix(fe): show warning when editing contest if submission exists * chore(fe): edit toast description --- .../app/admin/contest/[id]/edit/page.tsx | 87 ++++++++++++------- apps/frontend/graphql/submission/queries.ts | 22 ++++- 2 files changed, 79 insertions(+), 30 deletions(-) diff --git a/apps/frontend/app/admin/contest/[id]/edit/page.tsx b/apps/frontend/app/admin/contest/[id]/edit/page.tsx index 53b2b3be29..2ee7e506ae 100644 --- a/apps/frontend/app/admin/contest/[id]/edit/page.tsx +++ b/apps/frontend/app/admin/contest/[id]/edit/page.tsx @@ -33,6 +33,7 @@ import { import { GET_CONTEST } from '@/graphql/contest/queries' import { UPDATE_CONTEST_PROBLEMS_ORDER } from '@/graphql/problem/mutations' import { GET_CONTEST_PROBLEMS } from '@/graphql/problem/queries' +import { GET_CONTEST_SUBMISSIONS_COUNT } from '@/graphql/submission/queries' import { useMutation, useQuery } from '@apollo/client' import type { UpdateContestInput } from '@generated/graphql' import { zodResolver } from '@hookform/resolvers/zod' @@ -62,6 +63,7 @@ export default function Page({ params }: { params: { id: string } }) { const { id } = params const shouldSkipWarning = useRef(false) + const hasSubmission = useRef(false) const router = useRouter() useConfirmNavigation(shouldSkipWarning) @@ -76,6 +78,20 @@ export default function Page({ params }: { params: { id: string } }) { const { handleSubmit, getValues, setValue } = methods + useQuery(GET_CONTEST_SUBMISSIONS_COUNT, { + variables: { + input: { + contestId: Number(id) + }, + take: 2 + }, + onCompleted: (data) => { + if (data.getContestSubmissions.length !== 0) { + hasSubmission.current = true + } + } + }) + useQuery(GET_CONTEST, { variables: { contestId: Number(id) }, onCompleted: (contestData) => { @@ -152,36 +168,49 @@ export default function Page({ params }: { params: { id: string } }) { return } - await removeProblemsFromContest({ - variables: { - groupId: 1, - contestId: Number(id), - problemIds: prevProblemIds - } - }) - await importProblemsToContest({ - variables: { - groupId: 1, - contestId: Number(id), - problemIdsWithScore: problems.map((problem) => { - return { - problemId: problem.id, - score: problem.score + if (hasSubmission.current) { + await new Promise((resolve) => { + toast.warning( + 'Submissions exist. Only contest changes, excluding changes to the contest problems, will be saved.', + { + onAutoClose: () => { + resolve() + }, + duration: 4000 } - }) - } - }) - - const orderArray = problems - .sort((a, b) => a.order - b.order) - .map((problem) => problem.id) - await updateContestProblemsOrder({ - variables: { - groupId: 1, - contestId: Number(id), - orders: orderArray - } - }) + ) + }) + } else { + await removeProblemsFromContest({ + variables: { + groupId: 1, + contestId: Number(id), + problemIds: prevProblemIds + } + }) + await importProblemsToContest({ + variables: { + groupId: 1, + contestId: Number(id), + problemIdsWithScore: problems.map((problem) => { + return { + problemId: problem.id, + score: problem.score + } + }) + } + }) + const orderArray = problems + .sort((a, b) => a.order - b.order) + .map((problem) => problem.id) + await updateContestProblemsOrder({ + variables: { + groupId: 1, + contestId: Number(id), + orders: orderArray + } + }) + } shouldSkipWarning.current = true toast.success('Contest updated successfully') diff --git a/apps/frontend/graphql/submission/queries.ts b/apps/frontend/graphql/submission/queries.ts index dbe1e52d7c..2b25bffb94 100644 --- a/apps/frontend/graphql/submission/queries.ts +++ b/apps/frontend/graphql/submission/queries.ts @@ -1,5 +1,21 @@ import { gql } from '@generated' +const GET_CONTEST_SUBMISSIONS_COUNT = gql(` + query GetContestSubmissionsCount( + $input: GetContestSubmissionsInput!, + $cursor: Int, + $take: Int +) { + getContestSubmissions( + input: $input, + cursor: $cursor, + take: $take + ) { + id + } +} +`) + const GET_CONTEST_SUBMISSIONS = gql(` query GetContestSubmissions( $input: GetContestSubmissionsInput!, @@ -74,4 +90,8 @@ const GET_SUBMISSION = gql(`query GetSubmission( } }`) -export { GET_CONTEST_SUBMISSIONS, GET_SUBMISSION } +export { + GET_CONTEST_SUBMISSIONS_COUNT, + GET_CONTEST_SUBMISSIONS, + GET_SUBMISSION +} From 3d0f651c25bb7af8c116198efb45a4fda121ea0c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 8 Oct 2024 02:09:13 +0900 Subject: [PATCH 009/113] chore(deps): lock file maintenance (#2142) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../production/codedang/.terraform.lock.hcl | 58 +- .../production/network/.terraform.lock.hcl | 58 +- .../production/storage/.terraform.lock.hcl | 58 +- pnpm-lock.yaml | 3024 +++++++++-------- 4 files changed, 1615 insertions(+), 1583 deletions(-) diff --git a/apps/infra/production/codedang/.terraform.lock.hcl b/apps/infra/production/codedang/.terraform.lock.hcl index 0184fdd679..bdd170cd41 100644 --- a/apps/infra/production/codedang/.terraform.lock.hcl +++ b/apps/infra/production/codedang/.terraform.lock.hcl @@ -24,38 +24,38 @@ provider "registry.terraform.io/cyrilgdn/rabbitmq" { } provider "registry.terraform.io/hashicorp/aws" { - version = "5.69.0" + version = "5.70.0" constraints = "~> 5.0, ~> 5.69" hashes = [ - "h1:1M2ByiSUlvH6b3MMVhSzG4xNEgUKm88Dq7bVx2HiMgs=", - "h1:4FHALuOWkfJEdse4dViRDlRs2Y70iOFCGL260euHFrI=", - "h1:54LxJU6PmAA25DwnCnvPuTUaPWT2pVFB2nZtuh2aGIY=", - "h1:Ccpjmuu4G6k6ET0yf9lfhRywN7GBAAxR4rfTl5aY5+U=", - "h1:D0lZsY0SVPzZktABqiPsoT3L2RXHAE9jEz7+1MQpUT8=", - "h1:G4lD+BMc/rwLFuAVTosGcamz/k5q9FxHhFzioD9+Qn0=", - "h1:NOGRH75DF/rSX/rz8eYE+g/oXkTDJiv+7vtkzV4+kvY=", - "h1:Pi2WYSlwij8/Mx8qej6ksAqnU7sMEeUEQBWe1voT1UU=", - "h1:f3DiY7cPJIsLB6md0UTG93lUlqCyJ8X/FTuWWtiRPUg=", - "h1:hV8b5zl9mFgeUInTMYtnq9Sj0o7OBca9CIBRMP3whXU=", - "h1:mFlgrGtryw+rNljF8dI25VyD4/0ZLS7xKJY9dWLLuuY=", - "h1:unGIj/eLOrl42LQm7u0fjtjQHp+FHKinpSxR1ZuWsfI=", - "h1:xKMDPfC1cPq+mzwer+dQJfmzXrbCB1bRNGFb9MQ4zps=", - "h1:xnHkql2WLagCUHmiVf3CrYqzJIzBzNCRvgVg3/CG6Hk=", - "zh:123af8815a80abfd62eab5f9fc3d9226735cfea3627e834a1b48321cd8d391a6", - "zh:1298f312e239768c1846541e89b4fbec7eb21769c4a488c87181909049219fbe", - "zh:4edc950b39f3653beb8cd3e0b86a7dc9b6a77e90e543ed7be72639107bbc48a9", - "zh:5f24c916d6d2ce51e18210628b3b1aca8b85b383982a920b2a6adc259bdbd4e9", - "zh:66f0b2f5869a4dfed7154444c272022c6d9350dc4dfa0fc6d87ccbfc983ec560", - "zh:67e3be60863cf1c51c5be866d8646d433cc31e07514b9121611f812e73f2400d", - "zh:884672345a1d0362644a4d1588085fd4c4f56d3ca61b10c0d25cd1940d828fec", - "zh:8ab0f92da124171c80a2361beb79822fb0f074ffab74e506f58e953a69b283ce", - "zh:908d879139f2246024b5510a38f00f61489eeee6f3f72be10acc5b424c8fc723", + "h1:+QN8de63DAE4QbyODwK14T9ZEKasvRwLMSItMOWoU2Q=", + "h1:BLUSi84tN1hAVGIjp7Jz+5cFJglP4NfHtvKlRpPeOCg=", + "h1:CpqVkF4tQ2xVpiHDd29jrlcxphtGEQGCak5u9wu1Fxc=", + "h1:F0Xy1oGTyjjr4VLvCuscnjuIP26roJhveM87hZIcU3E=", + "h1:Ixv4l0u2CgI4IfEntHOHmk2UlbVuO2JgLflsLCcuPJo=", + "h1:LKnWZnujHcQPm3MAk4elP3H9VXNjlO6rNqlO5s330Yg=", + "h1:O9TDLI3FOmtp01iL7vzPZNKbc3B/iDDaEak5JbT/BqI=", + "h1:d+1BZLpGjhmdKKLc6NMLK/Nedq24E12PpKfq681fASk=", + "h1:eC8TYI3alHbmeCE9zTg0/nFJ47JA0mlSZ8rFfdXYT+g=", + "h1:k0YZF1eY5txnKXfm41X5AqtuHYdZGoNmEvb6je4f+mc=", + "h1:kcKscQCmMLrNMAkaL4XIqGGq4uk8vXthNRvtfersNH0=", + "h1:kw2JHmUSpqQOihkCpBeJ2p+YyMRrNMj1IuMFf7J7coE=", + "h1:t4nYlah7xW8AJBZ+jIgu9fN/vuQrSqM50bd3dN2dfWc=", + "h1:uepnIabzlyNxxxRi5EWfaJLaDjxMrH5oaxBbxmhPDT8=", + "zh:09cbec93c324e6f03a866244ecb2bae71fdf1f5d3d981e858b745c90606b6b6d", + "zh:19685d9f4c9ddcfa476a9a428c6c612be4a1b4e8e1198fbcbb76436b735284ee", + "zh:3358ee6a2b24c982b7c83fac0af6898644d1bbdabf9c4e0589e91e427641ba88", + "zh:34f9f2936de7384f8ed887abdbcb54aea1ce7b0cf2e85243a3fd3904d024747f", + "zh:4a99546cc2140304c90d9ccb9db01589d4145863605a0fcd90027a643ea3ec5d", + "zh:4da32fec0e10dab5aa3dea3c9fe57adc973cc73a71f5d59da3f65d85d925dc3f", + "zh:659cf94522bc38ce0af70f7b0371b2941a0e0bcad02d17c1a7b264575fe07224", + "zh:6f1c172c9b98bc86e4f0526872098ee3246c2620f7b323ce0c2ce6427987f7d2", + "zh:79bf8fb8f37c308742e287694a9de081ff8502b065a390d1bcfbd241b4eca203", "zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425", - "zh:9db6331398d648d9f2f4aa4db1eb9081e9bff584dcfe8f5350e04e6c5d339899", - "zh:a809bbd43bc392e91485b72bd9693874972bc5697b4f24fbcd61b461618ebb6d", - "zh:b9e9464458e7beb9fbf59f8db02f56138f398aaa6173b58a8bfa76aca82106d9", - "zh:cd7f041edaeeb1c4b06152ac8f3ce7b31c39a80a949083255f8fc81bbb11aeac", - "zh:eb71c9b2071ab2caa7aba577902df41c25ded1251c28560f0ac45f5e0f47360e", + "zh:b7a5e1dfd9e179d70a169ddd4db44b56da90309060e27d36b329fe5fb3528e29", + "zh:c2cc728cb18ffd5c4814a10c203452c71f5ab0c46d68f9aa9183183fa60afd87", + "zh:c89bb37d2b8947c9a0d62b0b86ace51542f3327970f4e56a68bf81d9d0b8b65b", + "zh:ef2a61e8112c3b5e70095508aadaadf077e904b62b9cfc22030337f773bba041", + "zh:f714550b858d141ea88579f25247bda2a5ba461337975e77daceaf0bb7a9c358", ] } diff --git a/apps/infra/production/network/.terraform.lock.hcl b/apps/infra/production/network/.terraform.lock.hcl index f029300b52..632e88b506 100644 --- a/apps/infra/production/network/.terraform.lock.hcl +++ b/apps/infra/production/network/.terraform.lock.hcl @@ -2,37 +2,37 @@ # Manual edits may be lost in future updates. provider "registry.terraform.io/hashicorp/aws" { - version = "5.69.0" + version = "5.70.0" constraints = "~> 5.69" hashes = [ - "h1:1M2ByiSUlvH6b3MMVhSzG4xNEgUKm88Dq7bVx2HiMgs=", - "h1:4FHALuOWkfJEdse4dViRDlRs2Y70iOFCGL260euHFrI=", - "h1:54LxJU6PmAA25DwnCnvPuTUaPWT2pVFB2nZtuh2aGIY=", - "h1:Ccpjmuu4G6k6ET0yf9lfhRywN7GBAAxR4rfTl5aY5+U=", - "h1:D0lZsY0SVPzZktABqiPsoT3L2RXHAE9jEz7+1MQpUT8=", - "h1:G4lD+BMc/rwLFuAVTosGcamz/k5q9FxHhFzioD9+Qn0=", - "h1:NOGRH75DF/rSX/rz8eYE+g/oXkTDJiv+7vtkzV4+kvY=", - "h1:Pi2WYSlwij8/Mx8qej6ksAqnU7sMEeUEQBWe1voT1UU=", - "h1:f3DiY7cPJIsLB6md0UTG93lUlqCyJ8X/FTuWWtiRPUg=", - "h1:hV8b5zl9mFgeUInTMYtnq9Sj0o7OBca9CIBRMP3whXU=", - "h1:mFlgrGtryw+rNljF8dI25VyD4/0ZLS7xKJY9dWLLuuY=", - "h1:unGIj/eLOrl42LQm7u0fjtjQHp+FHKinpSxR1ZuWsfI=", - "h1:xKMDPfC1cPq+mzwer+dQJfmzXrbCB1bRNGFb9MQ4zps=", - "h1:xnHkql2WLagCUHmiVf3CrYqzJIzBzNCRvgVg3/CG6Hk=", - "zh:123af8815a80abfd62eab5f9fc3d9226735cfea3627e834a1b48321cd8d391a6", - "zh:1298f312e239768c1846541e89b4fbec7eb21769c4a488c87181909049219fbe", - "zh:4edc950b39f3653beb8cd3e0b86a7dc9b6a77e90e543ed7be72639107bbc48a9", - "zh:5f24c916d6d2ce51e18210628b3b1aca8b85b383982a920b2a6adc259bdbd4e9", - "zh:66f0b2f5869a4dfed7154444c272022c6d9350dc4dfa0fc6d87ccbfc983ec560", - "zh:67e3be60863cf1c51c5be866d8646d433cc31e07514b9121611f812e73f2400d", - "zh:884672345a1d0362644a4d1588085fd4c4f56d3ca61b10c0d25cd1940d828fec", - "zh:8ab0f92da124171c80a2361beb79822fb0f074ffab74e506f58e953a69b283ce", - "zh:908d879139f2246024b5510a38f00f61489eeee6f3f72be10acc5b424c8fc723", + "h1:+QN8de63DAE4QbyODwK14T9ZEKasvRwLMSItMOWoU2Q=", + "h1:BLUSi84tN1hAVGIjp7Jz+5cFJglP4NfHtvKlRpPeOCg=", + "h1:CpqVkF4tQ2xVpiHDd29jrlcxphtGEQGCak5u9wu1Fxc=", + "h1:F0Xy1oGTyjjr4VLvCuscnjuIP26roJhveM87hZIcU3E=", + "h1:Ixv4l0u2CgI4IfEntHOHmk2UlbVuO2JgLflsLCcuPJo=", + "h1:LKnWZnujHcQPm3MAk4elP3H9VXNjlO6rNqlO5s330Yg=", + "h1:O9TDLI3FOmtp01iL7vzPZNKbc3B/iDDaEak5JbT/BqI=", + "h1:d+1BZLpGjhmdKKLc6NMLK/Nedq24E12PpKfq681fASk=", + "h1:eC8TYI3alHbmeCE9zTg0/nFJ47JA0mlSZ8rFfdXYT+g=", + "h1:k0YZF1eY5txnKXfm41X5AqtuHYdZGoNmEvb6je4f+mc=", + "h1:kcKscQCmMLrNMAkaL4XIqGGq4uk8vXthNRvtfersNH0=", + "h1:kw2JHmUSpqQOihkCpBeJ2p+YyMRrNMj1IuMFf7J7coE=", + "h1:t4nYlah7xW8AJBZ+jIgu9fN/vuQrSqM50bd3dN2dfWc=", + "h1:uepnIabzlyNxxxRi5EWfaJLaDjxMrH5oaxBbxmhPDT8=", + "zh:09cbec93c324e6f03a866244ecb2bae71fdf1f5d3d981e858b745c90606b6b6d", + "zh:19685d9f4c9ddcfa476a9a428c6c612be4a1b4e8e1198fbcbb76436b735284ee", + "zh:3358ee6a2b24c982b7c83fac0af6898644d1bbdabf9c4e0589e91e427641ba88", + "zh:34f9f2936de7384f8ed887abdbcb54aea1ce7b0cf2e85243a3fd3904d024747f", + "zh:4a99546cc2140304c90d9ccb9db01589d4145863605a0fcd90027a643ea3ec5d", + "zh:4da32fec0e10dab5aa3dea3c9fe57adc973cc73a71f5d59da3f65d85d925dc3f", + "zh:659cf94522bc38ce0af70f7b0371b2941a0e0bcad02d17c1a7b264575fe07224", + "zh:6f1c172c9b98bc86e4f0526872098ee3246c2620f7b323ce0c2ce6427987f7d2", + "zh:79bf8fb8f37c308742e287694a9de081ff8502b065a390d1bcfbd241b4eca203", "zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425", - "zh:9db6331398d648d9f2f4aa4db1eb9081e9bff584dcfe8f5350e04e6c5d339899", - "zh:a809bbd43bc392e91485b72bd9693874972bc5697b4f24fbcd61b461618ebb6d", - "zh:b9e9464458e7beb9fbf59f8db02f56138f398aaa6173b58a8bfa76aca82106d9", - "zh:cd7f041edaeeb1c4b06152ac8f3ce7b31c39a80a949083255f8fc81bbb11aeac", - "zh:eb71c9b2071ab2caa7aba577902df41c25ded1251c28560f0ac45f5e0f47360e", + "zh:b7a5e1dfd9e179d70a169ddd4db44b56da90309060e27d36b329fe5fb3528e29", + "zh:c2cc728cb18ffd5c4814a10c203452c71f5ab0c46d68f9aa9183183fa60afd87", + "zh:c89bb37d2b8947c9a0d62b0b86ace51542f3327970f4e56a68bf81d9d0b8b65b", + "zh:ef2a61e8112c3b5e70095508aadaadf077e904b62b9cfc22030337f773bba041", + "zh:f714550b858d141ea88579f25247bda2a5ba461337975e77daceaf0bb7a9c358", ] } diff --git a/apps/infra/production/storage/.terraform.lock.hcl b/apps/infra/production/storage/.terraform.lock.hcl index d0404b47e7..90a26e14e5 100644 --- a/apps/infra/production/storage/.terraform.lock.hcl +++ b/apps/infra/production/storage/.terraform.lock.hcl @@ -2,38 +2,38 @@ # Manual edits may be lost in future updates. provider "registry.terraform.io/hashicorp/aws" { - version = "5.69.0" + version = "5.70.0" constraints = "~> 5.69" hashes = [ - "h1:1M2ByiSUlvH6b3MMVhSzG4xNEgUKm88Dq7bVx2HiMgs=", - "h1:4FHALuOWkfJEdse4dViRDlRs2Y70iOFCGL260euHFrI=", - "h1:54LxJU6PmAA25DwnCnvPuTUaPWT2pVFB2nZtuh2aGIY=", - "h1:Ccpjmuu4G6k6ET0yf9lfhRywN7GBAAxR4rfTl5aY5+U=", - "h1:D0lZsY0SVPzZktABqiPsoT3L2RXHAE9jEz7+1MQpUT8=", - "h1:G4lD+BMc/rwLFuAVTosGcamz/k5q9FxHhFzioD9+Qn0=", - "h1:NOGRH75DF/rSX/rz8eYE+g/oXkTDJiv+7vtkzV4+kvY=", - "h1:Pi2WYSlwij8/Mx8qej6ksAqnU7sMEeUEQBWe1voT1UU=", - "h1:f3DiY7cPJIsLB6md0UTG93lUlqCyJ8X/FTuWWtiRPUg=", - "h1:hV8b5zl9mFgeUInTMYtnq9Sj0o7OBca9CIBRMP3whXU=", - "h1:mFlgrGtryw+rNljF8dI25VyD4/0ZLS7xKJY9dWLLuuY=", - "h1:unGIj/eLOrl42LQm7u0fjtjQHp+FHKinpSxR1ZuWsfI=", - "h1:xKMDPfC1cPq+mzwer+dQJfmzXrbCB1bRNGFb9MQ4zps=", - "h1:xnHkql2WLagCUHmiVf3CrYqzJIzBzNCRvgVg3/CG6Hk=", - "zh:123af8815a80abfd62eab5f9fc3d9226735cfea3627e834a1b48321cd8d391a6", - "zh:1298f312e239768c1846541e89b4fbec7eb21769c4a488c87181909049219fbe", - "zh:4edc950b39f3653beb8cd3e0b86a7dc9b6a77e90e543ed7be72639107bbc48a9", - "zh:5f24c916d6d2ce51e18210628b3b1aca8b85b383982a920b2a6adc259bdbd4e9", - "zh:66f0b2f5869a4dfed7154444c272022c6d9350dc4dfa0fc6d87ccbfc983ec560", - "zh:67e3be60863cf1c51c5be866d8646d433cc31e07514b9121611f812e73f2400d", - "zh:884672345a1d0362644a4d1588085fd4c4f56d3ca61b10c0d25cd1940d828fec", - "zh:8ab0f92da124171c80a2361beb79822fb0f074ffab74e506f58e953a69b283ce", - "zh:908d879139f2246024b5510a38f00f61489eeee6f3f72be10acc5b424c8fc723", + "h1:+QN8de63DAE4QbyODwK14T9ZEKasvRwLMSItMOWoU2Q=", + "h1:BLUSi84tN1hAVGIjp7Jz+5cFJglP4NfHtvKlRpPeOCg=", + "h1:CpqVkF4tQ2xVpiHDd29jrlcxphtGEQGCak5u9wu1Fxc=", + "h1:F0Xy1oGTyjjr4VLvCuscnjuIP26roJhveM87hZIcU3E=", + "h1:Ixv4l0u2CgI4IfEntHOHmk2UlbVuO2JgLflsLCcuPJo=", + "h1:LKnWZnujHcQPm3MAk4elP3H9VXNjlO6rNqlO5s330Yg=", + "h1:O9TDLI3FOmtp01iL7vzPZNKbc3B/iDDaEak5JbT/BqI=", + "h1:d+1BZLpGjhmdKKLc6NMLK/Nedq24E12PpKfq681fASk=", + "h1:eC8TYI3alHbmeCE9zTg0/nFJ47JA0mlSZ8rFfdXYT+g=", + "h1:k0YZF1eY5txnKXfm41X5AqtuHYdZGoNmEvb6je4f+mc=", + "h1:kcKscQCmMLrNMAkaL4XIqGGq4uk8vXthNRvtfersNH0=", + "h1:kw2JHmUSpqQOihkCpBeJ2p+YyMRrNMj1IuMFf7J7coE=", + "h1:t4nYlah7xW8AJBZ+jIgu9fN/vuQrSqM50bd3dN2dfWc=", + "h1:uepnIabzlyNxxxRi5EWfaJLaDjxMrH5oaxBbxmhPDT8=", + "zh:09cbec93c324e6f03a866244ecb2bae71fdf1f5d3d981e858b745c90606b6b6d", + "zh:19685d9f4c9ddcfa476a9a428c6c612be4a1b4e8e1198fbcbb76436b735284ee", + "zh:3358ee6a2b24c982b7c83fac0af6898644d1bbdabf9c4e0589e91e427641ba88", + "zh:34f9f2936de7384f8ed887abdbcb54aea1ce7b0cf2e85243a3fd3904d024747f", + "zh:4a99546cc2140304c90d9ccb9db01589d4145863605a0fcd90027a643ea3ec5d", + "zh:4da32fec0e10dab5aa3dea3c9fe57adc973cc73a71f5d59da3f65d85d925dc3f", + "zh:659cf94522bc38ce0af70f7b0371b2941a0e0bcad02d17c1a7b264575fe07224", + "zh:6f1c172c9b98bc86e4f0526872098ee3246c2620f7b323ce0c2ce6427987f7d2", + "zh:79bf8fb8f37c308742e287694a9de081ff8502b065a390d1bcfbd241b4eca203", "zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425", - "zh:9db6331398d648d9f2f4aa4db1eb9081e9bff584dcfe8f5350e04e6c5d339899", - "zh:a809bbd43bc392e91485b72bd9693874972bc5697b4f24fbcd61b461618ebb6d", - "zh:b9e9464458e7beb9fbf59f8db02f56138f398aaa6173b58a8bfa76aca82106d9", - "zh:cd7f041edaeeb1c4b06152ac8f3ce7b31c39a80a949083255f8fc81bbb11aeac", - "zh:eb71c9b2071ab2caa7aba577902df41c25ded1251c28560f0ac45f5e0f47360e", + "zh:b7a5e1dfd9e179d70a169ddd4db44b56da90309060e27d36b329fe5fb3528e29", + "zh:c2cc728cb18ffd5c4814a10c203452c71f5ab0c46d68f9aa9183183fa60afd87", + "zh:c89bb37d2b8947c9a0d62b0b86ace51542f3327970f4e56a68bf81d9d0b8b65b", + "zh:ef2a61e8112c3b5e70095508aadaadf077e904b62b9cfc22030337f773bba041", + "zh:f714550b858d141ea88579f25247bda2a5ba461337975e77daceaf0bb7a9c358", ] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b0c9655ccd..29cecfe049 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,7 @@ importers: devDependencies: '@aws-sdk/client-s3': specifier: ^3.658.1 - version: 3.662.0 + version: 3.665.0 '@commitlint/cli': specifier: ^19.5.0 version: 19.5.0(@types/node@22.7.4)(typescript@5.5.4) @@ -46,7 +46,7 @@ importers: version: 9.28.0(eslint@8.57.1) knip: specifier: ^5.30.6 - version: 5.30.6(@types/node@22.7.4)(typescript@5.5.4) + version: 5.32.0(@types/node@22.7.4)(typescript@5.5.4) lefthook: specifier: ^1.7.18 version: 1.7.18 @@ -70,13 +70,13 @@ importers: version: 4.11.0(graphql@16.9.0) '@aws-sdk/client-s3': specifier: ^3.658.1 - version: 3.662.0 + version: 3.665.0 '@aws-sdk/client-ses': specifier: ^3.658.1 - version: 3.662.0 + version: 3.665.0 '@aws-sdk/credential-provider-node': specifier: ^3.658.1 - version: 3.662.0(@aws-sdk/client-sso-oidc@3.662.0(@aws-sdk/client-sts@3.662.0))(@aws-sdk/client-sts@3.662.0) + version: 3.665.0(@aws-sdk/client-sso-oidc@3.665.0(@aws-sdk/client-sts@3.665.0))(@aws-sdk/client-sts@3.665.0) '@golevelup/nestjs-rabbitmq': specifier: ^5.5.0 version: 5.5.0(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.4(@nestjs/common@10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.4)(reflect-metadata@0.2.2)(rxjs@7.8.1))(reflect-metadata@0.2.2)(rxjs@7.8.1) @@ -356,7 +356,7 @@ importers: dependencies: '@apollo/client': specifier: ^3.11.8 - version: 3.11.8(@types/react@18.3.10)(graphql-ws@5.16.0(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(subscriptions-transport-ws@0.11.0(graphql@16.9.0)) + version: 3.11.8(@types/react@18.3.11)(graphql-ws@5.16.0(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(subscriptions-transport-ws@0.11.0(graphql@16.9.0)) '@codemirror/lang-cpp': specifier: ^6.0.2 version: 6.0.2 @@ -374,7 +374,7 @@ importers: version: 6.34.1 '@headlessui/react': specifier: ^2.1.8 - version: 2.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.1.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@hookform/resolvers': specifier: ^3.9.0 version: 3.9.0(react-hook-form@7.53.0(react@18.3.1)) @@ -395,58 +395,58 @@ importers: version: 1.47.2 '@radix-ui/react-accordion': specifier: ^1.2.0 - version: 1.2.1(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.2.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-alert-dialog': specifier: ^1.1.1 - version: 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-checkbox': specifier: ^1.1.1 - version: 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-dialog': specifier: ^1.1.1 - version: 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-dropdown-menu': specifier: ^2.1.1 - version: 2.1.2(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-icons': specifier: ^1.3.0 version: 1.3.0(react@18.3.1) '@radix-ui/react-label': specifier: ^2.1.0 - version: 2.1.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-popover': specifier: ^1.1.1 - version: 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-scroll-area': specifier: ^1.1.0 - version: 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-select': specifier: ^2.1.1 - version: 2.1.2(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-separator': specifier: ^1.1.0 - version: 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-slot': specifier: ^1.1.0 - version: 1.1.0(@types/react@18.3.10)(react@18.3.1) + version: 1.1.0(@types/react@18.3.11)(react@18.3.1) '@radix-ui/react-switch': specifier: ^1.1.0 - version: 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-tabs': specifier: ^1.1.0 - version: 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-toast': specifier: ^1.2.1 - version: 1.2.2(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.2.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-toggle': specifier: ^1.1.0 - version: 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-tooltip': specifier: ^1.1.2 - version: 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@sentry/nextjs': specifier: ^8.32.0 - version: 8.32.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(next@14.2.13(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.94.0(@swc/core@1.7.26(@swc/helpers@0.5.13))) + version: 8.33.1(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(next@14.2.13(@babel/core@7.25.7)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.94.0(@swc/core@1.7.26(@swc/helpers@0.5.13))) '@tailwindcss/typography': specifier: ^0.5.15 version: 0.5.15(tailwindcss@3.4.13(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@20.16.10)(typescript@5.5.4))) @@ -479,19 +479,19 @@ importers: version: 2.8.0(@tiptap/extension-text-style@2.8.0(@tiptap/core@2.8.0(@tiptap/pm@2.8.0))) '@uiw/codemirror-extensions-langs': specifier: ^4.23.3 - version: 4.23.3(@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1))(@codemirror/language-data@6.5.1(@codemirror/view@6.34.1))(@codemirror/language@6.10.3)(@codemirror/legacy-modes@6.4.1)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1)(@lezer/highlight@1.2.1)(@lezer/javascript@1.4.18)(@lezer/lr@1.4.2) + version: 4.23.5(@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2))(@codemirror/language-data@6.5.1(@codemirror/view@6.34.1))(@codemirror/language@6.10.3)(@codemirror/legacy-modes@6.4.1)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2)(@lezer/highlight@1.2.1)(@lezer/javascript@1.4.18)(@lezer/lr@1.4.2) '@uiw/codemirror-themes': specifier: ^4.23.3 - version: 4.23.3(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) + version: 4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) '@uiw/react-codemirror': specifier: ^4.23.3 - version: 4.23.3(@babel/runtime@7.25.6)(@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1))(@codemirror/language@6.10.3)(@codemirror/lint@6.8.2)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.34.1)(codemirror@6.0.1(@lezer/common@1.2.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 4.23.5(@babel/runtime@7.25.7)(@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2))(@codemirror/language@6.10.3)(@codemirror/lint@6.8.2)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.34.1)(codemirror@6.0.1(@lezer/common@1.2.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) apollo-upload-client: specifier: ^18.0.1 - version: 18.0.1(@apollo/client@3.11.8(@types/react@18.3.10)(graphql-ws@5.16.0(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(subscriptions-transport-ws@0.11.0(graphql@16.9.0)))(graphql@16.9.0) + version: 18.0.1(@apollo/client@3.11.8(@types/react@18.3.11)(graphql-ws@5.16.0(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(subscriptions-transport-ws@0.11.0(graphql@16.9.0)))(graphql@16.9.0) cmdk: specifier: ^1.0.0 - version: 1.0.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) date-fns: specifier: ^4.1.0 version: 4.1.0 @@ -506,7 +506,7 @@ importers: version: 8.3.0(react@18.3.1) framer-motion: specifier: ^11.9.0 - version: 11.9.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 11.11.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) graphql: specifier: ^16.9.0 version: 16.9.0 @@ -527,10 +527,10 @@ importers: version: 1.7.2 next: specifier: 14.2.13 - version: 14.2.13(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.2.13(@babel/core@7.25.7)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-auth: specifier: ^4.24.8 - version: 4.24.8(next@14.2.13(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nodemailer@6.9.15)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 4.24.8(next@14.2.13(@babel/core@7.25.7)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nodemailer@6.9.15)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-themes: specifier: ^0.3.0 version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -575,7 +575,7 @@ importers: version: 3.23.8 zustand: specifier: ^4.5.5 - version: 4.5.5(@types/react@18.3.10)(react@18.3.1) + version: 4.5.5(@types/react@18.3.11)(react@18.3.1) devDependencies: '@codemirror/language': specifier: ^6.10.3 @@ -591,10 +591,10 @@ importers: version: 3.2.0(graphql@16.9.0) '@testing-library/react': specifier: ^16.0.1 - version: 16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/apollo-upload-client': specifier: ^18.0.0 - version: 18.0.0(@types/react@18.3.10)(graphql-ws@5.16.0(graphql@16.9.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(subscriptions-transport-ws@0.11.0(graphql@16.9.0)) + version: 18.0.0(@types/react@18.3.11)(graphql-ws@5.16.0(graphql@16.9.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(subscriptions-transport-ws@0.11.0(graphql@16.9.0)) '@types/katex': specifier: ^0.16.7 version: 0.16.7 @@ -603,7 +603,7 @@ importers: version: 20.16.10 '@types/react': specifier: ^18.3.10 - version: 18.3.10 + version: 18.3.11 '@types/react-copy-to-clipboard': specifier: ^5.0.7 version: 5.0.7 @@ -639,7 +639,7 @@ importers: version: 8.4.47 tailwind-merge: specifier: ^2.5.2 - version: 2.5.2 + version: 2.5.3 tailwindcss: specifier: ^3.4.13 version: 3.4.13(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@20.16.10)(typescript@5.5.4)) @@ -651,7 +651,7 @@ importers: version: 5.5.4 vitest: specifier: ^2.1.1 - version: 2.1.1(@types/node@20.16.10)(jsdom@25.0.1)(msw@2.4.9(typescript@5.5.4))(terser@5.34.1) + version: 2.1.2(@types/node@20.16.10)(jsdom@25.0.1)(msw@2.4.9(typescript@5.5.4))(terser@5.34.1) packages: @@ -829,139 +829,139 @@ packages: '@aws-crypto/util@5.2.0': resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - '@aws-sdk/client-s3@3.662.0': - resolution: {integrity: sha512-zZ38Bjrtjn/KlYSxfkh6rcHX77nOXVZThIOc/RMnsMAC5qS+LT0ruhbYXG2q1Q7BaQ2QWQMz/0n/czWHRbOkNA==} + '@aws-sdk/client-s3@3.665.0': + resolution: {integrity: sha512-jlXlF/YiCZyieSmYSU5R0kViU+pKJSKlGHaz+L1uXlpuoMiyNsSC3CGRzvtijBdgMU/vacVcAuj/tC/iov4usg==} engines: {node: '>=16.0.0'} - '@aws-sdk/client-ses@3.662.0': - resolution: {integrity: sha512-lFCkWufa7Y0pBbAQeZL691KguZQe+AllpNXJ54J456V7WtcH8JfdLxj1m0Jx3tjpmhJEuFWOQcB8tFwfyPusIA==} + '@aws-sdk/client-ses@3.665.0': + resolution: {integrity: sha512-L1i3MS6QndY4rkfg3eFWZrRzOSvP64I4aWRZ8QFiM7vQSMkfJQ0zV49b8rJ17j9TaZTYqy9Ae1/06hwvGkTETQ==} engines: {node: '>=16.0.0'} - '@aws-sdk/client-sso-oidc@3.662.0': - resolution: {integrity: sha512-YZrH0sftdmjvEIY8u0LCrfEhyaMVpN0+K0K9WsUrFRMZ7DK6nB9YD1f5EaKUN5UjNw5S7gbjSdI8neSCoELjhw==} + '@aws-sdk/client-sso-oidc@3.665.0': + resolution: {integrity: sha512-FQ2YyM9/6y3clWkf3d60/W4c/HZy61hbfIsR4KIh8aGOifwfIx/UpZQ61pCr/TXTNqbaAVU2/sK+J1zFkGEoLw==} engines: {node: '>=16.0.0'} peerDependencies: - '@aws-sdk/client-sts': ^3.662.0 + '@aws-sdk/client-sts': ^3.665.0 - '@aws-sdk/client-sso@3.662.0': - resolution: {integrity: sha512-4j3+eNSnNblcIYCJrsRRdyXFjAWGpGa7s7pdIyDMLwtYA7AKNlnlyQV14jtezhMrN2j6qZ7zZmnwEyFGipgfWA==} + '@aws-sdk/client-sso@3.665.0': + resolution: {integrity: sha512-zje+oaIiyviDv5dmBWhGHifPTb0Idq/HatNPy+VEiwo2dxcQBexibD5CQE5e8CWZK123Br/9DHft+iNKdiY5bA==} engines: {node: '>=16.0.0'} - '@aws-sdk/client-sts@3.662.0': - resolution: {integrity: sha512-RjiXvfW3a36ybHuzYuZ6ZgddYiENiXLDGC3tlZMsKWuoVQNeoh2grx1wxUA6e4ajAIqJLXs5dAYTSXzGaAqHTA==} + '@aws-sdk/client-sts@3.665.0': + resolution: {integrity: sha512-/OQEaWB1euXhZ/hV+wetDw1tynlrkNKzirzoiFuJ1EQsiIb9Ih/qjUF9KLdF1+/bXbnGu5YvIaAx80YReUchjg==} engines: {node: '>=16.0.0'} - '@aws-sdk/core@3.662.0': - resolution: {integrity: sha512-w64Fa4dsgM8vN7Z+QPR3n+aAl5GXThQRH8deT/iF1rLrzfq7V8xxACJ/CLVaxrZMZUPUUgG7DUAo95nXFWmGjA==} + '@aws-sdk/core@3.665.0': + resolution: {integrity: sha512-nqmNNf7Ml7qDXTIisDv+OYe/rl3nAW4cmR+HxrOCWdhTHe8xRdR5c45VPoh8nv1KIry5xtd+iqPrzzjydes+Og==} engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-env@3.662.0': - resolution: {integrity: sha512-Dgwb0c/FH4xT5QZZFdLTFmCkdG3woXIAgLx5HCoH9Ty5G7T8keHOU9Jm4Vpe2ZJXL7JJHlLakGS65+bgXTuLSQ==} + '@aws-sdk/credential-provider-env@3.664.0': + resolution: {integrity: sha512-95rE+9Voaco0nmKJrXqfJAxSSkSWqlBy76zomiZrUrv7YuijQtHCW8jte6v6UHAFAaBzgFsY7QqBxs15u9SM7g==} engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-http@3.662.0': - resolution: {integrity: sha512-Wnle/uJI4Ku9ABJHof9sio28VlaSbF3jVQKTSVCJftvbKELlFOlY5aXSjtu0wwcJqDS5r78N5KM7aARUJES+DA==} + '@aws-sdk/credential-provider-http@3.664.0': + resolution: {integrity: sha512-svaPwVfWV3g/qjd4cYHTUyBtkdOwcVjC+tSj6EjoMrpZwGUXcCbYe04iU0ARZ6tuH/u3vySbTLOGjSa7g8o9Qw==} engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-ini@3.662.0': - resolution: {integrity: sha512-jk+A5B0NRYG4KrjJ8ef1+r9bFjhpwUm/A9grJmp3JOwcHKXvI2Gy9BXNqfqqVgrK0Gns+WyhJZy6rsRaC+v1oQ==} + '@aws-sdk/credential-provider-ini@3.665.0': + resolution: {integrity: sha512-CSWBV5GqCkK78TTXq6qx40MWCt90t8rS/O7FIR4nbmoUhG/DysaC1G0om1fSx6k+GWcvIIIsSvD4hdbh8FRWKA==} engines: {node: '>=16.0.0'} peerDependencies: - '@aws-sdk/client-sts': ^3.662.0 + '@aws-sdk/client-sts': ^3.665.0 - '@aws-sdk/credential-provider-node@3.662.0': - resolution: {integrity: sha512-2O9wjxdLcU1b+bWVkp3YYbPHo15SU3pW4KfWTca5bB/C01i1eqiHnwsOFz/WKPYYKNj0FhXtJJjeDQLtNFYI8A==} + '@aws-sdk/credential-provider-node@3.665.0': + resolution: {integrity: sha512-cmJfVi4IM0WaKMQvPXhiS5mdIZyCoa04I3D+IEKpD2GAuVZa6tgwqfPyaApFDLjyedGGNFkC4MRgAjCcCl4WFg==} engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-process@3.662.0': - resolution: {integrity: sha512-1QUdtr/JiuvRjVgA8enpgCwjq7Eud8eVUT0i/vpWuFp5TV2FFq/8BD3GBkesTdy4Ylms6QVGf7J6INdfUWQEmw==} + '@aws-sdk/credential-provider-process@3.664.0': + resolution: {integrity: sha512-sQicIw/qWTsmMw8EUQNJXdrWV5SXaZc2zGdCQsQxhR6wwNO2/rZ5JmzdcwUADmleBVyPYk3KGLhcofF/qXT2Ng==} engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-sso@3.662.0': - resolution: {integrity: sha512-zxze6pDPgwBwl7S3h4JDALCCz93pTAfulbCY8FqMEd7GvnAiofHpL9svyt4+gytXwwUSsQ6KxCMVLbi+8k8YIg==} + '@aws-sdk/credential-provider-sso@3.665.0': + resolution: {integrity: sha512-Xe8WW4r70bsetGQG3azFeK/gd+Q4OmNiidtRrG64y/V9TIvIqc7Y/yUZNhEgFkpG19o188VmXg/ulnG3E+MvLg==} engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-web-identity@3.662.0': - resolution: {integrity: sha512-GhPwxmHSFtwCckuT+34JG+U99qKfDWVYPLJOPI6b35+aLhfVqW5CHPmVjtM4WZqbxzsA0a3KAYA/U1ZaluI4SA==} + '@aws-sdk/credential-provider-web-identity@3.664.0': + resolution: {integrity: sha512-10ltP1BfSKRJVXd8Yr5oLbo+VSDskWbps0X3szSsxTk0Dju1xvkz7hoIjylWLvtGbvQ+yb2pmsJYKCudW/4DJg==} engines: {node: '>=16.0.0'} peerDependencies: - '@aws-sdk/client-sts': ^3.662.0 + '@aws-sdk/client-sts': ^3.664.0 - '@aws-sdk/middleware-bucket-endpoint@3.662.0': - resolution: {integrity: sha512-qBdQ7zqdanCPep7puYw1s6lH8lQ2uWP6+klp35cAYjCMbGiItclteXRQOuldkd9Oc7dtoYlTJBDKeAybJZShlw==} + '@aws-sdk/middleware-bucket-endpoint@3.664.0': + resolution: {integrity: sha512-KP+foxGaAclhRI63ElZPvVeG5oajkbNhE7wiW34UoSw8wI2l+lmm36zkiebfP4K5HRyADS+KvGw95851N++s2A==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-expect-continue@3.662.0': - resolution: {integrity: sha512-kSSeblAz0bdE8golejbEp9tLoP1EcYGWqrAjv5kDwbo56J9vbBh12shxDULpDBNXXLBoK4DktHgJl3RqwXlK5g==} + '@aws-sdk/middleware-expect-continue@3.664.0': + resolution: {integrity: sha512-7hvF+HQhDFvBCzxWFmFOa6tWkVjRAaTR/Ltt03TAZ6JzfIayqnqKFvmdvYFfIeD2w3x4gx24zooRillFk4e3mQ==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-flexible-checksums@3.662.0': - resolution: {integrity: sha512-aZEA0a0hYfOL2ah+ZlFAVr2HMWetNooyrDFq+iP04CmE674WCJBp71DdQrRvNQsW+PBkq7iHsgfYEQumYMqz9Q==} + '@aws-sdk/middleware-flexible-checksums@3.664.0': + resolution: {integrity: sha512-XO3T3hFrGKeaTvnWGLbgii//9SAfxock57dz5x3Hutzw+9ckVvNroOWFNHvyTPSDJ+w5Vwq5mLWVDs9tlejBtg==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-host-header@3.662.0': - resolution: {integrity: sha512-Gkb0J1LTvD8LOS8uwoRI5weFXvvJwP1jfnYwzQrFgLymRFHJm5JtORQZtmw34dtdou+IBTUsH1mgI8b3QVVH3w==} + '@aws-sdk/middleware-host-header@3.664.0': + resolution: {integrity: sha512-4tCXJ+DZWTq38eLmFgnEmO8X4jfWpgPbWoCyVYpRHCPHq6xbrU65gfwS9jGx25L4YdEce641ChI9TKLryuUgRA==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-location-constraint@3.662.0': - resolution: {integrity: sha512-+OAm1hKXGy+F/KJFAc8RKX/z74ZOPEqVzg70kzy/mdSNGzJwvEOfT+KwDVncZ01jk9jso1Q8DXGmxfWzZ/n4aw==} + '@aws-sdk/middleware-location-constraint@3.664.0': + resolution: {integrity: sha512-hHMdJqq83cDnSTVhrSDsOrm1DyFtS1rteSwuqN7dGNr093bluCqH1VpnS/8juYzux8QGnzRecs9qV3hncGGxPw==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-logger@3.662.0': - resolution: {integrity: sha512-aSpwVHtfMlqzpmnmmUgRNCaIcxXdRrGqGWG+VWXuYR1F6jJARDDCxGkSuKiPEOLX0h0BroUo4gqbM8ILXQ8rVw==} + '@aws-sdk/middleware-logger@3.664.0': + resolution: {integrity: sha512-eNykMqQuv7eg9pAcaLro44fscIe1VkFfhm+gYnlxd+PH6xqapRki1E68VHehnIptnVBdqnWfEqLUSLGm9suqhg==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-recursion-detection@3.662.0': - resolution: {integrity: sha512-V/MYE+LOFIQDLnpWMHLxnKu+ELhD3pLOrWXVhKpVit6YcHxaOz6nvB40CPamSPDXenA11FGXKAGNHZ0loTpDQg==} + '@aws-sdk/middleware-recursion-detection@3.664.0': + resolution: {integrity: sha512-jq27WMZhm+dY8BWZ9Ipy3eXtZj0lJzpaKQE3A3tH5AOIlUV/gqrmnJ9CdqVVef4EJsq9Yil4ZzQjKKmPsxveQg==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-sdk-s3@3.662.0': - resolution: {integrity: sha512-Ur5UGuS/bP5ftBxepOYJmTYES4Crh9TwIbBMUqsaal/XcdvQ7uYXK/PvlYg9P/bLpStmDBb1bxmnmjdsQBwSgw==} + '@aws-sdk/middleware-sdk-s3@3.665.0': + resolution: {integrity: sha512-mOe6qjwabWVivomUwXrD9LNdZ4DkG6w9htpWBeRZ2I/CnqjzNWXjwWQe7sMtmpXtqTI1Sk6W6shu/u1XY3Kfqg==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-ssec@3.662.0': - resolution: {integrity: sha512-7dxSUCeSLYFlMEr6BwNoYiF+4X7/JyIAyjOOI/hh9hyK8D8f3/xenACb67rPb59wUs6WgWZVg+hvWBC55a5KGg==} + '@aws-sdk/middleware-ssec@3.664.0': + resolution: {integrity: sha512-uyMnxku5ygRxr/z4pO9ul8Rgn2CoFcKCaKnfHfTgVo2yV/jKHI3rAvyD3OtOO7k4S0odaJzss2Fw6GsIKZy5AQ==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-user-agent@3.662.0': - resolution: {integrity: sha512-NT940BLSSys/A8W3zO3g2Kj+zpeydqGbSQgN6qz84jTskQjnrlamoq+Zl9Rrp8Cn8sC10UQ09kGg97lvjVOlmg==} + '@aws-sdk/middleware-user-agent@3.664.0': + resolution: {integrity: sha512-Kp5UwXwayO6d472nntiwgrxqay2KS9ozXNmKjQfDrUWbEzvgKI+jgKNMia8MMnjSxYoBGpQ1B8NGh8a6KMEJJg==} engines: {node: '>=16.0.0'} - '@aws-sdk/region-config-resolver@3.662.0': - resolution: {integrity: sha512-MDiWl4wZSVnnTELLb+jFSe0nj9HwxJPX2JnghXKkOXmbKEiE2/21DCQwU9mr9VUq2ZOQqaSnMFPr94iRu0AVTQ==} + '@aws-sdk/region-config-resolver@3.664.0': + resolution: {integrity: sha512-o/B8dg8K+9714RGYPgMxZgAChPe/MTSMkf/eHXTUFHNik5i1HgVKfac22njV2iictGy/6GhpFsKa1OWNYAkcUg==} engines: {node: '>=16.0.0'} - '@aws-sdk/signature-v4-multi-region@3.662.0': - resolution: {integrity: sha512-nXjFNs/VCT4jh8JyfCDTzUKfnhQU4JTwc0fi6mpQIig88fScKSBNxN4zm1zyg196xf6CBKlQc9UVnMsJYtWYDA==} + '@aws-sdk/signature-v4-multi-region@3.665.0': + resolution: {integrity: sha512-36rKRunD1kE1Y55WyaCTpzoYCs4S4I2z9o5KLMJcF5hI8QvVj37tXQ3sgWJSMdsVgmECArIvDBoeuq3gXQM9jg==} engines: {node: '>=16.0.0'} - '@aws-sdk/token-providers@3.662.0': - resolution: {integrity: sha512-OqtBPutNC9Am10P1W5IwqRvzCVQAHRxWxZnfDBh1FQjNmoboGWYSriKxbrCRYLFffusNuzo8KnOFOmg1sRlhJQ==} + '@aws-sdk/token-providers@3.664.0': + resolution: {integrity: sha512-dBAvXW2/6bAxidvKARFxyCY2uCynYBKRFN00NhS1T5ggxm3sUnuTpWw1DTjl02CVPkacBOocZf10h8pQbHSK8w==} engines: {node: '>=16.0.0'} peerDependencies: - '@aws-sdk/client-sso-oidc': ^3.662.0 + '@aws-sdk/client-sso-oidc': ^3.664.0 - '@aws-sdk/types@3.662.0': - resolution: {integrity: sha512-Ff9/KRmIm8iEzodxzISLj4/pB/0hX2nVw1RFeOBC65OuM6nHrAdWHHog/CVx25hS5JPU0uE3h6NlWRaBJ7AV5w==} + '@aws-sdk/types@3.664.0': + resolution: {integrity: sha512-+GtXktvVgpreM2b+NJL9OqZGsOzHwlCUrO8jgQUvH/yA6Kd8QO2YFhQCp0C9sSzTteZJVqGBu8E0CQurxJHPbw==} engines: {node: '>=16.0.0'} '@aws-sdk/util-arn-parser@3.568.0': resolution: {integrity: sha512-XUKJWWo+KOB7fbnPP0+g/o5Ulku/X53t7i/h+sPHr5xxYTJJ9CYnbToo95mzxe7xWvkLrsNtJ8L+MnNn9INs2w==} engines: {node: '>=16.0.0'} - '@aws-sdk/util-endpoints@3.662.0': - resolution: {integrity: sha512-RQ/78yNUxZZZULFg7VxT7oObGOR/FBc0ojiFoCAKC20ycY8VvVX5Eof4gyxoVpwOP7EoZO3UlWSIqtaEV/X70w==} + '@aws-sdk/util-endpoints@3.664.0': + resolution: {integrity: sha512-KrXoHz6zmAahVHkyWMRT+P6xJaxItgmklxEDrT+npsUB4d5C/lhw16Crcp9TDi828fiZK3GYKRAmmNhvmzvBNg==} engines: {node: '>=16.0.0'} '@aws-sdk/util-locate-window@3.568.0': resolution: {integrity: sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig==} engines: {node: '>=16.0.0'} - '@aws-sdk/util-user-agent-browser@3.662.0': - resolution: {integrity: sha512-5wQd+HbNTY1r1Gndxf93dAEFtKz1DqcalI4Ym40To+RIonSsYQNRomFoizYNgJ1P+Mkfsr4P1dy/MNTlkqTZuQ==} + '@aws-sdk/util-user-agent-browser@3.664.0': + resolution: {integrity: sha512-c/PV3+f1ss4PpskHbcOxTZ6fntV2oXy/xcDR9nW+kVaz5cM1G702gF0rvGLKPqoBwkj2rWGe6KZvEBeLzynTUQ==} - '@aws-sdk/util-user-agent-node@3.662.0': - resolution: {integrity: sha512-vBRbZ9Hr1OGmdJPWj36X0fR8/VdI2JiwK6+oJRa6qfJ6AnhqCYZbCyeA6JIDeEu3M9iu1OLjenU8NdXhTz8c2w==} + '@aws-sdk/util-user-agent-node@3.664.0': + resolution: {integrity: sha512-l/m6KkgrTw1p/VTJTk0IoP9I2OnpWp3WbBgzxoNeh9cUcxTufIn++sBxKj5hhDql57LKWsckScG/MhFuH0vZZA==} engines: {node: '>=16.0.0'} peerDependencies: aws-crt: '>=1.0.0' @@ -973,36 +973,36 @@ packages: resolution: {integrity: sha512-ikLkXn0igUpnJu2mCZjklvmcDGWT9OaLRv3JyC/cRkTaaSrblPjPM7KKsltxdMTLQ+v7fjCN0TsJpxphMfaOPA==} engines: {node: '>=16.0.0'} - '@babel/code-frame@7.24.7': - resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} + '@babel/code-frame@7.25.7': + resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.25.4': - resolution: {integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==} + '@babel/compat-data@7.25.7': + resolution: {integrity: sha512-9ickoLz+hcXCeh7jrcin+/SLWm+GkxE2kTvoYyp38p4WkdFXfQJxDFGWp/YHjiKLPx06z2A7W8XKuqbReXDzsw==} engines: {node: '>=6.9.0'} - '@babel/core@7.25.2': - resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} + '@babel/core@7.25.7': + resolution: {integrity: sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==} engines: {node: '>=6.9.0'} '@babel/generator@7.17.7': resolution: {integrity: sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==} engines: {node: '>=6.9.0'} - '@babel/generator@7.25.6': - resolution: {integrity: sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==} + '@babel/generator@7.25.7': + resolution: {integrity: sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==} engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.24.7': - resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} + '@babel/helper-annotate-as-pure@7.25.7': + resolution: {integrity: sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.25.2': - resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} + '@babel/helper-compilation-targets@7.25.7': + resolution: {integrity: sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.25.4': - resolution: {integrity: sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==} + '@babel/helper-create-class-features-plugin@7.25.7': + resolution: {integrity: sha512-bD4WQhbkx80mAyj/WCm4ZHcF4rDxkoLFO6ph8/5/mQ3z4vAzltQXAmbc7GvVJx5H+lk5Mi5EmbTeox5nMGCsbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -1019,68 +1019,68 @@ packages: resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.24.8': - resolution: {integrity: sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==} + '@babel/helper-member-expression-to-functions@7.25.7': + resolution: {integrity: sha512-O31Ssjd5K6lPbTX9AAYpSKrZmLeagt9uwschJd+Ixo6QiRyfpvgtVQp8qrDR9UNFjZ8+DO34ZkdrN+BnPXemeA==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.24.7': - resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} + '@babel/helper-module-imports@7.25.7': + resolution: {integrity: sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.25.2': - resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} + '@babel/helper-module-transforms@7.25.7': + resolution: {integrity: sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-optimise-call-expression@7.24.7': - resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} + '@babel/helper-optimise-call-expression@7.25.7': + resolution: {integrity: sha512-VAwcwuYhv/AT+Vfr28c9y6SHzTan1ryqrydSTFGjU0uDJHw3uZ+PduI8plCLkRsDnqK2DMEDmwrOQRsK/Ykjng==} engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.24.8': - resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} + '@babel/helper-plugin-utils@7.25.7': + resolution: {integrity: sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==} engines: {node: '>=6.9.0'} - '@babel/helper-replace-supers@7.25.0': - resolution: {integrity: sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==} + '@babel/helper-replace-supers@7.25.7': + resolution: {integrity: sha512-iy8JhqlUW9PtZkd4pHM96v6BdJ66Ba9yWSE4z0W4TvSZwLBPkyDsiIU3ENe4SmrzRBs76F7rQXTy1lYC49n6Lw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-simple-access@7.24.7': - resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} + '@babel/helper-simple-access@7.25.7': + resolution: {integrity: sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==} engines: {node: '>=6.9.0'} - '@babel/helper-skip-transparent-expression-wrappers@7.24.7': - resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==} + '@babel/helper-skip-transparent-expression-wrappers@7.25.7': + resolution: {integrity: sha512-pPbNbchZBkPMD50K0p3JGcFMNLVUCuU/ABybm/PGNj4JiHrpmNyqqCphBk4i19xXtNV0JhldQJJtbSW5aUvbyA==} engines: {node: '>=6.9.0'} '@babel/helper-split-export-declaration@7.24.7': resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.24.8': - resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} + '@babel/helper-string-parser@7.25.7': + resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.24.7': - resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + '@babel/helper-validator-identifier@7.25.7': + resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.24.8': - resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} + '@babel/helper-validator-option@7.25.7': + resolution: {integrity: sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.25.6': - resolution: {integrity: sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==} + '@babel/helpers@7.25.7': + resolution: {integrity: sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.24.7': - resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} + '@babel/highlight@7.25.7': + resolution: {integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.25.6': - resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} + '@babel/parser@7.25.7': + resolution: {integrity: sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==} engines: {node: '>=6.0.0'} hasBin: true @@ -1103,20 +1103,20 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-flow@7.24.7': - resolution: {integrity: sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw==} + '@babel/plugin-syntax-flow@7.25.7': + resolution: {integrity: sha512-fyoj6/YdVtlv2ROig/J0fP7hh/wNO1MJGm1NR70Pg7jbkF+jOUL9joorqaCOQh06Y+LfgTagHzC8KqZ3MF782w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-assertions@7.25.6': - resolution: {integrity: sha512-aABl0jHw9bZ2karQ/uUD6XP4u0SG22SJrOHFoL6XB1R7dTovOP4TzTlsxOYC5yQ1pdscVK2JTUnF6QL3ARoAiQ==} + '@babel/plugin-syntax-import-assertions@7.25.7': + resolution: {integrity: sha512-ZvZQRmME0zfJnDQnVBKYzHxXT7lYBB3Revz1GuS7oLXWMgqUPX4G+DDbT30ICClht9WKV34QVrZhSw6WdklwZQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.24.7': - resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} + '@babel/plugin-syntax-jsx@7.25.7': + resolution: {integrity: sha512-ruZOnKO+ajVL/MVx+PwNBPOkrnXTXoWMtte1MBpegfCArhqOe3Bj52avVj1huLLxNKYKXYaSxZ2F+woK1ekXfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1126,160 +1126,160 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-arrow-functions@7.24.7': - resolution: {integrity: sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==} + '@babel/plugin-transform-arrow-functions@7.25.7': + resolution: {integrity: sha512-EJN2mKxDwfOUCPxMO6MUI58RN3ganiRAG/MS/S3HfB6QFNjroAMelQo/gybyYq97WerCBAZoyrAoW8Tzdq2jWg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoped-functions@7.24.7': - resolution: {integrity: sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==} + '@babel/plugin-transform-block-scoped-functions@7.25.7': + resolution: {integrity: sha512-xHttvIM9fvqW+0a3tZlYcZYSBpSWzGBFIt/sYG3tcdSzBB8ZeVgz2gBP7Df+sM0N1850jrviYSSeUuc+135dmQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoping@7.25.0': - resolution: {integrity: sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==} + '@babel/plugin-transform-block-scoping@7.25.7': + resolution: {integrity: sha512-ZEPJSkVZaeTFG/m2PARwLZQ+OG0vFIhPlKHK/JdIMy8DbRJ/htz6LRrTFtdzxi9EHmcwbNPAKDnadpNSIW+Aow==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-classes@7.25.4': - resolution: {integrity: sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg==} + '@babel/plugin-transform-classes@7.25.7': + resolution: {integrity: sha512-9j9rnl+YCQY0IGoeipXvnk3niWicIB6kCsWRGLwX241qSXpbA4MKxtp/EdvFxsc4zI5vqfLxzOd0twIJ7I99zg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-computed-properties@7.24.7': - resolution: {integrity: sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==} + '@babel/plugin-transform-computed-properties@7.25.7': + resolution: {integrity: sha512-QIv+imtM+EtNxg/XBKL3hiWjgdLjMOmZ+XzQwSgmBfKbfxUjBzGgVPklUuE55eq5/uVoh8gg3dqlrwR/jw3ZeA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-destructuring@7.24.8': - resolution: {integrity: sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==} + '@babel/plugin-transform-destructuring@7.25.7': + resolution: {integrity: sha512-xKcfLTlJYUczdaM1+epcdh1UGewJqr9zATgrNHcLBcV2QmfvPPEixo/sK/syql9cEmbr7ulu5HMFG5vbbt/sEA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-flow-strip-types@7.25.2': - resolution: {integrity: sha512-InBZ0O8tew5V0K6cHcQ+wgxlrjOw1W4wDXLkOTjLRD8GYhTSkxTVBtdy3MMtvYBrbAWa1Qm3hNoTc1620Yj+Mg==} + '@babel/plugin-transform-flow-strip-types@7.25.7': + resolution: {integrity: sha512-q8Td2PPc6/6I73g96SreSUCKEcwMXCwcXSIAVTyTTN6CpJe0dMj8coxu1fg1T9vfBLi6Rsi6a4ECcFBbKabS5w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-for-of@7.24.7': - resolution: {integrity: sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==} + '@babel/plugin-transform-for-of@7.25.7': + resolution: {integrity: sha512-n/TaiBGJxYFWvpJDfsxSj9lEEE44BFM1EPGz4KEiTipTgkoFVVcCmzAL3qA7fdQU96dpo4gGf5HBx/KnDvqiHw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-function-name@7.25.1': - resolution: {integrity: sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==} + '@babel/plugin-transform-function-name@7.25.7': + resolution: {integrity: sha512-5MCTNcjCMxQ63Tdu9rxyN6cAWurqfrDZ76qvVPrGYdBxIj+EawuuxTu/+dgJlhK5eRz3v1gLwp6XwS8XaX2NiQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-literals@7.25.2': - resolution: {integrity: sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==} + '@babel/plugin-transform-literals@7.25.7': + resolution: {integrity: sha512-fwzkLrSu2fESR/cm4t6vqd7ebNIopz2QHGtjoU+dswQo/P6lwAG04Q98lliE3jkz/XqnbGFLnUcE0q0CVUf92w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-member-expression-literals@7.24.7': - resolution: {integrity: sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==} + '@babel/plugin-transform-member-expression-literals@7.25.7': + resolution: {integrity: sha512-Std3kXwpXfRV0QtQy5JJcRpkqP8/wG4XL7hSKZmGlxPlDqmpXtEPRmhF7ztnlTCtUN3eXRUJp+sBEZjaIBVYaw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-commonjs@7.24.8': - resolution: {integrity: sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==} + '@babel/plugin-transform-modules-commonjs@7.25.7': + resolution: {integrity: sha512-L9Gcahi0kKFYXvweO6n0wc3ZG1ChpSFdgG+eV1WYZ3/dGbJK7vvk91FgGgak8YwRgrCuihF8tE/Xg07EkL5COg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-super@7.24.7': - resolution: {integrity: sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==} + '@babel/plugin-transform-object-super@7.25.7': + resolution: {integrity: sha512-pWT6UXCEW3u1t2tcAGtE15ornCBvopHj9Bps9D2DsH15APgNVOTwwczGckX+WkAvBmuoYKRCFa4DK+jM8vh5AA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-parameters@7.24.7': - resolution: {integrity: sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==} + '@babel/plugin-transform-parameters@7.25.7': + resolution: {integrity: sha512-FYiTvku63me9+1Nz7TOx4YMtW3tWXzfANZtrzHhUZrz4d47EEtMQhzFoZWESfXuAMMT5mwzD4+y1N8ONAX6lMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-property-literals@7.24.7': - resolution: {integrity: sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==} + '@babel/plugin-transform-property-literals@7.25.7': + resolution: {integrity: sha512-lQEeetGKfFi0wHbt8ClQrUSUMfEeI3MMm74Z73T9/kuz990yYVtfofjf3NuA42Jy3auFOpbjDyCSiIkTs1VIYw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-display-name@7.24.7': - resolution: {integrity: sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==} + '@babel/plugin-transform-react-display-name@7.25.7': + resolution: {integrity: sha512-r0QY7NVU8OnrwE+w2IWiRom0wwsTbjx4+xH2RTd7AVdof3uurXOF+/mXHQDRk+2jIvWgSaCHKMgggfvM4dyUGA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-self@7.24.7': - resolution: {integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==} + '@babel/plugin-transform-react-jsx-self@7.25.7': + resolution: {integrity: sha512-JD9MUnLbPL0WdVK8AWC7F7tTG2OS6u/AKKnsK+NdRhUiVdnzyR1S3kKQCaRLOiaULvUiqK6Z4JQE635VgtCFeg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-source@7.24.7': - resolution: {integrity: sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==} + '@babel/plugin-transform-react-jsx-source@7.25.7': + resolution: {integrity: sha512-S/JXG/KrbIY06iyJPKfxr0qRxnhNOdkNXYBl/rmwgDd72cQLH9tEGkDm/yJPGvcSIUoikzfjMios9i+xT/uv9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx@7.25.2': - resolution: {integrity: sha512-KQsqEAVBpU82NM/B/N9j9WOdphom1SZH3R+2V7INrQUH+V9EBFwZsEJl8eBIVeQE62FxJCc70jzEZwqU7RcVqA==} + '@babel/plugin-transform-react-jsx@7.25.7': + resolution: {integrity: sha512-vILAg5nwGlR9EXE8JIOX4NHXd49lrYbN8hnjffDtoULwpL9hUx/N55nqh2qd0q6FyNDfjl9V79ecKGvFbcSA0Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-shorthand-properties@7.24.7': - resolution: {integrity: sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==} + '@babel/plugin-transform-shorthand-properties@7.25.7': + resolution: {integrity: sha512-uBbxNwimHi5Bv3hUccmOFlUy3ATO6WagTApenHz9KzoIdn0XeACdB12ZJ4cjhuB2WSi80Ez2FWzJnarccriJeA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-spread@7.24.7': - resolution: {integrity: sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==} + '@babel/plugin-transform-spread@7.25.7': + resolution: {integrity: sha512-Mm6aeymI0PBh44xNIv/qvo8nmbkpZze1KvR8MkEqbIREDxoiWTi18Zr2jryfRMwDfVZF9foKh060fWgni44luw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-template-literals@7.24.7': - resolution: {integrity: sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==} + '@babel/plugin-transform-template-literals@7.25.7': + resolution: {integrity: sha512-SI274k0nUsFFmyQupiO7+wKATAmMFf8iFgq2O+vVFXZ0SV9lNfT1NGzBEhjquFmD8I9sqHLguH+gZVN3vww2AA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime@7.25.6': - resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==} + '@babel/runtime@7.25.7': + resolution: {integrity: sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==} engines: {node: '>=6.9.0'} - '@babel/template@7.25.0': - resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} + '@babel/template@7.25.7': + resolution: {integrity: sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==} engines: {node: '>=6.9.0'} '@babel/traverse@7.23.2': resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.25.6': - resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==} + '@babel/traverse@7.25.7': + resolution: {integrity: sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==} engines: {node: '>=6.9.0'} '@babel/types@7.17.0': resolution: {integrity: sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==} engines: {node: '>=6.9.0'} - '@babel/types@7.25.6': - resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} + '@babel/types@7.25.7': + resolution: {integrity: sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==} engines: {node: '>=6.9.0'} '@bundled-es-modules/cookie@2.0.0': @@ -1534,11 +1534,11 @@ packages: resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} engines: {node: '>=10.0.0'} - '@emnapi/core@1.2.0': - resolution: {integrity: sha512-E7Vgw78I93we4ZWdYCb4DGAwRROGkMIXk7/y87UmANR+J6qsWusmC3gLt0H+O0KOt5e6O38U8oJamgbudrES/w==} + '@emnapi/core@1.3.0': + resolution: {integrity: sha512-9hRqVlhwqBqCoToZ3hFcNVqL+uyHV06Y47ax4UB8L6XgVRqYz7MFnfessojo6+5TK89pKwJnpophwjTMOeKI9Q==} - '@emnapi/runtime@1.2.0': - resolution: {integrity: sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==} + '@emnapi/runtime@1.3.0': + resolution: {integrity: sha512-XMBySMuNZs3DM96xcJmLW4EfGnf+uGmFNjzpehMjuX5PLB5j87ar2Zc4e3PVeZ3I5g3tYtAqskB28manlF69Zw==} '@emnapi/wasi-threads@1.0.1': resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==} @@ -1997,8 +1997,8 @@ packages: peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@grpc/grpc-js@1.11.3': - resolution: {integrity: sha512-i9UraDzFHMR+Iz/MhFLljT+fCpgxZ3O6CxwGJ8YuNYHJItIHUzKJpW2LvoFZNnGPwqc9iWy9RAucxV0JoR9aUQ==} + '@grpc/grpc-js@1.12.0': + resolution: {integrity: sha512-eWdP97A6xKtZXVP/ze9y8zYRB2t6ugQAuLXFuZXAsyqmyltaAjl4yPkmIfc0wuTFJMOUF1AdvIFQCL7fMtaX6g==} engines: {node: '>=12.10.0'} '@grpc/proto-loader@0.7.13': @@ -2006,8 +2006,8 @@ packages: engines: {node: '>=6'} hasBin: true - '@headlessui/react@2.1.8': - resolution: {integrity: sha512-uajqVkAcVG/wHwG9Fh5PFMcFpf2VxM4vNRNKxRjuK009kePVur8LkuuygHfIE+2uZ7z7GnlTtYsyUe6glPpTLg==} + '@headlessui/react@2.1.9': + resolution: {integrity: sha512-ckWw7vlKtnoa1fL2X0fx1a3t/Li9MIKDVXn3SgG65YlxvDAsNrY39PPCxVM7sQRA7go2fJsuHSSauKFNaJHH7A==} engines: {node: '>=10'} peerDependencies: react: ^18 @@ -2144,8 +2144,8 @@ packages: resolution: {integrity: sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg==} engines: {node: '>=18'} - '@inquirer/figures@1.0.6': - resolution: {integrity: sha512-yfZzps3Cso2UbM7WlxKwZQh2Hs6plrbjs1QnzQDZhK2DgyCo6D8AaHps9olkNcUFlcYERMqU3uJSp1gmy3s/qQ==} + '@inquirer/figures@1.0.7': + resolution: {integrity: sha512-m+Trk77mp54Zma6xLkLuY+mvanPxlE4A7yNKs2HBiyZ4UkVs28Mv5c/pgWrHeInx+USHeX/WEPzjrWrcJiQgjw==} engines: {node: '>=18'} '@inquirer/type@1.5.5': @@ -2204,8 +2204,8 @@ packages: '@kamilkisiela/fast-url-parser@1.1.4': resolution: {integrity: sha512-gbkePEBupNydxCelHCESvFSFM8XPh1Zs/OAVRW/rKpEqPAl5PbOM90Si8mv9bvnR53uPD2s/FiRxdvSejpRJew==} - '@lezer/common@1.2.1': - resolution: {integrity: sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==} + '@lezer/common@1.2.2': + resolution: {integrity: sha512-Z+R3hN6kXbgBWAuejUNPihylAL1Z5CaFqnIe0nTX8Ej+XlIy3EGtXxn6WtLMO+os2hRkQvm2yvaGMYliUzlJaw==} '@lezer/cpp@1.1.2': resolution: {integrity: sha512-macwKtyeUO0EW86r3xWQCzOV9/CF8imJLpJlPv3sDY57cPGeUZ8gXWOWNlJr52TVByMV3PayFQCA5SHEERDmVQ==} @@ -2222,8 +2222,8 @@ packages: '@lezer/html@1.3.10': resolution: {integrity: sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w==} - '@lezer/java@1.1.2': - resolution: {integrity: sha512-3j8X70JvYf0BZt8iSRLXLkt0Ry1hVUgH6wT32yBxH/Xi55nW2VMhc1Az4SKwu4YGSmxCm1fsqDDcHTuFjC8pmg==} + '@lezer/java@1.1.3': + resolution: {integrity: sha512-yHquUfujwg6Yu4Fd1GNHCvidIvJwi/1Xu2DaKl/pfWIA2c1oXkVvawH3NyXhCaFx4OdlYBVX5wvz2f7Aoa/4Xw==} '@lezer/javascript@1.4.18': resolution: {integrity: sha512-Y8BeHOt4LtcxJgXwadtfSeWPrh0XzklcCHnCVT+vOsxqH4gWmunP2ykX+VVOlM/dusyVyiNfG3lv0f10UK+mgA==} @@ -2396,8 +2396,8 @@ packages: resolution: {integrity: sha512-zM0mVWSXE0a0h9aKACLwKmD6nHcRiKrPpCfvaKqG1CqDEyjEawId0ocXxVzPMCAm6kkWr2P025msfxXEnt8UGQ==} engines: {node: '>= 10'} - '@napi-rs/wasm-runtime@0.2.4': - resolution: {integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==} + '@napi-rs/wasm-runtime@0.2.5': + resolution: {integrity: sha512-kwUxR7J9WLutBbulqg1dfOrMTwhMdXLdcGUhcbCcGwnPLt3gz19uHVdwH1syKVDbE022ZS2vZxOWflFLS0YTjw==} '@nestjs-modules/mailer@2.0.2': resolution: {integrity: sha512-+z4mADQasg0H1ZaGu4zZTuKv2pu+XdErqx99PLFPzCDNTN/q9U59WPgkxVaHnsvKHNopLj5Xap7G4ZpptduoYw==} @@ -2833,6 +2833,12 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-lru-memoizer@0.40.0': + resolution: {integrity: sha512-21xRwZsEdMPnROu/QsaOIODmzw59IYpGFmuC4aFWvMj6stA8+Ei1tX67nkarJttlNjoM94um0N4X26AD7ff54A==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-mongodb@0.47.0': resolution: {integrity: sha512-yqyXRx2SulEURjgOQyJzhCECSh5i1uM49NUaq9TqLd6fA7g26OahyJfsr9NE38HFqGRHpi4loyrnfYGdrsoVjQ==} engines: {node: '>=14'} @@ -3907,83 +3913,83 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.23.0': - resolution: {integrity: sha512-8OR+Ok3SGEMsAZispLx8jruuXw0HVF16k+ub2eNXKHDmdxL4cf9NlNpAzhlOhNyXzKDEJuFeq0nZm+XlNb1IFw==} + '@rollup/rollup-android-arm-eabi@4.24.0': + resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.23.0': - resolution: {integrity: sha512-rEFtX1nP8gqmLmPZsXRMoLVNB5JBwOzIAk/XAcEPuKrPa2nPJ+DuGGpfQUR0XjRm8KjHfTZLpWbKXkA5BoFL3w==} + '@rollup/rollup-android-arm64@4.24.0': + resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.23.0': - resolution: {integrity: sha512-ZbqlMkJRMMPeapfaU4drYHns7Q5MIxjM/QeOO62qQZGPh9XWziap+NF9fsqPHT0KzEL6HaPspC7sOwpgyA3J9g==} + '@rollup/rollup-darwin-arm64@4.24.0': + resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.23.0': - resolution: {integrity: sha512-PfmgQp78xx5rBCgn2oYPQ1rQTtOaQCna0kRaBlc5w7RlA3TDGGo7m3XaptgitUZ54US9915i7KeVPHoy3/W8tA==} + '@rollup/rollup-darwin-x64@4.24.0': + resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.23.0': - resolution: {integrity: sha512-WAeZfAAPus56eQgBioezXRRzArAjWJGjNo/M+BHZygUcs9EePIuGI1Wfc6U/Ki+tMW17FFGvhCfYnfcKPh18SA==} + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': + resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.23.0': - resolution: {integrity: sha512-v7PGcp1O5XKZxKX8phTXtmJDVpE20Ub1eF6w9iMmI3qrrPak6yR9/5eeq7ziLMrMTjppkkskXyxnmm00HdtXjA==} + '@rollup/rollup-linux-arm-musleabihf@4.24.0': + resolution: {integrity: sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.23.0': - resolution: {integrity: sha512-nAbWsDZ9UkU6xQiXEyXBNHAKbzSAi95H3gTStJq9UGiS1v+YVXwRHcQOQEF/3CHuhX5BVhShKoeOf6Q/1M+Zhg==} + '@rollup/rollup-linux-arm64-gnu@4.24.0': + resolution: {integrity: sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.23.0': - resolution: {integrity: sha512-5QT/Di5FbGNPaVw8hHO1wETunwkPuZBIu6W+5GNArlKHD9fkMHy7vS8zGHJk38oObXfWdsuLMogD4sBySLJ54g==} + '@rollup/rollup-linux-arm64-musl@4.24.0': + resolution: {integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.23.0': - resolution: {integrity: sha512-Sefl6vPyn5axzCsO13r1sHLcmPuiSOrKIImnq34CBurntcJ+lkQgAaTt/9JkgGmaZJ+OkaHmAJl4Bfd0DmdtOQ==} + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': + resolution: {integrity: sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.23.0': - resolution: {integrity: sha512-o4QI2KU/QbP7ZExMse6ULotdV3oJUYMrdx3rBZCgUF3ur3gJPfe8Fuasn6tia16c5kZBBw0aTmaUygad6VB/hQ==} + '@rollup/rollup-linux-riscv64-gnu@4.24.0': + resolution: {integrity: sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.23.0': - resolution: {integrity: sha512-+bxqx+V/D4FGrpXzPGKp/SEZIZ8cIW3K7wOtcJAoCrmXvzRtmdUhYNbgd+RztLzfDEfA2WtKj5F4tcbNPuqgeg==} + '@rollup/rollup-linux-s390x-gnu@4.24.0': + resolution: {integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.23.0': - resolution: {integrity: sha512-I/eXsdVoCKtSgK9OwyQKPAfricWKUMNCwJKtatRYMmDo5N859tbO3UsBw5kT3dU1n6ZcM1JDzPRSGhAUkxfLxw==} + '@rollup/rollup-linux-x64-gnu@4.24.0': + resolution: {integrity: sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.23.0': - resolution: {integrity: sha512-4ZoDZy5ShLbbe1KPSafbFh1vbl0asTVfkABC7eWqIs01+66ncM82YJxV2VtV3YVJTqq2P8HMx3DCoRSWB/N3rw==} + '@rollup/rollup-linux-x64-musl@4.24.0': + resolution: {integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.23.0': - resolution: {integrity: sha512-+5Ky8dhft4STaOEbZu3/NU4QIyYssKO+r1cD3FzuusA0vO5gso15on7qGzKdNXnc1gOrsgCqZjRw1w+zL4y4hQ==} + '@rollup/rollup-win32-arm64-msvc@4.24.0': + resolution: {integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.23.0': - resolution: {integrity: sha512-0SPJk4cPZQhq9qA1UhIRumSE3+JJIBBjtlGl5PNC///BoaByckNZd53rOYD0glpTkYFBQSt7AkMeLVPfx65+BQ==} + '@rollup/rollup-win32-ia32-msvc@4.24.0': + resolution: {integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.23.0': - resolution: {integrity: sha512-lqCK5GQC8fNo0+JvTSxcG7YB1UKYp8yrNLhsArlvPWN+16ovSZgoehlVHg6X0sSWPUkpjRBR5TuR12ZugowZ4g==} + '@rollup/rollup-win32-x64-msvc@4.24.0': + resolution: {integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==} cpu: [x64] os: [win32] @@ -3996,100 +4002,100 @@ packages: '@selderee/plugin-htmlparser2@0.11.0': resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} - '@sentry-internal/browser-utils@8.32.0': - resolution: {integrity: sha512-DpUGhk5O1OVjT0fo9wsbEdO1R/S9gGBRDtn9+FFVeRtieJHwXpeZiLK+tZhTOvaILmtSoTPUEY3L5sK4j5Xq9g==} + '@sentry-internal/browser-utils@8.33.1': + resolution: {integrity: sha512-TW6/r+Gl5jiXv54iK1xZ3mlVgTS/jaBp4vcQ0xGMdgiQ3WchEPcFSeYovL+YHT3tSud0GZqVtDQCz+5i76puqA==} engines: {node: '>=14.18'} - '@sentry-internal/feedback@8.32.0': - resolution: {integrity: sha512-XB7hiVJQW1tNzpoXIHbvm3rjipIt7PZiJJtFg2vxaqu/FzdgOcYqQiwIKivJVAKuRZ9rIeJtK1jdXQFOc/TRJA==} + '@sentry-internal/feedback@8.33.1': + resolution: {integrity: sha512-qauMRTm3qDaLqZ3ibI03cj4gLF40y0ij65nj+cns6iWxGCtPrO8tjvXFWuQsE7Aye9dGMnBgmv7uN+NTUtC3RA==} engines: {node: '>=14.18'} - '@sentry-internal/replay-canvas@8.32.0': - resolution: {integrity: sha512-oBbhtDBkD+5z/T0NVJ5VenBWAid/S9QdVrod/UqxVqU7F8N+E9/INFQI48zCWr4iVlUMcszJPDElvJEsMDvvBQ==} + '@sentry-internal/replay-canvas@8.33.1': + resolution: {integrity: sha512-nsxTFTPCT10Ty/v6+AiST3+yotGP1sUb8xqfKB9fPnS1hZHFryp0NnEls7xFjBsBbZPU1GpFkzrk/E6JFzixDQ==} engines: {node: '>=14.18'} - '@sentry-internal/replay@8.32.0': - resolution: {integrity: sha512-yiEUnn2yyo1AIQIFNeRX3tdK8fmyKIkxdFS1WiVQmeYI/hFwYBTZPly0FcO/g3xnRMSA2tvrS+hZEaaXfK4WhA==} + '@sentry-internal/replay@8.33.1': + resolution: {integrity: sha512-fm4coIOjmanU29NOVN9MyaP4fUCOYytbtFqVSKRFNZQ/xAgNeySiBIbUd6IjujMmnOk9bY0WEUMcdm3Uotjdog==} engines: {node: '>=14.18'} '@sentry/babel-plugin-component-annotate@2.22.3': resolution: {integrity: sha512-OlHA+i+vnQHRIdry4glpiS/xTOtgjmpXOt6IBOUqynx5Jd/iK1+fj+t8CckqOx9wRacO/hru2wfW/jFq0iViLg==} engines: {node: '>= 14'} - '@sentry/browser@8.32.0': - resolution: {integrity: sha512-AEKFj64g4iYwEMRvVcxiY0FswmClRXCP1IEvCqujn8OBS8AjMOr1z/RwYieEs0D90yNNB3YEqF8adrKENblJmw==} + '@sentry/browser@8.33.1': + resolution: {integrity: sha512-c6zI/igexkLwZuGk+u8Rj26ChjxGgkhe6ZbKFsXCYaKAp5ep5X7HQRkkqgbxApiqlC0LduHdd/ymzh139JLg8w==} engines: {node: '>=14.18'} '@sentry/bundler-plugin-core@2.22.3': resolution: {integrity: sha512-DeoUl0WffcqZZRl5Wy9aHvX4WfZbbWt0QbJ7NJrcEViq+dRAI2FQTYECFLwdZi5Gtb3oyqZICO+P7k8wDnzsjQ==} engines: {node: '>= 14'} - '@sentry/cli-darwin@2.36.5': - resolution: {integrity: sha512-dEttfVsw3qlIEaVFpu4X8UTk3OxW2FC6hnAfI5EMNzKifiMu5W868DaQVH/kkqnNelEc2K3FiEqIPW/dpIYEeQ==} + '@sentry/cli-darwin@2.36.6': + resolution: {integrity: sha512-2yKECENqMZKrJY5weA19g4gTgQfeuadWvVu7fVQVsgqoBRIaEhSHJc64ZgiHq2ur06qOuYcQr5FO1VrwUE1pZg==} engines: {node: '>=10'} os: [darwin] - '@sentry/cli-linux-arm64@2.36.5': - resolution: {integrity: sha512-pZmS4fok4W0z+dZcO0Q1WOq1j5mV/MSQe+t8MpI7YXN5vdqs4y7SfKrPiptqapIL0EvVzo6Jot6wJfVvHaDnvA==} + '@sentry/cli-linux-arm64@2.36.6': + resolution: {integrity: sha512-sLmmbZRE7F6UksovwcqEQ7oYXVBejpeL1CtiKVFwNoq9XB5kTiKlVColn+3yPcfwKCNj4H4HoeKc+xMtdd7wow==} engines: {node: '>=10'} cpu: [arm64] os: [linux, freebsd] - '@sentry/cli-linux-arm@2.36.5': - resolution: {integrity: sha512-5J7J4CeAKJwGuNG04r4+3i99GbV3FmTMV8rOIFqfcMotChnNGpOjD234vZQMK5Ycxes1+hcK6stREGEMskkZvg==} + '@sentry/cli-linux-arm@2.36.6': + resolution: {integrity: sha512-6zB7w5NawmdzhPHxqkjlhbvQugCBiFrFaUGvb3u1Oo/VCehdmq/v4v8ob4PNN2cJhoDRqQj2mPTfL/ppYNMJuw==} engines: {node: '>=10'} cpu: [arm] os: [linux, freebsd] - '@sentry/cli-linux-i686@2.36.5': - resolution: {integrity: sha512-GBb3RPkvOw1V9kMKtpl05Nj2nvhAo/rvf9VbU8AFIUhHrad6mQS7Nm6z9oR/HmWOfUUKruf6g4pf99i6H9kqhQ==} + '@sentry/cli-linux-i686@2.36.6': + resolution: {integrity: sha512-M1pdxv7eZdGoG1wDpRb28aRUs/qb0C5jAe+a7sWHIg463jRLAahM8NDkv2bRQv0Xhw3JIkEGGvr46mPkQrOuMQ==} engines: {node: '>=10'} cpu: [x86, ia32] os: [linux, freebsd] - '@sentry/cli-linux-x64@2.36.5': - resolution: {integrity: sha512-yPV1qdSYxpRBoUdMpRsR44TLQHcETmRnppD1IhQe3yMF5bstZUwgrhMWBW2CZjtWoAs9QgyHtdLAp64tHm63GQ==} + '@sentry/cli-linux-x64@2.36.6': + resolution: {integrity: sha512-gVy/zAWY2DEERQ/i3V+oruMas/U29/tsRPcRkB67MIUWbW7W46+c3yH490O+t49qMYYhKYG2YfWoTzW6qMtSlA==} engines: {node: '>=10'} cpu: [x64] os: [linux, freebsd] - '@sentry/cli-win32-i686@2.36.5': - resolution: {integrity: sha512-mFPzcGA3Fz6bW8Dn4OtAcSQ/+C7vr9XH2veyTnoNkGqmzIYJspoMpDo5NmK4bVRZikJejZshQPTzewY3sC1HwQ==} + '@sentry/cli-win32-i686@2.36.6': + resolution: {integrity: sha512-urH+i+WtPeW8Dund0xY8zObvvbMM0XxeEIUS4oFBCB3EMYHVxgNw+woQUv9Vyv7v+OBjckB/r27nxlwNBj4pbg==} engines: {node: '>=10'} cpu: [x86, ia32] os: [win32] - '@sentry/cli-win32-x64@2.36.5': - resolution: {integrity: sha512-RZcRRyXwtJObVZm/flbbxxFo6fd6uiviY+Hc0XkbZTMGmZIbzuYo7QWrt5tbZFGS6S3MG05BP2LopRpFPmSV6Q==} + '@sentry/cli-win32-x64@2.36.6': + resolution: {integrity: sha512-ZauqOqwFAqb/Njyc8Kj2l9Fhbms7T5zB2yu5zwvq1uiqhXqLmsb9mRTF8WJWl9WmO5hwq/GTOEQowvrwK8gblw==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@sentry/cli@2.36.5': - resolution: {integrity: sha512-Pf7vfCFRR9yzX8CX4ZcRbCuEnaGS0VJRNwMRw4cgit2YRrTfcBTeaFyx24JaAGBhuSy506mL9sU1sOe2nEhKIw==} + '@sentry/cli@2.36.6': + resolution: {integrity: sha512-1fcZVwe4H6a3Z1O+7m/z/2em1u67Tf0Zrt2oGEp82bqvCOHA904Wr2otc6GBEuFESB1/Mo8QgD/qwRd9Tv0Otw==} engines: {node: '>= 10'} hasBin: true - '@sentry/core@8.32.0': - resolution: {integrity: sha512-+xidTr0lZ0c755tq4k75dXPEb8PA+qvIefW3U9+dQMORLokBrYoKYMf5zZTG2k/OfSJS6OSxatUj36NFuCs3aA==} + '@sentry/core@8.33.1': + resolution: {integrity: sha512-3SS41suXLFzxL3OQvTMZ6q92ZapELVq2l2SoWlZopcamWhog2Ru0dp2vkunq97kFHb2TzKRTlFH4+4gbT8SJug==} engines: {node: '>=14.18'} - '@sentry/nextjs@8.32.0': - resolution: {integrity: sha512-rnnSsKFd4u9TXGr0XVQ7lEl/PkTfNyJ4kxwu9gW+OJjzmmjzIAC4RyY4YQTR1+p/q9QrruWrXLEsuCPqAHfqNw==} + '@sentry/nextjs@8.33.1': + resolution: {integrity: sha512-XLUyib6bCv2iynKaoYIotVKzLsGc9lr6QI4ZV3/PstiiXKwtTm1TPdBfIlrDJMGIMxH7Z/DmkvJNSESV19Ui6Q==} engines: {node: '>=14.18'} peerDependencies: next: ^13.2.0 || ^14.0 || ^15.0.0-rc.0 - webpack: 5.94.0 + webpack: '>=5.0.0' peerDependenciesMeta: webpack: optional: true - '@sentry/node@8.32.0': - resolution: {integrity: sha512-a2PoFA9j/HmJVGF/zXJhLP6QhRHGye/2EznQdHOELsH1BkeMgBaXl7D52r2E/b7qki647lXrdbspB6jid8NycA==} + '@sentry/node@8.33.1': + resolution: {integrity: sha512-0Xmlrl5nU5Bx6YybaIfztyOIiIXW5X64vcK0u94Sg4uHcDO7YvEbhflKjp669ds2I6ZQ/czqxnaAY8gM6P2SCA==} engines: {node: '>=14.18'} - '@sentry/opentelemetry@8.32.0': - resolution: {integrity: sha512-YCD8EnwJJ2ab3zWWtu5VrvHP/6Ss6GGQH0TYx2cfeGG3c0wTA/5zYx9JR4i3hUtOh1pifN34HlY0yyQHD4yctg==} + '@sentry/opentelemetry@8.33.1': + resolution: {integrity: sha512-D2aE2G0DUHLLnfbOXrTjiNJKAs/RZfOBJMidI4fC2AIwqCmrp55Aex4dRq4hxd8MPLR92Kt/ikHeJxlzWB15KA==} engines: {node: '>=14.18'} peerDependencies: '@opentelemetry/api': ^1.9.0 @@ -4098,22 +4104,22 @@ packages: '@opentelemetry/sdk-trace-base': ^1.26.0 '@opentelemetry/semantic-conventions': ^1.27.0 - '@sentry/react@8.32.0': - resolution: {integrity: sha512-YljqK+k80XOvyXjK2p2neTncRcSuwlpL7qHtNgwR1MHx18FEi7HXlnm13J4g3kxao4ORMxlCXCEPNXlLT+vqQg==} + '@sentry/react@8.33.1': + resolution: {integrity: sha512-SsEX05xfcfOvo7/pK1UyeyTAYWH8iSIsXXlsjvnSRsbuJkjb0c+q6yiZpj3A2PRdbcx43nTVE1n0lSpgaqj2HA==} engines: {node: '>=14.18'} peerDependencies: react: ^16.14.0 || 17.x || 18.x || 19.x - '@sentry/types@8.32.0': - resolution: {integrity: sha512-hxckvN2MzS5SgGDgVQ0/QpZXk13Vrq4BtZLwXhPhyeTmZtUiUfWvcL5TFQqLinfKdTKPe9q2MxeAJ0D4LalhMg==} + '@sentry/types@8.33.1': + resolution: {integrity: sha512-GjoAMvwtpIemoF/IiwZ7A60g4nQv3qwzR21GvJqDVUoKD0e8pv9OLX+HyXoUat4wEDGSuDUcUyUKD2G+od73QA==} engines: {node: '>=14.18'} - '@sentry/utils@8.32.0': - resolution: {integrity: sha512-t1WVERhgmYURxbBj9J4/H2P2X+VKqm7B3ce9iQyrZbdf5NekhcU4jHIecPUWCPHjQkFIqkVTorqeBmDTlg/UmQ==} + '@sentry/utils@8.33.1': + resolution: {integrity: sha512-uzuYpiiJuFY3N4WNHMBWUQX5oNv2t/TbG0OHRp3Rr7yeu+HSfD542TIp9/gMZ+G0Cxd8AmVO3wkKIFbk0TL4Qg==} engines: {node: '>=14.18'} - '@sentry/vercel-edge@8.32.0': - resolution: {integrity: sha512-HxvQWQMjNsLPkYU0vArzjqh+p/vyw9CXyIruu3D89VQU0krL1JFhhhHWZj1UIb7MVTzNO4oq4HeldbOkI0AepA==} + '@sentry/vercel-edge@8.33.1': + resolution: {integrity: sha512-YKAsFAm4ctsKRdoS3LkYF4oG5BD1chT4Uqy4AaBhlz0s5iHxBI7YzZFbcW4YiNnDWT80tdF+FS7AvUAjy+npoA==} engines: {node: '>=14.18'} '@sentry/webpack-plugin@2.22.3': @@ -4152,8 +4158,8 @@ packages: resolution: {integrity: sha512-5d9oBf40qC7n2xUoHmntKLdqsyTMMo/r49+eqSIjJ73eDfEtljAxEhzIQ3bkgXJtR3xiv7YzMT/3FF3ORkjWdg==} engines: {node: '>=16.0.0'} - '@smithy/core@2.4.7': - resolution: {integrity: sha512-goqMjX+IoVEnHZjYuzu8xwoZjoteMiLXsPHuXPBkWsGwu0o9c3nTjqkUlP1Ez/V8E501aOU7CJ3INk8mQcW2gw==} + '@smithy/core@2.4.8': + resolution: {integrity: sha512-x4qWk7p/a4dcf7Vxb2MODIf4OIcqNbK182WxRvZ/3oKPrf/6Fdic5sSElhO1UtXpWKBazWfqg0ZEK9xN1DsuHA==} engines: {node: '>=16.0.0'} '@smithy/credential-provider-imds@3.2.4': @@ -4215,8 +4221,8 @@ packages: resolution: {integrity: sha512-/ChcVHekAyzUbyPRI8CzPPLj6y8QRAfJngWcLMgsWxKVzw/RzBV69mSOzJYDD3pRwushA1+5tHtPF8fjmzBnrQ==} engines: {node: '>=16.0.0'} - '@smithy/middleware-retry@3.0.22': - resolution: {integrity: sha512-svEN7O2Tf7BoaBkPzX/8AE2Bv7p16d9/ulFAD1Gmn5g19iMqNk1WIkMxAY7SpB9/tVtUwKx0NaIsBRl88gumZA==} + '@smithy/middleware-retry@3.0.23': + resolution: {integrity: sha512-x9PbGXxkcXIpm6L26qRSCC+eaYcHwybRmqU8LO/WM2RRlW0g8lz6FIiKbKgGvHuoK3dLZRiQVSQJveiCzwnA5A==} engines: {node: '>=16.0.0'} '@smithy/middleware-serde@3.0.7': @@ -4263,8 +4269,8 @@ packages: resolution: {integrity: sha512-LafbclHNKnsorMgUkKm7Tk7oJ7xizsZ1VwqhGKqoCIrXh4fqDDp73fK99HOEEgcsQbtemmeY/BPv0vTVYYUNEQ==} engines: {node: '>=16.0.0'} - '@smithy/smithy-client@3.3.6': - resolution: {integrity: sha512-qdH+mvDHgq1ss6mocyIl2/VjlWXew7pGwZQydwYJczEc22HZyX3k8yVPV9aZsbYbssHPvMDRA5rfBDrjQUbIIw==} + '@smithy/smithy-client@3.4.0': + resolution: {integrity: sha512-nOfJ1nVQsxiP6srKt43r2My0Gp5PLWCW2ASqUioxIiGmu6d32v4Nekidiv5qOmmtzIrmaD+ADX5SKHUuhReeBQ==} engines: {node: '>=16.0.0'} '@smithy/types@3.5.0': @@ -4297,12 +4303,12 @@ packages: resolution: {integrity: sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==} engines: {node: '>=16.0.0'} - '@smithy/util-defaults-mode-browser@3.0.22': - resolution: {integrity: sha512-WKzUxNsOun5ETwEOrvooXeI1mZ8tjDTOcN4oruELWHhEYDgQYWwxZupURVyovcv+h5DyQT/DzK5nm4ZoR/Tw5Q==} + '@smithy/util-defaults-mode-browser@3.0.23': + resolution: {integrity: sha512-Y07qslyRtXDP/C5aWKqxTPBl4YxplEELG3xRrz2dnAQ6Lq/FgNrcKWmV561nNaZmFH+EzeGOX3ZRMbU8p1T6Nw==} engines: {node: '>= 10.0.0'} - '@smithy/util-defaults-mode-node@3.0.22': - resolution: {integrity: sha512-hUsciOmAq8fsGwqg4+pJfNRmrhfqMH4Y9UeGcgeUl88kPAoYANFATJqCND+O4nUvwp5TzsYwGpqpcBKyA8LUUg==} + '@smithy/util-defaults-mode-node@3.0.23': + resolution: {integrity: sha512-9Y4WH7f0vnDGuHUa4lGX9e2p+sMwODibsceSV6rfkZOvMC+BY3StB2LdO1NHafpsyHJLpwAgChxQ38tFyd6vkg==} engines: {node: '>= 10.0.0'} '@smithy/util-endpoints@2.1.3': @@ -4899,8 +4905,8 @@ packages: '@types/react-dom@18.3.0': resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} - '@types/react@18.3.10': - resolution: {integrity: sha512-02sAAlBnP39JgXwkAq3PeU9DVaaGpZyF3MGcC0MKgQVkZor5IiiDAipVaxQHtDJAmO4GIy/rVBy/LzVj76Cyqg==} + '@types/react@18.3.11': + resolution: {integrity: sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==} '@types/responselike@1.0.3': resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} @@ -4999,8 +5005,8 @@ packages: resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} - '@uiw/codemirror-extensions-basic-setup@4.23.3': - resolution: {integrity: sha512-nEMjgbCyeLx+UQgOGAAoUWYFE34z5TlyaKNszuig/BddYFDb0WKcgmC37bDFxR2dZssf3K/lwGWLpXnGKXePbA==} + '@uiw/codemirror-extensions-basic-setup@4.23.5': + resolution: {integrity: sha512-eTMfT8TejVN/D5vvuz9Lab+MIoRYdtqa2ftZZmU3JpcDIXf9KaExPo+G2Rl9HqySzaasgGXOOG164MAnj3MSIw==} peerDependencies: '@codemirror/autocomplete': '>=6.0.0' '@codemirror/commands': '>=6.0.0' @@ -5010,21 +5016,21 @@ packages: '@codemirror/state': '>=6.0.0' '@codemirror/view': '>=6.0.0' - '@uiw/codemirror-extensions-langs@4.23.3': - resolution: {integrity: sha512-2vQkGVNE4jlDfdcnhLYhIaOL696q2AlE/GnJsmd1vvyBhNa7ULG0zcm8kLQuFo+ZtWIs3ITuJ/faeXWwf7Qbag==} + '@uiw/codemirror-extensions-langs@4.23.5': + resolution: {integrity: sha512-6BPtBj2Ff9KTXP1DfURtUcKBLH7ozor48dprJ5b6u7NLzRuSRQkGisAcueMLHX98tedY+QWp6V5YtOsqeguTNg==} peerDependencies: '@codemirror/language-data': '>=6.0.0' '@codemirror/legacy-modes': '>=6.0.0' - '@uiw/codemirror-themes@4.23.3': - resolution: {integrity: sha512-oUq2qoj+hMrR34Xhbp7S1P2elPtySWyzij97IwsZAdGZD/yS+c9+2yRSMYqtaWh7D9M4sJmwgU1lZibmwLZOfQ==} + '@uiw/codemirror-themes@4.23.5': + resolution: {integrity: sha512-yWUTpaVroxIxjKASQAmKaYy+ZYtF+YB6d8sVmSRK2TVD13M+EWvVT2jBGFLqR1UVg7G0W/McAy8xdeTg+a3slg==} peerDependencies: '@codemirror/language': '>=6.0.0' '@codemirror/state': '>=6.0.0' '@codemirror/view': '>=6.0.0' - '@uiw/react-codemirror@4.23.3': - resolution: {integrity: sha512-TBBLUbeqXmfQSfO+f3rPNOAb+QXbSm7KPB64FHQWLGg2WJNbpOhjLOWMyL+C4ZP3aSCNc2Y5aftEK1vp3wCKTA==} + '@uiw/react-codemirror@4.23.5': + resolution: {integrity: sha512-2zzGpx61L4mq9zDG/hfsO4wAH209TBE8VVsoj/qrccRe6KfcneCwKgRxtQjxBCCnO0Q5S+IP+uwCx5bXRzgQFQ==} peerDependencies: '@babel/runtime': '>=7.11.0' '@codemirror/state': '>=6.0.0' @@ -5043,13 +5049,13 @@ packages: peerDependencies: vite: ^4.2.0 || ^5.0.0 - '@vitest/expect@2.1.1': - resolution: {integrity: sha512-YeueunS0HiHiQxk+KEOnq/QMzlUuOzbU1Go+PgAsHvvv3tUkJPm9xWt+6ITNTlzsMXUjmgm5T+U7KBPK2qQV6w==} + '@vitest/expect@2.1.2': + resolution: {integrity: sha512-FEgtlN8mIUSEAAnlvn7mP8vzaWhEaAEvhSXCqrsijM7K6QqjB11qoRZYEd4AKSCDz8p0/+yH5LzhZ47qt+EyPg==} - '@vitest/mocker@2.1.1': - resolution: {integrity: sha512-LNN5VwOEdJqCmJ/2XJBywB11DLlkbY0ooDJW3uRX5cZyYCrc4PI/ePX0iQhE3BiEGiQmK4GE7Q/PqCkkaiPnrA==} + '@vitest/mocker@2.1.2': + resolution: {integrity: sha512-ExElkCGMS13JAJy+812fw1aCv2QO/LBK6CyO4WOPAzLTmve50gydOlWhgdBJPx2ztbADUq3JVI0C5U+bShaeEA==} peerDependencies: - '@vitest/spy': 2.1.1 + '@vitest/spy': 2.1.2 msw: ^2.3.5 vite: ^5.0.0 peerDependenciesMeta: @@ -5058,20 +5064,20 @@ packages: vite: optional: true - '@vitest/pretty-format@2.1.1': - resolution: {integrity: sha512-SjxPFOtuINDUW8/UkElJYQSFtnWX7tMksSGW0vfjxMneFqxVr8YJ979QpMbDW7g+BIiq88RAGDjf7en6rvLPPQ==} + '@vitest/pretty-format@2.1.2': + resolution: {integrity: sha512-FIoglbHrSUlOJPDGIrh2bjX1sNars5HbxlcsFKCtKzu4+5lpsRhOCVcuzp0fEhAGHkPZRIXVNzPcpSlkoZ3LuA==} - '@vitest/runner@2.1.1': - resolution: {integrity: sha512-uTPuY6PWOYitIkLPidaY5L3t0JJITdGTSwBtwMjKzo5O6RCOEncz9PUN+0pDidX8kTHYjO0EwUIvhlGpnGpxmA==} + '@vitest/runner@2.1.2': + resolution: {integrity: sha512-UCsPtvluHO3u7jdoONGjOSil+uON5SSvU9buQh3lP7GgUXHp78guN1wRmZDX4wGK6J10f9NUtP6pO+SFquoMlw==} - '@vitest/snapshot@2.1.1': - resolution: {integrity: sha512-BnSku1WFy7r4mm96ha2FzN99AZJgpZOWrAhtQfoxjUU5YMRpq1zmHRq7a5K9/NjqonebO7iVDla+VvZS8BOWMw==} + '@vitest/snapshot@2.1.2': + resolution: {integrity: sha512-xtAeNsZ++aRIYIUsek7VHzry/9AcxeULlegBvsdLncLmNCR6tR8SRjn8BbDP4naxtccvzTqZ+L1ltZlRCfBZFA==} - '@vitest/spy@2.1.1': - resolution: {integrity: sha512-ZM39BnZ9t/xZ/nF4UwRH5il0Sw93QnZXd9NAZGRpIgj0yvVwPpLd702s/Cx955rGaMlyBQkZJ2Ir7qyY48VZ+g==} + '@vitest/spy@2.1.2': + resolution: {integrity: sha512-GSUi5zoy+abNRJwmFhBDC0yRuVUn8WMlQscvnbbXdKLXX9dE59YbfwXxuJ/mth6eeqIzofU8BB5XDo/Ns/qK2A==} - '@vitest/utils@2.1.1': - resolution: {integrity: sha512-Y6Q9TsI+qJ2CC0ZKj6VBb+T8UPz593N113nnUykqwANqhgf3QkZeHFlusgKLTqrnVHbj/XDKZcDHol+dxVT+rQ==} + '@vitest/utils@2.1.2': + resolution: {integrity: sha512-zMO2KdYy6mx56btx9JvAqAZ6EyS3g49krMPPrgOp1yxGZiA93HumGk+bZ5jIZtOg5/VBYl5eBmGRQHqq4FG6uQ==} '@webassemblyjs/ast@1.12.1': resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} @@ -5635,8 +5641,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001666: - resolution: {integrity: sha512-gD14ICmoV5ZZM1OdzPWmpx+q4GyefaK06zi8hmfHV5xe4/2nOQX3+Dw5o+fSqOws2xVwL9j+anOPFwHzdEdV4g==} + caniuse-lite@1.0.30001667: + resolution: {integrity: sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==} capital-case@1.0.4: resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} @@ -6333,8 +6339,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.31: - resolution: {integrity: sha512-QcDoBbQeYt0+3CWcK/rEbuHvwpbT/8SV9T3OSgs6cX1FlcUAkgrkqbg9zLnDrMM/rLamzQwal4LYFCiWk861Tg==} + electron-to-chromium@1.5.32: + resolution: {integrity: sha512-M+7ph0VGBQqqpTT2YrabjNKSQ2fEl9PVx6AK3N558gDH9NO8O6XN9SXXFWRo9u9PbEg/bWq+tjXQr+eXmxubCw==} embla-carousel-react@8.3.0: resolution: {integrity: sha512-P1FlinFDcIvggcErRjNuVqnUR8anyo8vLMIH8Rthgofw7Nj8qTguCa2QjFAbzxAUTQTPNNjNL7yt0BGGinVdFw==} @@ -6523,12 +6529,12 @@ packages: eslint-import-resolver-webpack: optional: true - eslint-plugin-import@2.30.0: - resolution: {integrity: sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==} + eslint-plugin-import@2.31.0: + resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 peerDependenciesMeta: '@typescript-eslint/parser': optional: true @@ -6586,6 +6592,7 @@ packages: eslint@8.57.1: resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true espree@9.6.1: @@ -6880,8 +6887,8 @@ packages: fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - framer-motion@11.9.0: - resolution: {integrity: sha512-nCfGxvsQecVLjjYDu35G2F5ls+ArE3FBfhxV0RSiisMaUKqteq5DMBFNRKwMyVj+VqKTNhawt+BV480YCHKFlQ==} + framer-motion@11.11.1: + resolution: {integrity: sha512-Ucr9eHSrk0d+l6vyl9fvq6omh/PAWHjS+PlczpsoUdhJo1TuF3ULWJNuAMnpWQ1dGyPOyoUVuYlUKjE/s8dyCA==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 @@ -7631,6 +7638,10 @@ packages: resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true + jiti@2.3.1: + resolution: {integrity: sha512-xPZ6pPzUifI8XDBBxIL4OB1w1ZKmBpmNEeKwNt2d0Spn8XisAIZhWrlOHq5seBrFGTxVx9PbrWvEMyrk4IO5bA==} + hasBin: true + jose@4.15.9: resolution: {integrity: sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==} @@ -7684,6 +7695,11 @@ packages: engines: {node: '>=4'} hasBin: true + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -7764,8 +7780,8 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - knip@5.30.6: - resolution: {integrity: sha512-YkcnRVl0N99xZ7eaXE7KlH/4cPTCn6BGuk9KxINEdCMFN3yita2vGBizApy97ZOHgghy8tb589gQ3xvLMFIO4w==} + knip@5.32.0: + resolution: {integrity: sha512-2M4qnAu1rjg17DEC1oXNmdb3gPqsEclTQasnAYPYr9wuGSRQLkb2X3VrqMpBHAcvboyB/gF8iE3FFdFhIjFwww==} engines: {node: '>=18.6.0'} hasBin: true peerDependencies: @@ -7860,8 +7876,8 @@ packages: libmime@5.3.5: resolution: {integrity: sha512-nSlR1yRZ43L3cZCiWEw7ali3jY29Hz9CQQ96Oy+sSspYnIP5N54ucOPHqooBsXzwrX1pwn13VUE05q4WmzfaLg==} - libphonenumber-js@1.11.9: - resolution: {integrity: sha512-Zs5wf5HaWzW2/inlupe2tstl0I/Tbqo7lH20ZLr6Is58u7Dz2n+gRFGNlj9/gWxFvNfp9+YyDsiegjNhdixB9A==} + libphonenumber-js@1.11.11: + resolution: {integrity: sha512-mF3KaORjJQR6JBNcOkluDcJKhtoQT4VTLRMrX1v/wlBayL4M8ybwEDeryyPcrSEJmD0rVwHUbBarpZwN5NfPFQ==} libqp@2.0.1: resolution: {integrity: sha512-Ka0eC5LkF3IPNQHJmYBWljJsw0UvM6j+QdKRbWyCdTmYwvIDE6a7bCm0UkTAL/K+3KXK5qXT/ClcInU01OpdLg==} @@ -8479,8 +8495,8 @@ packages: node-abort-controller@3.1.1: resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} - node-addon-api@8.2.0: - resolution: {integrity: sha512-qnyuI2ROiCkye42n9Tj5aX1ns7rzj6n7zW1XReSnLSL9v/vbLeR6fJq6PU27YU/ICfYw6W7Ouk/N7cysWu/hlw==} + node-addon-api@8.1.0: + resolution: {integrity: sha512-yBY+qqWSv3dWKGODD6OGE6GnTX7Q2r+4+DfpqxHSHh8x0B4EKP9+wVGLS6U/AM1vxSNNmUEuIV5EGhYwPpfOwQ==} engines: {node: ^18 || ^20 || >= 21} node-emoji@1.11.0: @@ -9037,8 +9053,8 @@ packages: peerDependencies: preact: '>=10' - preact@10.24.1: - resolution: {integrity: sha512-PnBAwFI3Yjxxcxw75n6VId/5TFxNW/81zexzWD9jn1+eSrOP84NdsS38H5IkF/UH3frqRPT+MvuCoVHjTDTnDw==} + preact@10.24.2: + resolution: {integrity: sha512-1cSoF0aCC8uaARATfrlz4VCBqE8LwZwRfLgkxJOQwAlQt6ayTmi0D9OF7nXid1POI5SZidFuG9CnlXbDfLqY/Q==} prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} @@ -9196,8 +9212,8 @@ packages: prosemirror-menu@1.2.4: resolution: {integrity: sha512-S/bXlc0ODQup6aiBbWVsX/eM+xJgCTAfMq/nLqaO5ID/am4wS0tTCIkzwytmao7ypEtjj39i7YbJjAgO20mIqA==} - prosemirror-model@1.22.3: - resolution: {integrity: sha512-V4XCysitErI+i0rKFILGt/xClnFJaohe/wrrlT2NSZ+zk8ggQfDH4x2wNK7Gm0Hp4CIoWizvXFP7L9KMaCuI0Q==} + prosemirror-model@1.23.0: + resolution: {integrity: sha512-Q/fgsgl/dlOAW9ILu4OOhYWQbc7TQd4BwKH/RwmUjyVf8682Be4zj3rOYdLnYEcGzyg8LL9Q5IWYKD8tdToreQ==} prosemirror-schema-basic@1.2.3: resolution: {integrity: sha512-h+H0OQwZVqMon1PNn0AG9cTfx513zgIG2DY00eJ00Yvgb3UD+GQ/VlWW5rcaxacpCGT1Yx8nuhwXk4+QbXUfJA==} @@ -9500,8 +9516,8 @@ packages: regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - regexp.prototype.flags@1.5.2: - resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + regexp.prototype.flags@1.5.3: + resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} engines: {node: '>= 0.4'} rehackt@0.1.0: @@ -9627,8 +9643,8 @@ packages: engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true - rollup@4.23.0: - resolution: {integrity: sha512-vXB4IT9/KLDrS2WRXmY22sVB2wTsTwkpxjB8Q3mnakTENcYw3FRmfdYDy/acNmls+lHmDazgrRjK/yQ6hQAtwA==} + rollup@4.24.0: + resolution: {integrity: sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -10130,8 +10146,8 @@ packages: tabbable@6.2.0: resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} - tailwind-merge@2.5.2: - resolution: {integrity: sha512-kjEBm+pvD+6eAwzJL2Bi+02/9LFLal1Gs61+QB7HvTfQQ0aXwC5LGT8PEt1gS0CWKktKe6ysPTAy3cBC5MeiIg==} + tailwind-merge@2.5.3: + resolution: {integrity: sha512-d9ZolCAIzom1nf/5p4LdD5zvjmgSxY0BGgdSvmXIoMYAiPdAW/dSpP7joCDYFY7r/HkEa2qmPtkgsu0xjQeQtw==} tailwindcss-animate@1.0.7: resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} @@ -10228,11 +10244,11 @@ packages: resolution: {integrity: sha512-GA16+8HXvqtfEnw/DTcwB0UU354QE1n3+wh08oFjr6Znl7ZLAeUgYzCcK+/CCrOyE0vnHR8/pu3XXG3vDijXpQ==} hasBin: true - tldts-core@6.1.48: - resolution: {integrity: sha512-3gD9iKn/n2UuFH1uilBviK9gvTNT6iYwdqrj1Vr5mh8FuelvpRNaYVH4pNYqUgOGU4aAdL9X35eLuuj0gRsx+A==} + tldts-core@6.1.50: + resolution: {integrity: sha512-na2EcZqmdA2iV9zHV7OHQDxxdciEpxrjbkp+aHmZgnZKHzoElLajP59np5/4+sare9fQBfixgvXKx8ev1d7ytw==} - tldts@6.1.48: - resolution: {integrity: sha512-SPbnh1zaSzi/OsmHb1vrPNnYuwJbdWjwo5TbBYYMlTtH3/1DSb41t8bcSxkwDmmbG2q6VLPVvQc7Yf23T+1EEw==} + tldts@6.1.50: + resolution: {integrity: sha512-q9GOap6q3KCsLMdOjXhWU5jVZ8/1dIib898JBRLsN+tBhENpBDcAVQbE0epADOjw11FhQQy9AcbqKGBQPUfTQA==} hasBin: true tmp@0.0.33: @@ -10568,8 +10584,8 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - vite-node@2.1.1: - resolution: {integrity: sha512-N/mGckI1suG/5wQI35XeR9rsMsPqKXzq1CdUndzVstBj/HvyxxGctwnK6WX43NGt5L3Z5tcRf83g4TITKJhPrA==} + vite-node@2.1.2: + resolution: {integrity: sha512-HPcGNN5g/7I2OtPjLqgOtCRu/qhVvBxTUD3qzitmL0SrG1cWFzxzhMDWussxSbrRYWqnKf8P2jiNhPMSN+ymsQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -10604,15 +10620,15 @@ packages: terser: optional: true - vitest@2.1.1: - resolution: {integrity: sha512-97We7/VC0e9X5zBVkvt7SGQMGrRtn3KtySFQG5fpaMlS+l62eeXRQO633AYhSTC3z7IMebnPPNjGXVGNRFlxBA==} + vitest@2.1.2: + resolution: {integrity: sha512-veNjLizOMkRrJ6xxb+pvxN6/QAWg95mzcRjtmkepXdN87FNfxAss9RKe2far/G9cQpipfgP2taqg0KiWsquj8A==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 2.1.1 - '@vitest/ui': 2.1.1 + '@vitest/browser': 2.1.2 + '@vitest/ui': 2.1.2 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -10991,7 +11007,7 @@ snapshots: dependencies: graphql: 16.9.0 - '@apollo/client@3.11.8(@types/react@18.3.10)(graphql-ws@5.16.0(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(subscriptions-transport-ws@0.11.0(graphql@16.9.0))': + '@apollo/client@3.11.8(@types/react@18.3.11)(graphql-ws@5.16.0(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(subscriptions-transport-ws@0.11.0(graphql@16.9.0))': dependencies: '@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0) '@wry/caches': 1.0.1 @@ -11002,7 +11018,7 @@ snapshots: hoist-non-react-statics: 3.3.2 optimism: 0.18.0 prop-types: 15.8.1 - rehackt: 0.1.0(@types/react@18.3.10)(react@18.3.1) + rehackt: 0.1.0(@types/react@18.3.11)(react@18.3.1) response-iterator: 0.2.6 symbol-observable: 4.0.0 ts-invariant: 0.10.3 @@ -11134,13 +11150,13 @@ snapshots: '@ardatan/relay-compiler@12.0.0(graphql@16.9.0)': dependencies: - '@babel/core': 7.25.2 - '@babel/generator': 7.25.6 - '@babel/parser': 7.25.6 - '@babel/runtime': 7.25.6 - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 - babel-preset-fbjs: 3.4.0(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/runtime': 7.25.7 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 + babel-preset-fbjs: 3.4.0(@babel/core@7.25.7) chalk: 4.1.2 fb-watchman: 2.0.2 fbjs: 3.0.5 @@ -11165,20 +11181,20 @@ snapshots: '@aws-crypto/crc32@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.662.0 + '@aws-sdk/types': 3.664.0 tslib: 2.7.0 '@aws-crypto/crc32c@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.662.0 + '@aws-sdk/types': 3.664.0 tslib: 2.7.0 '@aws-crypto/sha1-browser@5.2.0': dependencies: '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.662.0 + '@aws-sdk/types': 3.664.0 '@aws-sdk/util-locate-window': 3.568.0 '@smithy/util-utf8': 2.3.0 tslib: 2.7.0 @@ -11188,7 +11204,7 @@ snapshots: '@aws-crypto/sha256-js': 5.2.0 '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.662.0 + '@aws-sdk/types': 3.664.0 '@aws-sdk/util-locate-window': 3.568.0 '@smithy/util-utf8': 2.3.0 tslib: 2.7.0 @@ -11196,7 +11212,7 @@ snapshots: '@aws-crypto/sha256-js@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.662.0 + '@aws-sdk/types': 3.664.0 tslib: 2.7.0 '@aws-crypto/supports-web-crypto@5.2.0': @@ -11205,38 +11221,38 @@ snapshots: '@aws-crypto/util@5.2.0': dependencies: - '@aws-sdk/types': 3.662.0 + '@aws-sdk/types': 3.664.0 '@smithy/util-utf8': 2.3.0 tslib: 2.7.0 - '@aws-sdk/client-s3@3.662.0': + '@aws-sdk/client-s3@3.665.0': dependencies: '@aws-crypto/sha1-browser': 5.2.0 '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.662.0(@aws-sdk/client-sts@3.662.0) - '@aws-sdk/client-sts': 3.662.0 - '@aws-sdk/core': 3.662.0 - '@aws-sdk/credential-provider-node': 3.662.0(@aws-sdk/client-sso-oidc@3.662.0(@aws-sdk/client-sts@3.662.0))(@aws-sdk/client-sts@3.662.0) - '@aws-sdk/middleware-bucket-endpoint': 3.662.0 - '@aws-sdk/middleware-expect-continue': 3.662.0 - '@aws-sdk/middleware-flexible-checksums': 3.662.0 - '@aws-sdk/middleware-host-header': 3.662.0 - '@aws-sdk/middleware-location-constraint': 3.662.0 - '@aws-sdk/middleware-logger': 3.662.0 - '@aws-sdk/middleware-recursion-detection': 3.662.0 - '@aws-sdk/middleware-sdk-s3': 3.662.0 - '@aws-sdk/middleware-ssec': 3.662.0 - '@aws-sdk/middleware-user-agent': 3.662.0 - '@aws-sdk/region-config-resolver': 3.662.0 - '@aws-sdk/signature-v4-multi-region': 3.662.0 - '@aws-sdk/types': 3.662.0 - '@aws-sdk/util-endpoints': 3.662.0 - '@aws-sdk/util-user-agent-browser': 3.662.0 - '@aws-sdk/util-user-agent-node': 3.662.0 + '@aws-sdk/client-sso-oidc': 3.665.0(@aws-sdk/client-sts@3.665.0) + '@aws-sdk/client-sts': 3.665.0 + '@aws-sdk/core': 3.665.0 + '@aws-sdk/credential-provider-node': 3.665.0(@aws-sdk/client-sso-oidc@3.665.0(@aws-sdk/client-sts@3.665.0))(@aws-sdk/client-sts@3.665.0) + '@aws-sdk/middleware-bucket-endpoint': 3.664.0 + '@aws-sdk/middleware-expect-continue': 3.664.0 + '@aws-sdk/middleware-flexible-checksums': 3.664.0 + '@aws-sdk/middleware-host-header': 3.664.0 + '@aws-sdk/middleware-location-constraint': 3.664.0 + '@aws-sdk/middleware-logger': 3.664.0 + '@aws-sdk/middleware-recursion-detection': 3.664.0 + '@aws-sdk/middleware-sdk-s3': 3.665.0 + '@aws-sdk/middleware-ssec': 3.664.0 + '@aws-sdk/middleware-user-agent': 3.664.0 + '@aws-sdk/region-config-resolver': 3.664.0 + '@aws-sdk/signature-v4-multi-region': 3.665.0 + '@aws-sdk/types': 3.664.0 + '@aws-sdk/util-endpoints': 3.664.0 + '@aws-sdk/util-user-agent-browser': 3.664.0 + '@aws-sdk/util-user-agent-node': 3.664.0 '@aws-sdk/xml-builder': 3.662.0 '@smithy/config-resolver': 3.0.9 - '@smithy/core': 2.4.7 + '@smithy/core': 2.4.8 '@smithy/eventstream-serde-browser': 3.0.10 '@smithy/eventstream-serde-config-resolver': 3.0.7 '@smithy/eventstream-serde-node': 3.0.9 @@ -11248,20 +11264,20 @@ snapshots: '@smithy/md5-js': 3.0.7 '@smithy/middleware-content-length': 3.0.9 '@smithy/middleware-endpoint': 3.1.4 - '@smithy/middleware-retry': 3.0.22 + '@smithy/middleware-retry': 3.0.23 '@smithy/middleware-serde': 3.0.7 '@smithy/middleware-stack': 3.0.7 '@smithy/node-config-provider': 3.1.8 '@smithy/node-http-handler': 3.2.4 '@smithy/protocol-http': 4.1.4 - '@smithy/smithy-client': 3.3.6 + '@smithy/smithy-client': 3.4.0 '@smithy/types': 3.5.0 '@smithy/url-parser': 3.0.7 '@smithy/util-base64': 3.0.0 '@smithy/util-body-length-browser': 3.0.0 '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.22 - '@smithy/util-defaults-mode-node': 3.0.22 + '@smithy/util-defaults-mode-browser': 3.0.23 + '@smithy/util-defaults-mode-node': 3.0.23 '@smithy/util-endpoints': 2.1.3 '@smithy/util-middleware': 3.0.7 '@smithy/util-retry': 3.0.7 @@ -11272,44 +11288,44 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-ses@3.662.0': + '@aws-sdk/client-ses@3.665.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.662.0(@aws-sdk/client-sts@3.662.0) - '@aws-sdk/client-sts': 3.662.0 - '@aws-sdk/core': 3.662.0 - '@aws-sdk/credential-provider-node': 3.662.0(@aws-sdk/client-sso-oidc@3.662.0(@aws-sdk/client-sts@3.662.0))(@aws-sdk/client-sts@3.662.0) - '@aws-sdk/middleware-host-header': 3.662.0 - '@aws-sdk/middleware-logger': 3.662.0 - '@aws-sdk/middleware-recursion-detection': 3.662.0 - '@aws-sdk/middleware-user-agent': 3.662.0 - '@aws-sdk/region-config-resolver': 3.662.0 - '@aws-sdk/types': 3.662.0 - '@aws-sdk/util-endpoints': 3.662.0 - '@aws-sdk/util-user-agent-browser': 3.662.0 - '@aws-sdk/util-user-agent-node': 3.662.0 + '@aws-sdk/client-sso-oidc': 3.665.0(@aws-sdk/client-sts@3.665.0) + '@aws-sdk/client-sts': 3.665.0 + '@aws-sdk/core': 3.665.0 + '@aws-sdk/credential-provider-node': 3.665.0(@aws-sdk/client-sso-oidc@3.665.0(@aws-sdk/client-sts@3.665.0))(@aws-sdk/client-sts@3.665.0) + '@aws-sdk/middleware-host-header': 3.664.0 + '@aws-sdk/middleware-logger': 3.664.0 + '@aws-sdk/middleware-recursion-detection': 3.664.0 + '@aws-sdk/middleware-user-agent': 3.664.0 + '@aws-sdk/region-config-resolver': 3.664.0 + '@aws-sdk/types': 3.664.0 + '@aws-sdk/util-endpoints': 3.664.0 + '@aws-sdk/util-user-agent-browser': 3.664.0 + '@aws-sdk/util-user-agent-node': 3.664.0 '@smithy/config-resolver': 3.0.9 - '@smithy/core': 2.4.7 + '@smithy/core': 2.4.8 '@smithy/fetch-http-handler': 3.2.9 '@smithy/hash-node': 3.0.7 '@smithy/invalid-dependency': 3.0.7 '@smithy/middleware-content-length': 3.0.9 '@smithy/middleware-endpoint': 3.1.4 - '@smithy/middleware-retry': 3.0.22 + '@smithy/middleware-retry': 3.0.23 '@smithy/middleware-serde': 3.0.7 '@smithy/middleware-stack': 3.0.7 '@smithy/node-config-provider': 3.1.8 '@smithy/node-http-handler': 3.2.4 '@smithy/protocol-http': 4.1.4 - '@smithy/smithy-client': 3.3.6 + '@smithy/smithy-client': 3.4.0 '@smithy/types': 3.5.0 '@smithy/url-parser': 3.0.7 '@smithy/util-base64': 3.0.0 '@smithy/util-body-length-browser': 3.0.0 '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.22 - '@smithy/util-defaults-mode-node': 3.0.22 + '@smithy/util-defaults-mode-browser': 3.0.23 + '@smithy/util-defaults-mode-node': 3.0.23 '@smithy/util-endpoints': 2.1.3 '@smithy/util-middleware': 3.0.7 '@smithy/util-retry': 3.0.7 @@ -11319,43 +11335,43 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso-oidc@3.662.0(@aws-sdk/client-sts@3.662.0)': + '@aws-sdk/client-sso-oidc@3.665.0(@aws-sdk/client-sts@3.665.0)': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sts': 3.662.0 - '@aws-sdk/core': 3.662.0 - '@aws-sdk/credential-provider-node': 3.662.0(@aws-sdk/client-sso-oidc@3.662.0(@aws-sdk/client-sts@3.662.0))(@aws-sdk/client-sts@3.662.0) - '@aws-sdk/middleware-host-header': 3.662.0 - '@aws-sdk/middleware-logger': 3.662.0 - '@aws-sdk/middleware-recursion-detection': 3.662.0 - '@aws-sdk/middleware-user-agent': 3.662.0 - '@aws-sdk/region-config-resolver': 3.662.0 - '@aws-sdk/types': 3.662.0 - '@aws-sdk/util-endpoints': 3.662.0 - '@aws-sdk/util-user-agent-browser': 3.662.0 - '@aws-sdk/util-user-agent-node': 3.662.0 + '@aws-sdk/client-sts': 3.665.0 + '@aws-sdk/core': 3.665.0 + '@aws-sdk/credential-provider-node': 3.665.0(@aws-sdk/client-sso-oidc@3.665.0(@aws-sdk/client-sts@3.665.0))(@aws-sdk/client-sts@3.665.0) + '@aws-sdk/middleware-host-header': 3.664.0 + '@aws-sdk/middleware-logger': 3.664.0 + '@aws-sdk/middleware-recursion-detection': 3.664.0 + '@aws-sdk/middleware-user-agent': 3.664.0 + '@aws-sdk/region-config-resolver': 3.664.0 + '@aws-sdk/types': 3.664.0 + '@aws-sdk/util-endpoints': 3.664.0 + '@aws-sdk/util-user-agent-browser': 3.664.0 + '@aws-sdk/util-user-agent-node': 3.664.0 '@smithy/config-resolver': 3.0.9 - '@smithy/core': 2.4.7 + '@smithy/core': 2.4.8 '@smithy/fetch-http-handler': 3.2.9 '@smithy/hash-node': 3.0.7 '@smithy/invalid-dependency': 3.0.7 '@smithy/middleware-content-length': 3.0.9 '@smithy/middleware-endpoint': 3.1.4 - '@smithy/middleware-retry': 3.0.22 + '@smithy/middleware-retry': 3.0.23 '@smithy/middleware-serde': 3.0.7 '@smithy/middleware-stack': 3.0.7 '@smithy/node-config-provider': 3.1.8 '@smithy/node-http-handler': 3.2.4 '@smithy/protocol-http': 4.1.4 - '@smithy/smithy-client': 3.3.6 + '@smithy/smithy-client': 3.4.0 '@smithy/types': 3.5.0 '@smithy/url-parser': 3.0.7 '@smithy/util-base64': 3.0.0 '@smithy/util-body-length-browser': 3.0.0 '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.22 - '@smithy/util-defaults-mode-node': 3.0.22 + '@smithy/util-defaults-mode-browser': 3.0.23 + '@smithy/util-defaults-mode-node': 3.0.23 '@smithy/util-endpoints': 2.1.3 '@smithy/util-middleware': 3.0.7 '@smithy/util-retry': 3.0.7 @@ -11364,41 +11380,41 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso@3.662.0': + '@aws-sdk/client-sso@3.665.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.662.0 - '@aws-sdk/middleware-host-header': 3.662.0 - '@aws-sdk/middleware-logger': 3.662.0 - '@aws-sdk/middleware-recursion-detection': 3.662.0 - '@aws-sdk/middleware-user-agent': 3.662.0 - '@aws-sdk/region-config-resolver': 3.662.0 - '@aws-sdk/types': 3.662.0 - '@aws-sdk/util-endpoints': 3.662.0 - '@aws-sdk/util-user-agent-browser': 3.662.0 - '@aws-sdk/util-user-agent-node': 3.662.0 + '@aws-sdk/core': 3.665.0 + '@aws-sdk/middleware-host-header': 3.664.0 + '@aws-sdk/middleware-logger': 3.664.0 + '@aws-sdk/middleware-recursion-detection': 3.664.0 + '@aws-sdk/middleware-user-agent': 3.664.0 + '@aws-sdk/region-config-resolver': 3.664.0 + '@aws-sdk/types': 3.664.0 + '@aws-sdk/util-endpoints': 3.664.0 + '@aws-sdk/util-user-agent-browser': 3.664.0 + '@aws-sdk/util-user-agent-node': 3.664.0 '@smithy/config-resolver': 3.0.9 - '@smithy/core': 2.4.7 + '@smithy/core': 2.4.8 '@smithy/fetch-http-handler': 3.2.9 '@smithy/hash-node': 3.0.7 '@smithy/invalid-dependency': 3.0.7 '@smithy/middleware-content-length': 3.0.9 '@smithy/middleware-endpoint': 3.1.4 - '@smithy/middleware-retry': 3.0.22 + '@smithy/middleware-retry': 3.0.23 '@smithy/middleware-serde': 3.0.7 '@smithy/middleware-stack': 3.0.7 '@smithy/node-config-provider': 3.1.8 '@smithy/node-http-handler': 3.2.4 '@smithy/protocol-http': 4.1.4 - '@smithy/smithy-client': 3.3.6 + '@smithy/smithy-client': 3.4.0 '@smithy/types': 3.5.0 '@smithy/url-parser': 3.0.7 '@smithy/util-base64': 3.0.0 '@smithy/util-body-length-browser': 3.0.0 '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.22 - '@smithy/util-defaults-mode-node': 3.0.22 + '@smithy/util-defaults-mode-browser': 3.0.23 + '@smithy/util-defaults-mode-node': 3.0.23 '@smithy/util-endpoints': 2.1.3 '@smithy/util-middleware': 3.0.7 '@smithy/util-retry': 3.0.7 @@ -11407,43 +11423,43 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sts@3.662.0': + '@aws-sdk/client-sts@3.665.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.662.0(@aws-sdk/client-sts@3.662.0) - '@aws-sdk/core': 3.662.0 - '@aws-sdk/credential-provider-node': 3.662.0(@aws-sdk/client-sso-oidc@3.662.0(@aws-sdk/client-sts@3.662.0))(@aws-sdk/client-sts@3.662.0) - '@aws-sdk/middleware-host-header': 3.662.0 - '@aws-sdk/middleware-logger': 3.662.0 - '@aws-sdk/middleware-recursion-detection': 3.662.0 - '@aws-sdk/middleware-user-agent': 3.662.0 - '@aws-sdk/region-config-resolver': 3.662.0 - '@aws-sdk/types': 3.662.0 - '@aws-sdk/util-endpoints': 3.662.0 - '@aws-sdk/util-user-agent-browser': 3.662.0 - '@aws-sdk/util-user-agent-node': 3.662.0 + '@aws-sdk/client-sso-oidc': 3.665.0(@aws-sdk/client-sts@3.665.0) + '@aws-sdk/core': 3.665.0 + '@aws-sdk/credential-provider-node': 3.665.0(@aws-sdk/client-sso-oidc@3.665.0(@aws-sdk/client-sts@3.665.0))(@aws-sdk/client-sts@3.665.0) + '@aws-sdk/middleware-host-header': 3.664.0 + '@aws-sdk/middleware-logger': 3.664.0 + '@aws-sdk/middleware-recursion-detection': 3.664.0 + '@aws-sdk/middleware-user-agent': 3.664.0 + '@aws-sdk/region-config-resolver': 3.664.0 + '@aws-sdk/types': 3.664.0 + '@aws-sdk/util-endpoints': 3.664.0 + '@aws-sdk/util-user-agent-browser': 3.664.0 + '@aws-sdk/util-user-agent-node': 3.664.0 '@smithy/config-resolver': 3.0.9 - '@smithy/core': 2.4.7 + '@smithy/core': 2.4.8 '@smithy/fetch-http-handler': 3.2.9 '@smithy/hash-node': 3.0.7 '@smithy/invalid-dependency': 3.0.7 '@smithy/middleware-content-length': 3.0.9 '@smithy/middleware-endpoint': 3.1.4 - '@smithy/middleware-retry': 3.0.22 + '@smithy/middleware-retry': 3.0.23 '@smithy/middleware-serde': 3.0.7 '@smithy/middleware-stack': 3.0.7 '@smithy/node-config-provider': 3.1.8 '@smithy/node-http-handler': 3.2.4 '@smithy/protocol-http': 4.1.4 - '@smithy/smithy-client': 3.3.6 + '@smithy/smithy-client': 3.4.0 '@smithy/types': 3.5.0 '@smithy/url-parser': 3.0.7 '@smithy/util-base64': 3.0.0 '@smithy/util-body-length-browser': 3.0.0 '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.22 - '@smithy/util-defaults-mode-node': 3.0.22 + '@smithy/util-defaults-mode-browser': 3.0.23 + '@smithy/util-defaults-mode-node': 3.0.23 '@smithy/util-endpoints': 2.1.3 '@smithy/util-middleware': 3.0.7 '@smithy/util-retry': 3.0.7 @@ -11452,47 +11468,48 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/core@3.662.0': + '@aws-sdk/core@3.665.0': dependencies: - '@smithy/core': 2.4.7 + '@aws-sdk/types': 3.664.0 + '@smithy/core': 2.4.8 '@smithy/node-config-provider': 3.1.8 '@smithy/property-provider': 3.1.7 '@smithy/protocol-http': 4.1.4 '@smithy/signature-v4': 4.2.0 - '@smithy/smithy-client': 3.3.6 + '@smithy/smithy-client': 3.4.0 '@smithy/types': 3.5.0 '@smithy/util-middleware': 3.0.7 fast-xml-parser: 4.4.1 tslib: 2.7.0 - '@aws-sdk/credential-provider-env@3.662.0': + '@aws-sdk/credential-provider-env@3.664.0': dependencies: - '@aws-sdk/types': 3.662.0 + '@aws-sdk/types': 3.664.0 '@smithy/property-provider': 3.1.7 '@smithy/types': 3.5.0 tslib: 2.7.0 - '@aws-sdk/credential-provider-http@3.662.0': + '@aws-sdk/credential-provider-http@3.664.0': dependencies: - '@aws-sdk/types': 3.662.0 + '@aws-sdk/types': 3.664.0 '@smithy/fetch-http-handler': 3.2.9 '@smithy/node-http-handler': 3.2.4 '@smithy/property-provider': 3.1.7 '@smithy/protocol-http': 4.1.4 - '@smithy/smithy-client': 3.3.6 + '@smithy/smithy-client': 3.4.0 '@smithy/types': 3.5.0 '@smithy/util-stream': 3.1.9 tslib: 2.7.0 - '@aws-sdk/credential-provider-ini@3.662.0(@aws-sdk/client-sso-oidc@3.662.0(@aws-sdk/client-sts@3.662.0))(@aws-sdk/client-sts@3.662.0)': + '@aws-sdk/credential-provider-ini@3.665.0(@aws-sdk/client-sso-oidc@3.665.0(@aws-sdk/client-sts@3.665.0))(@aws-sdk/client-sts@3.665.0)': dependencies: - '@aws-sdk/client-sts': 3.662.0 - '@aws-sdk/credential-provider-env': 3.662.0 - '@aws-sdk/credential-provider-http': 3.662.0 - '@aws-sdk/credential-provider-process': 3.662.0 - '@aws-sdk/credential-provider-sso': 3.662.0(@aws-sdk/client-sso-oidc@3.662.0(@aws-sdk/client-sts@3.662.0)) - '@aws-sdk/credential-provider-web-identity': 3.662.0(@aws-sdk/client-sts@3.662.0) - '@aws-sdk/types': 3.662.0 + '@aws-sdk/client-sts': 3.665.0 + '@aws-sdk/credential-provider-env': 3.664.0 + '@aws-sdk/credential-provider-http': 3.664.0 + '@aws-sdk/credential-provider-process': 3.664.0 + '@aws-sdk/credential-provider-sso': 3.665.0(@aws-sdk/client-sso-oidc@3.665.0(@aws-sdk/client-sts@3.665.0)) + '@aws-sdk/credential-provider-web-identity': 3.664.0(@aws-sdk/client-sts@3.665.0) + '@aws-sdk/types': 3.664.0 '@smithy/credential-provider-imds': 3.2.4 '@smithy/property-provider': 3.1.7 '@smithy/shared-ini-file-loader': 3.1.8 @@ -11502,15 +11519,15 @@ snapshots: - '@aws-sdk/client-sso-oidc' - aws-crt - '@aws-sdk/credential-provider-node@3.662.0(@aws-sdk/client-sso-oidc@3.662.0(@aws-sdk/client-sts@3.662.0))(@aws-sdk/client-sts@3.662.0)': + '@aws-sdk/credential-provider-node@3.665.0(@aws-sdk/client-sso-oidc@3.665.0(@aws-sdk/client-sts@3.665.0))(@aws-sdk/client-sts@3.665.0)': dependencies: - '@aws-sdk/credential-provider-env': 3.662.0 - '@aws-sdk/credential-provider-http': 3.662.0 - '@aws-sdk/credential-provider-ini': 3.662.0(@aws-sdk/client-sso-oidc@3.662.0(@aws-sdk/client-sts@3.662.0))(@aws-sdk/client-sts@3.662.0) - '@aws-sdk/credential-provider-process': 3.662.0 - '@aws-sdk/credential-provider-sso': 3.662.0(@aws-sdk/client-sso-oidc@3.662.0(@aws-sdk/client-sts@3.662.0)) - '@aws-sdk/credential-provider-web-identity': 3.662.0(@aws-sdk/client-sts@3.662.0) - '@aws-sdk/types': 3.662.0 + '@aws-sdk/credential-provider-env': 3.664.0 + '@aws-sdk/credential-provider-http': 3.664.0 + '@aws-sdk/credential-provider-ini': 3.665.0(@aws-sdk/client-sso-oidc@3.665.0(@aws-sdk/client-sts@3.665.0))(@aws-sdk/client-sts@3.665.0) + '@aws-sdk/credential-provider-process': 3.664.0 + '@aws-sdk/credential-provider-sso': 3.665.0(@aws-sdk/client-sso-oidc@3.665.0(@aws-sdk/client-sts@3.665.0)) + '@aws-sdk/credential-provider-web-identity': 3.664.0(@aws-sdk/client-sts@3.665.0) + '@aws-sdk/types': 3.664.0 '@smithy/credential-provider-imds': 3.2.4 '@smithy/property-provider': 3.1.7 '@smithy/shared-ini-file-loader': 3.1.8 @@ -11521,19 +11538,19 @@ snapshots: - '@aws-sdk/client-sts' - aws-crt - '@aws-sdk/credential-provider-process@3.662.0': + '@aws-sdk/credential-provider-process@3.664.0': dependencies: - '@aws-sdk/types': 3.662.0 + '@aws-sdk/types': 3.664.0 '@smithy/property-provider': 3.1.7 '@smithy/shared-ini-file-loader': 3.1.8 '@smithy/types': 3.5.0 tslib: 2.7.0 - '@aws-sdk/credential-provider-sso@3.662.0(@aws-sdk/client-sso-oidc@3.662.0(@aws-sdk/client-sts@3.662.0))': + '@aws-sdk/credential-provider-sso@3.665.0(@aws-sdk/client-sso-oidc@3.665.0(@aws-sdk/client-sts@3.665.0))': dependencies: - '@aws-sdk/client-sso': 3.662.0 - '@aws-sdk/token-providers': 3.662.0(@aws-sdk/client-sso-oidc@3.662.0(@aws-sdk/client-sts@3.662.0)) - '@aws-sdk/types': 3.662.0 + '@aws-sdk/client-sso': 3.665.0 + '@aws-sdk/token-providers': 3.664.0(@aws-sdk/client-sso-oidc@3.665.0(@aws-sdk/client-sts@3.665.0)) + '@aws-sdk/types': 3.664.0 '@smithy/property-provider': 3.1.7 '@smithy/shared-ini-file-loader': 3.1.8 '@smithy/types': 3.5.0 @@ -11542,17 +11559,17 @@ snapshots: - '@aws-sdk/client-sso-oidc' - aws-crt - '@aws-sdk/credential-provider-web-identity@3.662.0(@aws-sdk/client-sts@3.662.0)': + '@aws-sdk/credential-provider-web-identity@3.664.0(@aws-sdk/client-sts@3.665.0)': dependencies: - '@aws-sdk/client-sts': 3.662.0 - '@aws-sdk/types': 3.662.0 + '@aws-sdk/client-sts': 3.665.0 + '@aws-sdk/types': 3.664.0 '@smithy/property-provider': 3.1.7 '@smithy/types': 3.5.0 tslib: 2.7.0 - '@aws-sdk/middleware-bucket-endpoint@3.662.0': + '@aws-sdk/middleware-bucket-endpoint@3.664.0': dependencies: - '@aws-sdk/types': 3.662.0 + '@aws-sdk/types': 3.664.0 '@aws-sdk/util-arn-parser': 3.568.0 '@smithy/node-config-provider': 3.1.8 '@smithy/protocol-http': 4.1.4 @@ -11560,18 +11577,18 @@ snapshots: '@smithy/util-config-provider': 3.0.0 tslib: 2.7.0 - '@aws-sdk/middleware-expect-continue@3.662.0': + '@aws-sdk/middleware-expect-continue@3.664.0': dependencies: - '@aws-sdk/types': 3.662.0 + '@aws-sdk/types': 3.664.0 '@smithy/protocol-http': 4.1.4 '@smithy/types': 3.5.0 tslib: 2.7.0 - '@aws-sdk/middleware-flexible-checksums@3.662.0': + '@aws-sdk/middleware-flexible-checksums@3.664.0': dependencies: '@aws-crypto/crc32': 5.2.0 '@aws-crypto/crc32c': 5.2.0 - '@aws-sdk/types': 3.662.0 + '@aws-sdk/types': 3.664.0 '@smithy/is-array-buffer': 3.0.0 '@smithy/node-config-provider': 3.1.8 '@smithy/protocol-http': 4.1.4 @@ -11580,42 +11597,42 @@ snapshots: '@smithy/util-utf8': 3.0.0 tslib: 2.7.0 - '@aws-sdk/middleware-host-header@3.662.0': + '@aws-sdk/middleware-host-header@3.664.0': dependencies: - '@aws-sdk/types': 3.662.0 + '@aws-sdk/types': 3.664.0 '@smithy/protocol-http': 4.1.4 '@smithy/types': 3.5.0 tslib: 2.7.0 - '@aws-sdk/middleware-location-constraint@3.662.0': + '@aws-sdk/middleware-location-constraint@3.664.0': dependencies: - '@aws-sdk/types': 3.662.0 + '@aws-sdk/types': 3.664.0 '@smithy/types': 3.5.0 tslib: 2.7.0 - '@aws-sdk/middleware-logger@3.662.0': + '@aws-sdk/middleware-logger@3.664.0': dependencies: - '@aws-sdk/types': 3.662.0 + '@aws-sdk/types': 3.664.0 '@smithy/types': 3.5.0 tslib: 2.7.0 - '@aws-sdk/middleware-recursion-detection@3.662.0': + '@aws-sdk/middleware-recursion-detection@3.664.0': dependencies: - '@aws-sdk/types': 3.662.0 + '@aws-sdk/types': 3.664.0 '@smithy/protocol-http': 4.1.4 '@smithy/types': 3.5.0 tslib: 2.7.0 - '@aws-sdk/middleware-sdk-s3@3.662.0': + '@aws-sdk/middleware-sdk-s3@3.665.0': dependencies: - '@aws-sdk/core': 3.662.0 - '@aws-sdk/types': 3.662.0 + '@aws-sdk/core': 3.665.0 + '@aws-sdk/types': 3.664.0 '@aws-sdk/util-arn-parser': 3.568.0 - '@smithy/core': 2.4.7 + '@smithy/core': 2.4.8 '@smithy/node-config-provider': 3.1.8 '@smithy/protocol-http': 4.1.4 '@smithy/signature-v4': 4.2.0 - '@smithy/smithy-client': 3.3.6 + '@smithy/smithy-client': 3.4.0 '@smithy/types': 3.5.0 '@smithy/util-config-provider': 3.0.0 '@smithy/util-middleware': 3.0.7 @@ -11623,48 +11640,49 @@ snapshots: '@smithy/util-utf8': 3.0.0 tslib: 2.7.0 - '@aws-sdk/middleware-ssec@3.662.0': + '@aws-sdk/middleware-ssec@3.664.0': dependencies: - '@aws-sdk/types': 3.662.0 + '@aws-sdk/types': 3.664.0 '@smithy/types': 3.5.0 tslib: 2.7.0 - '@aws-sdk/middleware-user-agent@3.662.0': + '@aws-sdk/middleware-user-agent@3.664.0': dependencies: - '@aws-sdk/types': 3.662.0 - '@aws-sdk/util-endpoints': 3.662.0 + '@aws-sdk/types': 3.664.0 + '@aws-sdk/util-endpoints': 3.664.0 + '@smithy/core': 2.4.8 '@smithy/protocol-http': 4.1.4 '@smithy/types': 3.5.0 tslib: 2.7.0 - '@aws-sdk/region-config-resolver@3.662.0': + '@aws-sdk/region-config-resolver@3.664.0': dependencies: - '@aws-sdk/types': 3.662.0 + '@aws-sdk/types': 3.664.0 '@smithy/node-config-provider': 3.1.8 '@smithy/types': 3.5.0 '@smithy/util-config-provider': 3.0.0 '@smithy/util-middleware': 3.0.7 tslib: 2.7.0 - '@aws-sdk/signature-v4-multi-region@3.662.0': + '@aws-sdk/signature-v4-multi-region@3.665.0': dependencies: - '@aws-sdk/middleware-sdk-s3': 3.662.0 - '@aws-sdk/types': 3.662.0 + '@aws-sdk/middleware-sdk-s3': 3.665.0 + '@aws-sdk/types': 3.664.0 '@smithy/protocol-http': 4.1.4 '@smithy/signature-v4': 4.2.0 '@smithy/types': 3.5.0 tslib: 2.7.0 - '@aws-sdk/token-providers@3.662.0(@aws-sdk/client-sso-oidc@3.662.0(@aws-sdk/client-sts@3.662.0))': + '@aws-sdk/token-providers@3.664.0(@aws-sdk/client-sso-oidc@3.665.0(@aws-sdk/client-sts@3.665.0))': dependencies: - '@aws-sdk/client-sso-oidc': 3.662.0(@aws-sdk/client-sts@3.662.0) - '@aws-sdk/types': 3.662.0 + '@aws-sdk/client-sso-oidc': 3.665.0(@aws-sdk/client-sts@3.665.0) + '@aws-sdk/types': 3.664.0 '@smithy/property-provider': 3.1.7 '@smithy/shared-ini-file-loader': 3.1.8 '@smithy/types': 3.5.0 tslib: 2.7.0 - '@aws-sdk/types@3.662.0': + '@aws-sdk/types@3.664.0': dependencies: '@smithy/types': 3.5.0 tslib: 2.7.0 @@ -11673,9 +11691,9 @@ snapshots: dependencies: tslib: 2.7.0 - '@aws-sdk/util-endpoints@3.662.0': + '@aws-sdk/util-endpoints@3.664.0': dependencies: - '@aws-sdk/types': 3.662.0 + '@aws-sdk/types': 3.664.0 '@smithy/types': 3.5.0 '@smithy/util-endpoints': 2.1.3 tslib: 2.7.0 @@ -11684,16 +11702,17 @@ snapshots: dependencies: tslib: 2.7.0 - '@aws-sdk/util-user-agent-browser@3.662.0': + '@aws-sdk/util-user-agent-browser@3.664.0': dependencies: - '@aws-sdk/types': 3.662.0 + '@aws-sdk/types': 3.664.0 '@smithy/types': 3.5.0 bowser: 2.11.0 tslib: 2.7.0 - '@aws-sdk/util-user-agent-node@3.662.0': + '@aws-sdk/util-user-agent-node@3.664.0': dependencies: - '@aws-sdk/types': 3.662.0 + '@aws-sdk/middleware-user-agent': 3.664.0 + '@aws-sdk/types': 3.664.0 '@smithy/node-config-provider': 3.1.8 '@smithy/types': 3.5.0 tslib: 2.7.0 @@ -11703,25 +11722,25 @@ snapshots: '@smithy/types': 3.5.0 tslib: 2.7.0 - '@babel/code-frame@7.24.7': + '@babel/code-frame@7.25.7': dependencies: - '@babel/highlight': 7.24.7 + '@babel/highlight': 7.25.7 picocolors: 1.1.0 - '@babel/compat-data@7.25.4': {} + '@babel/compat-data@7.25.7': {} - '@babel/core@7.25.2': + '@babel/core@7.25.7': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.6 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helpers': 7.25.6 - '@babel/parser': 7.25.6 - '@babel/template': 7.25.0 - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/code-frame': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/helper-compilation-targets': 7.25.7 + '@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.7) + '@babel/helpers': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/template': 7.25.7 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 convert-source-map: 2.0.0 debug: 4.3.7(supports-color@8.1.1) gensync: 1.0.0-beta.2 @@ -11736,346 +11755,346 @@ snapshots: jsesc: 2.5.2 source-map: 0.5.7 - '@babel/generator@7.25.6': + '@babel/generator@7.25.7': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 + jsesc: 3.0.2 - '@babel/helper-annotate-as-pure@7.24.7': + '@babel/helper-annotate-as-pure@7.25.7': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 - '@babel/helper-compilation-targets@7.25.2': + '@babel/helper-compilation-targets@7.25.7': dependencies: - '@babel/compat-data': 7.25.4 - '@babel/helper-validator-option': 7.24.8 + '@babel/compat-data': 7.25.7 + '@babel/helper-validator-option': 7.25.7 browserslist: 4.24.0 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.25.4(@babel/core@7.25.2)': + '@babel/helper-create-class-features-plugin@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-member-expression-to-functions': 7.24.8 - '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/traverse': 7.25.6 + '@babel/core': 7.25.7 + '@babel/helper-annotate-as-pure': 7.25.7 + '@babel/helper-member-expression-to-functions': 7.25.7 + '@babel/helper-optimise-call-expression': 7.25.7 + '@babel/helper-replace-supers': 7.25.7(@babel/core@7.25.7) + '@babel/helper-skip-transparent-expression-wrappers': 7.25.7 + '@babel/traverse': 7.25.7 semver: 6.3.1 transitivePeerDependencies: - supports-color '@babel/helper-environment-visitor@7.24.7': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 '@babel/helper-function-name@7.24.7': dependencies: - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 + '@babel/template': 7.25.7 + '@babel/types': 7.25.7 '@babel/helper-hoist-variables@7.24.7': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 - '@babel/helper-member-expression-to-functions@7.24.8': + '@babel/helper-member-expression-to-functions@7.25.7': dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/helper-module-imports@7.24.7': + '@babel/helper-module-imports@7.25.7': dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)': + '@babel/helper-module-transforms@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-simple-access': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 - '@babel/traverse': 7.25.6 + '@babel/core': 7.25.7 + '@babel/helper-module-imports': 7.25.7 + '@babel/helper-simple-access': 7.25.7 + '@babel/helper-validator-identifier': 7.25.7 + '@babel/traverse': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/helper-optimise-call-expression@7.24.7': + '@babel/helper-optimise-call-expression@7.25.7': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 - '@babel/helper-plugin-utils@7.24.8': {} + '@babel/helper-plugin-utils@7.25.7': {} - '@babel/helper-replace-supers@7.25.0(@babel/core@7.25.2)': + '@babel/helper-replace-supers@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-member-expression-to-functions': 7.24.8 - '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/traverse': 7.25.6 + '@babel/core': 7.25.7 + '@babel/helper-member-expression-to-functions': 7.25.7 + '@babel/helper-optimise-call-expression': 7.25.7 + '@babel/traverse': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/helper-simple-access@7.24.7': + '@babel/helper-simple-access@7.25.7': dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/helper-skip-transparent-expression-wrappers@7.24.7': + '@babel/helper-skip-transparent-expression-wrappers@7.25.7': dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 transitivePeerDependencies: - supports-color '@babel/helper-split-export-declaration@7.24.7': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 - '@babel/helper-string-parser@7.24.8': {} + '@babel/helper-string-parser@7.25.7': {} - '@babel/helper-validator-identifier@7.24.7': {} + '@babel/helper-validator-identifier@7.25.7': {} - '@babel/helper-validator-option@7.24.8': {} + '@babel/helper-validator-option@7.25.7': {} - '@babel/helpers@7.25.6': + '@babel/helpers@7.25.7': dependencies: - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 + '@babel/template': 7.25.7 + '@babel/types': 7.25.7 - '@babel/highlight@7.24.7': + '@babel/highlight@7.25.7': dependencies: - '@babel/helper-validator-identifier': 7.24.7 + '@babel/helper-validator-identifier': 7.25.7 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.1.0 - '@babel/parser@7.25.6': + '@babel/parser@7.25.7': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 - '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.25.2)': + '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-create-class-features-plugin': 7.25.7(@babel/core@7.25.7) + '@babel/helper-plugin-utils': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.25.2)': + '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.25.7)': dependencies: - '@babel/compat-data': 7.25.4 - '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2) + '@babel/compat-data': 7.25.7 + '@babel/core': 7.25.7 + '@babel/helper-compilation-targets': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-transform-parameters': 7.25.7(@babel/core@7.25.7) - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.2)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-flow@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-syntax-flow@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-import-assertions@7.25.6(@babel/core@7.25.2)': + '@babel/plugin-syntax-import-assertions@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-syntax-jsx@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.2)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-arrow-functions@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-block-scoped-functions@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-block-scoping@7.25.0(@babel/core@7.25.2)': + '@babel/plugin-transform-block-scoping@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-classes@7.25.4(@babel/core@7.25.2)': + '@babel/plugin-transform-classes@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) - '@babel/traverse': 7.25.6 + '@babel/core': 7.25.7 + '@babel/helper-annotate-as-pure': 7.25.7 + '@babel/helper-compilation-targets': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-replace-supers': 7.25.7(@babel/core@7.25.7) + '@babel/traverse': 7.25.7 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-computed-properties@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/template': 7.25.0 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/template': 7.25.7 - '@babel/plugin-transform-destructuring@7.24.8(@babel/core@7.25.2)': + '@babel/plugin-transform-destructuring@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-flow-strip-types@7.25.2(@babel/core@7.25.2)': + '@babel/plugin-transform-flow-strip-types@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-syntax-flow': 7.25.7(@babel/core@7.25.7) - '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-for-of@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.25.1(@babel/core@7.25.2)': + '@babel/plugin-transform-function-name@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/traverse': 7.25.6 + '@babel/core': 7.25.7 + '@babel/helper-compilation-targets': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/traverse': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-literals@7.25.2(@babel/core@7.25.2)': + '@babel/plugin-transform-literals@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-member-expression-literals@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.25.2)': + '@babel/plugin-transform-modules-commonjs@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-simple-access': 7.24.7 + '@babel/core': 7.25.7 + '@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.7) + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-simple-access': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-object-super@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-object-super@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-replace-supers': 7.25.7(@babel/core@7.25.7) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-parameters@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-property-literals@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-react-display-name@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-react-display-name@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-react-jsx-self@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-react-jsx-source@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-react-jsx@7.25.2(@babel/core@7.25.2)': + '@babel/plugin-transform-react-jsx@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) - '@babel/types': 7.25.6 + '@babel/core': 7.25.7 + '@babel/helper-annotate-as-pure': 7.25.7 + '@babel/helper-module-imports': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.25.7) + '@babel/types': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-shorthand-properties@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-spread@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-spread@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-template-literals@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/runtime@7.25.6': + '@babel/runtime@7.25.7': dependencies: regenerator-runtime: 0.14.1 - '@babel/template@7.25.0': + '@babel/template@7.25.7': dependencies: - '@babel/code-frame': 7.24.7 - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/code-frame': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/types': 7.25.7 '@babel/traverse@7.23.2': dependencies: - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.6 + '@babel/code-frame': 7.25.7 + '@babel/generator': 7.25.7 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-function-name': 7.24.7 '@babel/helper-hoist-variables': 7.24.7 '@babel/helper-split-export-declaration': 7.24.7 - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/parser': 7.25.7 + '@babel/types': 7.25.7 debug: 4.3.7(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/traverse@7.25.6': + '@babel/traverse@7.25.7': dependencies: - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.6 - '@babel/parser': 7.25.6 - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 + '@babel/code-frame': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/template': 7.25.7 + '@babel/types': 7.25.7 debug: 4.3.7(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: @@ -12083,13 +12102,13 @@ snapshots: '@babel/types@7.17.0': dependencies: - '@babel/helper-validator-identifier': 7.24.7 + '@babel/helper-validator-identifier': 7.25.7 to-fast-properties: 2.0.0 - '@babel/types@7.25.6': + '@babel/types@7.25.7': dependencies: - '@babel/helper-string-parser': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 + '@babel/helper-string-parser': 7.25.7 + '@babel/helper-validator-identifier': 7.25.7 to-fast-properties: 2.0.0 '@bundled-es-modules/cookie@2.0.0': @@ -12105,26 +12124,26 @@ snapshots: '@types/tough-cookie': 4.0.5 tough-cookie: 4.1.4 - '@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1)': + '@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2)': dependencies: '@codemirror/language': 6.10.3 '@codemirror/state': 6.4.1 '@codemirror/view': 6.34.1 - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@codemirror/commands@6.6.2': dependencies: '@codemirror/language': 6.10.3 '@codemirror/state': 6.4.1 '@codemirror/view': 6.34.1 - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@codemirror/lang-angular@0.1.3': dependencies: '@codemirror/lang-html': 6.4.9 '@codemirror/lang-javascript': 6.2.2 '@codemirror/language': 6.10.3 - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 @@ -12135,49 +12154,49 @@ snapshots: '@codemirror/lang-css@6.3.0(@codemirror/view@6.34.1)': dependencies: - '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1) + '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2) '@codemirror/language': 6.10.3 '@codemirror/state': 6.4.1 - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/css': 1.1.9 transitivePeerDependencies: - '@codemirror/view' '@codemirror/lang-go@6.0.1(@codemirror/view@6.34.1)': dependencies: - '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1) + '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2) '@codemirror/language': 6.10.3 '@codemirror/state': 6.4.1 - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/go': 1.0.0 transitivePeerDependencies: - '@codemirror/view' '@codemirror/lang-html@6.4.9': dependencies: - '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1) + '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2) '@codemirror/lang-css': 6.3.0(@codemirror/view@6.34.1) '@codemirror/lang-javascript': 6.2.2 '@codemirror/language': 6.10.3 '@codemirror/state': 6.4.1 '@codemirror/view': 6.34.1 - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/css': 1.1.9 '@lezer/html': 1.3.10 '@codemirror/lang-java@6.0.1': dependencies: '@codemirror/language': 6.10.3 - '@lezer/java': 1.1.2 + '@lezer/java': 1.1.3 '@codemirror/lang-javascript@6.2.2': dependencies: - '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1) + '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2) '@codemirror/language': 6.10.3 '@codemirror/lint': 6.8.2 '@codemirror/state': 6.4.1 '@codemirror/view': 6.34.1 - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/javascript': 1.4.18 '@codemirror/lang-json@6.0.1': @@ -12189,7 +12208,7 @@ snapshots: dependencies: '@codemirror/lang-css': 6.3.0(@codemirror/view@6.34.1) '@codemirror/language': 6.10.3 - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 transitivePeerDependencies: @@ -12199,28 +12218,28 @@ snapshots: dependencies: '@codemirror/language': 6.10.3 '@codemirror/state': 6.4.1 - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/lezer': 1.1.2 '@codemirror/lang-liquid@6.2.1': dependencies: - '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1) + '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2) '@codemirror/lang-html': 6.4.9 '@codemirror/language': 6.10.3 '@codemirror/state': 6.4.1 '@codemirror/view': 6.34.1 - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@codemirror/lang-markdown@6.3.0': dependencies: - '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1) + '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2) '@codemirror/lang-html': 6.4.9 '@codemirror/language': 6.10.3 '@codemirror/state': 6.4.1 '@codemirror/view': 6.34.1 - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/markdown': 1.3.1 '@codemirror/lang-php@6.0.1': @@ -12228,15 +12247,15 @@ snapshots: '@codemirror/lang-html': 6.4.9 '@codemirror/language': 6.10.3 '@codemirror/state': 6.4.1 - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/php': 1.0.2 '@codemirror/lang-python@6.1.6(@codemirror/view@6.34.1)': dependencies: - '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1) + '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2) '@codemirror/language': 6.10.3 '@codemirror/state': 6.4.1 - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/python': 1.1.14 transitivePeerDependencies: - '@codemirror/view' @@ -12251,17 +12270,17 @@ snapshots: '@codemirror/lang-css': 6.3.0(@codemirror/view@6.34.1) '@codemirror/language': 6.10.3 '@codemirror/state': 6.4.1 - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/sass': 1.0.7 transitivePeerDependencies: - '@codemirror/view' '@codemirror/lang-sql@6.8.0(@codemirror/view@6.34.1)': dependencies: - '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1) + '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2) '@codemirror/language': 6.10.3 '@codemirror/state': 6.4.1 - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 transitivePeerDependencies: @@ -12272,32 +12291,32 @@ snapshots: '@codemirror/lang-html': 6.4.9 '@codemirror/lang-javascript': 6.2.2 '@codemirror/language': 6.10.3 - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@codemirror/lang-wast@6.0.2': dependencies: '@codemirror/language': 6.10.3 - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@codemirror/lang-xml@6.1.0': dependencies: - '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1) + '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2) '@codemirror/language': 6.10.3 '@codemirror/state': 6.4.1 '@codemirror/view': 6.34.1 - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/xml': 1.0.5 '@codemirror/lang-yaml@6.1.1(@codemirror/view@6.34.1)': dependencies: - '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1) + '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2) '@codemirror/language': 6.10.3 '@codemirror/state': 6.4.1 - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/highlight': 1.2.1 '@lezer/yaml': 1.0.3 transitivePeerDependencies: @@ -12334,7 +12353,7 @@ snapshots: dependencies: '@codemirror/state': 6.4.1 '@codemirror/view': 6.34.1 - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 style-mod: 4.1.2 @@ -12532,13 +12551,13 @@ snapshots: '@discoveryjs/json-ext@0.5.7': {} - '@emnapi/core@1.2.0': + '@emnapi/core@1.3.0': dependencies: '@emnapi/wasi-threads': 1.0.1 tslib: 2.7.0 optional: true - '@emnapi/runtime@1.2.0': + '@emnapi/runtime@1.3.0': dependencies: tslib: 2.7.0 optional: true @@ -12727,9 +12746,9 @@ snapshots: '@graphql-codegen/cli@5.0.2(@types/node@20.16.10)(graphql@16.9.0)(typescript@5.5.4)': dependencies: - '@babel/generator': 7.25.6 - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 + '@babel/generator': 7.25.7 + '@babel/template': 7.25.7 + '@babel/types': 7.25.7 '@graphql-codegen/client-preset': 4.3.3(graphql@16.9.0) '@graphql-codegen/core': 4.0.2(graphql@16.9.0) '@graphql-codegen/plugin-helpers': 5.0.4(graphql@16.9.0) @@ -12775,8 +12794,8 @@ snapshots: '@graphql-codegen/client-preset@4.3.3(graphql@16.9.0)': dependencies: - '@babel/helper-plugin-utils': 7.24.8 - '@babel/template': 7.25.0 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/template': 7.25.7 '@graphql-codegen/add': 5.0.3(graphql@16.9.0) '@graphql-codegen/gql-tag-operations': 4.0.9(graphql@16.9.0) '@graphql-codegen/plugin-helpers': 5.0.4(graphql@16.9.0) @@ -13014,11 +13033,11 @@ snapshots: '@graphql-tools/graphql-tag-pluck@8.3.2(graphql@16.9.0)': dependencies: - '@babel/core': 7.25.2 - '@babel/parser': 7.25.6 - '@babel/plugin-syntax-import-assertions': 7.25.6(@babel/core@7.25.2) - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/core': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/plugin-syntax-import-assertions': 7.25.7(@babel/core@7.25.7) + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 '@graphql-tools/utils': 10.5.4(graphql@16.9.0) graphql: 16.9.0 tslib: 2.7.0 @@ -13188,7 +13207,7 @@ snapshots: dependencies: graphql: 16.9.0 - '@grpc/grpc-js@1.11.3': + '@grpc/grpc-js@1.12.0': dependencies: '@grpc/proto-loader': 0.7.13 '@js-sdsl/ordered-map': 4.4.2 @@ -13200,7 +13219,7 @@ snapshots: protobufjs: 7.4.0 yargs: 17.7.2 - '@headlessui/react@2.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@headlessui/react@2.1.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@floating-ui/react': 0.26.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/focus': 3.18.3(react@18.3.1) @@ -13291,7 +13310,7 @@ snapshots: '@img/sharp-wasm32@0.33.5': dependencies: - '@emnapi/runtime': 1.2.0 + '@emnapi/runtime': 1.3.0 optional: true '@img/sharp-win32-ia32@0.33.5': @@ -13307,7 +13326,7 @@ snapshots: '@inquirer/core@9.2.1': dependencies: - '@inquirer/figures': 1.0.6 + '@inquirer/figures': 1.0.7 '@inquirer/type': 2.0.0 '@types/mute-stream': 0.0.4 '@types/node': 22.7.4 @@ -13320,7 +13339,7 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.2 - '@inquirer/figures@1.0.6': {} + '@inquirer/figures@1.0.7': {} '@inquirer/type@1.5.5': dependencies: @@ -13385,51 +13404,51 @@ snapshots: '@kamilkisiela/fast-url-parser@1.1.4': {} - '@lezer/common@1.2.1': {} + '@lezer/common@1.2.2': {} '@lezer/cpp@1.1.2': dependencies: - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@lezer/css@1.1.9': dependencies: - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@lezer/go@1.0.0': dependencies: - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@lezer/highlight@1.2.1': dependencies: - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/html@1.3.10': dependencies: - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 - '@lezer/java@1.1.2': + '@lezer/java@1.1.3': dependencies: - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@lezer/javascript@1.4.18': dependencies: - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@lezer/json@1.0.2': dependencies: - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 @@ -13440,46 +13459,46 @@ snapshots: '@lezer/lr@1.4.2': dependencies: - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/markdown@1.3.1': dependencies: - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/highlight': 1.2.1 '@lezer/php@1.0.2': dependencies: - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@lezer/python@1.1.14': dependencies: - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@lezer/rust@1.0.2': dependencies: - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@lezer/sass@1.0.7': dependencies: - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@lezer/xml@1.0.5': dependencies: - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@lezer/yaml@1.0.3': dependencies: - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 @@ -13596,10 +13615,10 @@ snapshots: '@napi-rs/nice-win32-x64-msvc': 1.0.1 optional: true - '@napi-rs/wasm-runtime@0.2.4': + '@napi-rs/wasm-runtime@0.2.5': dependencies: - '@emnapi/core': 1.2.0 - '@emnapi/runtime': 1.2.0 + '@emnapi/core': 1.3.0 + '@emnapi/runtime': 1.3.0 '@tybys/wasm-util': 0.9.0 optional: true @@ -13920,7 +13939,7 @@ snapshots: '@opentelemetry/exporter-logs-otlp-grpc@0.53.0(@opentelemetry/api@1.9.0)': dependencies: - '@grpc/grpc-js': 1.11.3 + '@grpc/grpc-js': 1.12.0 '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) '@opentelemetry/otlp-grpc-exporter-base': 0.53.0(@opentelemetry/api@1.9.0) @@ -13958,7 +13977,7 @@ snapshots: '@opentelemetry/exporter-trace-otlp-grpc@0.53.0(@opentelemetry/api@1.9.0)': dependencies: - '@grpc/grpc-js': 1.11.3 + '@grpc/grpc-js': 1.12.0 '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) '@opentelemetry/otlp-grpc-exporter-base': 0.53.0(@opentelemetry/api@1.9.0) @@ -14109,6 +14128,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-lru-memoizer@0.40.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-mongodb@0.47.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -14213,7 +14239,7 @@ snapshots: '@opentelemetry/otlp-grpc-exporter-base@0.53.0(@opentelemetry/api@1.9.0)': dependencies: - '@grpc/grpc-js': 1.11.3 + '@grpc/grpc-js': 1.12.0 '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) '@opentelemetry/otlp-exporter-base': 0.53.0(@opentelemetry/api@1.9.0) @@ -14333,7 +14359,7 @@ snapshots: '@oxc-resolver/binding-wasm32-wasi@1.12.0': dependencies: - '@napi-rs/wasm-runtime': 0.2.4 + '@napi-rs/wasm-runtime': 0.2.5 optional: true '@oxc-resolver/binding-win32-arm64-msvc@1.12.0': @@ -14449,662 +14475,662 @@ snapshots: '@radix-ui/primitive@1.0.1': dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 '@radix-ui/primitive@1.1.0': {} - '@radix-ui/react-accordion@1.2.1(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-accordion@1.2.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-collapsible': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.10)(react@18.3.1) + '@radix-ui/react-collapsible': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-alert-dialog@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-alert-dialog@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-dialog': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.0(@types/react@18.3.10)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-dialog': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-arrow@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-arrow@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-checkbox@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-checkbox@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.10)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-collapsible@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collapsible@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.10)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-collection@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collection@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-context': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.0(@types/react@18.3.10)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.10)(react@18.3.1)': + '@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.11)(react@18.3.1)': dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 react: 18.3.1 optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 - '@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.10)(react@18.3.1)': + '@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.11)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 - '@radix-ui/react-context@1.0.1(@types/react@18.3.10)(react@18.3.1)': + '@radix-ui/react-context@1.0.1(@types/react@18.3.11)(react@18.3.1)': dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 react: 18.3.1 optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 - '@radix-ui/react-context@1.1.0(@types/react@18.3.10)(react@18.3.1)': + '@radix-ui/react-context@1.1.0(@types/react@18.3.11)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 - '@radix-ui/react-context@1.1.1(@types/react@18.3.10)(react@18.3.1)': + '@radix-ui/react-context@1.1.1(@types/react@18.3.11)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 - '@radix-ui/react-dialog@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dialog@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.0.1(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.10)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.11)(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.5.5(@types/react@18.3.10)(react@18.3.1) + react-remove-scroll: 2.5.5(@types/react@18.3.11)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-dialog@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dialog@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.10)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.6.0(@types/react@18.3.10)(react@18.3.1) + react-remove-scroll: 2.6.0(@types/react@18.3.11)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-direction@1.1.0(@types/react@18.3.10)(react@18.3.1)': + '@radix-ui/react-direction@1.1.0(@types/react@18.3.11)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 - '@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.10)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-dismissable-layer@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dismissable-layer@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.10)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-dropdown-menu@2.1.2(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dropdown-menu@2.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-menu': 2.1.2(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.10)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-menu': 2.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.10)(react@18.3.1)': + '@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.11)(react@18.3.1)': dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 react: 18.3.1 optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 - '@radix-ui/react-focus-guards@1.1.1(@types/react@18.3.10)(react@18.3.1)': + '@radix-ui/react-focus-guards@1.1.1(@types/react@18.3.11)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 - '@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.25.6 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.10)(react@18.3.1) + '@babel/runtime': 7.25.7 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.10)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 '@radix-ui/react-icons@1.3.0(react@18.3.1)': dependencies: react: 18.3.1 - '@radix-ui/react-id@1.0.1(@types/react@18.3.10)(react@18.3.1)': + '@radix-ui/react-id@1.0.1(@types/react@18.3.11)(react@18.3.1)': dependencies: - '@babel/runtime': 7.25.6 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.10)(react@18.3.1) + '@babel/runtime': 7.25.7 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 - '@radix-ui/react-id@1.1.0(@types/react@18.3.10)(react@18.3.1)': + '@radix-ui/react-id@1.1.0(@types/react@18.3.11)(react@18.3.1)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.10)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 - '@radix-ui/react-label@2.1.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-label@2.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-menu@2.1.2(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-menu@2.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.10)(react@18.3.1) + '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.6.0(@types/react@18.3.10)(react@18.3.1) + react-remove-scroll: 2.6.0(@types/react@18.3.11)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-popover@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-popover@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.10)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.6.0(@types/react@18.3.10)(react@18.3.1) + react-remove-scroll: 2.6.0(@types/react@18.3.11)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-popper@1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-popper@1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-arrow': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-context': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.10)(react@18.3.1) + '@radix-ui/react-arrow': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.11)(react@18.3.1) '@radix-ui/rect': 1.1.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-portal@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-portal@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.25.6 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.25.7 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-portal@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-portal@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.10)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-presence@1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-presence@1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.25.6 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.10)(react@18.3.1) + '@babel/runtime': 7.25.7 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-presence@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-presence@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.10)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-primitive@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.25.6 - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.10)(react@18.3.1) + '@babel/runtime': 7.25.7 + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-slot': 1.1.0(@types/react@18.3.10)(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-roving-focus@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-roving-focus@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-context': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.10)(react@18.3.1) + '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-scroll-area@1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-scroll-area@1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/number': 1.1.0 '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.10)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-select@2.1.2(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-select@2.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/number': 1.1.0 '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.6.0(@types/react@18.3.10)(react@18.3.1) + react-remove-scroll: 2.6.0(@types/react@18.3.11)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-separator@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-separator@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-slot@1.0.2(@types/react@18.3.10)(react@18.3.1)': + '@radix-ui/react-slot@1.0.2(@types/react@18.3.11)(react@18.3.1)': dependencies: - '@babel/runtime': 7.25.6 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.10)(react@18.3.1) + '@babel/runtime': 7.25.7 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 - '@radix-ui/react-slot@1.1.0(@types/react@18.3.10)(react@18.3.1)': + '@radix-ui/react-slot@1.1.0(@types/react@18.3.11)(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.10)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 - '@radix-ui/react-switch@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-switch@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.10)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-tabs@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-tabs@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-context': 1.1.1(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.10)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-toast@1.2.2(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toast@1.2.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-toggle@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toggle@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.10)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-tooltip@1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-tooltip@1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.10)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.10)(react@18.3.1)': + '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.11)(react@18.3.1)': dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 react: 18.3.1 optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 - '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.10)(react@18.3.1)': + '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.11)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 - '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.10)(react@18.3.1)': + '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.11)(react@18.3.1)': dependencies: - '@babel/runtime': 7.25.6 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.10)(react@18.3.1) + '@babel/runtime': 7.25.7 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.10)(react@18.3.1)': + '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.11)(react@18.3.1)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.10)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 - '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.10)(react@18.3.1)': + '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.11)(react@18.3.1)': dependencies: - '@babel/runtime': 7.25.6 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.10)(react@18.3.1) + '@babel/runtime': 7.25.7 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 - '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.10)(react@18.3.1)': + '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.11)(react@18.3.1)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.10)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 - '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.10)(react@18.3.1)': + '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.11)(react@18.3.1)': dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 react: 18.3.1 optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.10)(react@18.3.1)': + '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.11)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 - '@radix-ui/react-use-previous@1.1.0(@types/react@18.3.10)(react@18.3.1)': + '@radix-ui/react-use-previous@1.1.0(@types/react@18.3.11)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 - '@radix-ui/react-use-rect@1.1.0(@types/react@18.3.10)(react@18.3.1)': + '@radix-ui/react-use-rect@1.1.0(@types/react@18.3.11)(react@18.3.1)': dependencies: '@radix-ui/rect': 1.1.0 react: 18.3.1 optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 - '@radix-ui/react-use-size@1.1.0(@types/react@18.3.10)(react@18.3.1)': + '@radix-ui/react-use-size@1.1.0(@types/react@18.3.11)(react@18.3.1)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.10)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 - '@radix-ui/react-visually-hidden@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-visually-hidden@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 '@radix-ui/rect@1.1.0': {} @@ -15179,23 +15205,23 @@ snapshots: '@repeaterjs/repeater@3.0.6': {} - '@replit/codemirror-lang-csharp@6.2.0(@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1))(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2)': + '@replit/codemirror-lang-csharp@6.2.0(@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2))(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2)': dependencies: - '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1) + '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2) '@codemirror/language': 6.10.3 '@codemirror/state': 6.4.1 '@codemirror/view': 6.34.1 - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 - '@replit/codemirror-lang-nix@6.0.1(@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1))(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2)': + '@replit/codemirror-lang-nix@6.0.1(@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2))(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2)': dependencies: - '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1) + '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2) '@codemirror/language': 6.10.3 '@codemirror/state': 6.4.1 '@codemirror/view': 6.34.1 - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 @@ -15204,16 +15230,16 @@ snapshots: '@codemirror/language': 6.10.3 '@lezer/highlight': 1.2.1 - '@replit/codemirror-lang-svelte@6.0.0(@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1))(@codemirror/lang-css@6.3.0(@codemirror/view@6.34.1))(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.2)(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1)(@lezer/highlight@1.2.1)(@lezer/javascript@1.4.18)(@lezer/lr@1.4.2)': + '@replit/codemirror-lang-svelte@6.0.0(@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2))(@codemirror/lang-css@6.3.0(@codemirror/view@6.34.1))(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.2)(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2)(@lezer/highlight@1.2.1)(@lezer/javascript@1.4.18)(@lezer/lr@1.4.2)': dependencies: - '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1) + '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2) '@codemirror/lang-css': 6.3.0(@codemirror/view@6.34.1) '@codemirror/lang-html': 6.4.9 '@codemirror/lang-javascript': 6.2.2 '@codemirror/language': 6.10.3 '@codemirror/state': 6.4.1 '@codemirror/view': 6.34.1 - '@lezer/common': 1.2.1 + '@lezer/common': 1.2.2 '@lezer/highlight': 1.2.1 '@lezer/javascript': 1.4.18 '@lezer/lr': 1.4.2 @@ -15237,52 +15263,52 @@ snapshots: optionalDependencies: rollup: 3.29.5 - '@rollup/rollup-android-arm-eabi@4.23.0': + '@rollup/rollup-android-arm-eabi@4.24.0': optional: true - '@rollup/rollup-android-arm64@4.23.0': + '@rollup/rollup-android-arm64@4.24.0': optional: true - '@rollup/rollup-darwin-arm64@4.23.0': + '@rollup/rollup-darwin-arm64@4.24.0': optional: true - '@rollup/rollup-darwin-x64@4.23.0': + '@rollup/rollup-darwin-x64@4.24.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.23.0': + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.23.0': + '@rollup/rollup-linux-arm-musleabihf@4.24.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.23.0': + '@rollup/rollup-linux-arm64-gnu@4.24.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.23.0': + '@rollup/rollup-linux-arm64-musl@4.24.0': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.23.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.23.0': + '@rollup/rollup-linux-riscv64-gnu@4.24.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.23.0': + '@rollup/rollup-linux-s390x-gnu@4.24.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.23.0': + '@rollup/rollup-linux-x64-gnu@4.24.0': optional: true - '@rollup/rollup-linux-x64-musl@4.23.0': + '@rollup/rollup-linux-x64-musl@4.24.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.23.0': + '@rollup/rollup-win32-arm64-msvc@4.24.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.23.0': + '@rollup/rollup-win32-ia32-msvc@4.24.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.23.0': + '@rollup/rollup-win32-x64-msvc@4.24.0': optional: true '@rtsao/scc@1.1.0': {} @@ -15295,49 +15321,49 @@ snapshots: selderee: 0.11.0 optional: true - '@sentry-internal/browser-utils@8.32.0': + '@sentry-internal/browser-utils@8.33.1': dependencies: - '@sentry/core': 8.32.0 - '@sentry/types': 8.32.0 - '@sentry/utils': 8.32.0 + '@sentry/core': 8.33.1 + '@sentry/types': 8.33.1 + '@sentry/utils': 8.33.1 - '@sentry-internal/feedback@8.32.0': + '@sentry-internal/feedback@8.33.1': dependencies: - '@sentry/core': 8.32.0 - '@sentry/types': 8.32.0 - '@sentry/utils': 8.32.0 + '@sentry/core': 8.33.1 + '@sentry/types': 8.33.1 + '@sentry/utils': 8.33.1 - '@sentry-internal/replay-canvas@8.32.0': + '@sentry-internal/replay-canvas@8.33.1': dependencies: - '@sentry-internal/replay': 8.32.0 - '@sentry/core': 8.32.0 - '@sentry/types': 8.32.0 - '@sentry/utils': 8.32.0 + '@sentry-internal/replay': 8.33.1 + '@sentry/core': 8.33.1 + '@sentry/types': 8.33.1 + '@sentry/utils': 8.33.1 - '@sentry-internal/replay@8.32.0': + '@sentry-internal/replay@8.33.1': dependencies: - '@sentry-internal/browser-utils': 8.32.0 - '@sentry/core': 8.32.0 - '@sentry/types': 8.32.0 - '@sentry/utils': 8.32.0 + '@sentry-internal/browser-utils': 8.33.1 + '@sentry/core': 8.33.1 + '@sentry/types': 8.33.1 + '@sentry/utils': 8.33.1 '@sentry/babel-plugin-component-annotate@2.22.3': {} - '@sentry/browser@8.32.0': + '@sentry/browser@8.33.1': dependencies: - '@sentry-internal/browser-utils': 8.32.0 - '@sentry-internal/feedback': 8.32.0 - '@sentry-internal/replay': 8.32.0 - '@sentry-internal/replay-canvas': 8.32.0 - '@sentry/core': 8.32.0 - '@sentry/types': 8.32.0 - '@sentry/utils': 8.32.0 + '@sentry-internal/browser-utils': 8.33.1 + '@sentry-internal/feedback': 8.33.1 + '@sentry-internal/replay': 8.33.1 + '@sentry-internal/replay-canvas': 8.33.1 + '@sentry/core': 8.33.1 + '@sentry/types': 8.33.1 + '@sentry/utils': 8.33.1 '@sentry/bundler-plugin-core@2.22.3': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@sentry/babel-plugin-component-annotate': 2.22.3 - '@sentry/cli': 2.36.5 + '@sentry/cli': 2.36.6 dotenv: 16.4.5 find-up: 5.0.0 glob: 9.3.5 @@ -15347,28 +15373,28 @@ snapshots: - encoding - supports-color - '@sentry/cli-darwin@2.36.5': + '@sentry/cli-darwin@2.36.6': optional: true - '@sentry/cli-linux-arm64@2.36.5': + '@sentry/cli-linux-arm64@2.36.6': optional: true - '@sentry/cli-linux-arm@2.36.5': + '@sentry/cli-linux-arm@2.36.6': optional: true - '@sentry/cli-linux-i686@2.36.5': + '@sentry/cli-linux-i686@2.36.6': optional: true - '@sentry/cli-linux-x64@2.36.5': + '@sentry/cli-linux-x64@2.36.6': optional: true - '@sentry/cli-win32-i686@2.36.5': + '@sentry/cli-win32-i686@2.36.6': optional: true - '@sentry/cli-win32-x64@2.36.5': + '@sentry/cli-win32-x64@2.36.6': optional: true - '@sentry/cli@2.36.5': + '@sentry/cli@2.36.6': dependencies: https-proxy-agent: 5.0.1 node-fetch: 2.7.0 @@ -15376,38 +15402,38 @@ snapshots: proxy-from-env: 1.1.0 which: 2.0.2 optionalDependencies: - '@sentry/cli-darwin': 2.36.5 - '@sentry/cli-linux-arm': 2.36.5 - '@sentry/cli-linux-arm64': 2.36.5 - '@sentry/cli-linux-i686': 2.36.5 - '@sentry/cli-linux-x64': 2.36.5 - '@sentry/cli-win32-i686': 2.36.5 - '@sentry/cli-win32-x64': 2.36.5 + '@sentry/cli-darwin': 2.36.6 + '@sentry/cli-linux-arm': 2.36.6 + '@sentry/cli-linux-arm64': 2.36.6 + '@sentry/cli-linux-i686': 2.36.6 + '@sentry/cli-linux-x64': 2.36.6 + '@sentry/cli-win32-i686': 2.36.6 + '@sentry/cli-win32-x64': 2.36.6 transitivePeerDependencies: - encoding - supports-color - '@sentry/core@8.32.0': + '@sentry/core@8.33.1': dependencies: - '@sentry/types': 8.32.0 - '@sentry/utils': 8.32.0 + '@sentry/types': 8.33.1 + '@sentry/utils': 8.33.1 - '@sentry/nextjs@8.32.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(next@14.2.13(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.94.0(@swc/core@1.7.26(@swc/helpers@0.5.13)))': + '@sentry/nextjs@8.33.1(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(next@14.2.13(@babel/core@7.25.7)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.94.0(@swc/core@1.7.26(@swc/helpers@0.5.13)))': dependencies: '@opentelemetry/instrumentation-http': 0.53.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.27.0 '@rollup/plugin-commonjs': 26.0.1(rollup@3.29.5) - '@sentry-internal/browser-utils': 8.32.0 - '@sentry/core': 8.32.0 - '@sentry/node': 8.32.0 - '@sentry/opentelemetry': 8.32.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.27.0) - '@sentry/react': 8.32.0(react@18.3.1) - '@sentry/types': 8.32.0 - '@sentry/utils': 8.32.0 - '@sentry/vercel-edge': 8.32.0 + '@sentry-internal/browser-utils': 8.33.1 + '@sentry/core': 8.33.1 + '@sentry/node': 8.33.1 + '@sentry/opentelemetry': 8.33.1(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.27.0) + '@sentry/react': 8.33.1(react@18.3.1) + '@sentry/types': 8.33.1 + '@sentry/utils': 8.33.1 + '@sentry/vercel-edge': 8.33.1 '@sentry/webpack-plugin': 2.22.3(webpack@5.94.0(@swc/core@1.7.26(@swc/helpers@0.5.13))) chalk: 3.0.0 - next: 14.2.13(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.13(@babel/core@7.25.7)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) resolve: 1.22.8 rollup: 3.29.5 stacktrace-parser: 0.1.10 @@ -15422,7 +15448,7 @@ snapshots: - react - supports-color - '@sentry/node@8.32.0': + '@sentry/node@8.33.1': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/context-async-hooks': 1.26.0(@opentelemetry/api@1.9.0) @@ -15441,6 +15467,7 @@ snapshots: '@opentelemetry/instrumentation-ioredis': 0.43.0(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation-kafkajs': 0.3.0(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation-koa': 0.43.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-lru-memoizer': 0.40.0(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation-mongodb': 0.47.0(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation-mongoose': 0.42.0(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation-mysql': 0.41.0(@opentelemetry/api@1.9.0) @@ -15453,45 +15480,45 @@ snapshots: '@opentelemetry/sdk-trace-base': 1.26.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.27.0 '@prisma/instrumentation': 5.19.1 - '@sentry/core': 8.32.0 - '@sentry/opentelemetry': 8.32.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.27.0) - '@sentry/types': 8.32.0 - '@sentry/utils': 8.32.0 + '@sentry/core': 8.33.1 + '@sentry/opentelemetry': 8.33.1(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.27.0) + '@sentry/types': 8.33.1 + '@sentry/utils': 8.33.1 import-in-the-middle: 1.11.2 transitivePeerDependencies: - supports-color - '@sentry/opentelemetry@8.32.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.27.0)': + '@sentry/opentelemetry@8.33.1(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.27.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.26.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.27.0 - '@sentry/core': 8.32.0 - '@sentry/types': 8.32.0 - '@sentry/utils': 8.32.0 + '@sentry/core': 8.33.1 + '@sentry/types': 8.33.1 + '@sentry/utils': 8.33.1 - '@sentry/react@8.32.0(react@18.3.1)': + '@sentry/react@8.33.1(react@18.3.1)': dependencies: - '@sentry/browser': 8.32.0 - '@sentry/core': 8.32.0 - '@sentry/types': 8.32.0 - '@sentry/utils': 8.32.0 + '@sentry/browser': 8.33.1 + '@sentry/core': 8.33.1 + '@sentry/types': 8.33.1 + '@sentry/utils': 8.33.1 hoist-non-react-statics: 3.3.2 react: 18.3.1 - '@sentry/types@8.32.0': {} + '@sentry/types@8.33.1': {} - '@sentry/utils@8.32.0': + '@sentry/utils@8.33.1': dependencies: - '@sentry/types': 8.32.0 + '@sentry/types': 8.33.1 - '@sentry/vercel-edge@8.32.0': + '@sentry/vercel-edge@8.33.1': dependencies: - '@sentry/core': 8.32.0 - '@sentry/types': 8.32.0 - '@sentry/utils': 8.32.0 + '@sentry/core': 8.33.1 + '@sentry/types': 8.33.1 + '@sentry/utils': 8.33.1 '@sentry/webpack-plugin@2.22.3(webpack@5.94.0(@swc/core@1.7.26(@swc/helpers@0.5.13)))': dependencies: @@ -15543,13 +15570,13 @@ snapshots: '@smithy/util-middleware': 3.0.7 tslib: 2.7.0 - '@smithy/core@2.4.7': + '@smithy/core@2.4.8': dependencies: '@smithy/middleware-endpoint': 3.1.4 - '@smithy/middleware-retry': 3.0.22 + '@smithy/middleware-retry': 3.0.23 '@smithy/middleware-serde': 3.0.7 '@smithy/protocol-http': 4.1.4 - '@smithy/smithy-client': 3.3.6 + '@smithy/smithy-client': 3.4.0 '@smithy/types': 3.5.0 '@smithy/util-body-length-browser': 3.0.0 '@smithy/util-middleware': 3.0.7 @@ -15657,12 +15684,12 @@ snapshots: '@smithy/util-middleware': 3.0.7 tslib: 2.7.0 - '@smithy/middleware-retry@3.0.22': + '@smithy/middleware-retry@3.0.23': dependencies: '@smithy/node-config-provider': 3.1.8 '@smithy/protocol-http': 4.1.4 '@smithy/service-error-classification': 3.0.7 - '@smithy/smithy-client': 3.3.6 + '@smithy/smithy-client': 3.4.0 '@smithy/types': 3.5.0 '@smithy/util-middleware': 3.0.7 '@smithy/util-retry': 3.0.7 @@ -15735,7 +15762,7 @@ snapshots: '@smithy/util-utf8': 3.0.0 tslib: 2.7.0 - '@smithy/smithy-client@3.3.6': + '@smithy/smithy-client@3.4.0': dependencies: '@smithy/middleware-endpoint': 3.1.4 '@smithy/middleware-stack': 3.0.7 @@ -15782,21 +15809,21 @@ snapshots: dependencies: tslib: 2.7.0 - '@smithy/util-defaults-mode-browser@3.0.22': + '@smithy/util-defaults-mode-browser@3.0.23': dependencies: '@smithy/property-provider': 3.1.7 - '@smithy/smithy-client': 3.3.6 + '@smithy/smithy-client': 3.4.0 '@smithy/types': 3.5.0 bowser: 2.11.0 tslib: 2.7.0 - '@smithy/util-defaults-mode-node@3.0.22': + '@smithy/util-defaults-mode-node@3.0.23': dependencies: '@smithy/config-resolver': 3.0.9 '@smithy/credential-provider-imds': 3.2.4 '@smithy/node-config-provider': 3.1.8 '@smithy/property-provider': 3.1.7 - '@smithy/smithy-client': 3.3.6 + '@smithy/smithy-client': 3.4.0 '@smithy/types': 3.5.0 tslib: 2.7.0 @@ -15997,8 +16024,8 @@ snapshots: '@testing-library/dom@10.4.0': dependencies: - '@babel/code-frame': 7.24.7 - '@babel/runtime': 7.25.6 + '@babel/code-frame': 7.25.7 + '@babel/runtime': 7.25.7 '@types/aria-query': 5.0.4 aria-query: 5.3.0 chalk: 4.1.2 @@ -16006,14 +16033,14 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/react@16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@testing-library/react@16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 '@testing-library/dom': 10.4.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 '@tiptap/core@2.8.0(@tiptap/pm@2.8.0)': @@ -16144,12 +16171,12 @@ snapshots: prosemirror-keymap: 1.2.2 prosemirror-markdown: 1.13.1 prosemirror-menu: 1.2.4 - prosemirror-model: 1.22.3 + prosemirror-model: 1.23.0 prosemirror-schema-basic: 1.2.3 prosemirror-schema-list: 1.4.1 prosemirror-state: 1.4.3 prosemirror-tables: 1.5.0 - prosemirror-trailing-node: 3.0.0(prosemirror-model@1.22.3)(prosemirror-state@1.4.3)(prosemirror-view@1.34.3) + prosemirror-trailing-node: 3.0.0(prosemirror-model@1.23.0)(prosemirror-state@1.4.3)(prosemirror-view@1.34.3) prosemirror-transform: 1.10.0 prosemirror-view: 1.34.3 @@ -16195,7 +16222,7 @@ snapshots: '@trivago/prettier-plugin-sort-imports@4.3.0(prettier@3.3.3)': dependencies: '@babel/generator': 7.17.7 - '@babel/parser': 7.25.6 + '@babel/parser': 7.25.7 '@babel/traverse': 7.23.2 '@babel/types': 7.17.0 javascript-natural-sort: 0.7.1 @@ -16230,9 +16257,9 @@ snapshots: dependencies: '@types/node': 20.16.10 - '@types/apollo-upload-client@18.0.0(@types/react@18.3.10)(graphql-ws@5.16.0(graphql@16.9.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(subscriptions-transport-ws@0.11.0(graphql@16.9.0))': + '@types/apollo-upload-client@18.0.0(@types/react@18.3.11)(graphql-ws@5.16.0(graphql@16.9.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(subscriptions-transport-ws@0.11.0(graphql@16.9.0))': dependencies: - '@apollo/client': 3.11.8(@types/react@18.3.10)(graphql-ws@5.16.0(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(subscriptions-transport-ws@0.11.0(graphql@16.9.0)) + '@apollo/client': 3.11.8(@types/react@18.3.11)(graphql-ws@5.16.0(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(subscriptions-transport-ws@0.11.0(graphql@16.9.0)) '@types/extract-files': 13.0.1 graphql: 16.9.0 transitivePeerDependencies: @@ -16246,24 +16273,24 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/parser': 7.25.7 + '@babel/types': 7.25.7 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.6 '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/parser': 7.25.7 + '@babel/types': 7.25.7 '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 '@types/body-parser@1.19.5': dependencies: @@ -16486,13 +16513,13 @@ snapshots: '@types/react-copy-to-clipboard@5.0.7': dependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom@18.3.0': dependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 - '@types/react@18.3.10': + '@types/react@18.3.11': dependencies: '@types/prop-types': 15.7.13 csstype: 3.1.3 @@ -16617,9 +16644,9 @@ snapshots: '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 - '@uiw/codemirror-extensions-basic-setup@4.23.3(@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1))(@codemirror/commands@6.6.2)(@codemirror/language@6.10.3)(@codemirror/lint@6.8.2)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': + '@uiw/codemirror-extensions-basic-setup@4.23.5(@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2))(@codemirror/commands@6.6.2)(@codemirror/language@6.10.3)(@codemirror/lint@6.8.2)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': dependencies: - '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1) + '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2) '@codemirror/commands': 6.6.2 '@codemirror/language': 6.10.3 '@codemirror/lint': 6.8.2 @@ -16627,7 +16654,7 @@ snapshots: '@codemirror/state': 6.4.1 '@codemirror/view': 6.34.1 - '@uiw/codemirror-extensions-langs@4.23.3(@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1))(@codemirror/language-data@6.5.1(@codemirror/view@6.34.1))(@codemirror/language@6.10.3)(@codemirror/legacy-modes@6.4.1)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1)(@lezer/highlight@1.2.1)(@lezer/javascript@1.4.18)(@lezer/lr@1.4.2)': + '@uiw/codemirror-extensions-langs@4.23.5(@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2))(@codemirror/language-data@6.5.1(@codemirror/view@6.34.1))(@codemirror/language@6.10.3)(@codemirror/legacy-modes@6.4.1)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2)(@lezer/highlight@1.2.1)(@lezer/javascript@1.4.18)(@lezer/lr@1.4.2)': dependencies: '@codemirror/lang-angular': 0.1.3 '@codemirror/lang-cpp': 6.0.2 @@ -16651,10 +16678,10 @@ snapshots: '@codemirror/language-data': 6.5.1(@codemirror/view@6.34.1) '@codemirror/legacy-modes': 6.4.1 '@nextjournal/lang-clojure': 1.0.0 - '@replit/codemirror-lang-csharp': 6.2.0(@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1))(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2) - '@replit/codemirror-lang-nix': 6.0.1(@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1))(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2) + '@replit/codemirror-lang-csharp': 6.2.0(@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2))(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2) + '@replit/codemirror-lang-nix': 6.0.1(@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2))(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2) '@replit/codemirror-lang-solidity': 6.0.2(@codemirror/language@6.10.3) - '@replit/codemirror-lang-svelte': 6.0.0(@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1))(@codemirror/lang-css@6.3.0(@codemirror/view@6.34.1))(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.2)(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1)(@lezer/highlight@1.2.1)(@lezer/javascript@1.4.18)(@lezer/lr@1.4.2) + '@replit/codemirror-lang-svelte': 6.0.0(@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2))(@codemirror/lang-css@6.3.0(@codemirror/view@6.34.1))(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.2)(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2)(@lezer/highlight@1.2.1)(@lezer/javascript@1.4.18)(@lezer/lr@1.4.2) codemirror-lang-mermaid: 0.5.0 transitivePeerDependencies: - '@codemirror/autocomplete' @@ -16666,21 +16693,21 @@ snapshots: - '@lezer/javascript' - '@lezer/lr' - '@uiw/codemirror-themes@4.23.3(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': + '@uiw/codemirror-themes@4.23.5(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': dependencies: '@codemirror/language': 6.10.3 '@codemirror/state': 6.4.1 '@codemirror/view': 6.34.1 - '@uiw/react-codemirror@4.23.3(@babel/runtime@7.25.6)(@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1))(@codemirror/language@6.10.3)(@codemirror/lint@6.8.2)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.34.1)(codemirror@6.0.1(@lezer/common@1.2.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@uiw/react-codemirror@4.23.5(@babel/runtime@7.25.7)(@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2))(@codemirror/language@6.10.3)(@codemirror/lint@6.8.2)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.34.1)(codemirror@6.0.1(@lezer/common@1.2.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 '@codemirror/commands': 6.6.2 '@codemirror/state': 6.4.1 '@codemirror/theme-one-dark': 6.1.2 '@codemirror/view': 6.34.1 - '@uiw/codemirror-extensions-basic-setup': 4.23.3(@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1))(@codemirror/commands@6.6.2)(@codemirror/language@6.10.3)(@codemirror/lint@6.8.2)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) - codemirror: 6.0.1(@lezer/common@1.2.1) + '@uiw/codemirror-extensions-basic-setup': 4.23.5(@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2))(@codemirror/commands@6.6.2)(@codemirror/language@6.10.3)(@codemirror/lint@6.8.2)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1) + codemirror: 6.0.1(@lezer/common@1.2.2) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) transitivePeerDependencies: @@ -16693,53 +16720,53 @@ snapshots: '@vitejs/plugin-react@4.3.2(vite@5.4.8(@types/node@20.16.10)(terser@5.34.1))': dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/plugin-transform-react-jsx-self': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-react-jsx-source': 7.25.7(@babel/core@7.25.7) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 vite: 5.4.8(@types/node@20.16.10)(terser@5.34.1) transitivePeerDependencies: - supports-color - '@vitest/expect@2.1.1': + '@vitest/expect@2.1.2': dependencies: - '@vitest/spy': 2.1.1 - '@vitest/utils': 2.1.1 + '@vitest/spy': 2.1.2 + '@vitest/utils': 2.1.2 chai: 5.1.1 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.1(@vitest/spy@2.1.1)(msw@2.4.9(typescript@5.5.4))(vite@5.4.8(@types/node@20.16.10)(terser@5.34.1))': + '@vitest/mocker@2.1.2(@vitest/spy@2.1.2)(msw@2.4.9(typescript@5.5.4))(vite@5.4.8(@types/node@20.16.10)(terser@5.34.1))': dependencies: - '@vitest/spy': 2.1.1 + '@vitest/spy': 2.1.2 estree-walker: 3.0.3 magic-string: 0.30.11 optionalDependencies: msw: 2.4.9(typescript@5.5.4) vite: 5.4.8(@types/node@20.16.10)(terser@5.34.1) - '@vitest/pretty-format@2.1.1': + '@vitest/pretty-format@2.1.2': dependencies: tinyrainbow: 1.2.0 - '@vitest/runner@2.1.1': + '@vitest/runner@2.1.2': dependencies: - '@vitest/utils': 2.1.1 + '@vitest/utils': 2.1.2 pathe: 1.1.2 - '@vitest/snapshot@2.1.1': + '@vitest/snapshot@2.1.2': dependencies: - '@vitest/pretty-format': 2.1.1 + '@vitest/pretty-format': 2.1.2 magic-string: 0.30.11 pathe: 1.1.2 - '@vitest/spy@2.1.1': + '@vitest/spy@2.1.2': dependencies: tinyspy: 3.0.2 - '@vitest/utils@2.1.1': + '@vitest/utils@2.1.2': dependencies: - '@vitest/pretty-format': 2.1.1 + '@vitest/pretty-format': 2.1.2 loupe: 3.1.1 tinyrainbow: 1.2.0 @@ -17004,9 +17031,9 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 - apollo-upload-client@18.0.1(@apollo/client@3.11.8(@types/react@18.3.10)(graphql-ws@5.16.0(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(subscriptions-transport-ws@0.11.0(graphql@16.9.0)))(graphql@16.9.0): + apollo-upload-client@18.0.1(@apollo/client@3.11.8(@types/react@18.3.11)(graphql-ws@5.16.0(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(subscriptions-transport-ws@0.11.0(graphql@16.9.0)))(graphql@16.9.0): dependencies: - '@apollo/client': 3.11.8(@types/react@18.3.10)(graphql-ws@5.16.0(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(subscriptions-transport-ws@0.11.0(graphql@16.9.0)) + '@apollo/client': 3.11.8(@types/react@18.3.11)(graphql-ws@5.16.0(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(subscriptions-transport-ws@0.11.0(graphql@16.9.0)) extract-files: 13.0.0 graphql: 16.9.0 @@ -17063,7 +17090,7 @@ snapshots: argon2@0.41.1: dependencies: '@phc/format': 1.0.0 - node-addon-api: 8.2.0 + node-addon-api: 8.1.0 node-gyp-build: 4.8.2 argparse@1.0.10: @@ -17191,7 +17218,7 @@ snapshots: autoprefixer@10.4.20(postcss@8.4.47): dependencies: browserslist: 4.24.0 - caniuse-lite: 1.0.30001666 + caniuse-lite: 1.0.30001667 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.0 @@ -17220,42 +17247,42 @@ snapshots: babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0: {} - babel-preset-fbjs@3.4.0(@babel/core@7.25.2): - dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.25.2) - '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.25.2) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.2) - '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-block-scoping': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-transform-classes': 7.25.4(@babel/core@7.25.2) - '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-destructuring': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-flow-strip-types': 7.25.2(@babel/core@7.25.2) - '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-function-name': 7.25.1(@babel/core@7.25.2) - '@babel/plugin-transform-literals': 7.25.2(@babel/core@7.25.2) - '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-display-name': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx': 7.25.2(@babel/core@7.25.2) - '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.25.2) + babel-preset-fbjs@3.4.0(@babel/core@7.25.7): + dependencies: + '@babel/core': 7.25.7 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.25.7) + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.25.7) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.7) + '@babel/plugin-syntax-flow': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-transform-arrow-functions': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-block-scoped-functions': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-block-scoping': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-classes': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-computed-properties': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-destructuring': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-flow-strip-types': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-for-of': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-function-name': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-literals': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-member-expression-literals': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-modules-commonjs': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-object-super': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-parameters': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-property-literals': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-react-display-name': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-react-jsx': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-shorthand-properties': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-spread': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-template-literals': 7.25.7(@babel/core@7.25.7) babel-plugin-syntax-trailing-function-commas: 7.0.0-beta.0 transitivePeerDependencies: - supports-color babel-walk@3.0.0-canary-5: dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 optional: true backo2@1.0.2: {} @@ -17337,8 +17364,8 @@ snapshots: browserslist@4.24.0: dependencies: - caniuse-lite: 1.0.30001666 - electron-to-chromium: 1.5.31 + caniuse-lite: 1.0.30001667 + electron-to-chromium: 1.5.32 node-releases: 2.0.18 update-browserslist-db: 1.1.1(browserslist@4.24.0) @@ -17444,7 +17471,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001666: {} + caniuse-lite@1.0.30001667: {} capital-case@1.0.4: dependencies: @@ -17588,7 +17615,7 @@ snapshots: class-validator@0.14.1: dependencies: '@types/validator': 13.12.2 - libphonenumber-js: 1.11.9 + libphonenumber-js: 1.11.11 validator: 13.12.0 class-variance-authority@0.7.0: @@ -17655,10 +17682,10 @@ snapshots: cluster-key-slot@1.1.2: {} - cmdk@1.0.0(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + cmdk@1.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) transitivePeerDependencies: @@ -17673,9 +17700,9 @@ snapshots: '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 - codemirror@6.0.1(@lezer/common@1.2.1): + codemirror@6.0.1(@lezer/common@1.2.2): dependencies: - '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1) + '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.2) '@codemirror/commands': 6.6.2 '@codemirror/language': 6.10.3 '@codemirror/lint': 6.8.2 @@ -17776,8 +17803,8 @@ snapshots: constantinople@4.0.1: dependencies: - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/parser': 7.25.7 + '@babel/types': 7.25.7 optional: true content-disposition@0.5.4: @@ -18026,7 +18053,7 @@ snapshots: object-is: 1.1.6 object-keys: 1.1.1 object.assign: 4.1.5 - regexp.prototype.flags: 1.5.2 + regexp.prototype.flags: 1.5.3 side-channel: 1.0.6 which-boxed-primitive: 1.0.2 which-collection: 1.0.2 @@ -18220,7 +18247,7 @@ snapshots: jake: 10.9.2 optional: true - electron-to-chromium@1.5.31: {} + electron-to-chromium@1.5.32: {} embla-carousel-react@8.3.0(react@18.3.1): dependencies: @@ -18308,7 +18335,7 @@ snapshots: object-inspect: 1.13.2 object-keys: 1.1.1 object.assign: 4.1.5 - regexp.prototype.flags: 1.5.2 + regexp.prototype.flags: 1.5.3 safe-array-concat: 1.1.2 safe-regex-test: 1.0.3 string.prototype.trim: 1.2.9 @@ -18432,8 +18459,8 @@ snapshots: '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.5.4) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.1) - eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) eslint-plugin-jsx-a11y: 6.10.0(eslint@8.57.1) eslint-plugin-react: 7.37.1(eslint@8.57.1) eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1) @@ -18456,37 +18483,37 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.1): + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.3.7(supports-color@8.1.1) enhanced-resolve: 5.17.1 eslint: 8.57.1 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.1))(eslint@8.57.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) fast-glob: 3.3.2 get-tsconfig: 4.8.1 is-bun-module: 1.2.1 is-glob: 4.0.3 optionalDependencies: - eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.1))(eslint@8.57.1): + eslint-module-utils@2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.5.4) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.1) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -18497,7 +18524,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.1))(eslint@8.57.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -18506,6 +18533,7 @@ snapshots: object.groupby: 1.0.3 object.values: 1.2.0 semver: 6.3.1 + string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 optionalDependencies: '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.5.4) @@ -18982,7 +19010,7 @@ snapshots: fork-ts-checker-webpack-plugin@9.0.2(typescript@5.3.3)(webpack@5.94.0(@swc/core@1.7.26(@swc/helpers@0.5.13))): dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.25.7 chalk: 4.1.2 chokidar: 3.6.0 cosmiconfig: 8.3.6(typescript@5.3.3) @@ -19007,7 +19035,7 @@ snapshots: fraction.js@4.3.7: {} - framer-motion@11.9.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + framer-motion@11.11.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: tslib: 2.7.0 optionalDependencies: @@ -19750,8 +19778,8 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: - '@babel/core': 7.25.2 - '@babel/parser': 7.25.6 + '@babel/core': 7.25.7 + '@babel/parser': 7.25.7 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.6.3 @@ -19828,6 +19856,8 @@ snapshots: jiti@1.21.6: {} + jiti@2.3.1: {} + jose@4.15.9: {} jose@5.9.3: {} @@ -19894,6 +19924,8 @@ snapshots: jsesc@2.5.2: {} + jsesc@3.0.2: {} + json-buffer@3.0.1: {} json-parse-even-better-errors@2.3.1: {} @@ -19994,7 +20026,7 @@ snapshots: dependencies: json-buffer: 3.0.1 - knip@5.30.6(@types/node@22.7.4)(typescript@5.5.4): + knip@5.32.0(@types/node@22.7.4)(typescript@5.5.4): dependencies: '@nodelib/fs.walk': 1.2.8 '@snyk/github-codeowners': 1.1.0 @@ -20002,7 +20034,7 @@ snapshots: easy-table: 1.2.0 enhanced-resolve: 5.17.1 fast-glob: 3.3.2 - jiti: 1.21.6 + jiti: 2.3.1 js-yaml: 4.1.0 minimist: 1.2.8 picocolors: 1.1.0 @@ -20100,7 +20132,7 @@ snapshots: libqp: 2.1.0 optional: true - libphonenumber-js@1.11.9: {} + libphonenumber-js@1.11.11: {} libqp@2.0.1: optional: true @@ -20416,7 +20448,7 @@ snapshots: mjml-accordion@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 lodash: 4.17.21 mjml-core: 4.15.3 transitivePeerDependencies: @@ -20425,7 +20457,7 @@ snapshots: mjml-body@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 lodash: 4.17.21 mjml-core: 4.15.3 transitivePeerDependencies: @@ -20434,7 +20466,7 @@ snapshots: mjml-button@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 lodash: 4.17.21 mjml-core: 4.15.3 transitivePeerDependencies: @@ -20443,7 +20475,7 @@ snapshots: mjml-carousel@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 lodash: 4.17.21 mjml-core: 4.15.3 transitivePeerDependencies: @@ -20452,7 +20484,7 @@ snapshots: mjml-cli@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 chokidar: 3.6.0 glob: 10.3.12 html-minifier: 4.0.0 @@ -20470,7 +20502,7 @@ snapshots: mjml-column@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 lodash: 4.17.21 mjml-core: 4.15.3 transitivePeerDependencies: @@ -20479,7 +20511,7 @@ snapshots: mjml-core@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 cheerio: 1.0.0-rc.12 detect-node: 2.1.0 html-minifier: 4.0.0 @@ -20495,7 +20527,7 @@ snapshots: mjml-divider@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 lodash: 4.17.21 mjml-core: 4.15.3 transitivePeerDependencies: @@ -20504,7 +20536,7 @@ snapshots: mjml-group@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 lodash: 4.17.21 mjml-core: 4.15.3 transitivePeerDependencies: @@ -20513,7 +20545,7 @@ snapshots: mjml-head-attributes@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 lodash: 4.17.21 mjml-core: 4.15.3 transitivePeerDependencies: @@ -20522,7 +20554,7 @@ snapshots: mjml-head-breakpoint@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 lodash: 4.17.21 mjml-core: 4.15.3 transitivePeerDependencies: @@ -20531,7 +20563,7 @@ snapshots: mjml-head-font@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 lodash: 4.17.21 mjml-core: 4.15.3 transitivePeerDependencies: @@ -20540,7 +20572,7 @@ snapshots: mjml-head-html-attributes@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 lodash: 4.17.21 mjml-core: 4.15.3 transitivePeerDependencies: @@ -20549,7 +20581,7 @@ snapshots: mjml-head-preview@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 lodash: 4.17.21 mjml-core: 4.15.3 transitivePeerDependencies: @@ -20558,7 +20590,7 @@ snapshots: mjml-head-style@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 lodash: 4.17.21 mjml-core: 4.15.3 transitivePeerDependencies: @@ -20567,7 +20599,7 @@ snapshots: mjml-head-title@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 lodash: 4.17.21 mjml-core: 4.15.3 transitivePeerDependencies: @@ -20576,7 +20608,7 @@ snapshots: mjml-head@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 lodash: 4.17.21 mjml-core: 4.15.3 transitivePeerDependencies: @@ -20585,7 +20617,7 @@ snapshots: mjml-hero@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 lodash: 4.17.21 mjml-core: 4.15.3 transitivePeerDependencies: @@ -20594,7 +20626,7 @@ snapshots: mjml-image@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 lodash: 4.17.21 mjml-core: 4.15.3 transitivePeerDependencies: @@ -20603,7 +20635,7 @@ snapshots: mjml-migrate@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 js-beautify: 1.15.1 lodash: 4.17.21 mjml-core: 4.15.3 @@ -20615,7 +20647,7 @@ snapshots: mjml-navbar@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 lodash: 4.17.21 mjml-core: 4.15.3 transitivePeerDependencies: @@ -20624,7 +20656,7 @@ snapshots: mjml-parser-xml@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 detect-node: 2.1.0 htmlparser2: 9.1.0 lodash: 4.17.21 @@ -20632,7 +20664,7 @@ snapshots: mjml-preset-core@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 mjml-accordion: 4.15.3 mjml-body: 4.15.3 mjml-button: 4.15.3 @@ -20664,7 +20696,7 @@ snapshots: mjml-raw@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 lodash: 4.17.21 mjml-core: 4.15.3 transitivePeerDependencies: @@ -20673,7 +20705,7 @@ snapshots: mjml-section@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 lodash: 4.17.21 mjml-core: 4.15.3 transitivePeerDependencies: @@ -20682,7 +20714,7 @@ snapshots: mjml-social@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 lodash: 4.17.21 mjml-core: 4.15.3 transitivePeerDependencies: @@ -20691,7 +20723,7 @@ snapshots: mjml-spacer@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 lodash: 4.17.21 mjml-core: 4.15.3 transitivePeerDependencies: @@ -20700,7 +20732,7 @@ snapshots: mjml-table@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 lodash: 4.17.21 mjml-core: 4.15.3 transitivePeerDependencies: @@ -20709,7 +20741,7 @@ snapshots: mjml-text@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 lodash: 4.17.21 mjml-core: 4.15.3 transitivePeerDependencies: @@ -20718,12 +20750,12 @@ snapshots: mjml-validator@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 optional: true mjml-wrapper@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 lodash: 4.17.21 mjml-core: 4.15.3 mjml-section: 4.15.3 @@ -20733,7 +20765,7 @@ snapshots: mjml@4.15.3: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 mjml-cli: 4.15.3 mjml-core: 4.15.3 mjml-migrate: 4.15.3 @@ -20869,17 +20901,17 @@ snapshots: '@nestjs/common': 10.4.4(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) pino-http: 10.3.0 - next-auth@4.24.8(next@14.2.13(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nodemailer@6.9.15)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next-auth@4.24.8(next@14.2.13(@babel/core@7.25.7)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nodemailer@6.9.15)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 '@panva/hkdf': 1.2.1 cookie: 0.5.0 jose: 4.15.9 - next: 14.2.13(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.13(@babel/core@7.25.7)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) oauth: 0.9.15 openid-client: 5.7.0 - preact: 10.24.1 - preact-render-to-string: 5.2.6(preact@10.24.1) + preact: 10.24.2 + preact-render-to-string: 5.2.6(preact@10.24.2) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) uuid: 8.3.2 @@ -20891,17 +20923,17 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - next@14.2.13(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next@14.2.13(@babel/core@7.25.7)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@next/env': 14.2.13 '@swc/helpers': 0.5.5 busboy: 1.6.0 - caniuse-lite: 1.0.30001666 + caniuse-lite: 1.0.30001667 graceful-fs: 4.2.11 postcss: 8.4.31 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - styled-jsx: 5.1.1(@babel/core@7.25.2)(react@18.3.1) + styled-jsx: 5.1.1(@babel/core@7.25.7)(react@18.3.1) optionalDependencies: '@next/swc-darwin-arm64': 14.2.13 '@next/swc-darwin-x64': 14.2.13 @@ -20941,7 +20973,7 @@ snapshots: node-abort-controller@3.1.1: {} - node-addon-api@8.2.0: {} + node-addon-api@8.1.0: {} node-emoji@1.11.0: dependencies: @@ -21255,7 +21287,7 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.25.7 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -21524,12 +21556,12 @@ snapshots: dependencies: xtend: 4.0.2 - preact-render-to-string@5.2.6(preact@10.24.1): + preact-render-to-string@5.2.6(preact@10.24.2): dependencies: - preact: 10.24.1 + preact: 10.24.2 pretty-format: 3.8.0 - preact@10.24.1: {} + preact@10.24.2: {} prelude-ls@1.2.1: {} @@ -21631,7 +21663,7 @@ snapshots: prosemirror-commands@1.6.0: dependencies: - prosemirror-model: 1.22.3 + prosemirror-model: 1.23.0 prosemirror-state: 1.4.3 prosemirror-transform: 1.10.0 @@ -21644,7 +21676,7 @@ snapshots: prosemirror-gapcursor@1.3.2: dependencies: prosemirror-keymap: 1.2.2 - prosemirror-model: 1.22.3 + prosemirror-model: 1.23.0 prosemirror-state: 1.4.3 prosemirror-view: 1.34.3 @@ -21669,7 +21701,7 @@ snapshots: dependencies: '@types/markdown-it': 14.1.2 markdown-it: 14.1.0 - prosemirror-model: 1.22.3 + prosemirror-model: 1.23.0 prosemirror-menu@1.2.4: dependencies: @@ -21678,49 +21710,49 @@ snapshots: prosemirror-history: 1.4.1 prosemirror-state: 1.4.3 - prosemirror-model@1.22.3: + prosemirror-model@1.23.0: dependencies: orderedmap: 2.1.1 prosemirror-schema-basic@1.2.3: dependencies: - prosemirror-model: 1.22.3 + prosemirror-model: 1.23.0 prosemirror-schema-list@1.4.1: dependencies: - prosemirror-model: 1.22.3 + prosemirror-model: 1.23.0 prosemirror-state: 1.4.3 prosemirror-transform: 1.10.0 prosemirror-state@1.4.3: dependencies: - prosemirror-model: 1.22.3 + prosemirror-model: 1.23.0 prosemirror-transform: 1.10.0 prosemirror-view: 1.34.3 prosemirror-tables@1.5.0: dependencies: prosemirror-keymap: 1.2.2 - prosemirror-model: 1.22.3 + prosemirror-model: 1.23.0 prosemirror-state: 1.4.3 prosemirror-transform: 1.10.0 prosemirror-view: 1.34.3 - prosemirror-trailing-node@3.0.0(prosemirror-model@1.22.3)(prosemirror-state@1.4.3)(prosemirror-view@1.34.3): + prosemirror-trailing-node@3.0.0(prosemirror-model@1.23.0)(prosemirror-state@1.4.3)(prosemirror-view@1.34.3): dependencies: '@remirror/core-constants': 3.0.0 escape-string-regexp: 4.0.0 - prosemirror-model: 1.22.3 + prosemirror-model: 1.23.0 prosemirror-state: 1.4.3 prosemirror-view: 1.34.3 prosemirror-transform@1.10.0: dependencies: - prosemirror-model: 1.22.3 + prosemirror-model: 1.23.0 prosemirror-view@1.34.3: dependencies: - prosemirror-model: 1.22.3 + prosemirror-model: 1.23.0 prosemirror-state: 1.4.3 prosemirror-transform: 1.10.0 @@ -21934,49 +21966,49 @@ snapshots: react-refresh@0.14.2: {} - react-remove-scroll-bar@2.3.6(@types/react@18.3.10)(react@18.3.1): + react-remove-scroll-bar@2.3.6(@types/react@18.3.11)(react@18.3.1): dependencies: react: 18.3.1 - react-style-singleton: 2.2.1(@types/react@18.3.10)(react@18.3.1) + react-style-singleton: 2.2.1(@types/react@18.3.11)(react@18.3.1) tslib: 2.7.0 optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 - react-remove-scroll@2.5.5(@types/react@18.3.10)(react@18.3.1): + react-remove-scroll@2.5.5(@types/react@18.3.11)(react@18.3.1): dependencies: react: 18.3.1 - react-remove-scroll-bar: 2.3.6(@types/react@18.3.10)(react@18.3.1) - react-style-singleton: 2.2.1(@types/react@18.3.10)(react@18.3.1) + react-remove-scroll-bar: 2.3.6(@types/react@18.3.11)(react@18.3.1) + react-style-singleton: 2.2.1(@types/react@18.3.11)(react@18.3.1) tslib: 2.7.0 - use-callback-ref: 1.3.2(@types/react@18.3.10)(react@18.3.1) - use-sidecar: 1.1.2(@types/react@18.3.10)(react@18.3.1) + use-callback-ref: 1.3.2(@types/react@18.3.11)(react@18.3.1) + use-sidecar: 1.1.2(@types/react@18.3.11)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 - react-remove-scroll@2.6.0(@types/react@18.3.10)(react@18.3.1): + react-remove-scroll@2.6.0(@types/react@18.3.11)(react@18.3.1): dependencies: react: 18.3.1 - react-remove-scroll-bar: 2.3.6(@types/react@18.3.10)(react@18.3.1) - react-style-singleton: 2.2.1(@types/react@18.3.10)(react@18.3.1) + react-remove-scroll-bar: 2.3.6(@types/react@18.3.11)(react@18.3.1) + react-style-singleton: 2.2.1(@types/react@18.3.11)(react@18.3.1) tslib: 2.7.0 - use-callback-ref: 1.3.2(@types/react@18.3.10)(react@18.3.1) - use-sidecar: 1.1.2(@types/react@18.3.10)(react@18.3.1) + use-callback-ref: 1.3.2(@types/react@18.3.11)(react@18.3.1) + use-sidecar: 1.1.2(@types/react@18.3.11)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 react-resizable-panels@2.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-style-singleton@2.2.1(@types/react@18.3.10)(react@18.3.1): + react-style-singleton@2.2.1(@types/react@18.3.11)(react@18.3.1): dependencies: get-nonce: 1.0.1 invariant: 2.2.4 react: 18.3.1 tslib: 2.7.0 optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 react-universal-interface@0.6.2(react@18.3.1)(tslib@2.7.0): dependencies: @@ -22078,16 +22110,16 @@ snapshots: regenerator-runtime@0.14.1: {} - regexp.prototype.flags@1.5.2: + regexp.prototype.flags@1.5.3: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-errors: 1.3.0 set-function-name: 2.0.2 - rehackt@0.1.0(@types/react@18.3.10)(react@18.3.1): + rehackt@0.1.0(@types/react@18.3.11)(react@18.3.1): optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 react: 18.3.1 relateurl@0.2.7: @@ -22095,7 +22127,7 @@ snapshots: relay-runtime@12.0.0: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 fbjs: 3.0.5 invariant: 2.2.4 transitivePeerDependencies: @@ -22187,26 +22219,26 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - rollup@4.23.0: + rollup@4.24.0: dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.23.0 - '@rollup/rollup-android-arm64': 4.23.0 - '@rollup/rollup-darwin-arm64': 4.23.0 - '@rollup/rollup-darwin-x64': 4.23.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.23.0 - '@rollup/rollup-linux-arm-musleabihf': 4.23.0 - '@rollup/rollup-linux-arm64-gnu': 4.23.0 - '@rollup/rollup-linux-arm64-musl': 4.23.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.23.0 - '@rollup/rollup-linux-riscv64-gnu': 4.23.0 - '@rollup/rollup-linux-s390x-gnu': 4.23.0 - '@rollup/rollup-linux-x64-gnu': 4.23.0 - '@rollup/rollup-linux-x64-musl': 4.23.0 - '@rollup/rollup-win32-arm64-msvc': 4.23.0 - '@rollup/rollup-win32-ia32-msvc': 4.23.0 - '@rollup/rollup-win32-x64-msvc': 4.23.0 + '@rollup/rollup-android-arm-eabi': 4.24.0 + '@rollup/rollup-android-arm64': 4.24.0 + '@rollup/rollup-darwin-arm64': 4.24.0 + '@rollup/rollup-darwin-x64': 4.24.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.24.0 + '@rollup/rollup-linux-arm-musleabihf': 4.24.0 + '@rollup/rollup-linux-arm64-gnu': 4.24.0 + '@rollup/rollup-linux-arm64-musl': 4.24.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.24.0 + '@rollup/rollup-linux-riscv64-gnu': 4.24.0 + '@rollup/rollup-linux-s390x-gnu': 4.24.0 + '@rollup/rollup-linux-x64-gnu': 4.24.0 + '@rollup/rollup-linux-x64-musl': 4.24.0 + '@rollup/rollup-win32-arm64-msvc': 4.24.0 + '@rollup/rollup-win32-ia32-msvc': 4.24.0 + '@rollup/rollup-win32-x64-msvc': 4.24.0 fsevents: 2.3.3 rope-sequence@1.3.4: {} @@ -22215,7 +22247,7 @@ snapshots: rtl-css-js@1.16.1: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 run-applescript@3.2.0: dependencies: @@ -22589,7 +22621,7 @@ snapshots: gopd: 1.0.1 has-symbols: 1.0.3 internal-slot: 1.0.7 - regexp.prototype.flags: 1.5.2 + regexp.prototype.flags: 1.5.3 set-function-name: 2.0.2 side-channel: 1.0.6 @@ -22665,12 +22697,12 @@ snapshots: style-mod@4.1.2: {} - styled-jsx@5.1.1(@babel/core@7.25.2)(react@18.3.1): + styled-jsx@5.1.1(@babel/core@7.25.7)(react@18.3.1): dependencies: client-only: 0.0.1 react: 18.3.1 optionalDependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 stylis@4.3.4: {} @@ -22748,7 +22780,7 @@ snapshots: tabbable@6.2.0: {} - tailwind-merge@2.5.2: {} + tailwind-merge@2.5.3: {} tailwindcss-animate@1.0.7(tailwindcss@3.4.13(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@20.16.10)(typescript@5.5.4))): dependencies: @@ -22856,11 +22888,11 @@ snapshots: tlds@1.252.0: optional: true - tldts-core@6.1.48: {} + tldts-core@6.1.50: {} - tldts@6.1.48: + tldts@6.1.50: dependencies: - tldts-core: 6.1.48 + tldts-core: 6.1.50 tmp@0.0.33: dependencies: @@ -22897,7 +22929,7 @@ snapshots: tough-cookie@5.0.0: dependencies: - tldts: 6.1.48 + tldts: 6.1.50 tr46@0.0.3: {} @@ -23160,20 +23192,20 @@ snapshots: urlpattern-polyfill@8.0.2: {} - use-callback-ref@1.3.2(@types/react@18.3.10)(react@18.3.1): + use-callback-ref@1.3.2(@types/react@18.3.11)(react@18.3.1): dependencies: react: 18.3.1 tslib: 2.7.0 optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 - use-sidecar@1.1.2(@types/react@18.3.10)(react@18.3.1): + use-sidecar@1.1.2(@types/react@18.3.11)(react@18.3.1): dependencies: detect-node-es: 1.1.0 react: 18.3.1 tslib: 2.7.0 optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 use-sync-external-store@1.2.2(react@18.3.1): dependencies: @@ -23198,7 +23230,7 @@ snapshots: vary@1.1.2: {} - vite-node@2.1.1(@types/node@20.16.10)(terser@5.34.1): + vite-node@2.1.2(@types/node@20.16.10)(terser@5.34.1): dependencies: cac: 6.7.14 debug: 4.3.7(supports-color@8.1.1) @@ -23219,21 +23251,21 @@ snapshots: dependencies: esbuild: 0.21.5 postcss: 8.4.47 - rollup: 4.23.0 + rollup: 4.24.0 optionalDependencies: '@types/node': 20.16.10 fsevents: 2.3.3 terser: 5.34.1 - vitest@2.1.1(@types/node@20.16.10)(jsdom@25.0.1)(msw@2.4.9(typescript@5.5.4))(terser@5.34.1): + vitest@2.1.2(@types/node@20.16.10)(jsdom@25.0.1)(msw@2.4.9(typescript@5.5.4))(terser@5.34.1): dependencies: - '@vitest/expect': 2.1.1 - '@vitest/mocker': 2.1.1(@vitest/spy@2.1.1)(msw@2.4.9(typescript@5.5.4))(vite@5.4.8(@types/node@20.16.10)(terser@5.34.1)) - '@vitest/pretty-format': 2.1.1 - '@vitest/runner': 2.1.1 - '@vitest/snapshot': 2.1.1 - '@vitest/spy': 2.1.1 - '@vitest/utils': 2.1.1 + '@vitest/expect': 2.1.2 + '@vitest/mocker': 2.1.2(@vitest/spy@2.1.2)(msw@2.4.9(typescript@5.5.4))(vite@5.4.8(@types/node@20.16.10)(terser@5.34.1)) + '@vitest/pretty-format': 2.1.2 + '@vitest/runner': 2.1.2 + '@vitest/snapshot': 2.1.2 + '@vitest/spy': 2.1.2 + '@vitest/utils': 2.1.2 chai: 5.1.1 debug: 4.3.7(supports-color@8.1.1) magic-string: 0.30.11 @@ -23244,7 +23276,7 @@ snapshots: tinypool: 1.0.1 tinyrainbow: 1.2.0 vite: 5.4.8(@types/node@20.16.10)(terser@5.34.1) - vite-node: 2.1.1(@types/node@20.16.10)(terser@5.34.1) + vite-node: 2.1.2(@types/node@20.16.10)(terser@5.34.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 20.16.10 @@ -23445,8 +23477,8 @@ snapshots: with@7.0.2: dependencies: - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/parser': 7.25.7 + '@babel/types': 7.25.7 assert-never: 1.3.0 babel-walk: 3.0.0-canary-5 optional: true @@ -23593,9 +23625,9 @@ snapshots: zod@3.23.8: {} - zustand@4.5.5(@types/react@18.3.10)(react@18.3.1): + zustand@4.5.5(@types/react@18.3.11)(react@18.3.1): dependencies: use-sync-external-store: 1.2.2(react@18.3.1) optionalDependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 react: 18.3.1 From 41c23dccb62f276e981230f113e86156b11593e5 Mon Sep 17 00:00:00 2001 From: Jiho Park <59248080+jihorobert@users.noreply.github.com> Date: Tue, 8 Oct 2024 16:41:00 +0900 Subject: [PATCH 010/113] fix(fe): fix scrollbar (#2145) --- .../frontend/app/(main)/settings/_components/MajorSection.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/frontend/app/(main)/settings/_components/MajorSection.tsx b/apps/frontend/app/(main)/settings/_components/MajorSection.tsx index c48015077a..a6ff7a6bee 100644 --- a/apps/frontend/app/(main)/settings/_components/MajorSection.tsx +++ b/apps/frontend/app/(main)/settings/_components/MajorSection.tsx @@ -73,10 +73,10 @@ export default function MajorSection({ - + No major found. - + {majors?.map((major) => ( Date: Tue, 8 Oct 2024 20:03:07 +0900 Subject: [PATCH 011/113] chore(fe): wrap the line of the hint automatically (#2147) --- apps/frontend/components/EditorDescription.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/frontend/components/EditorDescription.tsx b/apps/frontend/components/EditorDescription.tsx index b13056c3b2..c8fe6c8ce3 100644 --- a/apps/frontend/components/EditorDescription.tsx +++ b/apps/frontend/components/EditorDescription.tsx @@ -286,7 +286,7 @@ export function EditorDescription({
           
         

From 699f223437b8aee31eba7faa18e3b0d761612753 Mon Sep 17 00:00:00 2001
From: Woojin Jung <44637040+jwoojin9@users.noreply.github.com>
Date: Wed, 9 Oct 2024 02:22:13 +0900
Subject: [PATCH 012/113] chore(fe): fix admin contest time format (#2146)

---
 apps/frontend/app/admin/contest/_components/Columns.tsx | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/apps/frontend/app/admin/contest/_components/Columns.tsx b/apps/frontend/app/admin/contest/_components/Columns.tsx
index 4fce34bde1..0eb613bb1f 100644
--- a/apps/frontend/app/admin/contest/_components/Columns.tsx
+++ b/apps/frontend/app/admin/contest/_components/Columns.tsx
@@ -164,7 +164,7 @@ export const columns: ColumnDef[] = [
     ),
     cell: ({ row }) => (
       

- {`${dateFormatter(row.original.startTime, 'YY-MM-DD hh:mm')} ~ ${dateFormatter(row.original.endTime, 'YY-MM-DD hh:mm')}`} + {`${dateFormatter(row.original.startTime, 'YY-MM-DD HH:mm')} ~ ${dateFormatter(row.original.endTime, 'YY-MM-DD HH:mm')}`}

), size: 250 From 5b9e050cf25e625b2889e7fdd59e2c87cd8d9e44 Mon Sep 17 00:00:00 2001 From: Jaehyeon Kim Date: Wed, 9 Oct 2024 17:11:29 +0900 Subject: [PATCH 013/113] fix(be): use is-optional (#2149) --- apps/backend/apps/client/src/user/dto/signup.dto.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/backend/apps/client/src/user/dto/signup.dto.ts b/apps/backend/apps/client/src/user/dto/signup.dto.ts index 388a83277c..465effa018 100644 --- a/apps/backend/apps/client/src/user/dto/signup.dto.ts +++ b/apps/backend/apps/client/src/user/dto/signup.dto.ts @@ -3,6 +3,7 @@ import { IsEmail, IsNotEmpty, IsNumberString, + IsOptional, IsString, Matches } from 'class-validator' @@ -24,9 +25,11 @@ export class SignUpDto { @IsNotEmpty() readonly realName: string + @IsOptional() @IsNumberString() readonly studentId?: string + @IsOptional() @IsString() readonly major?: string } From 667306fec7a9964b0ae14c74a84a5f95b0c74676 Mon Sep 17 00:00:00 2001 From: Kohminchae <72334086+Kohminchae@users.noreply.github.com> Date: Wed, 9 Oct 2024 20:19:10 +0900 Subject: [PATCH 014/113] fix(fe): resolve code disappearing problem after test/submit (#2144) * chore(fe): fix bug * fix(fe): remove codeContext --- apps/frontend/components/EditorHeader.tsx | 16 ++-- .../components/EditorResizablePanel.tsx | 73 +++++++++---------- apps/frontend/stores/editor.ts | 17 ++--- 3 files changed, 49 insertions(+), 57 deletions(-) diff --git a/apps/frontend/components/EditorHeader.tsx b/apps/frontend/components/EditorHeader.tsx index 697c85bb2f..f0f0e24444 100644 --- a/apps/frontend/components/EditorHeader.tsx +++ b/apps/frontend/components/EditorHeader.tsx @@ -25,12 +25,12 @@ import { fetcherWithAuth } from '@/lib/utils' import submitIcon from '@/public/submit.svg' import useAuthModalStore from '@/stores/authModal' import { - TestResultsContext, useLanguageStore, + createCodeStore, getKey, setItem, getItem, - CodeContext + TestResultsContext } from '@/stores/editor' import type { Language, @@ -63,12 +63,13 @@ export default function Editor({ templateString }: ProblemEditorProps) { const { language, setLanguage } = useLanguageStore() - const codeStore = useContext(CodeContext) - if (!codeStore) throw new Error('CodeContext is not provided') - const { code, setCode } = useStore(codeStore) + const { code, setCode } = createCodeStore((state) => state) const testResultStore = useContext(TestResultsContext) if (!testResultStore) throw new Error('TestResultsContext is not provided') - const { setTestResults } = useStore(testResultStore) + const { testResults, setTestResults } = useStore( + testResultStore, + (state) => state + ) const [loading, setLoading] = useState(false) const [submissionId, setSubmissionId] = useState(null) const [templateCode, setTemplateCode] = useState(null) @@ -129,7 +130,7 @@ export default function Editor({ useEffect(() => { storageKey.current = getKey(language, problem.id, userName, contestId) getLocalstorageCode() - }, [userName, problem, contestId, language, templateCode]) + }, [userName, problem, contestId, language, templateCode, testResults]) const submit = async () => { if (code === '') { @@ -195,6 +196,7 @@ export default function Editor({ } }) if (res.ok) { + saveCode() pollTestResult() } else { setLoading(false) diff --git a/apps/frontend/components/EditorResizablePanel.tsx b/apps/frontend/components/EditorResizablePanel.tsx index e7cc7ca537..666d509a00 100644 --- a/apps/frontend/components/EditorResizablePanel.tsx +++ b/apps/frontend/components/EditorResizablePanel.tsx @@ -9,10 +9,9 @@ import { import { ScrollArea, ScrollBar } from '@/components/ui/scroll-area' import { Tabs, TabsList, TabsTrigger } from '@/components/ui/tabs' import { - CodeContext, - TestResultsContext, + useLanguageStore, createCodeStore, - useLanguageStore + TestResultsContext } from '@/stores/editor' import type { Language, ProblemDetail } from '@/types/type' import type { Route } from 'next' @@ -40,7 +39,6 @@ export default function EditorMainResizablePanel({ const pathname = usePathname() const base = contestId ? `/contest/${contestId}` : '' const { language, setLanguage } = useLanguageStore() - const codeStore = createCodeStore() const testResultStore = useContext(TestResultsContext) if (!testResultStore) throw new Error('TestResultsContext is not provided') const { testResults } = useStore(testResultStore) @@ -60,6 +58,7 @@ export default function EditorMainResizablePanel({ setLanguage(problem.languages[0]) } }, [problem.languages, language, setLanguage]) + return (
- - + - - - - - - - - - {testResultData && ( - <> - - - - - - )} - - + + + + + + + + + {testResultData && ( + <> + + + + + + )} +
@@ -158,9 +155,7 @@ function CodeEditorInEditorResizablePanel({ enableCopyPaste }: CodeEditorInEditorResizablePanelProps) { const { language } = useLanguageStore() - const store = useContext(CodeContext) - if (!store) throw new Error('CodeContext is not provided') - const { code, setCode } = useStore(store) + const { code, setCode } = createCodeStore() return ( interface CodeState { code: string setCode: (code: string) => void } -export const createCodeStore = () => { - return createStore()((set) => ({ - code: '', - setCode: (code) => { - set({ code }) - } - })) -} +export const createCodeStore = create((set) => ({ + code: '', + setCode: (code) => { + set({ code }) + } +})) export const getKey = ( language: Language, @@ -59,8 +56,6 @@ export const setItem = (name: string, value: string) => { export const removeItem = (name: string) => localStorage.removeItem(name) -export const CodeContext = createContext(null) - interface TestResultsState { testResults: TestResult[] setTestResults: (results: TestResult[]) => void From a1febb4538ed10330bffd98a4014dec3f8c792a6 Mon Sep 17 00:00:00 2001 From: Eunbi Kang Date: Thu, 10 Oct 2024 20:50:07 +0900 Subject: [PATCH 015/113] feat(fe): poc - new data table for admin (#2136) * feat(fe): add new data table components for admin * refactor(fe): remove hard-coded value * chore(fe): add default column visibility constant * chore(fe): add jsdoc * refactor(fe): remove unnecessary state and conditional statements * chore(fe): remove duplicate code * chore(fe): minor refactor --- .../app/admin/_components/table/DataTable.tsx | 143 ++++++++++++++++++ .../table/DataTableColumnHeader.tsx | 78 ++++++++++ .../table/DataTableDeleteButton.tsx | 123 +++++++++++++++ .../_components/table/DataTableFallback.tsx | 104 +++++++++++++ .../_components/table/DataTableLangFilter.tsx | 22 +++ .../table/DataTableLevelFilter.tsx | 25 +++ .../table/DataTableMultiSelectFilter.tsx | 130 ++++++++++++++++ .../_components/table/DataTablePagination.tsx | 120 +++++++++++++++ .../table/DataTableProblemFilter.tsx | 111 ++++++++++++++ .../admin/_components/table/DataTableRoot.tsx | 84 ++++++++++ .../_components/table/DataTableSearchBar.tsx | 47 ++++++ .../app/admin/_components/table/constants.ts | 6 + .../app/admin/_components/table/context.ts | 27 ++++ 13 files changed, 1020 insertions(+) create mode 100644 apps/frontend/app/admin/_components/table/DataTable.tsx create mode 100644 apps/frontend/app/admin/_components/table/DataTableColumnHeader.tsx create mode 100644 apps/frontend/app/admin/_components/table/DataTableDeleteButton.tsx create mode 100644 apps/frontend/app/admin/_components/table/DataTableFallback.tsx create mode 100644 apps/frontend/app/admin/_components/table/DataTableLangFilter.tsx create mode 100644 apps/frontend/app/admin/_components/table/DataTableLevelFilter.tsx create mode 100644 apps/frontend/app/admin/_components/table/DataTableMultiSelectFilter.tsx create mode 100644 apps/frontend/app/admin/_components/table/DataTablePagination.tsx create mode 100644 apps/frontend/app/admin/_components/table/DataTableProblemFilter.tsx create mode 100644 apps/frontend/app/admin/_components/table/DataTableRoot.tsx create mode 100644 apps/frontend/app/admin/_components/table/DataTableSearchBar.tsx create mode 100644 apps/frontend/app/admin/_components/table/constants.ts create mode 100644 apps/frontend/app/admin/_components/table/context.ts diff --git a/apps/frontend/app/admin/_components/table/DataTable.tsx b/apps/frontend/app/admin/_components/table/DataTable.tsx new file mode 100644 index 0000000000..3f349c17c2 --- /dev/null +++ b/apps/frontend/app/admin/_components/table/DataTable.tsx @@ -0,0 +1,143 @@ +'use client' + +import { ScrollArea, ScrollBar } from '@/components/ui/scroll-area' +import { + TableBody, + TableCell, + TableFooter, + TableHead, + TableHeader, + TableRow, + Table +} from '@/components/ui/table' +import { + flexRender, + type Row, + type Table as TanstackTable +} from '@tanstack/react-table' +import type { Route } from 'next' +import { useRouter } from 'next/navigation' +import { useDataTable } from './context' + +interface DataTableProps { + headerStyle?: Record + showFooter?: boolean + /** + * 각 행의 데이터에 따라 href를 반환하는 함수 + * @param data + * row data + * @returns href for routing + */ + getHref?: (data: TData) => Route + /** + * 행 클릭 시 호출되는 함수 + * @param table + * table instance + * @param row + * row instance + */ + onRowClick?: (table: TanstackTable, row: Row) => void +} + +/** + * 어드민 테이블 컴포넌트 + * @param headerStyle + * header별 tailwind classname을 정의한 객체 + * @param showFooter + * footer 표시 여부 (기본값: false) + * @param getHref + * 각 행의 데이터에 따라 href를 반환하는 함수 + * @param onRowClick + * 행 클릭 시 호출되는 함수 + */ +export default function DataTable< + TData extends { id: number }, + TRoute extends string +>({ + headerStyle = {}, + showFooter = false, + getHref, + onRowClick +}: DataTableProps) { + const router = useRouter() + const { table } = useDataTable() + + return ( + + + + {table.getHeaderGroups().map((headerGroup) => ( + + {headerGroup.headers.map((header) => ( + + {header.isPlaceholder + ? null + : flexRender( + header.column.columnDef.header, + header.getContext() + )} + + ))} + + ))} + + + + {table.getRowModel().rows.length > 0 ? ( + table.getRowModel().rows.map((row) => ( + { + onRowClick?.(table, row) + + const href = getHref?.(row.original) + + if (href) { + router.push(href) + } + }} + > + {row.getVisibleCells().map((cell) => ( + + {flexRender(cell.column.columnDef.cell, cell.getContext())} + + ))} + + )) + ) : ( + + + No results. + + + )} + + + {showFooter && ( + + {table.getFooterGroups().map((footerGroup) => ( + + {footerGroup.headers.map((footer) => ( + + {footer.isPlaceholder + ? null + : flexRender( + footer.column.columnDef.footer, + footer.getContext() + )} + + ))} + + ))} + + )} +
+ +
+ ) +} diff --git a/apps/frontend/app/admin/_components/table/DataTableColumnHeader.tsx b/apps/frontend/app/admin/_components/table/DataTableColumnHeader.tsx new file mode 100644 index 0000000000..3075bb2633 --- /dev/null +++ b/apps/frontend/app/admin/_components/table/DataTableColumnHeader.tsx @@ -0,0 +1,78 @@ +import { Button } from '@/components/ui/button' +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuTrigger +} from '@/components/ui/dropdown-menu' +import { cn } from '@/lib/utils' +import { TriangleDownIcon, TriangleUpIcon } from '@radix-ui/react-icons' +import type { Column } from '@tanstack/react-table' + +const VISIBLE_COLUMN_TITLE = 'Visible' +interface DataTableColumnHeaderProps + extends Omit, 'title'> { + column: Column + title: typeof VISIBLE_COLUMN_TITLE | (string & NonNullable) +} + +/** + * 어드민 테이블의 컬럼 헤더 컴포넌트 + * @param column + * 컬럼 정보가 담긴 객체 + * @param title + * 헤더에 표시할 텍스트 + */ +export default function DataTableColumnHeader({ + column, + title, + className +}: DataTableColumnHeaderProps) { + // Title column + if (!column.getCanSort()) { + return ( +
+ {title} +
+ ) + } + + return ( +
+ + + + + + column.toggleSorting(false)}> + + {title === VISIBLE_COLUMN_TITLE ? 'Hidden first' : 'Asc'} + + column.toggleSorting(true)}> + + {title === VISIBLE_COLUMN_TITLE ? 'Visible first' : 'Desc'} + + + +
+ ) +} diff --git a/apps/frontend/app/admin/_components/table/DataTableDeleteButton.tsx b/apps/frontend/app/admin/_components/table/DataTableDeleteButton.tsx new file mode 100644 index 0000000000..03b249709a --- /dev/null +++ b/apps/frontend/app/admin/_components/table/DataTableDeleteButton.tsx @@ -0,0 +1,123 @@ +'use client' + +import { + AlertDialog, + AlertDialogAction, + AlertDialogCancel, + AlertDialogContent, + AlertDialogDescription, + AlertDialogFooter, + AlertDialogHeader, + AlertDialogTitle +} from '@/components/ui/alert-dialog' +import { Button } from '@/components/ui/button' +import { useState } from 'react' +import { PiTrashLight } from 'react-icons/pi' +import { toast } from 'sonner' +import { useDataTable } from './context' + +interface DataTableDeleteButtonProps { + target: 'problem' | 'contest' + deleteTarget: (id: number) => Promise + getCanDelete?: (selectedRows: TData[]) => Promise + onSuccess?: () => void + className?: string +} + +/** + * 어드민 테이블의 삭제 버튼 컴포넌트 + * @desctiption 선택된 행들을 삭제하는 기능 + * @param target + * 삭제 대상 (problem or contest) + * @param deleteTarget + * 아이디를 전달받아 삭제 요청하는 함수 + * @param getCanDelete + * 선택된 행들이 삭제 가능한지를 반환하는 함수 + * @param onSuccess + * 삭제 성공 시 호출되는 함수 + * @param className + * tailwind 클래스명 + */ +export default function DataTableDeleteButton< + TData extends { id: number }, + TPromise +>({ + target, + deleteTarget, + getCanDelete, + onSuccess, + className +}: DataTableDeleteButtonProps) { + const { table } = useDataTable() + + const [isDialogOpen, setIsDialogOpen] = useState(false) + + const handleDeleteButtonClick = async () => { + if (table.getSelectedRowModel().rows.length === 0) return + + if (!getCanDelete) { + setIsDialogOpen(true) + return + } + + const selectedRows = table + .getSelectedRowModel() + .rows.map((row) => row.original) + + const canDelete = await getCanDelete(selectedRows) + if (canDelete) { + setIsDialogOpen(true) + } + } + + const handleDeleteRows = async () => { + const selectedRows = table.getSelectedRowModel().rows + const deletePromises = selectedRows.map((row) => + deleteTarget(row.original.id) + ) + + try { + await Promise.all(deletePromises) + table.resetRowSelection() + table.resetPageIndex() + onSuccess?.() + } catch { + toast.error(`Failed to delete ${target}`) + } + } + + return ( + <> + + + + + Delete + + Are you sure you want to permanently delete{' '} + {table.getSelectedRowModel().rows.length} {target}(s)? + + + + Cancel + + + + + + + + ) +} diff --git a/apps/frontend/app/admin/_components/table/DataTableFallback.tsx b/apps/frontend/app/admin/_components/table/DataTableFallback.tsx new file mode 100644 index 0000000000..a9819687b2 --- /dev/null +++ b/apps/frontend/app/admin/_components/table/DataTableFallback.tsx @@ -0,0 +1,104 @@ +'use client' + +import { ScrollArea, ScrollBar } from '@/components/ui/scroll-area' +import { Skeleton } from '@/components/ui/skeleton' +import { + Table, + TableHeader, + TableRow, + TableHead, + TableBody, + TableCell +} from '@/components/ui/table' +import { + flexRender, + getCoreRowModel, + useReactTable, + type ColumnDef +} from '@tanstack/react-table' +import { DEFAULT_COLUMN_VISIBILITY } from './constants' + +interface DataTableFallbackProps { + withSearchBar?: boolean + columns: ColumnDef[] + headerStyle?: Record + rowCount?: number +} + +/** + * 어드민 테이블의 loading UI 컴포넌트 + * @param withSearchBar + * 검색창 스켈레톤 포함 여부 + * @param columns + * header, cell, footer가 정의된 컬럼 목록 + * @param headerStyle + * header별 tailwind classname을 정의한 객체 + * @param rowCount + * 스켈레톤을 보여줄 행 개수 (기본값: 10) + */ +export default function DataTableFallback({ + withSearchBar = true, + ...props +}: DataTableFallbackProps) { + return ( + <> + {withSearchBar && } + + + ) +} + +export function TableFallback({ + columns, + headerStyle = {}, + rowCount = 10 +}: Omit, 'withSearchBar'>) { + const table = useReactTable({ + data: [], + columns, + initialState: { + columnVisibility: DEFAULT_COLUMN_VISIBILITY + }, + getCoreRowModel: getCoreRowModel() + }) + + return ( + + + + {table.getHeaderGroups().map((headerGroup) => ( + + {headerGroup.headers.map((header) => ( + + {header.isPlaceholder + ? null + : flexRender( + header.column.columnDef.header, + header.getContext() + )} + + ))} + + ))} + + + {Array(rowCount) + .fill('') + .map((_, index) => ( + + {table.getAllColumns().map( + (column) => + column.getIsVisible() && ( + + + + ) + )} + + ))} + +
+ +
+ ) +} diff --git a/apps/frontend/app/admin/_components/table/DataTableLangFilter.tsx b/apps/frontend/app/admin/_components/table/DataTableLangFilter.tsx new file mode 100644 index 0000000000..d2f25aee8d --- /dev/null +++ b/apps/frontend/app/admin/_components/table/DataTableLangFilter.tsx @@ -0,0 +1,22 @@ +'use client' + +import { languages } from '@/lib/constants' +import DataTableMultiSelectFilter from './DataTableMultiSelectFilter' +import { LANG_COLUMN_ID } from './constants' +import { useDataTable } from './context' + +/** + * 어드민 테이블의 Languages 필터 컴포넌트 + * @desciption 컬럼 아이디가 "languages" 여야 합니다. + */ +export default function DataTableLangFilter() { + const { table } = useDataTable() + + return ( + ({ value: item, label: item }))} + /> + ) +} diff --git a/apps/frontend/app/admin/_components/table/DataTableLevelFilter.tsx b/apps/frontend/app/admin/_components/table/DataTableLevelFilter.tsx new file mode 100644 index 0000000000..ea861ff9d1 --- /dev/null +++ b/apps/frontend/app/admin/_components/table/DataTableLevelFilter.tsx @@ -0,0 +1,25 @@ +'use client' + +import { levels } from '@/lib/constants' +import DataTableMultiSelectFilter from './DataTableMultiSelectFilter' +import { LEVEL_COLUMN_ID } from './constants' +import { useDataTable } from './context' + +/** + * 어드민 테이블의 Difficulty(Level) 필터 + * @desciption 컬럼 아이디가 "difficulty" 여야 합니다. + */ +export default function DataTableLevelFilter() { + const { table } = useDataTable() + + return ( + ({ + value: item, + label: `Level ${item.slice(-1)}` + }))} + /> + ) +} diff --git a/apps/frontend/app/admin/_components/table/DataTableMultiSelectFilter.tsx b/apps/frontend/app/admin/_components/table/DataTableMultiSelectFilter.tsx new file mode 100644 index 0000000000..a36f47e7ab --- /dev/null +++ b/apps/frontend/app/admin/_components/table/DataTableMultiSelectFilter.tsx @@ -0,0 +1,130 @@ +import { Badge } from '@/components/ui/badge' +import { Button } from '@/components/ui/button' +import { Checkbox } from '@/components/ui/checkbox' +import { + Command, + CommandEmpty, + CommandGroup, + CommandItem, + CommandList +} from '@/components/ui/command' +import { + Popover, + PopoverContent, + PopoverTrigger +} from '@/components/ui/popover' +import { Separator } from '@/components/ui/separator' +import type { Column } from '@tanstack/react-table' +import type { ReactNode } from 'react' +import { IoFilter } from 'react-icons/io5' + +interface DataTableMultiSelectFilterProps { + column?: Column + title?: string + options: { + value: string + label: ReactNode + }[] + emptyMessage?: string +} + +/** + * 어드민 테이블의 다중 선택 필터 컴포넌트 + * @param column + * 컬럼 정보가 담긴 객체 + * @param title + * 드롭다운 트리거 버튼에 표시될 텍스트 + * @param options + * 값과 라벨을 포함한 옵션 목록 + * @param emptyMessage + * 옵션이 없을 경우 보여줄 텍스트 + */ +export default function DataTableMultiSelectFilter({ + column, + title, + options, + emptyMessage +}: DataTableMultiSelectFilterProps) { + const selectedValues = getSelectedValues(column?.getFilterValue()) + + return ( + + + + + + + + + {emptyMessage && {emptyMessage}} + + {options.map(({ value, label }) => ( + { + if (selectedValues.has(value)) { + selectedValues.delete(value) + } else { + selectedValues.add(value) + } + const filterValues = Array.from(selectedValues) + column?.setFilterValue( + filterValues.length ? filterValues : undefined + ) + }} + > + + {label} + + ))} + + + + + + ) +} + +const getSelectedValues = (data: unknown): Set => { + if (!Array.isArray(data)) return new Set() + if (data.every((item) => typeof item === 'string')) return new Set(data) + return new Set() +} diff --git a/apps/frontend/app/admin/_components/table/DataTablePagination.tsx b/apps/frontend/app/admin/_components/table/DataTablePagination.tsx new file mode 100644 index 0000000000..97f5d26874 --- /dev/null +++ b/apps/frontend/app/admin/_components/table/DataTablePagination.tsx @@ -0,0 +1,120 @@ +'use client' + +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue +} from '@/components/ui/select' +import { cn } from '@/lib/utils' +import { ChevronLeftIcon, ChevronRightIcon } from '@radix-ui/react-icons' +import { useDataTable } from './context' + +interface DataTablePaginationProps { + showSelection?: boolean + showRowsPerPage?: boolean +} + +function getPageArray(start: number, end: number) { + return Array(end - start + 1) + .fill(0) + .map((_, i) => start + i) +} + +/** + * 어드민 테이블의 페이지네이션 컴포넌트 + * @param showSelection + * 몇개의 row가 선택되었는지 보여주는 텍스트 표시 여부 (기본값: false) + * @param showRowsPerPage + * 페이지당 보여줄 행을 선택하는 셀렉트 박스 표시 여부 (기본값: true) + */ +export default function DataTablePagination({ + showSelection = false, + showRowsPerPage = true +}: DataTablePaginationProps) { + const { table } = useDataTable() + + const pages = getPageArray( + Math.floor(table.getState().pagination.pageIndex / 10) * 10 + 1, + Math.min( + Math.ceil( + table.getFilteredRowModel().rows.length / + table.getState().pagination.pageSize + ), + Math.floor(table.getState().pagination.pageIndex / 10) * 10 + 10 + ) + ) + + return ( +
+
+ {showSelection && + `${table.getFilteredSelectedRowModel().rows.length} of${' '} + ${table.getFilteredRowModel().rows.length} row(s) selected`} +
+
+ + {pages.map((pageNumber) => ( + + ))} + +
+
+ {showRowsPerPage && ( +
+

Rows per page

+ +
+ )} +
+
+ ) +} diff --git a/apps/frontend/app/admin/_components/table/DataTableProblemFilter.tsx b/apps/frontend/app/admin/_components/table/DataTableProblemFilter.tsx new file mode 100644 index 0000000000..b04b2075c8 --- /dev/null +++ b/apps/frontend/app/admin/_components/table/DataTableProblemFilter.tsx @@ -0,0 +1,111 @@ +'use client' + +import { Button } from '@/components/ui/button' +import { + Command, + CommandGroup, + CommandItem, + CommandList +} from '@/components/ui/command' +import { + Popover, + PopoverContent, + PopoverTrigger +} from '@/components/ui/popover' +import { GET_CONTEST_PROBLEMS } from '@/graphql/problem/queries' +import { cn } from '@/lib/utils' +import { useQuery } from '@apollo/client' +import { useEffect, useState } from 'react' +import { FaCheck, FaChevronDown } from 'react-icons/fa' +import { PROBLEM_COLUMN_ID } from './constants' +import { useDataTable } from './context' + +const ALL_OPTION_LABEL = 'All Problems' + +/** + * 어드민 테이블의 문제 필터 + * @description 컬럼 아이디가 "problemTitle" 여야 합니다. + * @param contestId + * 문제를 가져올 대회의 아이디 + */ +export default function DataTableProblemFilter({ + contestId +}: { + contestId: number +}) { + const { table } = useDataTable() + const column = table.getColumn(PROBLEM_COLUMN_ID) + const selectedValue = getSelectedValue(column?.getFilterValue()) + + const [open, setOpen] = useState(false) + const [options, setOptions] = useState< + { value: string | null; label: string }[] + >([]) + + const { data } = useQuery(GET_CONTEST_PROBLEMS, { + variables: { groupId: 1, contestId } + }) + + useEffect(() => { + const sortedProblems = + data?.getContestProblems.slice().sort((a, b) => a.order - b.order) ?? [] + setOptions([ + { value: null, label: ALL_OPTION_LABEL }, + ...sortedProblems.map((problem) => ({ + value: problem.problem.title, + label: `${String.fromCharCode(65 + problem.order)}. ${problem.problem.title}` + })) + ]) + }, [data]) + + return ( + + + + + + + + + + {options.map(({ value, label }) => ( + { + column?.setFilterValue(value) + setOpen(false) + }} + > +

+ {label} +

+ +
+ ))} +
+
+
+
+
+ ) +} + +const getSelectedValue = (data: unknown): string | null => { + if (typeof data !== 'string') return null + return data +} diff --git a/apps/frontend/app/admin/_components/table/DataTableRoot.tsx b/apps/frontend/app/admin/_components/table/DataTableRoot.tsx new file mode 100644 index 0000000000..3c2b07a93f --- /dev/null +++ b/apps/frontend/app/admin/_components/table/DataTableRoot.tsx @@ -0,0 +1,84 @@ +'use client' + +import { + getCoreRowModel, + getFacetedRowModel, + getFacetedUniqueValues, + getFilteredRowModel, + getPaginationRowModel, + getSortedRowModel, + useReactTable, + type ColumnDef +} from '@tanstack/react-table' +import type { ReactNode } from 'react' +import { DEFAULT_COLUMN_VISIBILITY } from './constants' +import { Provider } from './context' + +interface DataTableRootProps { + columns: ColumnDef[] + data: TData[] + defaultSortState?: { id: string; desc: boolean }[] + defaultPageSize?: number + selectedRowIds?: number[] + children: ReactNode +} + +/** + * 어드민 테이블 최상위 컴포넌트 + * @description Table instance를 생성하고 Context를 이용해 하위 컴포넌트에게 table instance를 제공합니다. + * @param columns + * header, cell, footer가 정의된 컬럼 목록 + * @param data + * 테이블에서 보여줄 데이터 + * @param defaultPageSize + * 한 페이지 당 보여줄 행 개수 (기본값: 10) + * @param defaultSortState + * 기본 정렬 상태 + * @param selectedRowIds + * 선택된 행들의 아이디 목록 + */ +export default function DataTableRoot({ + data, + columns, + defaultPageSize = 10, + defaultSortState = [], + selectedRowIds = [], + children +}: DataTableRootProps) { + const defaultRowSelection = Object.fromEntries( + selectedRowIds.map((id) => [String(id), true]) + ) + + const table = useReactTable({ + data, + columns, + defaultColumn: { + minSize: 0, + size: Number.MAX_SAFE_INTEGER, + maxSize: Number.MAX_SAFE_INTEGER + }, + initialState: { + sorting: defaultSortState, + pagination: { + pageSize: defaultPageSize + }, + rowSelection: defaultRowSelection, + columnVisibility: DEFAULT_COLUMN_VISIBILITY + }, + autoResetPageIndex: false, + enableRowSelection: true, + getRowId: (row) => String(row.id), + getCoreRowModel: getCoreRowModel(), + getFilteredRowModel: getFilteredRowModel(), + getPaginationRowModel: getPaginationRowModel(), + getSortedRowModel: getSortedRowModel(), + getFacetedRowModel: getFacetedRowModel(), + getFacetedUniqueValues: getFacetedUniqueValues() + }) + + return ( + +
{children}
+
+ ) +} diff --git a/apps/frontend/app/admin/_components/table/DataTableSearchBar.tsx b/apps/frontend/app/admin/_components/table/DataTableSearchBar.tsx new file mode 100644 index 0000000000..1a7c865038 --- /dev/null +++ b/apps/frontend/app/admin/_components/table/DataTableSearchBar.tsx @@ -0,0 +1,47 @@ +'use client' + +import { Input, type InputProps } from '@/components/ui/input' +import { cn } from '@/lib/utils' +import { IoSearch } from 'react-icons/io5' +import { useDataTable } from './context' + +interface SearchBarProps extends InputProps { + columndId: string +} + +/** + * 어드민 테이블의 검색창 컴포넌트 + * @description 기본 Input 컴포넌트의 props을 상속받습니다. + * @param columnId + * 검색 필터를 적용할 컬럼 아이디 + */ +export default function DataTableSearchBar({ + placeholder, + className, + columndId, + ...props +}: SearchBarProps) { + const { table } = useDataTable() + + const filterValue = table.getColumn(columndId)?.getFilterValue() + const onChangeValue = (value: string) => { + table.getColumn(columndId)?.setFilterValue(value) + table.setPageIndex(0) + } + + return ( +
+ + onChangeValue(e.currentTarget.value)} + className={cn( + 'h-10 w-[150px] bg-transparent pl-8 lg:w-[250px]', + className + )} + {...props} + /> +
+ ) +} diff --git a/apps/frontend/app/admin/_components/table/constants.ts b/apps/frontend/app/admin/_components/table/constants.ts new file mode 100644 index 0000000000..1040682f36 --- /dev/null +++ b/apps/frontend/app/admin/_components/table/constants.ts @@ -0,0 +1,6 @@ +export const LANG_COLUMN_ID = 'languages' +export const LEVEL_COLUMN_ID = 'difficulty' +export const PROBLEM_COLUMN_ID = 'problemTitle' +export const DEFAULT_COLUMN_VISIBILITY = { + [LANG_COLUMN_ID]: false +} diff --git a/apps/frontend/app/admin/_components/table/context.ts b/apps/frontend/app/admin/_components/table/context.ts new file mode 100644 index 0000000000..b4430e8946 --- /dev/null +++ b/apps/frontend/app/admin/_components/table/context.ts @@ -0,0 +1,27 @@ +import type { Table } from '@tanstack/react-table' +import { createContext, useContext } from 'react' + +interface Context { + table: Table +} + +/** + * Table instance를 관리하는 React Context입니다. + */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +const Context = createContext | undefined>(undefined) +export const Provider = Context.Provider + +/** + * Table instance가 담긴 객체를 반환하는 hook입니다. + * @throws DataTableRoot의 하위 컴포넌트 내에서 사용하지 않는다면 에러를 던집니다. + */ +export const useDataTable = () => { + const context = useContext | undefined>(Context) + + if (context === undefined) { + throw new Error('useDataTable should be used within the DataTableRoot') + } + + return context +} From 20453e9cc9beffb143e47dc3586af99941810d92 Mon Sep 17 00:00:00 2001 From: Kohminchae <72334086+Kohminchae@users.noreply.github.com> Date: Thu, 10 Oct 2024 22:17:47 +0900 Subject: [PATCH 016/113] fix(fe): change language's storekey to include problemId and contestId (#2151) --- apps/frontend/components/EditorHeader.tsx | 2 +- .../components/EditorResizablePanel.tsx | 10 ++++++-- apps/frontend/stores/editor.ts | 25 +++++++++++-------- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/apps/frontend/components/EditorHeader.tsx b/apps/frontend/components/EditorHeader.tsx index f0f0e24444..8b886a8b29 100644 --- a/apps/frontend/components/EditorHeader.tsx +++ b/apps/frontend/components/EditorHeader.tsx @@ -62,7 +62,7 @@ export default function Editor({ contestId, templateString }: ProblemEditorProps) { - const { language, setLanguage } = useLanguageStore() + const { language, setLanguage } = useLanguageStore(problem.id, contestId)() const { code, setCode } = createCodeStore((state) => state) const testResultStore = useContext(TestResultsContext) if (!testResultStore) throw new Error('TestResultsContext is not provided') diff --git a/apps/frontend/components/EditorResizablePanel.tsx b/apps/frontend/components/EditorResizablePanel.tsx index 666d509a00..d144a5806f 100644 --- a/apps/frontend/components/EditorResizablePanel.tsx +++ b/apps/frontend/components/EditorResizablePanel.tsx @@ -38,7 +38,7 @@ export default function EditorMainResizablePanel({ }: ProblemEditorProps) { const pathname = usePathname() const base = contestId ? `/contest/${contestId}` : '' - const { language, setLanguage } = useLanguageStore() + const { language, setLanguage } = useLanguageStore(problem.id, contestId)() const testResultStore = useContext(TestResultsContext) if (!testResultStore) throw new Error('TestResultsContext is not provided') const { testResults } = useStore(testResultStore) @@ -123,6 +123,8 @@ export default function EditorMainResizablePanel({ > @@ -148,13 +150,17 @@ export default function EditorMainResizablePanel({ } interface CodeEditorInEditorResizablePanelProps { + problemId: number + contestId?: number enableCopyPaste: boolean } function CodeEditorInEditorResizablePanel({ + problemId, + contestId, enableCopyPaste }: CodeEditorInEditorResizablePanelProps) { - const { language } = useLanguageStore() + const { language } = useLanguageStore(problemId, contestId)() const { code, setCode } = createCodeStore() return ( diff --git a/apps/frontend/stores/editor.ts b/apps/frontend/stores/editor.ts index b2b6ed692a..e09035dc44 100644 --- a/apps/frontend/stores/editor.ts +++ b/apps/frontend/stores/editor.ts @@ -8,19 +8,22 @@ interface LanguageStore { setLanguage: (language: Language) => void } -export const useLanguageStore = create( - persist( - (set) => ({ - language: 'C', - setLanguage: (language) => { - set({ language }) +export const useLanguageStore = (problemId: number, contestId?: number) => { + const languageKey = `${problemId}${contestId ? `_${contestId}` : ''}_language` + return create( + persist( + (set) => ({ + language: 'C', + setLanguage: (language) => { + set({ language }) + } + }), + { + name: languageKey } - }), - { - name: 'language' - } + ) ) -) +} interface CodeState { code: string setCode: (code: string) => void From c41a4059eebde43718789edc1fc3790ec8386081 Mon Sep 17 00:00:00 2001 From: Eunbi Kang Date: Thu, 10 Oct 2024 22:42:24 +0900 Subject: [PATCH 017/113] fix(fe): restore the score of the problems when the new problems are imported (#2150) --- .../app/admin/contest/_components/ImportProblemTable.tsx | 6 +++++- .../admin/contest/_components/ImportProblemTableColumns.tsx | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/frontend/app/admin/contest/_components/ImportProblemTable.tsx b/apps/frontend/app/admin/contest/_components/ImportProblemTable.tsx index 342916e24b..001085d0b1 100644 --- a/apps/frontend/app/admin/contest/_components/ImportProblemTable.tsx +++ b/apps/frontend/app/admin/contest/_components/ImportProblemTable.tsx @@ -9,6 +9,7 @@ interface ContestProblem { id: number title: string difficulty: string + score: number } interface OrderContestProblem { @@ -56,8 +57,11 @@ export default function ImportProblemTable({ ...tag, id: +tag.id } - })) + })), + score: checkedProblems.find((item) => item.id === Number(problem.id)) + ?.score })) ?? [] + return ( <> {loading ? ( diff --git a/apps/frontend/app/admin/contest/_components/ImportProblemTableColumns.tsx b/apps/frontend/app/admin/contest/_components/ImportProblemTableColumns.tsx index cb90ef280f..5364d595fb 100644 --- a/apps/frontend/app/admin/contest/_components/ImportProblemTableColumns.tsx +++ b/apps/frontend/app/admin/contest/_components/ImportProblemTableColumns.tsx @@ -13,6 +13,7 @@ interface DataTableProblem { submissionCount: number acceptedRate: number languages: string[] + score?: number } export const columns: ColumnDef[] = [ From 81c53fe57aee824e25d003eb242a82903fe78759 Mon Sep 17 00:00:00 2001 From: Eunbi Kang Date: Fri, 11 Oct 2024 14:33:27 +0900 Subject: [PATCH 018/113] fix(fe): not show add/delete buttons when testcase cannot be edited (#2152) --- .../admin/problem/_components/ExampleTextarea.tsx | 13 +++++++++---- .../app/admin/problem/_components/TestcaseField.tsx | 10 +++++++--- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/apps/frontend/app/admin/problem/_components/ExampleTextarea.tsx b/apps/frontend/app/admin/problem/_components/ExampleTextarea.tsx index ad8ce4c0a6..fe5a6ffee6 100644 --- a/apps/frontend/app/admin/problem/_components/ExampleTextarea.tsx +++ b/apps/frontend/app/admin/problem/_components/ExampleTextarea.tsx @@ -27,10 +27,15 @@ export default function ExampleTextarea({ className )} > - onRemove()} - /> + {!blockEdit && ( + + )}