diff --git a/server/package.json b/server/package.json index b5679d1b85..233e479e46 100644 --- a/server/package.json +++ b/server/package.json @@ -19,7 +19,8 @@ "test:cov": "jest --coverage", "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", "test:e2e": "jest --config ./test/jest-e2e.json", - "prisma:generate-client": "npx prisma generate --generator client", + "prisma:generate-client": "npx prisma generate --generator client && yarn prisma:generate-gql-select", + "prisma:generate-gql-select": "node scripts/generate-model-select-map.js", "prisma:generate-nest-graphql": "npx prisma generate --generator nestgraphql && eslint \"src/core/@generated/**\" --fix", "prisma:migrate": "npx prisma migrate deploy", "prisma:seed": "npx prisma db seed", @@ -39,6 +40,7 @@ "@nestjs/platform-express": "^9.0.0", "@nestjs/serve-static": "^3.0.0", "@nestjs/terminus": "^9.2.2", + "@paljs/plugins": "^5.3.3", "@prisma/client": "^4.13.0", "apollo-server-express": "^3.12.0", "bcrypt": "^5.1.0", diff --git a/server/scripts/generate-model-select-map.js b/server/scripts/generate-model-select-map.js new file mode 100644 index 0000000000..48135d2f07 --- /dev/null +++ b/server/scripts/generate-model-select-map.js @@ -0,0 +1,32 @@ +/* eslint-disable @typescript-eslint/no-var-requires */ +const fs = require('fs'); +const path = require('path'); +const { getDMMF, getSchemaPath } = require('@prisma/internals'); + +async function generateTypes() { + const schemaPath = await getSchemaPath(); + const dmmf = await getDMMF({ + datamodel: fs.readFileSync(schemaPath, 'utf-8'), + }); + + let content = + '// THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.\n'; + content += "import { Prisma } from '@prisma/client';\n\n"; + content += 'export type ModelSelectMap = {\n'; + + for (const model of dmmf.datamodel.models) { + content += ` ${model.name}: Prisma.${model.name}Select;\n`; + } + + content += '};\n'; + + fs.writeFileSync( + path.join(__dirname, '../src/utils/prisma-select/model-select-map.ts'), + content, + ); +} + +generateTypes().catch((e) => { + console.error(e); + process.exit(1); +}); diff --git a/server/src/ability/ability.factory.ts b/server/src/ability/ability.factory.ts index 8533330cb0..07bd9fccf8 100644 --- a/server/src/ability/ability.factory.ts +++ b/server/src/ability/ability.factory.ts @@ -1,4 +1,4 @@ -import { PureAbility, AbilityBuilder, subject } from '@casl/ability'; +import { PureAbility, AbilityBuilder } from '@casl/ability'; import { createPrismaAbility, PrismaQuery, Subjects } from '@casl/prisma'; import { Injectable } from '@nestjs/common'; import { diff --git a/server/src/core/comment/comment.module.ts b/server/src/core/comment/comment.module.ts index 8234d7e769..c685e53e1b 100644 --- a/server/src/core/comment/comment.module.ts +++ b/server/src/core/comment/comment.module.ts @@ -1,10 +1,8 @@ import { Module } from '@nestjs/common'; import { CommentService } from './services/comment.service'; import { CommentResolver } from './resolvers/comment.resolver'; -import { CommentRelationsResolver } from './resolvers/comment-relations.resolver'; import { CommentThreadTargetService } from './services/comment-thread-target.service'; import { CommentThreadResolver } from './resolvers/comment-thread.resolver'; -import { CommentThreadRelationsResolver } from './resolvers/comment-thread-relations.resolver'; import { CommentThreadService } from './services/comment-thread.service'; @Module({ @@ -13,9 +11,7 @@ import { CommentThreadService } from './services/comment-thread.service'; CommentThreadService, CommentThreadTargetService, CommentResolver, - CommentRelationsResolver, CommentThreadResolver, - CommentThreadRelationsResolver, ], exports: [CommentService, CommentThreadService, CommentThreadTargetService], }) diff --git a/server/src/core/comment/resolvers/comment-relations.resolver.spec.ts b/server/src/core/comment/resolvers/comment-relations.resolver.spec.ts deleted file mode 100644 index 5bae4434f3..0000000000 --- a/server/src/core/comment/resolvers/comment-relations.resolver.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Test, TestingModule } from '@nestjs/testing'; -import { CommentRelationsResolver } from './comment-relations.resolver'; -import { CommentService } from '../services/comment.service'; - -describe('CommentRelationsResolver', () => { - let resolver: CommentRelationsResolver; - - beforeEach(async () => { - const module: TestingModule = await Test.createTestingModule({ - providers: [ - CommentRelationsResolver, - { - provide: CommentService, - useValue: {}, - }, - ], - }).compile(); - - resolver = module.get(CommentRelationsResolver); - }); - - it('should be defined', () => { - expect(resolver).toBeDefined(); - }); -}); diff --git a/server/src/core/comment/resolvers/comment-relations.resolver.ts b/server/src/core/comment/resolvers/comment-relations.resolver.ts deleted file mode 100644 index 47ee810247..0000000000 --- a/server/src/core/comment/resolvers/comment-relations.resolver.ts +++ /dev/null @@ -1,22 +0,0 @@ -import * as TypeGraphQL from '@nestjs/graphql'; -import { User } from 'src/core/@generated/user/user.model'; -import { Comment } from 'src/core/@generated/comment/comment.model'; -import { CommentService } from '../services/comment.service'; - -@TypeGraphQL.Resolver(() => Comment) -export class CommentRelationsResolver { - constructor(private readonly commentService: CommentService) {} - - @TypeGraphQL.ResolveField(() => User, { - nullable: true, - }) - async author(@TypeGraphQL.Parent() comment: Comment): Promise { - return await this.commentService - .findFirst({ - where: { - id: comment.id, - }, - }) - .author({}); - } -} diff --git a/server/src/core/comment/resolvers/comment-thread-relations.resolver.spec.ts b/server/src/core/comment/resolvers/comment-thread-relations.resolver.spec.ts deleted file mode 100644 index a265986e0b..0000000000 --- a/server/src/core/comment/resolvers/comment-thread-relations.resolver.spec.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Test, TestingModule } from '@nestjs/testing'; -import { CommentThreadRelationsResolver } from './comment-thread-relations.resolver'; -import { CommentService } from '../services/comment.service'; -import { CommentThreadTargetService } from '../services/comment-thread-target.service'; - -describe('CommentThreadRelationsResolver', () => { - let resolver: CommentThreadRelationsResolver; - - beforeEach(async () => { - const module: TestingModule = await Test.createTestingModule({ - providers: [ - CommentThreadRelationsResolver, - { - provide: CommentService, - useValue: {}, - }, - { - provide: CommentThreadTargetService, - useValue: {}, - }, - ], - }).compile(); - - resolver = module.get( - CommentThreadRelationsResolver, - ); - }); - - it('should be defined', () => { - expect(resolver).toBeDefined(); - }); -}); diff --git a/server/src/core/comment/resolvers/comment-thread-relations.resolver.ts b/server/src/core/comment/resolvers/comment-thread-relations.resolver.ts deleted file mode 100644 index 3cece89cbe..0000000000 --- a/server/src/core/comment/resolvers/comment-thread-relations.resolver.ts +++ /dev/null @@ -1,48 +0,0 @@ -import * as TypeGraphQL from '@nestjs/graphql'; -import { CommentThreadTarget } from 'src/core/@generated/comment-thread-target/comment-thread-target.model'; -import { CommentThread } from 'src/core/@generated/comment-thread/comment-thread.model'; -import { Comment } from 'src/core/@generated/comment/comment.model'; -import { CommentService } from '../services/comment.service'; -import { CommentThreadTargetService } from '../services/comment-thread-target.service'; - -@TypeGraphQL.Resolver(() => CommentThread) -export class CommentThreadRelationsResolver { - constructor( - private readonly commentService: CommentService, - private readonly commentThreadTargetService: CommentThreadTargetService, - ) {} - - @TypeGraphQL.ResolveField(() => [Comment], { - nullable: false, - }) - async comments( - @TypeGraphQL.Root() commentThread: CommentThread, - ): Promise { - return this.commentService.findMany({ - where: { - commentThreadId: commentThread.id, - }, - orderBy: { - // TODO: find a way to pass it in the query - createdAt: 'desc', - }, - }); - } - - @TypeGraphQL.ResolveField(() => [CommentThreadTarget], { - nullable: true, - }) - async commentThreadTargets( - @TypeGraphQL.Root() commentThread: CommentThread, - ): Promise { - return this.commentThreadTargetService.findMany({ - where: { - commentThreadId: commentThread.id, - }, - orderBy: { - // TODO: find a way to pass it in the query - createdAt: 'desc', - }, - }); - } -} diff --git a/server/src/core/comment/resolvers/comment-thread.resolver.ts b/server/src/core/comment/resolvers/comment-thread.resolver.ts index 4abe4649bf..e204f78ca9 100644 --- a/server/src/core/comment/resolvers/comment-thread.resolver.ts +++ b/server/src/core/comment/resolvers/comment-thread.resolver.ts @@ -11,6 +11,10 @@ import { CommentThreadService } from '../services/comment-thread.service'; import { prepareFindManyArgs } from 'src/utils/prepare-find-many'; import { UpdateOneCommentThreadArgs } from 'src/core/@generated/comment-thread/update-one-comment-thread.args'; import { Prisma } from '@prisma/client'; +import { + PrismaSelector, + PrismaSelect, +} from 'src/decorators/prisma-select.decorator'; @UseGuards(JwtAuthGuard) @Resolver(() => CommentThread) @@ -24,7 +28,9 @@ export class CommentThreadResolver { async createOneCommentThread( @Args() args: CreateOneCommentThreadArgs, @AuthWorkspace() workspace: Workspace, - ): Promise { + @PrismaSelector({ modelName: 'CommentThread' }) + prismaSelect: PrismaSelect<'CommentThread'>, + ): Promise> { const newCommentData = args.data.comments?.createMany?.data ? args.data.comments?.createMany?.data?.map((comment) => ({ ...comment, @@ -38,6 +44,7 @@ export class CommentThreadResolver { ...{ comments: { createMany: { data: newCommentData } } }, ...{ workspace: { connect: { id: workspace.id } } }, }, + select: prismaSelect.value, }); return createdCommentThread; @@ -48,10 +55,13 @@ export class CommentThreadResolver { }) async updateOneCommentThread( @Args() args: UpdateOneCommentThreadArgs, - ): Promise { - const updatedCommentThread = await this.commentThreadService.update( - args satisfies UpdateOneCommentThreadArgs as Prisma.CommentThreadUpdateArgs, - ); + @PrismaSelector({ modelName: 'CommentThread' }) + prismaSelect: PrismaSelect<'CommentThread'>, + ): Promise> { + const updatedCommentThread = await this.commentThreadService.update({ + ...args, + select: prismaSelect.value, + } as Prisma.CommentThreadUpdateArgs); return updatedCommentThread; } @@ -60,13 +70,18 @@ export class CommentThreadResolver { async findManyCommentThreads( @Args() args: FindManyCommentThreadArgs, @AuthWorkspace() workspace: Workspace, - ) { + @PrismaSelector({ modelName: 'CommentThread' }) + prismaSelect: PrismaSelect<'CommentThread'>, + ): Promise[]> { const preparedArgs = prepareFindManyArgs( args, workspace, ); - const result = await this.commentThreadService.findMany(preparedArgs); + const result = await this.commentThreadService.findMany({ + ...preparedArgs, + select: prismaSelect.value, + }); return result; } diff --git a/server/src/core/comment/resolvers/comment.resolver.ts b/server/src/core/comment/resolvers/comment.resolver.ts index 39a563278b..15c033589b 100644 --- a/server/src/core/comment/resolvers/comment.resolver.ts +++ b/server/src/core/comment/resolvers/comment.resolver.ts @@ -8,6 +8,10 @@ import { Comment } from '../../../core/@generated/comment/comment.model'; import { CreateOneCommentGuard } from '../../../guards/create-one-comment.guard'; import { Prisma } from '@prisma/client'; import { CommentService } from '../services/comment.service'; +import { + PrismaSelector, + PrismaSelect, +} from 'src/decorators/prisma-select.decorator'; @UseGuards(JwtAuthGuard) @Resolver(() => Comment) @@ -21,12 +25,15 @@ export class CommentResolver { async createOneComment( @Args() args: CreateOneCommentArgs, @AuthWorkspace() workspace: Workspace, - ): Promise { + @PrismaSelector({ modelName: 'Comment' }) + prismaSelect: PrismaSelect<'Comment'>, + ): Promise> { return this.commentService.create({ data: { ...args.data, ...{ workspace: { connect: { id: workspace.id } } }, }, - } satisfies CreateOneCommentArgs as Prisma.CommentCreateArgs); + select: prismaSelect.value, + } as Prisma.CommentCreateArgs); } } diff --git a/server/src/core/company/company-relations.resolver.ts b/server/src/core/company/company-relations.resolver.ts index 9956802446..dd237a51c5 100644 --- a/server/src/core/company/company-relations.resolver.ts +++ b/server/src/core/company/company-relations.resolver.ts @@ -2,40 +2,28 @@ import * as TypeGraphQL from '@nestjs/graphql'; import { CommentThread } from 'src/core/@generated/comment-thread/comment-thread.model'; import { Comment } from 'src/core/@generated/comment/comment.model'; import { Company } from 'src/core/@generated/company/company.model'; -import { User } from 'src/core/@generated/user/user.model'; -import { CompanyService } from './company.service'; import { CommentThreadService } from '../comment/services/comment-thread.service'; import { CommentService } from '../comment/services/comment.service'; +import { + PrismaSelect, + PrismaSelector, +} from 'src/decorators/prisma-select.decorator'; @TypeGraphQL.Resolver(() => Company) export class CompanyRelationsResolver { constructor( - private readonly companyService: CompanyService, private readonly commentThreadService: CommentThreadService, private readonly commentService: CommentService, ) {} - @TypeGraphQL.ResolveField(() => User, { - nullable: true, - }) - async accountOwner( - @TypeGraphQL.Parent() company: Company, - ): Promise { - return this.companyService - .findUniqueOrThrow({ - where: { - id: company.id, - }, - }) - .accountOwner({}); - } - @TypeGraphQL.ResolveField(() => [CommentThread], { nullable: false, }) async commentThreads( @TypeGraphQL.Root() company: Company, - ): Promise { + @PrismaSelector({ modelName: 'CommentThread' }) + prismaSelect: PrismaSelect<'CommentThread'>, + ): Promise[]> { return this.commentThreadService.findMany({ where: { commentThreadTargets: { @@ -45,13 +33,18 @@ export class CompanyRelationsResolver { }, }, }, + select: prismaSelect.value, }); } @TypeGraphQL.ResolveField(() => [Comment], { nullable: false, }) - async comments(@TypeGraphQL.Root() company: Company): Promise { + async comments( + @TypeGraphQL.Root() company: Company, + @PrismaSelector({ modelName: 'Comment' }) + prismaSelect: PrismaSelect<'Comment'>, + ): Promise[]> { return this.commentService.findMany({ where: { commentThread: { @@ -63,6 +56,7 @@ export class CompanyRelationsResolver { }, }, }, + select: prismaSelect.value, }); } diff --git a/server/src/core/company/company.resolver.ts b/server/src/core/company/company.resolver.ts index 137a948d07..e622ad89d9 100644 --- a/server/src/core/company/company.resolver.ts +++ b/server/src/core/company/company.resolver.ts @@ -15,6 +15,10 @@ import { DeleteManyGuard } from '../../guards/delete-many.guard'; import { CreateOneGuard } from '../../guards/create-one.guard'; import { CompanyService } from './company.service'; import { prepareFindManyArgs } from 'src/utils/prepare-find-many'; +import { + PrismaSelect, + PrismaSelector, +} from 'src/decorators/prisma-select.decorator'; @UseGuards(JwtAuthGuard) @Resolver(() => Company) @@ -25,12 +29,17 @@ export class CompanyResolver { async findManyCompany( @Args() args: FindManyCompanyArgs, @AuthWorkspace() workspace: Workspace, - ) { + @PrismaSelector({ modelName: 'Company' }) + prismaSelect: PrismaSelect<'Company'>, + ): Promise[]> { const preparedArgs = prepareFindManyArgs( args, workspace, ); - return this.companyService.findMany(preparedArgs); + return this.companyService.findMany({ + ...preparedArgs, + select: prismaSelect.value, + }); } @UseGuards(UpdateOneGuard) @@ -39,14 +48,17 @@ export class CompanyResolver { }) async updateOneCompany( @Args() args: UpdateOneCompanyArgs, - ): Promise { + @PrismaSelector({ modelName: 'Company' }) + prismaSelect: PrismaSelect<'Company'>, + ): Promise | null> { if (!args.data.accountOwner?.connect?.id) { args.data.accountOwner = { disconnect: true }; } return this.companyService.update({ ...args, - } satisfies UpdateOneCompanyArgs as Prisma.CompanyUpdateArgs); + select: prismaSelect.value, + } as Prisma.CompanyUpdateArgs); } @UseGuards(DeleteManyGuard) @@ -68,12 +80,15 @@ export class CompanyResolver { async createOneCompany( @Args() args: CreateOneCompanyArgs, @AuthWorkspace() workspace: Workspace, - ): Promise { + @PrismaSelector({ modelName: 'Company' }) + prismaSelect: PrismaSelect<'Company'>, + ): Promise> { return this.companyService.create({ data: { ...args.data, ...{ workspace: { connect: { id: workspace.id } } }, }, - } satisfies CreateOneCompanyArgs as Prisma.CompanyCreateArgs); + select: prismaSelect.value, + } as Prisma.CompanyCreateArgs); } } diff --git a/server/src/core/person/person-relations.resolver.ts b/server/src/core/person/person-relations.resolver.ts index 533c2e494b..6c4d76e7cf 100644 --- a/server/src/core/person/person-relations.resolver.ts +++ b/server/src/core/person/person-relations.resolver.ts @@ -1,39 +1,29 @@ import * as TypeGraphQL from '@nestjs/graphql'; import { CommentThread } from 'src/core/@generated/comment-thread/comment-thread.model'; import { Comment } from 'src/core/@generated/comment/comment.model'; -import { Company } from 'src/core/@generated/company/company.model'; import { Person } from 'src/core/@generated/person/person.model'; -import { PersonService } from './person.service'; import { CommentThreadService } from '../comment/services/comment-thread.service'; import { CommentService } from '../comment/services/comment.service'; +import { + PrismaSelect, + PrismaSelector, +} from 'src/decorators/prisma-select.decorator'; @TypeGraphQL.Resolver(() => Person) export class PersonRelationsResolver { constructor( - private readonly personService: PersonService, private readonly commentThreadService: CommentThreadService, private readonly commentService: CommentService, ) {} - @TypeGraphQL.ResolveField(() => Company, { - nullable: true, - }) - async company(@TypeGraphQL.Parent() person: Person): Promise { - return await this.personService - .findUniqueOrThrow({ - where: { - id: person.id, - }, - }) - .company({}); - } - @TypeGraphQL.ResolveField(() => [CommentThread], { nullable: false, }) async commentThreads( @TypeGraphQL.Root() person: Person, - ): Promise { + @PrismaSelector({ modelName: 'CommentThread' }) + prismaSelect: PrismaSelect<'CommentThread'>, + ): Promise[]> { return await this.commentThreadService.findMany({ where: { commentThreadTargets: { @@ -43,13 +33,18 @@ export class PersonRelationsResolver { }, }, }, + select: prismaSelect.value, }); } @TypeGraphQL.ResolveField(() => [Comment], { nullable: false, }) - async comments(@TypeGraphQL.Root() person: Person): Promise { + async comments( + @TypeGraphQL.Root() person: Person, + @PrismaSelector({ modelName: 'Comment' }) + prismaSelect: PrismaSelect<'Comment'>, + ): Promise[]> { return this.commentService.findMany({ where: { commentThread: { @@ -61,6 +56,7 @@ export class PersonRelationsResolver { }, }, }, + select: prismaSelect.value, }); } diff --git a/server/src/core/person/person.resolver.ts b/server/src/core/person/person.resolver.ts index 004af11794..b83319d086 100644 --- a/server/src/core/person/person.resolver.ts +++ b/server/src/core/person/person.resolver.ts @@ -15,6 +15,10 @@ import { DeleteManyGuard } from '../../guards/delete-many.guard'; import { CreateOneGuard } from '../../guards/create-one.guard'; import { PersonService } from './person.service'; import { prepareFindManyArgs } from 'src/utils/prepare-find-many'; +import { + PrismaSelect, + PrismaSelector, +} from 'src/decorators/prisma-select.decorator'; @UseGuards(JwtAuthGuard) @Resolver(() => Person) @@ -27,13 +31,17 @@ export class PersonResolver { async findManyPerson( @Args() args: FindManyPersonArgs, @AuthWorkspace() workspace: Workspace, - ): Promise { + @PrismaSelector({ modelName: 'Person' }) + prismaSelect: PrismaSelect<'Person'>, + ): Promise[]> { const preparedArgs = prepareFindManyArgs( args, workspace, ); + return this.personService.findMany({ ...preparedArgs, + select: prismaSelect.value, }); } @@ -43,14 +51,17 @@ export class PersonResolver { }) async updateOnePerson( @Args() args: UpdateOnePersonArgs, - ): Promise { + @PrismaSelector({ modelName: 'Person' }) + prismaSelect: PrismaSelect<'Person'>, + ): Promise | null> { if (!args.data.company?.connect?.id) { args.data.company = { disconnect: true }; } return this.personService.update({ ...args, - } satisfies UpdateOnePersonArgs as Prisma.PersonUpdateArgs); + select: prismaSelect.value, + } as Prisma.PersonUpdateArgs); } @UseGuards(DeleteManyGuard) @@ -72,12 +83,15 @@ export class PersonResolver { async createOnePerson( @Args() args: CreateOnePersonArgs, @AuthWorkspace() workspace: Workspace, - ): Promise { + @PrismaSelector({ modelName: 'Person' }) + prismaSelect: PrismaSelect<'Person'>, + ): Promise> { return this.personService.create({ data: { ...args.data, ...{ workspace: { connect: { id: workspace.id } } }, }, - } satisfies CreateOnePersonArgs as Prisma.PersonCreateArgs); + select: prismaSelect.value, + } as Prisma.PersonCreateArgs); } } diff --git a/server/src/core/pipeline/pipeline.module.ts b/server/src/core/pipeline/pipeline.module.ts index 4d1d1047a2..57451ae642 100644 --- a/server/src/core/pipeline/pipeline.module.ts +++ b/server/src/core/pipeline/pipeline.module.ts @@ -1,11 +1,8 @@ import { Module } from '@nestjs/common'; import { PipelineService } from './services/pipeline.service'; import { PipelineResolver } from './resolvers/pipeline.resolver'; -import { PipelineRelationsResolver } from './resolvers/pipeline-relations.resolver'; import { PipelineStageResolver } from './resolvers/pipeline-stage.resolver'; -import { PipelineStageRelationsResolver } from './resolvers/pipeline-stage-relations.resolver'; import { PipelineProgressResolver } from './resolvers/pipeline-progress.resolver'; -import { PipelineProgressRelationsResolver } from './resolvers/pipeline-progress-relations.resolver'; import { PipelineStageService } from './services/pipeline-stage.service'; import { PipelineProgressService } from './services/pipeline-progress.service'; @@ -16,11 +13,8 @@ import { PipelineProgressService } from './services/pipeline-progress.service'; PipelineStageService, PipelineProgressService, PipelineResolver, - PipelineRelationsResolver, PipelineStageResolver, - PipelineStageRelationsResolver, PipelineProgressResolver, - PipelineProgressRelationsResolver, ], exports: [PipelineService, PipelineStageService, PipelineProgressService], }) diff --git a/server/src/core/pipeline/resolvers/pipeline-progress-relations.resolver.spec.ts b/server/src/core/pipeline/resolvers/pipeline-progress-relations.resolver.spec.ts deleted file mode 100644 index 59e6427235..0000000000 --- a/server/src/core/pipeline/resolvers/pipeline-progress-relations.resolver.spec.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Test, TestingModule } from '@nestjs/testing'; -import { PipelineProgressRelationsResolver } from './pipeline-progress-relations.resolver'; -import { PipelineStageService } from '../services/pipeline-stage.service'; -import { PipelineService } from '../services/pipeline.service'; - -describe('PipelineProgressRelationsResolver', () => { - let resolver: PipelineProgressRelationsResolver; - - beforeEach(async () => { - const module: TestingModule = await Test.createTestingModule({ - providers: [ - PipelineProgressRelationsResolver, - { - provide: PipelineStageService, - useValue: {}, - }, - { - provide: PipelineService, - useValue: {}, - }, - ], - }).compile(); - - resolver = module.get( - PipelineProgressRelationsResolver, - ); - }); - - it('should be defined', () => { - expect(resolver).toBeDefined(); - }); -}); diff --git a/server/src/core/pipeline/resolvers/pipeline-progress-relations.resolver.ts b/server/src/core/pipeline/resolvers/pipeline-progress-relations.resolver.ts deleted file mode 100644 index 5520927599..0000000000 --- a/server/src/core/pipeline/resolvers/pipeline-progress-relations.resolver.ts +++ /dev/null @@ -1,40 +0,0 @@ -import * as TypeGraphQL from '@nestjs/graphql'; -import { PipelineProgress } from 'src/core/@generated/pipeline-progress/pipeline-progress.model'; -import { PipelineStage } from 'src/core/@generated/pipeline-stage/pipeline-stage.model'; -import { Pipeline } from 'src/core/@generated/pipeline/pipeline.model'; -import { PipelineStageService } from '../services/pipeline-stage.service'; -import { PipelineService } from '../services/pipeline.service'; - -@TypeGraphQL.Resolver(() => PipelineProgress) -export class PipelineProgressRelationsResolver { - constructor( - private readonly pipelineStageService: PipelineStageService, - private readonly pipelineService: PipelineService, - ) {} - - @TypeGraphQL.ResolveField(() => PipelineStage, { - nullable: false, - }) - async pipelineStage( - @TypeGraphQL.Root() pipelineStage: PipelineProgress, - ): Promise { - return this.pipelineStageService.findUniqueOrThrow({ - where: { - id: pipelineStage.pipelineStageId, - }, - }); - } - - @TypeGraphQL.ResolveField(() => Pipeline, { - nullable: false, - }) - async pipeline( - @TypeGraphQL.Root() pipelineStage: PipelineProgress, - ): Promise { - return this.pipelineService.findUniqueOrThrow({ - where: { - id: pipelineStage.pipelineId, - }, - }); - } -} diff --git a/server/src/core/pipeline/resolvers/pipeline-progress.resolver.ts b/server/src/core/pipeline/resolvers/pipeline-progress.resolver.ts index 266811a68d..e5cb2d3cf4 100644 --- a/server/src/core/pipeline/resolvers/pipeline-progress.resolver.ts +++ b/server/src/core/pipeline/resolvers/pipeline-progress.resolver.ts @@ -22,6 +22,10 @@ import { } from 'src/ability/handlers/pipeline-progress.ability-handler'; import { UserAbility } from 'src/decorators/user-ability.decorator'; import { AppAbility } from 'src/ability/ability.factory'; +import { + PrismaSelector, + PrismaSelect, +} from 'src/decorators/prisma-select.decorator'; @UseGuards(JwtAuthGuard) @Resolver(() => PipelineProgress) @@ -36,13 +40,16 @@ export class PipelineProgressResolver { async findManyPipelineProgress( @Args() args: FindManyPipelineProgressArgs, @UserAbility() ability: AppAbility, - ) { + @PrismaSelector({ modelName: 'PipelineProgress' }) + prismaSelect: PrismaSelect<'PipelineProgress'>, + ): Promise[]> { return this.pipelineProgressService.findMany({ ...args, where: { ...args.where, AND: [accessibleBy(ability).PipelineProgress], }, + select: prismaSelect.value, }); } @@ -53,10 +60,13 @@ export class PipelineProgressResolver { @CheckAbilities(UpdatePipelineProgressAbilityHandler) async updateOnePipelineProgress( @Args() args: UpdateOnePipelineProgressArgs, - ): Promise { + @PrismaSelector({ modelName: 'PipelineProgress' }) + prismaSelect: PrismaSelect<'PipelineProgress'>, + ): Promise | null> { return this.pipelineProgressService.update({ ...args, - } satisfies UpdateOnePipelineProgressArgs as Prisma.PipelineProgressUpdateArgs); + select: prismaSelect.value, + } as Prisma.PipelineProgressUpdateArgs); } @Mutation(() => AffectedRows, { @@ -80,12 +90,15 @@ export class PipelineProgressResolver { async createOnePipelineProgress( @Args() args: CreateOnePipelineProgressArgs, @AuthWorkspace() workspace: Workspace, - ): Promise { + @PrismaSelector({ modelName: 'PipelineProgress' }) + prismaSelect: PrismaSelect<'PipelineProgress'>, + ): Promise> { return this.pipelineProgressService.create({ data: { ...args.data, ...{ workspace: { connect: { id: workspace.id } } }, }, - } satisfies CreateOnePipelineProgressArgs as Prisma.PipelineProgressCreateArgs); + select: prismaSelect.value, + } as Prisma.PipelineProgressCreateArgs); } } diff --git a/server/src/core/pipeline/resolvers/pipeline-relations.resolver.spec.ts b/server/src/core/pipeline/resolvers/pipeline-relations.resolver.spec.ts deleted file mode 100644 index 560d36d427..0000000000 --- a/server/src/core/pipeline/resolvers/pipeline-relations.resolver.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Test, TestingModule } from '@nestjs/testing'; -import { PipelineRelationsResolver } from './pipeline-relations.resolver'; -import { PipelineStageService } from '../services/pipeline-stage.service'; - -describe('PipelineRelationsResolver', () => { - let resolver: PipelineRelationsResolver; - - beforeEach(async () => { - const module: TestingModule = await Test.createTestingModule({ - providers: [ - PipelineRelationsResolver, - { - provide: PipelineStageService, - useValue: {}, - }, - ], - }).compile(); - - resolver = module.get(PipelineRelationsResolver); - }); - - it('should be defined', () => { - expect(resolver).toBeDefined(); - }); -}); diff --git a/server/src/core/pipeline/resolvers/pipeline-relations.resolver.ts b/server/src/core/pipeline/resolvers/pipeline-relations.resolver.ts deleted file mode 100644 index 702d930730..0000000000 --- a/server/src/core/pipeline/resolvers/pipeline-relations.resolver.ts +++ /dev/null @@ -1,24 +0,0 @@ -import * as TypeGraphQL from '@nestjs/graphql'; -import { PipelineStage } from 'src/core/@generated/pipeline-stage/pipeline-stage.model'; -import { Pipeline } from 'src/core/@generated/pipeline/pipeline.model'; -import { PipelineStageService } from '../services/pipeline-stage.service'; - -@TypeGraphQL.Resolver(() => Pipeline) -export class PipelineRelationsResolver { - constructor(private readonly pipelineStageService: PipelineStageService) {} - - @TypeGraphQL.ResolveField(() => [PipelineStage], { - nullable: false, - }) - async pipelineStages( - @TypeGraphQL.Root() pipeline: Pipeline, - ): Promise { - return this.pipelineStageService.findMany({ - where: { - pipelineId: { - equals: pipeline.id, - }, - }, - }); - } -} diff --git a/server/src/core/pipeline/resolvers/pipeline-stage-relations.resolver.spec.ts b/server/src/core/pipeline/resolvers/pipeline-stage-relations.resolver.spec.ts deleted file mode 100644 index f0da1bef3d..0000000000 --- a/server/src/core/pipeline/resolvers/pipeline-stage-relations.resolver.spec.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Test, TestingModule } from '@nestjs/testing'; -import { PipelineStageRelationsResolver } from './pipeline-stage-relations.resolver'; -import { PipelineProgressService } from '../services/pipeline-progress.service'; - -describe('PipelineStageRelationsResolver', () => { - let resolver: PipelineStageRelationsResolver; - - beforeEach(async () => { - const module: TestingModule = await Test.createTestingModule({ - providers: [ - PipelineStageRelationsResolver, - { - provide: PipelineProgressService, - useValue: {}, - }, - ], - }).compile(); - - resolver = module.get( - PipelineStageRelationsResolver, - ); - }); - - it('should be defined', () => { - expect(resolver).toBeDefined(); - }); -}); diff --git a/server/src/core/pipeline/resolvers/pipeline-stage-relations.resolver.ts b/server/src/core/pipeline/resolvers/pipeline-stage-relations.resolver.ts deleted file mode 100644 index 300b557395..0000000000 --- a/server/src/core/pipeline/resolvers/pipeline-stage-relations.resolver.ts +++ /dev/null @@ -1,26 +0,0 @@ -import * as TypeGraphQL from '@nestjs/graphql'; -import { PipelineProgress } from 'src/core/@generated/pipeline-progress/pipeline-progress.model'; -import { PipelineStage } from 'src/core/@generated/pipeline-stage/pipeline-stage.model'; -import { PipelineProgressService } from '../services/pipeline-progress.service'; - -@TypeGraphQL.Resolver(() => PipelineStage) -export class PipelineStageRelationsResolver { - constructor( - private readonly pipelineProgressService: PipelineProgressService, - ) {} - - @TypeGraphQL.ResolveField(() => [PipelineProgress], { - nullable: false, - }) - async pipelineProgresses( - @TypeGraphQL.Root() pipelineStage: PipelineStage, - ): Promise { - return this.pipelineProgressService.findMany({ - where: { - pipelineStageId: { - equals: pipelineStage.id, - }, - }, - }); - } -} diff --git a/server/src/core/pipeline/resolvers/pipeline-stage.resolver.ts b/server/src/core/pipeline/resolvers/pipeline-stage.resolver.ts index 516f3bd60e..4cba70621f 100644 --- a/server/src/core/pipeline/resolvers/pipeline-stage.resolver.ts +++ b/server/src/core/pipeline/resolvers/pipeline-stage.resolver.ts @@ -10,6 +10,10 @@ import { CheckAbilities } from 'src/decorators/check-abilities.decorator'; import { ReadPipelineStageAbilityHandler } from 'src/ability/handlers/pipeline-stage.ability-handler'; import { UserAbility } from 'src/decorators/user-ability.decorator'; import { AppAbility } from 'src/ability/ability.factory'; +import { + PrismaSelector, + PrismaSelect, +} from 'src/decorators/prisma-select.decorator'; @UseGuards(JwtAuthGuard) @Resolver(() => PipelineStage) @@ -22,13 +26,16 @@ export class PipelineStageResolver { async findManyPipelineStage( @Args() args: FindManyPipelineStageArgs, @UserAbility() ability: AppAbility, - ) { + @PrismaSelector({ modelName: 'PipelineStage' }) + prismaSelect: PrismaSelect<'PipelineStage'>, + ): Promise[]> { return this.pipelineStageService.findMany({ ...args, where: { ...args.where, AND: [accessibleBy(ability).PipelineStage], }, + select: prismaSelect.value, }); } } diff --git a/server/src/core/pipeline/resolvers/pipeline.resolver.ts b/server/src/core/pipeline/resolvers/pipeline.resolver.ts index c3bbc58763..c6613457d6 100644 --- a/server/src/core/pipeline/resolvers/pipeline.resolver.ts +++ b/server/src/core/pipeline/resolvers/pipeline.resolver.ts @@ -10,6 +10,10 @@ import { CheckAbilities } from 'src/decorators/check-abilities.decorator'; import { ReadPipelineAbilityHandler } from 'src/ability/handlers/pipeline.ability-handler'; import { UserAbility } from 'src/decorators/user-ability.decorator'; import { AppAbility } from 'src/ability/ability.factory'; +import { + PrismaSelector, + PrismaSelect, +} from 'src/decorators/prisma-select.decorator'; @UseGuards(JwtAuthGuard) @Resolver(() => Pipeline) @@ -22,13 +26,16 @@ export class PipelineResolver { async findManyPipeline( @Args() args: FindManyPipelineArgs, @UserAbility() ability: AppAbility, - ) { + @PrismaSelector({ modelName: 'Pipeline' }) + prismaSelect: PrismaSelect<'Pipeline'>, + ): Promise[]> { return this.pipelineService.findMany({ ...args, where: { ...args.where, AND: [accessibleBy(ability).Pipeline], }, + select: prismaSelect.value, }); } } diff --git a/server/src/core/user/user-relations.resolver.spec.ts b/server/src/core/user/user-relations.resolver.spec.ts deleted file mode 100644 index adb9efa704..0000000000 --- a/server/src/core/user/user-relations.resolver.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Test, TestingModule } from '@nestjs/testing'; -import { UserRelationsResolver } from './user-relations.resolver'; -import { UserService } from './user.service'; - -describe('UserRelationsResolver', () => { - let resolver: UserRelationsResolver; - - beforeEach(async () => { - const module: TestingModule = await Test.createTestingModule({ - providers: [ - UserRelationsResolver, - { - provide: UserService, - useValue: {}, - }, - ], - }).compile(); - - resolver = module.get(UserRelationsResolver); - }); - - it('should be defined', () => { - expect(resolver).toBeDefined(); - }); -}); diff --git a/server/src/core/user/user-relations.resolver.ts b/server/src/core/user/user-relations.resolver.ts deleted file mode 100644 index f61ce40e76..0000000000 --- a/server/src/core/user/user-relations.resolver.ts +++ /dev/null @@ -1,46 +0,0 @@ -import * as TypeGraphQL from '@nestjs/graphql'; -import type { GraphQLResolveInfo } from 'graphql'; -import { WorkspaceMember } from 'src/core/@generated/workspace-member/workspace-member.model'; -import { User } from 'src/core/@generated/user/user.model'; -import { Company } from 'src/core/@generated/company/company.model'; -import { FindManyCompanyArgs } from 'src/core/@generated/company/find-many-company.args'; -import { UserService } from './user.service'; - -@TypeGraphQL.Resolver(() => User) -export class UserRelationsResolver { - constructor(private readonly userService: UserService) {} - - @TypeGraphQL.ResolveField(() => WorkspaceMember, { - nullable: true, - }) - async workspaceMember( - @TypeGraphQL.Parent() user: User, - ): Promise { - return await this.userService - .findFirst({ - where: { - id: user.id, - }, - }) - .workspaceMember({}); - } - - @TypeGraphQL.ResolveField(() => [Company], { - nullable: false, - }) - async companies( - @TypeGraphQL.Parent() user: User, - @TypeGraphQL.Info() info: GraphQLResolveInfo, - @TypeGraphQL.Args() args: FindManyCompanyArgs, - ): Promise { - return this.userService - .findUniqueOrThrow({ - where: { - id: user.id, - }, - }) - .companies({ - ...args, - }); - } -} diff --git a/server/src/core/user/user.module.ts b/server/src/core/user/user.module.ts index eba81f61d1..ff2d92b503 100644 --- a/server/src/core/user/user.module.ts +++ b/server/src/core/user/user.module.ts @@ -1,12 +1,11 @@ import { Module } from '@nestjs/common'; import { UserService } from './user.service'; import { UserResolver } from './user.resolver'; -import { UserRelationsResolver } from './user-relations.resolver'; import { WorkspaceModule } from '../workspace/workspace.module'; @Module({ imports: [WorkspaceModule], - providers: [UserService, UserResolver, UserRelationsResolver], + providers: [UserService, UserResolver], exports: [UserService], }) export class UserModule {} diff --git a/server/src/core/user/user.resolver.ts b/server/src/core/user/user.resolver.ts index 039f6d33c4..f5e876df95 100644 --- a/server/src/core/user/user.resolver.ts +++ b/server/src/core/user/user.resolver.ts @@ -7,6 +7,10 @@ import { User } from 'src/core/@generated/user/user.model'; import { ExceptionFilter } from 'src/filters/exception.filter'; import { UseFilters, UseGuards } from '@nestjs/common'; import { JwtAuthGuard } from 'src/guards/jwt.auth.guard'; +import { + PrismaSelect, + PrismaSelector, +} from 'src/decorators/prisma-select.decorator'; @UseGuards(JwtAuthGuard) @Resolver(() => User) @@ -20,7 +24,9 @@ export class UserResolver { async findManyUser( @Args() args: FindManyUserArgs, @AuthWorkspace() workspace: Workspace, - ): Promise { + @PrismaSelector({ modelName: 'User' }) + prismaSelect: PrismaSelect<'User'>, + ): Promise[]> { return await this.userService.findMany({ ...args, where: { @@ -29,6 +35,7 @@ export class UserResolver { is: { workspace: { is: { id: { equals: workspace.id } } } }, }, }, + select: prismaSelect.value, }); } } diff --git a/server/src/core/workspace/resolvers/workspace-member-relations.resolver.spec.ts b/server/src/core/workspace/resolvers/workspace-member-relations.resolver.spec.ts deleted file mode 100644 index f76cc110b0..0000000000 --- a/server/src/core/workspace/resolvers/workspace-member-relations.resolver.spec.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Test, TestingModule } from '@nestjs/testing'; -import { WorkspaceMemberRelationsResolver } from './workspace-member-relations.resolver'; -import { WorkspaceMemberService } from '../services/workspace-member.service'; - -describe('WorkspaceMemberRelationsResolver', () => { - let resolver: WorkspaceMemberRelationsResolver; - - beforeEach(async () => { - const module: TestingModule = await Test.createTestingModule({ - providers: [ - WorkspaceMemberRelationsResolver, - { - provide: WorkspaceMemberService, - useValue: {}, - }, - ], - }).compile(); - - resolver = module.get( - WorkspaceMemberRelationsResolver, - ); - }); - - it('should be defined', () => { - expect(resolver).toBeDefined(); - }); -}); diff --git a/server/src/core/workspace/resolvers/workspace-member-relations.resolver.ts b/server/src/core/workspace/resolvers/workspace-member-relations.resolver.ts deleted file mode 100644 index ccfc70326e..0000000000 --- a/server/src/core/workspace/resolvers/workspace-member-relations.resolver.ts +++ /dev/null @@ -1,42 +0,0 @@ -import * as TypeGraphQL from '@nestjs/graphql'; -import { User } from 'src/core/@generated/user/user.model'; -import { WorkspaceMember } from 'src/core/@generated/workspace-member/workspace-member.model'; -import { Workspace } from 'src/core/@generated/workspace/workspace.model'; -import { WorkspaceMemberService } from '../services/workspace-member.service'; - -@TypeGraphQL.Resolver(() => WorkspaceMember) -export class WorkspaceMemberRelationsResolver { - constructor( - private readonly workspaceMemberSercice: WorkspaceMemberService, - ) {} - - @TypeGraphQL.ResolveField(() => User, { - nullable: false, - }) - async user( - @TypeGraphQL.Parent() workspaceMember: WorkspaceMember, - ): Promise { - return await this.workspaceMemberSercice - .findUniqueOrThrow({ - where: { - id: workspaceMember.id, - }, - }) - .user({}); - } - - @TypeGraphQL.ResolveField(() => Workspace, { - nullable: false, - }) - async workspace( - @TypeGraphQL.Parent() workspaceMember: WorkspaceMember, - ): Promise { - return this.workspaceMemberSercice - .findUniqueOrThrow({ - where: { - id: workspaceMember.id, - }, - }) - .workspace({}); - } -} diff --git a/server/src/core/workspace/workspace.module.ts b/server/src/core/workspace/workspace.module.ts index b454577991..ebddae64d7 100644 --- a/server/src/core/workspace/workspace.module.ts +++ b/server/src/core/workspace/workspace.module.ts @@ -2,14 +2,12 @@ import { Module } from '@nestjs/common'; import { WorkspaceService } from './services/workspace.service'; import { WorkspaceMemberService } from './services/workspace-member.service'; import { WorkspaceMemberResolver } from './resolvers/workspace-member.resolver'; -import { WorkspaceMemberRelationsResolver } from './resolvers/workspace-member-relations.resolver'; @Module({ providers: [ WorkspaceService, WorkspaceMemberService, WorkspaceMemberResolver, - WorkspaceMemberRelationsResolver, ], exports: [WorkspaceService, WorkspaceMemberService], }) diff --git a/server/src/decorators/prisma-select.decorator.ts b/server/src/decorators/prisma-select.decorator.ts new file mode 100644 index 0000000000..4cbe1b6591 --- /dev/null +++ b/server/src/decorators/prisma-select.decorator.ts @@ -0,0 +1,26 @@ +import { createParamDecorator, ExecutionContext } from '@nestjs/common'; +import { GqlExecutionContext } from '@nestjs/graphql'; +import { + PrismaSelect, + ModelSelectMap, + DefaultFieldsMap, +} from 'src/utils/prisma-select'; + +export { PrismaSelect }; + +export const PrismaSelector = createParamDecorator( + ( + data: { + modelName: keyof ModelSelectMap; + defaultFields?: DefaultFieldsMap; + }, + ctx: ExecutionContext, + ): PrismaSelect => { + const gqlCtx = GqlExecutionContext.create(ctx); + const info = gqlCtx.getInfo(); + + return new PrismaSelect(data.modelName, info, { + defaultFields: data.defaultFields, + }); + }, +); diff --git a/server/src/utils/prisma-select/index.ts b/server/src/utils/prisma-select/index.ts new file mode 100644 index 0000000000..3d3af211bf --- /dev/null +++ b/server/src/utils/prisma-select/index.ts @@ -0,0 +1,56 @@ +import { PrismaSelect as PalJSPrismaSelect } from '@paljs/plugins'; +import { DMMF } from '@prisma/client/runtime'; +import { GraphQLResolveInfo } from 'graphql'; +import { ModelSelectMap } from './model-select-map'; + +export type DefaultFieldsMap = { + readonly [K in keyof ModelSelectMap]?: + | ModelSelectMap[K] + | ((select: any) => ModelSelectMap[K]); +}; + +export { ModelSelectMap }; + +export class PrismaSelect< + K extends keyof ModelSelectMap, +> extends PalJSPrismaSelect { + private modelName: K; + + constructor( + modelName: K, + info: GraphQLResolveInfo, + options?: { + readonly defaultFields?: DefaultFieldsMap; + readonly dmmf?: readonly Pick[]; + }, + ) { + super(info, options as any); + this.modelName = modelName; + } + + get value(): ModelSelectMap[K] { + return super.value; + } + + valueOf(field: string, mergeObject?: any): ModelSelectMap[K]; + valueOf( + field: string, + filterBy: SubKey, + mergeObject?: any, + ): ModelSelectMap[SubKey]; + valueOf( + field: string, + filterByOrMergeObject?: keyof ModelSelectMap | any, + mergeObject?: any, + ) { + if (typeof filterByOrMergeObject === 'string') { + return super.valueOf(field, filterByOrMergeObject, mergeObject); + } else { + return super.valueOf(field, this.modelName, filterByOrMergeObject); + } + } + + valueWithFilter(modelName: K): ModelSelectMap[K] { + return super.valueWithFilter(modelName).select; + } +} diff --git a/server/src/utils/prisma-select/model-select-map.ts b/server/src/utils/prisma-select/model-select-map.ts new file mode 100644 index 0000000000..cfd4be733c --- /dev/null +++ b/server/src/utils/prisma-select/model-select-map.ts @@ -0,0 +1,17 @@ +// THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +import { Prisma } from '@prisma/client'; + +export type ModelSelectMap = { + User: Prisma.UserSelect; + Workspace: Prisma.WorkspaceSelect; + WorkspaceMember: Prisma.WorkspaceMemberSelect; + Company: Prisma.CompanySelect; + Person: Prisma.PersonSelect; + RefreshToken: Prisma.RefreshTokenSelect; + CommentThread: Prisma.CommentThreadSelect; + Comment: Prisma.CommentSelect; + CommentThreadTarget: Prisma.CommentThreadTargetSelect; + Pipeline: Prisma.PipelineSelect; + PipelineStage: Prisma.PipelineStageSelect; + PipelineProgress: Prisma.PipelineProgressSelect; +}; diff --git a/server/yarn.lock b/server/yarn.lock index c7d01a7fd2..0cc9b0735e 100644 --- a/server/yarn.lock +++ b/server/yarn.lock @@ -44,6 +44,11 @@ ora "5.4.1" rxjs "7.8.1" +"@antfu/ni@0.21.4": + version "0.21.4" + resolved "https://registry.yarnpkg.com/@antfu/ni/-/ni-0.21.4.tgz#a6c1e3d6fbd86e4cb36ec5ff97302ae8878f3eee" + integrity sha512-O0Uv9LbLDSoEg26fnMDdDRiPwFJnQSoD4WnrflDwKCJm8Cx/0mV4cGxwBLXan5mGIrpK4Dd7vizf4rQm0QCEAA== + "@apollo/cache-control-types@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@apollo/cache-control-types/-/cache-control-types-1.0.2.tgz#f42ed3563acc7f1f50617d65d208483977adc68e" @@ -1220,6 +1225,46 @@ consola "^2.15.0" node-fetch "^2.6.1" +"@opentelemetry/api@1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.4.1.tgz#ff22eb2e5d476fbc2450a196e40dd243cc20c28f" + integrity sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA== + +"@paljs/display@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@paljs/display/-/display-5.3.3.tgz#0483d76e9ed357cda77933fff6d257cd4f5817c6" + integrity sha512-P1hyayOGbutYGp/B+HGHguApLKw/Rj05rU1V/SrLirvhcISoVKNSjuzsE60lC3cWjjQd+f/8Y2p9W4qjeeSGNQ== + dependencies: + chalk "4.1.2" + debug "^4.3.4" + ora "5.4.1" + readline "^1.3.0" + +"@paljs/plugins@^5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@paljs/plugins/-/plugins-5.3.3.tgz#7c253f451534ea283ab3a6ce7f25c5acbdee1eab" + integrity sha512-oucCA0irFE7rKMY8mtuXcTPS/zm0FmFR5ZMa2pIdkRqjzU5m3JWCZloj/p9ZXfMSIXJrFOkWU1FH5rUAkb+JNg== + dependencies: + "@paljs/types" "5.3.3" + "@paljs/utils" "5.3.3" + graphql-parse-resolve-info "^4.13.0" + graphql-tag "^2.12.6" + prettier "^2.8.4" + +"@paljs/types@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@paljs/types/-/types-5.3.3.tgz#f440ea2b30221edf51a18d50aef637002c35cd18" + integrity sha512-6kGNvUnbqXd6Rhp+9i3ZtgHWQKfBBm2jYUptp6BbbvzYuKyvybTRSi9QHneOHDingl0zxd/OYTHKrWlpGLz8PQ== + +"@paljs/utils@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@paljs/utils/-/utils-5.3.3.tgz#d58338dbab683334134e08557f5dcdcff370e6af" + integrity sha512-zTPnIByTpbNJ4ijHQDig9cwtGwzq/NTPCUEGTNt4ZXx6z3WEbqzuxrgA13fOKaYs8XTN48eGyV06Qiu78PhnjQ== + dependencies: + "@paljs/display" "5.3.3" + "@paljs/types" "5.3.3" + "@prisma/internals" "^4.15.0" + "@prisma/client@^4.13.0": version "4.15.0" resolved "https://registry.yarnpkg.com/@prisma/client/-/client-4.15.0.tgz#f52ec6ca6fbde37395a54b0a9e5da603a9de15f3" @@ -1236,6 +1281,15 @@ debug "4.3.4" strip-ansi "6.0.1" +"@prisma/debug@4.16.0": + version "4.16.0" + resolved "https://registry.yarnpkg.com/@prisma/debug/-/debug-4.16.0.tgz#7ee8743b6751b8ef2a4e64a61e8082934075dd8f" + integrity sha512-9xKz+5BXjnHDgPKtjTEbP6vNPeYMOqId2IIHCxfpouhSpSUHOA3FVzCRpZ0er/RV6y/MZUPLQbltVUvPncBDlg== + dependencies: + "@types/debug" "4.1.8" + debug "4.3.4" + strip-ansi "6.0.1" + "@prisma/engines-version@4.15.0-28.8fbc245156db7124f997f4cecdd8d1219e360944": version "4.15.0-28.8fbc245156db7124f997f4cecdd8d1219e360944" resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-4.15.0-28.8fbc245156db7124f997f4cecdd8d1219e360944.tgz#8d880becf996cffe08c78ad5afab6bc06090c990" @@ -1246,6 +1300,44 @@ resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-4.15.0.tgz#d8687a9fda615fab88b75b466931280289de9e26" integrity sha512-FTaOCGs0LL0OW68juZlGxFtYviZa4xdQj/rQEdat2txw0s3Vu/saAPKjNVXfIgUsGXmQ72HPgNr6935/P8FNAA== +"@prisma/engines@4.16.0": + version "4.16.0" + resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-4.16.0.tgz#08725453510cb1eda77c06c63354129352abf7b0" + integrity sha512-M6XoMRXnqL0rqZGQS8ZpNiHYG4G1fKBdoqW/oBtHnr1in5UYgerZqal3CXchmd6OBD/770PE9dtjQuqcilZJUA== + +"@prisma/fetch-engine@4.16.0": + version "4.16.0" + resolved "https://registry.yarnpkg.com/@prisma/fetch-engine/-/fetch-engine-4.16.0.tgz#13ebc5cbb466a327ab411ad7681a5078d8af943e" + integrity sha512-wwbTAnm+7XeqqzUZ/7GPaMPZS2/ZyKVGD2zlSf9zLW3Fu0xb35RdQadC8mHY8KUzSWgtRSV4LDUk+kPJ4L2buw== + dependencies: + "@prisma/debug" "4.16.0" + "@prisma/get-platform" "4.16.0" + execa "5.1.1" + find-cache-dir "3.3.2" + fs-extra "11.1.1" + hasha "5.2.2" + http-proxy-agent "7.0.0" + https-proxy-agent "7.0.0" + kleur "4.1.5" + node-fetch "2.6.11" + p-filter "2.1.0" + p-map "4.0.0" + p-retry "4.6.2" + progress "2.0.3" + rimraf "3.0.2" + temp-dir "2.0.0" + tempy "1.0.1" + +"@prisma/generator-helper@4.16.0": + version "4.16.0" + resolved "https://registry.yarnpkg.com/@prisma/generator-helper/-/generator-helper-4.16.0.tgz#f60ee999c463be76628f3d96a96f19aae3c6f301" + integrity sha512-4rDLzQPpCz2FbYjW07j7BDkKVs4MiPbyxAeYoLheQj0Ubj7ihoK1hecrIEocULxjMwVJOLt8mj575bguNQ4DWA== + dependencies: + "@prisma/debug" "4.16.0" + "@types/cross-spawn" "6.0.2" + cross-spawn "7.0.3" + kleur "4.1.5" + "@prisma/generator-helper@^4.14.0": version "4.15.0" resolved "https://registry.yarnpkg.com/@prisma/generator-helper/-/generator-helper-4.15.0.tgz#f23d5266021140859a13f8f5e96d6a9185353b94" @@ -1256,6 +1348,76 @@ cross-spawn "7.0.3" kleur "4.1.5" +"@prisma/get-platform@4.16.0": + version "4.16.0" + resolved "https://registry.yarnpkg.com/@prisma/get-platform/-/get-platform-4.16.0.tgz#6ba538e2f2d11abc479d36524fb4a022d2227a82" + integrity sha512-S/hErjFNHFfy4FYLlSspasl4qeD36dZgJAYoGoGTUKgFc/baTr22pJeyMJ9XhuTF+/aMXZ6TawKlDNoSD8P1Lw== + dependencies: + "@prisma/debug" "4.16.0" + escape-string-regexp "4.0.0" + execa "5.1.1" + fs-jetpack "5.1.0" + kleur "4.1.5" + replace-string "3.1.0" + strip-ansi "6.0.1" + tempy "1.0.1" + terminal-link "2.1.1" + ts-pattern "4.3.0" + +"@prisma/internals@^4.15.0": + version "4.16.0" + resolved "https://registry.yarnpkg.com/@prisma/internals/-/internals-4.16.0.tgz#953b971b8cc93f62b9744ac0cf42bbc6c68c2a39" + integrity sha512-NBnv9LUeIDbQEkp/cOBUjYqaTc7ol6ihv13h+nI/nhGMgSAD+1PUI2kHnqPfNPdjF0EjyVIlVngi2smgJMdjXA== + dependencies: + "@antfu/ni" "0.21.4" + "@opentelemetry/api" "1.4.1" + "@prisma/debug" "4.16.0" + "@prisma/engines" "4.16.0" + "@prisma/fetch-engine" "4.16.0" + "@prisma/generator-helper" "4.16.0" + "@prisma/get-platform" "4.16.0" + "@prisma/prisma-fmt-wasm" "4.16.0-66.b20ead4d3ab9e78ac112966e242ded703f4a052c" + archiver "5.3.1" + arg "5.0.2" + checkpoint-client "1.1.24" + cli-truncate "2.1.0" + dotenv "16.0.3" + escape-string-regexp "4.0.0" + execa "5.1.1" + find-up "5.0.0" + fp-ts "2.16.0" + fs-extra "11.1.1" + fs-jetpack "5.1.0" + global-dirs "3.0.1" + globby "11.1.0" + indent-string "4.0.0" + is-windows "1.0.2" + is-wsl "2.2.0" + kleur "4.1.5" + new-github-issue-url "0.2.1" + node-fetch "2.6.11" + npm-packlist "5.1.3" + open "7.4.2" + p-map "4.0.0" + prompts "2.4.2" + read-pkg-up "7.0.1" + replace-string "3.1.0" + resolve "1.22.2" + string-width "4.2.3" + strip-ansi "6.0.1" + strip-indent "3.0.0" + temp-dir "2.0.0" + temp-write "4.0.0" + tempy "1.0.1" + terminal-link "2.1.1" + tmp "0.2.1" + ts-pattern "4.3.0" + +"@prisma/prisma-fmt-wasm@4.16.0-66.b20ead4d3ab9e78ac112966e242ded703f4a052c": + version "4.16.0-66.b20ead4d3ab9e78ac112966e242ded703f4a052c" + resolved "https://registry.yarnpkg.com/@prisma/prisma-fmt-wasm/-/prisma-fmt-wasm-4.16.0-66.b20ead4d3ab9e78ac112966e242ded703f4a052c.tgz#cbb8ef578833701924a6c36fa9490534740338e0" + integrity sha512-BwsBw9HxhRuAjS0/1ncnnTffxw9vbT5zc115tbbiE+TTdAUS3aVxN5SixxP/8h15q0W4Z16VHS8vgyor7nbQYA== + "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" @@ -1607,6 +1769,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.36.tgz#0db5d7efc4760d36d0d1d22c85d1a53accd5dc27" integrity sha512-8egDX8dE50XyXWH6C6PRCNkTP106DuUrvdrednFouDSmCi7IOvrqr0frznfZaHifHH/3aq/7a7v9N4wdXMqhBQ== +"@types/normalize-package-data@^2.4.0": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" + integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + "@types/oauth@*": version "0.9.1" resolved "https://registry.yarnpkg.com/@types/oauth/-/oauth-0.9.1.tgz#e17221e7f7936b0459ae7d006255dff61adca305" @@ -1676,6 +1843,11 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== +"@types/retry@0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" + integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== + "@types/semver@^7.3.12": version "7.5.0" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" @@ -2022,6 +2194,21 @@ agent-base@6: dependencies: debug "4" +agent-base@^7.0.2, agent-base@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434" + integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== + dependencies: + debug "^4.3.4" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + ajv-formats@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" @@ -2205,6 +2392,35 @@ append-field@^1.0.0: resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== +archiver-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2" + integrity sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw== + dependencies: + glob "^7.1.4" + graceful-fs "^4.2.0" + lazystream "^1.0.0" + lodash.defaults "^4.2.0" + lodash.difference "^4.5.0" + lodash.flatten "^4.4.0" + lodash.isplainobject "^4.0.6" + lodash.union "^4.6.0" + normalize-path "^3.0.0" + readable-stream "^2.0.0" + +archiver@5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.1.tgz#21e92811d6f09ecfce649fbefefe8c79e57cbbb6" + integrity sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w== + dependencies: + archiver-utils "^2.1.0" + async "^3.2.3" + buffer-crc32 "^0.2.1" + readable-stream "^3.6.0" + readdir-glob "^1.0.0" + tar-stream "^2.2.0" + zip-stream "^4.1.0" + are-we-there-yet@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" @@ -2213,6 +2429,11 @@ are-we-there-yet@^2.0.0: delegates "^1.0.0" readable-stream "^3.6.0" +arg@5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" + integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== + arg@^4.1.0: version "4.1.3" resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" @@ -2245,6 +2466,11 @@ asap@^2.0.0: resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + async-retry@^1.2.1: version "1.3.3" resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" @@ -2252,6 +2478,11 @@ async-retry@^1.2.1: dependencies: retry "0.13.1" +async@^3.2.3: + version "3.2.4" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -2357,7 +2588,7 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bl@^4.1.0: +bl@^4.0.3, bl@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== @@ -2462,6 +2693,11 @@ bser@2.1.1: dependencies: node-int64 "^0.4.0" +buffer-crc32@^0.2.1, buffer-crc32@^0.2.13: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== + buffer-equal-constant-time@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" @@ -2552,6 +2788,19 @@ check-disk-space@3.3.1: resolved "https://registry.yarnpkg.com/check-disk-space/-/check-disk-space-3.3.1.tgz#10c4c8706fdd16d3e5c3572a16aa95efd0b4d40b" integrity sha512-iOrT8yCZjSnyNZ43476FE2rnssvgw5hnuwOM0hm8Nj1qa0v4ieUUEbCyxxsEliaoDUb/75yCOL71zkDiDBLbMQ== +checkpoint-client@1.1.24: + version "1.1.24" + resolved "https://registry.yarnpkg.com/checkpoint-client/-/checkpoint-client-1.1.24.tgz#7509b355dd47f568c9d35e963bed06701f61c0b5" + integrity sha512-nIOlLhDS7MKs4tUzS3LCm+sE1NgTCVnVrXlD0RRxaoEkkLu8LIWSUNiNWai6a+LK5unLzTyZeTCYX1Smqy0YoA== + dependencies: + ci-info "3.8.0" + env-paths "2.2.1" + fast-write-atomic "0.2.1" + make-dir "3.1.0" + ms "2.1.3" + node-fetch "2.6.11" + uuid "9.0.0" + chokidar@3.5.3, chokidar@^3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" @@ -2577,7 +2826,7 @@ chrome-trace-event@^1.0.2: resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== -ci-info@^3.2.0: +ci-info@3.8.0, ci-info@^3.2.0: version "3.8.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== @@ -2601,6 +2850,11 @@ class-validator@^0.14.0: libphonenumber-js "^1.10.14" validator "^13.7.0" +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + cli-boxes@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" @@ -2627,6 +2881,14 @@ cli-table3@0.6.3: optionalDependencies: "@colors/colors" "1.5.0" +cli-truncate@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + cli-width@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" @@ -2707,11 +2969,26 @@ commander@^2.20.0, commander@^2.20.3: resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + component-emitter@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== +compress-commons@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.1.tgz#df2a09a7ed17447642bad10a85cc9a19e5c42a7d" + integrity sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ== + dependencies: + buffer-crc32 "^0.2.13" + crc32-stream "^4.0.2" + normalize-path "^3.0.0" + readable-stream "^3.6.0" + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -2793,6 +3070,19 @@ cosmiconfig@^7.0.1: path-type "^4.0.0" yaml "^1.10.0" +crc-32@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" + integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== + +crc32-stream@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.2.tgz#c922ad22b38395abe9d3870f02fa8134ed709007" + integrity sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w== + dependencies: + crc-32 "^1.2.0" + readable-stream "^3.4.0" + create-require@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" @@ -2807,6 +3097,11 @@ cross-spawn@7.0.3, cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + cssfilter@0.0.10: version "0.0.10" resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae" @@ -2855,6 +3150,20 @@ defaults@^1.0.3: dependencies: clone "^1.0.2" +del@^6.0.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/del/-/del-6.1.1.tgz#3b70314f1ec0aa325c6b14eb36b95786671edb7a" + integrity sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg== + dependencies: + globby "^11.0.1" + graceful-fs "^4.2.4" + is-glob "^4.0.1" + is-path-cwd "^2.2.0" + is-path-inside "^3.0.2" + p-map "^4.0.0" + rimraf "^3.0.2" + slash "^3.0.0" + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -2922,6 +3231,11 @@ dotenv-expand@10.0.0: resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-10.0.0.tgz#12605d00fb0af6d0a592e6558585784032e4ef37" integrity sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A== +dotenv@16.0.3: + version "16.0.3" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07" + integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== + dotenv@16.1.4: version "16.1.4" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.1.4.tgz#67ac1a10cd9c25f5ba604e4e08bc77c0ebe0ca8c" @@ -2959,7 +3273,7 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== -end-of-stream@^1.1.0: +end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== @@ -2974,6 +3288,11 @@ enhanced-resolve@^5.0.0, enhanced-resolve@^5.14.0, enhanced-resolve@^5.7.0: graceful-fs "^4.2.4" tapable "^2.2.0" +env-paths@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -3001,6 +3320,11 @@ escape-html@~1.0.3: resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== +escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -3011,11 +3335,6 @@ escape-string-regexp@^2.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - eslint-config-prettier@^8.3.0: version "8.8.0" resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" @@ -3152,6 +3471,21 @@ events@^3.2.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== +execa@5.1.1, execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + execa@^4.0.2: version "4.1.0" resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" @@ -3167,21 +3501,6 @@ execa@^4.0.2: signal-exit "^3.0.2" strip-final-newline "^2.0.0" -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -3280,6 +3599,11 @@ fast-safe-stringify@2.1.1, fast-safe-stringify@^2.1.1: resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== +fast-write-atomic@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fast-write-atomic/-/fast-write-atomic-0.2.1.tgz#7ee8ef0ce3c1f531043c09ae8e5143361ab17ede" + integrity sha512-WvJe06IfNYlr+6cO3uQkdKdy3Cb1LlCJSF8zRs2eT8yuhdbSlR9nIt+TgQ92RUxiRrQm+/S7RARnMfCs5iuAjw== + fastq@^1.6.0: version "1.15.0" resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" @@ -3342,6 +3666,23 @@ finalhandler@1.2.0: statuses "2.0.1" unpipe "~1.0.0" +find-cache-dir@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-up@5.0.0, find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -3350,14 +3691,6 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - flat-cache@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" @@ -3427,11 +3760,30 @@ forwarded@0.2.0: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== +fp-ts@2.16.0: + version "2.16.0" + resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-2.16.0.tgz#64e03314dfc1c7ce5e975d3496ac14bc3eb7f92e" + integrity sha512-bLq+KgbiXdTEoT1zcARrWEpa5z6A/8b7PcDW7Gef3NSisQ+VS7ll2Xbf1E+xsgik0rWub/8u0qP/iTTjj+PhxQ== + fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-extra@11.1.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" + integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-extra@^10.0.0: version "10.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" @@ -3441,6 +3793,13 @@ fs-extra@^10.0.0: jsonfile "^6.0.1" universalify "^2.0.0" +fs-jetpack@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/fs-jetpack/-/fs-jetpack-5.1.0.tgz#dcd34d709b69007c9dc2420a6f2b9e8f986cff0d" + integrity sha512-Xn4fDhLydXkuzepZVsr02jakLlmoARPy+YWIclo4kh0GyNGUHnTqeH/w/qIsVn50dFxtp8otPL2t/HcPJBbxUA== + dependencies: + minimatch "^5.1.0" + fs-minipass@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" @@ -3556,6 +3915,17 @@ glob@^7.0.0, glob@^7.1.3, glob@^7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^8.0.1: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + glob@^9.2.0: version "9.3.5" resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.5.tgz#ca2ed8ca452781a3009685607fdf025a899dfe21" @@ -3566,6 +3936,13 @@ glob@^9.2.0: minipass "^4.2.4" path-scurry "^1.6.1" +global-dirs@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" + integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA== + dependencies: + ini "2.0.0" + globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -3578,7 +3955,7 @@ globals@^13.19.0: dependencies: type-fest "^0.20.2" -globby@^11.1.0: +globby@11.1.0, globby@^11.0.1, globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -3590,7 +3967,7 @@ globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.9: +graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -3605,7 +3982,15 @@ graphemer@^1.4.0: resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== -graphql-tag@2.12.6, graphql-tag@^2.11.0: +graphql-parse-resolve-info@^4.13.0: + version "4.13.0" + resolved "https://registry.yarnpkg.com/graphql-parse-resolve-info/-/graphql-parse-resolve-info-4.13.0.tgz#03627032e25917bd6f9ed89e768568c61200e6ff" + integrity sha512-VVJ1DdHYcR7hwOGQKNH+QTzuNgsLA8l/y436HtP9YHoX6nmwXRWq3xWthU3autMysXdm0fQUbhTZCx0W9ICozw== + dependencies: + debug "^4.1.1" + tslib "^2.0.1" + +graphql-tag@2.12.6, graphql-tag@^2.11.0, graphql-tag@^2.12.6: version "2.12.6" resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1" integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== @@ -3659,11 +4044,24 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" +hasha@5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.2.tgz#a48477989b3b327aea3c04f53096d816d97522a1" + integrity sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ== + dependencies: + is-stream "^2.0.0" + type-fest "^0.8.0" + hexoid@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/hexoid/-/hexoid-1.0.0.tgz#ad10c6573fb907de23d9ec63a711267d9dc9bc18" integrity sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g== +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + html-escaper@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" @@ -3680,6 +4078,22 @@ http-errors@2.0.0: statuses "2.0.1" toidentifier "1.0.1" +http-proxy-agent@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz#e9096c5afd071a3fce56e6252bb321583c124673" + integrity sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ== + dependencies: + agent-base "^7.1.0" + debug "^4.3.4" + +https-proxy-agent@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.0.tgz#75cb70d04811685667183b31ab158d006750418a" + integrity sha512-0euwPCRyAPSgGdzD1IVN9nJYHtBhJwb6XPfbpQcYbPCwrBidX6GzxmchnaF4sfF/jPb74Ojx5g4yTg3sixlyPw== + dependencies: + agent-base "^7.0.2" + debug "4" + https-proxy-agent@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" @@ -3710,6 +4124,13 @@ ieee754@^1.1.13: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== +ignore-walk@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-5.0.1.tgz#5f199e23e1288f518d90358d461387788a154776" + integrity sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw== + dependencies: + minimatch "^5.0.1" + ignore@^5.2.0: version "5.2.4" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" @@ -3736,6 +4157,11 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== +indent-string@4.0.0, indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -3749,6 +4175,11 @@ inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, i resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +ini@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + inquirer@8.2.4: version "8.2.4" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.4.tgz#ddbfe86ca2f67649a67daa6f1051c128f684f0b4" @@ -3820,6 +4251,11 @@ is-core-module@^2.11.0: dependencies: has "^1.0.3" +is-docker@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -3852,7 +4288,12 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-path-inside@^3.0.3: +is-path-cwd@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-inside@^3.0.2, is-path-inside@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== @@ -3872,6 +4313,18 @@ is-unicode-supported@^0.1.0: resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== +is-windows@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@2.2.0, is-wsl@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -4409,6 +4862,13 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== +lazystream@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638" + integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw== + dependencies: + readable-stream "^2.0.5" + leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" @@ -4451,6 +4911,26 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" +lodash.defaults@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== + +lodash.difference@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" + integrity sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA== + +lodash.flatten@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + lodash.memoize@4.x: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" @@ -4471,6 +4951,11 @@ lodash.sortby@^4.7.0: resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== +lodash.union@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" + integrity sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw== + lodash@4.17.21, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" @@ -4535,7 +5020,7 @@ magic-string@0.30.0: dependencies: "@jridgewell/sourcemap-codec" "^1.4.13" -make-dir@^3.0.0, make-dir@^3.1.0: +make-dir@3.1.0, make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== @@ -4621,6 +5106,11 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -4628,7 +5118,7 @@ minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" -minimatch@^5.1.0: +minimatch@^5.0.1, minimatch@^5.1.0: version "5.1.6" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== @@ -4742,6 +5232,11 @@ neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== +new-github-issue-url@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/new-github-issue-url/-/new-github-issue-url-0.2.1.tgz#e17be1f665a92de465926603e44b9f8685630c1d" + integrity sha512-md4cGoxuT4T4d/HDOXbrUHkTKrp/vp+m3aOA7XXVYwNsUNMK49g3SQicTSeV5GIz/5QVGAeYRAOlyp9OvlgsYA== + node-abort-controller@^3.0.1, node-abort-controller@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548" @@ -4759,7 +5254,7 @@ node-emoji@1.11.0: dependencies: lodash "^4.17.21" -node-fetch@^2.6.1, node-fetch@^2.6.7: +node-fetch@2.6.11, node-fetch@^2.6.1, node-fetch@^2.6.7: version "2.6.11" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.11.tgz#cde7fc71deef3131ef80a738919f999e6edfff25" integrity sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w== @@ -4783,11 +5278,43 @@ nopt@^5.0.0: dependencies: abbrev "1" +normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + normalize-path@3.0.0, normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== +npm-bundled@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-2.0.1.tgz#94113f7eb342cd7a67de1e789f896b04d2c600f4" + integrity sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw== + dependencies: + npm-normalize-package-bin "^2.0.0" + +npm-normalize-package-bin@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz#9447a1adaaf89d8ad0abe24c6c84ad614a675fff" + integrity sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ== + +npm-packlist@5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-5.1.3.tgz#69d253e6fd664b9058b85005905012e00e69274b" + integrity sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg== + dependencies: + glob "^8.0.1" + ignore-walk "^5.0.1" + npm-bundled "^2.0.0" + npm-normalize-package-bin "^2.0.0" + npm-run-path@^4.0.0, npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" @@ -4841,6 +5368,14 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" +open@7.4.2: + version "7.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" + integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== + dependencies: + is-docker "^2.0.0" + is-wsl "^2.1.1" + optionator@^0.9.1: version "0.9.1" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" @@ -4886,6 +5421,13 @@ outmatch@^0.7.0: resolved "https://registry.yarnpkg.com/outmatch/-/outmatch-0.7.0.tgz#886b0c547e7d2531ce40426b1dc9605fc531bf96" integrity sha512-w1ybiTBffGiwxOO7JJBVVOsIiWwzcfSl/D80amWAU2UDe1o9/SySOUzAwDuN3+jGKQRs0UCDTS8rndFiroJgVQ== +p-filter@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-filter/-/p-filter-2.1.0.tgz#1b1472562ae7a0f742f0f3d3d3718ea66ff9c09c" + integrity sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw== + dependencies: + p-map "^2.0.0" + p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -4914,6 +5456,26 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" +p-map@4.0.0, p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + +p-retry@4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" + integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== + dependencies: + "@types/retry" "0.12.0" + retry "^0.13.1" + p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -5061,7 +5623,7 @@ pirates@^4.0.4: resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== -pkg-dir@^4.2.0: +pkg-dir@^4.1.0, pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== @@ -5085,7 +5647,7 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^2.3.2: +prettier@^2.3.2, prettier@^2.8.4: version "2.8.8" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== @@ -5130,7 +5692,12 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -prompts@^2.0.1: +progress@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +prompts@2.4.2, prompts@^2.0.1: version "2.4.2" resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== @@ -5222,7 +5789,26 @@ react-is@^18.0.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== -readable-stream@^2.2.2: +read-pkg-up@7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.2.2: version "2.3.8" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== @@ -5235,7 +5821,7 @@ readable-stream@^2.2.2: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.4.0, readable-stream@^3.6.0: +readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== @@ -5244,6 +5830,13 @@ readable-stream@^3.4.0, readable-stream@^3.6.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" +readdir-glob@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.3.tgz#c3d831f51f5e7bfa62fa2ffbe4b508c640f09584" + integrity sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA== + dependencies: + minimatch "^5.1.0" + readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -5251,6 +5844,11 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +readline@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/readline/-/readline-1.3.0.tgz#c580d77ef2cfc8752b132498060dc9793a7ac01c" + integrity sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg== + rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" @@ -5268,6 +5866,11 @@ regenerator-runtime@^0.13.11: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== +replace-string@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/replace-string/-/replace-string-3.1.0.tgz#77a087d88580fbac59851237891aa4b0e283db72" + integrity sha512-yPpxc4ZR2makceA9hy/jHNqc7QVkd4Je/N0WRHm6bs3PtivPuPynxE5ejU/mp5EhnCv8+uZL7vhz8rkluSlx+Q== + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -5300,7 +5903,7 @@ resolve.exports@^1.1.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.1.tgz#05cfd5b3edf641571fd46fa608b610dda9ead999" integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== -resolve@^1.1.6, resolve@^1.20.0: +resolve@1.22.2, resolve@^1.1.6, resolve@^1.10.0, resolve@^1.20.0: version "1.22.2" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== @@ -5317,7 +5920,7 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" -retry@0.13.1: +retry@0.13.1, retry@^0.13.1: version "0.13.1" resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== @@ -5327,6 +5930,13 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== +rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + rimraf@4.4.1: version "4.4.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-4.4.1.tgz#bd33364f67021c5b79e93d7f4fa0568c7c21b755" @@ -5334,13 +5944,6 @@ rimraf@4.4.1: dependencies: glob "^9.2.0" -rimraf@^3.0.0, rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - run-async@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" @@ -5384,6 +5987,11 @@ schema-utils@^3.1.1, schema-utils@^3.1.2: ajv "^6.12.5" ajv-keywords "^3.5.2" +"semver@2 || 3 || 4 || 5": + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + semver@7.x, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8: version "7.5.1" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" @@ -5495,6 +6103,15 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + source-map-support@0.5.13: version "0.5.13" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" @@ -5521,6 +6138,32 @@ source-map@^0.6.0, source-map@^0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +spdx-correct@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.13" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz#7189a474c46f8d47c7b0da4b987bb45e908bd2d5" + integrity sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w== + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -5551,7 +6194,7 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: +string-width@4.2.3, "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -5596,6 +6239,13 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== +strip-indent@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" @@ -5692,6 +6342,17 @@ tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== +tar-stream@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + tar@^6.1.11: version "6.1.15" resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.15.tgz#c9738b0b98845a3b344d334b8fa3041aaba53a69" @@ -5704,7 +6365,39 @@ tar@^6.1.11: mkdirp "^1.0.3" yallist "^4.0.0" -terminal-link@^2.0.0: +temp-dir@2.0.0, temp-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" + integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== + +temp-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" + integrity sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ== + +temp-write@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/temp-write/-/temp-write-4.0.0.tgz#cd2e0825fc826ae72d201dc26eef3bf7e6fc9320" + integrity sha512-HIeWmj77uOOHb0QX7siN3OtwV3CTntquin6TNVg6SHOqCP3hYKmox90eeFOGaY1MqJ9WYDDjkyZrW6qS5AWpbw== + dependencies: + graceful-fs "^4.1.15" + is-stream "^2.0.0" + make-dir "^3.0.0" + temp-dir "^1.0.0" + uuid "^3.3.2" + +tempy@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tempy/-/tempy-1.0.1.tgz#30fe901fd869cfb36ee2bd999805aa72fbb035de" + integrity sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w== + dependencies: + del "^6.0.0" + is-stream "^2.0.0" + temp-dir "^2.0.0" + type-fest "^0.16.0" + unique-string "^2.0.0" + +terminal-link@2.1.1, terminal-link@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== @@ -5752,6 +6445,13 @@ through@^2.3.6: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== +tmp@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -5854,6 +6554,11 @@ ts-node@^10.0.0: v8-compile-cache-lib "^3.0.1" yn "3.1.1" +ts-pattern@4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ts-pattern/-/ts-pattern-4.3.0.tgz#7a995b39342f1b00d1507c2d2f3b90ea16e178a6" + integrity sha512-pefrkcd4lmIVR0LA49Imjf9DYLK8vtWhqBPA3Ya1ir8xCW0O2yjL9dsCVvI7pCodLC5q7smNpEtDR2yVulQxOg== + tsconfig-paths-webpack-plugin@4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-4.0.1.tgz#a24651d0f69668a1abad38d3c2489855c257460d" @@ -5886,7 +6591,7 @@ tslib@2.5.2: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.2.tgz#1b6f07185c881557b0ffa84b111a0106989e8338" integrity sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA== -tslib@2.5.3, tslib@^2.1.0, tslib@^2.4.0: +tslib@2.5.3, tslib@^2.0.1, tslib@^2.1.0, tslib@^2.4.0: version "2.5.3" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913" integrity sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w== @@ -5915,6 +6620,11 @@ type-detect@4.0.8: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== +type-fest@^0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860" + integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== + type-fest@^0.20.2: version "0.20.2" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" @@ -5925,6 +6635,16 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.0, type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + type-is@^1.6.4, type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -5955,6 +6675,13 @@ uid@2.0.2: dependencies: "@lukeed/csprng" "^1.0.0" +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== + dependencies: + crypto-random-string "^2.0.0" + universalify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" @@ -5995,6 +6722,11 @@ uuid@9.0.0, uuid@^9.0.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + v8-compile-cache-lib@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" @@ -6009,6 +6741,14 @@ v8-to-istanbul@^9.0.1: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + validator@^13.7.0: version "13.9.0" resolved "https://registry.yarnpkg.com/validator/-/validator-13.9.0.tgz#33e7b85b604f3bbce9bb1a05d5c3e22e1c2ff855" @@ -6234,3 +6974,12 @@ yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zip-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.0.tgz#51dd326571544e36aa3f756430b313576dc8fc79" + integrity sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A== + dependencies: + archiver-utils "^2.1.0" + compress-commons "^4.1.0" + readable-stream "^3.6.0"