diff --git a/.circleci/config.yml b/.circleci/config.yml index 8fe8f1273..15d9c5c9f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -25,7 +25,7 @@ jobs: build: working_directory: ~/nest docker: - - image: circleci/node:16 + - image: cimg/node:16.18 steps: - checkout - *restore-cache @@ -38,14 +38,20 @@ jobs: e2e_tests: working_directory: ~/nest docker: - - image: circleci/node:16 + - image: cimg/node:16.18 steps: - checkout - *restore-cache - *install-deps - run: - name: E2E tests - command: yarn test:e2e + name: E2E tests (graphql) + command: yarn test:e2e:graphql + - run: + name: E2E tests (apollo) + command: yarn test:e2e:apollo + - run: + name: E2E tests (mercurius) + command: yarn test:e2e:mercurius workflows: version: 2 @@ -55,4 +61,3 @@ workflows: - e2e_tests: requires: - build - \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/Bug_report.yml b/.github/ISSUE_TEMPLATE/Bug_report.yml index 841e9d13f..faf32a644 100644 --- a/.github/ISSUE_TEMPLATE/Bug_report.yml +++ b/.github/ISSUE_TEMPLATE/Bug_report.yml @@ -56,7 +56,7 @@ body: required: true attributes: label: "Expected behavior" - description: "A clear and concise description of what you expected to happend (or code)" + description: "A clear and concise description of what you expected to happen (or code)" - type: markdown attributes: diff --git a/.github/ISSUE_TEMPLATE/Regression.yml b/.github/ISSUE_TEMPLATE/Regression.yml index eeb1f258a..c234d06f4 100644 --- a/.github/ISSUE_TEMPLATE/Regression.yml +++ b/.github/ISSUE_TEMPLATE/Regression.yml @@ -68,7 +68,7 @@ body: required: true attributes: label: "Expected behavior" - description: "A clear and concise description of what you expected to happend (or code)" + description: "A clear and concise description of what you expected to happen (or code)" - type: textarea attributes: diff --git a/.prettierignore b/.prettierignore index d4afd181f..37a473cfa 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,2 +1,5 @@ packages/**/tests/generated-definitions/*.ts -packages/**/tests/**/*.fixture.ts \ No newline at end of file +packages/**/tests/**/*.fixture.ts + +packages/**/tests/cases/**/*.ts +packages/**/tests/cases/**/*.ts diff --git a/LICENSE b/LICENSE index f188502b8..305bd8d7e 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ (The MIT License) -Copyright (c) Kamil Mysliwiec +Copyright (c) 2017-2022 Kamil Mysliwiec Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the diff --git a/README.md b/README.md index 263a542d9..e4c664ea0 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- Nest Logo + Nest Logo

A progressive Node.js framework for building efficient and scalable server-side applications.

diff --git a/lerna.json b/lerna.json index fadabea69..b8b85e01c 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "packages": [ "packages/*" ], - "version": "10.0.15", + "version": "10.1.4", "npmClient": "yarn", "useWorkspaces": true, "changelog": { diff --git a/package.json b/package.json index 80886e11c..e184936c2 100644 --- a/package.json +++ b/package.json @@ -20,44 +20,47 @@ "publish:next": "lerna publish --dist-tag next", "test:e2e": "lerna run test:e2e --parallel", "test:e2e:dev": "lerna run test:e2e:dev --parallel", + "test:e2e:apollo": "lerna run test:e2e --scope @nestjs/apollo --stream", + "test:e2e:graphql": "lerna run test:e2e --scope @nestjs/graphql --stream", + "test:e2e:mercurius": "lerna run test:e2e --scope @nestjs/mercurius --stream", "prepare": "husky install" }, "resolutions": { "graphql": "15.8.0" }, "devDependencies": { - "@commitlint/cli": "17.0.2", - "@commitlint/config-angular": "17.0.0", + "@commitlint/cli": "17.1.2", + "@commitlint/config-angular": "17.1.0", "@types/graphql": "14.5.0", - "@types/jest": "28.1.0", - "@types/node": "17.0.0", + "@types/jest": "29.2.0", + "@types/node": "18.11.5", "@types/node-fetch": "3.0.3", "@types/normalize-path": "3.0.0", "@types/ws": "8.5.3", - "@typescript-eslint/eslint-plugin": "5.27.0", - "@typescript-eslint/parser": "5.27.0", + "@typescript-eslint/eslint-plugin": "5.41.0", + "@typescript-eslint/parser": "5.41.0", "class-transformer": "0.5.1", "class-validator": "0.13.2", - "eslint": "8.16.0", + "eslint": "8.26.0", "eslint-config-prettier": "8.5.0", "eslint-plugin-import": "2.26.0", - "eslint-plugin-prettier": "4.0.0", + "eslint-plugin-prettier": "4.2.1", "graphql": "15.8.0", "graphql-subscriptions": "2.0.0", "husky": "8.0.1", - "jest": "28.1.0", - "lerna": "5.0.0", + "jest": "29.2.2", + "lerna": "6.0.1", "lerna-changelog": "2.2.0", - "lint-staged": "13.0.0", - "prettier": "2.6.2", + "lint-staged": "13.0.3", + "prettier": "2.7.1", "reflect-metadata": "0.1.13", - "release-it": "15.0.0", + "release-it": "15.5.0", "rimraf": "3.0.2", - "rxjs": "7.5.5", - "supertest": "6.2.3", - "ts-jest": "28.0.3", - "ts-node": "10.8.0", - "typescript": "4.7.2" + "rxjs": "7.5.7", + "supertest": "6.3.1", + "ts-jest": "29.0.3", + "ts-node": "10.9.1", + "typescript": "4.8.4" }, "changelog": { "labels": { diff --git a/packages/apollo/package.json b/packages/apollo/package.json index 8271d7b57..0f59ed00f 100644 --- a/packages/apollo/package.json +++ b/packages/apollo/package.json @@ -1,6 +1,6 @@ { "name": "@nestjs/apollo", - "version": "10.0.14", + "version": "10.1.4", "description": "Nest - modern, fast, powerful node.js web framework (@apollo)", "author": "Kamil Mysliwiec", "license": "MIT", @@ -15,26 +15,30 @@ "url": "git+https://github.com/nestjs/graphql.git" }, "scripts": { - "test:e2e": "jest --config ./tests/jest-e2e.ts --runInBand", + "test:e2e": "jest --config ./tests/jest-e2e.ts --runInBand && yarn test:e2e:fed2", + "test:e2e:fed2": "jest --config ./tests/jest-e2e-fed2.ts --runInBand", "test:e2e:dev": "jest --config ./tests/jest-e2e.ts --runInBand --watch" }, "bugs": { "url": "https://github.com/nestjs/graphql/issues" }, "devDependencies": { - "@apollo/gateway": "0.51.0", - "@nestjs/common": "8.4.6", - "@nestjs/core": "8.4.6", - "@nestjs/platform-express": "8.4.6", - "@nestjs/platform-fastify": "8.4.6", - "@nestjs/testing": "8.4.6", + "@apollo/gateway": "0.52.1", + "@apollo/gateway-v2": "npm:@apollo/gateway@2.1.4", + "@apollo/subgraph-v2": "npm:@apollo/subgraph@2.1.4", + "@nestjs/common": "8.4.7", + "@nestjs/core": "8.4.7", + "@nestjs/platform-express": "8.4.7", + "@nestjs/platform-fastify": "8.4.7", + "@nestjs/testing": "8.4.7", "apollo-cache-inmemory": "1.6.6", "apollo-client": "2.6.10", "apollo-link-ws": "1.0.20", - "apollo-server-core": "3.8.1", - "apollo-server-express": "3.8.1", - "apollo-server-fastify": "3.8.1", - "apollo-server-plugin-response-cache": "3.6.0" + "apollo-server-core": "3.10.3", + "apollo-server-express": "3.10.3", + "apollo-server-fastify": "3.10.3", + "apollo-server-plugin-response-cache": "3.7.1", + "graphql-16": "npm:graphql@16.6.0" }, "dependencies": { "iterall": "1.3.0", @@ -43,12 +47,13 @@ }, "peerDependencies": { "@apollo/gateway": "^0.44.1 || ^0.46.0 || ^0.48.0 || ^0.49.0 || ^0.50.0 || ^2.0.0", - "@nestjs/common": "^8.2.3", - "@nestjs/core": "^8.2.3", + "@nestjs/common": "^8.2.3 || ^9.0.0", + "@nestjs/core": "^8.2.3 || ^9.0.0", "@nestjs/graphql": "^10.0.0", "apollo-server-core": "^3.5.0", "apollo-server-express": "^3.5.0", - "apollo-server-fastify": "^3.5.0" + "apollo-server-fastify": "^3.5.0", + "graphql": "^15.8.0 || ^16.0.0" }, "peerDependenciesMeta": { "@apollo/gateway": { diff --git a/packages/apollo/tests/code-first-graphql-federation2/gateway/gateway.module.ts b/packages/apollo/tests/code-first-graphql-federation2/gateway/gateway.module.ts new file mode 100644 index 000000000..f63bff186 --- /dev/null +++ b/packages/apollo/tests/code-first-graphql-federation2/gateway/gateway.module.ts @@ -0,0 +1,22 @@ +import { IntrospectAndCompose } from '@apollo/gateway-v2'; +import { Module } from '@nestjs/common'; +import { GraphQLModule } from '@nestjs/graphql'; +import { ApolloGatewayDriver, ApolloGatewayDriverConfig } from '../../../lib'; + +@Module({ + imports: [ + GraphQLModule.forRoot({ + driver: ApolloGatewayDriver, + gateway: { + debug: false, + supergraphSdl: new IntrospectAndCompose({ + subgraphs: [ + { name: 'users', url: 'http://localhost:3001/graphql' }, + { name: 'posts', url: 'http://localhost:3002/graphql' }, + ], + }), + }, + }), + ], +}) +export class AppModule {} diff --git a/packages/apollo/tests/code-first-graphql-federation2/posts-service/federation-posts.module.ts b/packages/apollo/tests/code-first-graphql-federation2/posts-service/federation-posts.module.ts new file mode 100644 index 000000000..258715911 --- /dev/null +++ b/packages/apollo/tests/code-first-graphql-federation2/posts-service/federation-posts.module.ts @@ -0,0 +1,24 @@ +import { Module } from '@nestjs/common'; +import { GraphQLModule } from '@nestjs/graphql'; +import { ApolloServerPluginInlineTraceDisabled } from 'apollo-server-core'; +import { ApolloDriverConfig } from '../../../lib'; +import { ApolloFederationDriver } from '../../../lib/drivers'; +import { PostsModule } from './posts/posts.module'; +import { User } from './posts/user.entity'; + +@Module({ + imports: [ + GraphQLModule.forRoot({ + driver: ApolloFederationDriver, + autoSchemaFile: { + federation: 2, + }, + buildSchemaOptions: { + orphanedTypes: [User], + }, + plugins: [ApolloServerPluginInlineTraceDisabled()], + }), + PostsModule, + ], +}) +export class AppModule {} diff --git a/packages/apollo/tests/code-first-graphql-federation2/posts-service/posts/post-type.enum.ts b/packages/apollo/tests/code-first-graphql-federation2/posts-service/posts/post-type.enum.ts new file mode 100644 index 000000000..4dada0208 --- /dev/null +++ b/packages/apollo/tests/code-first-graphql-federation2/posts-service/posts/post-type.enum.ts @@ -0,0 +1,10 @@ +import { registerEnumType } from '@nestjs/graphql'; + +export enum PostType { + IMAGE = 'IMAGE', + TEXT = 'TEXT', +} + +registerEnumType(PostType, { + name: 'PostType', +}); diff --git a/packages/apollo/tests/code-first-graphql-federation2/posts-service/posts/posts.entity.ts b/packages/apollo/tests/code-first-graphql-federation2/posts-service/posts/posts.entity.ts new file mode 100644 index 000000000..92eca5657 --- /dev/null +++ b/packages/apollo/tests/code-first-graphql-federation2/posts-service/posts/posts.entity.ts @@ -0,0 +1,23 @@ +import { Directive, Field, ID, ObjectType } from '@nestjs/graphql'; +import { PostType } from './post-type.enum'; + +@ObjectType() +@Directive('@key(fields: "id")') +export class Post { + @Field(() => ID) + id: string; + + @Field() + title: string; + + @Field() + body: string; + + userId: string; + + @Field({ nullable: true }) + publishDate: Date; + + @Field(() => PostType, { nullable: true }) + type: PostType; +} diff --git a/packages/apollo/tests/code-first-graphql-federation2/posts-service/posts/posts.module.ts b/packages/apollo/tests/code-first-graphql-federation2/posts-service/posts/posts.module.ts new file mode 100644 index 000000000..9fa531c4b --- /dev/null +++ b/packages/apollo/tests/code-first-graphql-federation2/posts-service/posts/posts.module.ts @@ -0,0 +1,9 @@ +import { Module } from '@nestjs/common'; +import { PostsResolvers } from './posts.resolvers'; +import { UsersResolvers } from './users.resolvers'; +import { PostsService } from './posts.service'; + +@Module({ + providers: [PostsResolvers, PostsService, UsersResolvers], +}) +export class PostsModule {} diff --git a/packages/apollo/tests/code-first-graphql-federation2/posts-service/posts/posts.resolvers.ts b/packages/apollo/tests/code-first-graphql-federation2/posts-service/posts/posts.resolvers.ts new file mode 100644 index 000000000..e3e870487 --- /dev/null +++ b/packages/apollo/tests/code-first-graphql-federation2/posts-service/posts/posts.resolvers.ts @@ -0,0 +1,42 @@ +import { + Args, + ID, + Mutation, + Parent, + Query, + ResolveField, + Resolver, +} from '@nestjs/graphql'; +import { PostType } from './post-type.enum'; +import { Post } from './posts.entity'; +import { PostsService } from './posts.service'; +import { User } from './user.entity'; + +@Resolver(Post) +export class PostsResolvers { + constructor(private readonly postsService: PostsService) {} + + @Query(() => [Post]) + getPosts( + @Args('type', { nullable: true, type: () => PostType }) type: PostType, + ) { + if (type) { + return this.postsService.findByType(type); + } else { + return this.postsService.findAll(); + } + } + + @Mutation(() => Post) + publishPost( + @Args('id', { type: () => ID }) id, + @Args('publishDate') publishDate: Date, + ) { + return this.postsService.publish(id, publishDate); + } + + @ResolveField('user', () => User, { nullable: true }) + getUser(@Parent() post: Post) { + return { __typename: 'User', id: post.userId }; + } +} diff --git a/packages/apollo/tests/code-first-graphql-federation2/posts-service/posts/posts.service.ts b/packages/apollo/tests/code-first-graphql-federation2/posts-service/posts/posts.service.ts new file mode 100644 index 000000000..a9e5b9df8 --- /dev/null +++ b/packages/apollo/tests/code-first-graphql-federation2/posts-service/posts/posts.service.ts @@ -0,0 +1,39 @@ +import { Injectable } from '@nestjs/common'; +import { Post } from './posts.entity'; +import { PostType } from './post-type.enum'; + +@Injectable() +export class PostsService { + private readonly posts: Post[] = [ + { + id: '1', + title: 'HELLO WORLD', + body: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', + userId: '5', + publishDate: new Date(0), + type: PostType.TEXT, + }, + ]; + + findAll() { + return Promise.resolve(this.posts); + } + + findById(id: string) { + return Promise.resolve(this.posts.find((p) => p.id === id)); + } + + findByUserId(id: string) { + return Promise.resolve(this.posts.filter((p) => p.userId === id)); + } + + findByType(type: PostType) { + return Promise.resolve(this.posts.filter((p) => p.type === type)); + } + + async publish(id: string, publishDate: Date) { + const post = await this.findById(id); + post.publishDate = publishDate; + return post; + } +} diff --git a/packages/apollo/tests/code-first-graphql-federation2/posts-service/posts/user.entity.ts b/packages/apollo/tests/code-first-graphql-federation2/posts-service/posts/user.entity.ts new file mode 100644 index 000000000..32f8dc0e0 --- /dev/null +++ b/packages/apollo/tests/code-first-graphql-federation2/posts-service/posts/user.entity.ts @@ -0,0 +1,8 @@ +import { Directive, Field, ID, ObjectType } from '@nestjs/graphql'; + +@ObjectType() +@Directive('@key(fields: "id")') +export class User { + @Field(() => ID) + id: string; +} diff --git a/packages/apollo/tests/code-first-graphql-federation2/posts-service/posts/users.resolvers.ts b/packages/apollo/tests/code-first-graphql-federation2/posts-service/posts/users.resolvers.ts new file mode 100644 index 000000000..038eea3ea --- /dev/null +++ b/packages/apollo/tests/code-first-graphql-federation2/posts-service/posts/users.resolvers.ts @@ -0,0 +1,14 @@ +import { ResolveField, Resolver } from '@nestjs/graphql'; +import { Post } from './posts.entity'; +import { PostsService } from './posts.service'; +import { User } from './user.entity'; + +@Resolver(User) +export class UsersResolvers { + constructor(private readonly postsService: PostsService) {} + + @ResolveField('posts', () => [Post]) + getPosts(reference: any) { + return this.postsService.findByUserId(reference.id); + } +} diff --git a/packages/apollo/tests/code-first-graphql-federation2/users-service/federation-users.module.ts b/packages/apollo/tests/code-first-graphql-federation2/users-service/federation-users.module.ts new file mode 100644 index 000000000..52e8c9b56 --- /dev/null +++ b/packages/apollo/tests/code-first-graphql-federation2/users-service/federation-users.module.ts @@ -0,0 +1,20 @@ +import { Module } from '@nestjs/common'; +import { GraphQLModule } from '@nestjs/graphql'; +import { ApolloServerPluginInlineTraceDisabled } from 'apollo-server-core'; +import { ApolloDriverConfig } from '../../../lib'; +import { ApolloFederationDriver } from '../../../lib/drivers'; +import { UsersModule } from './users/users.module'; + +@Module({ + imports: [ + GraphQLModule.forRoot({ + driver: ApolloFederationDriver, + autoSchemaFile: { + federation: 2, + }, + plugins: [ApolloServerPluginInlineTraceDisabled()], + }), + UsersModule, + ], +}) +export class AppModule {} diff --git a/packages/apollo/tests/code-first-graphql-federation2/users-service/users/users.entity.ts b/packages/apollo/tests/code-first-graphql-federation2/users-service/users/users.entity.ts new file mode 100644 index 000000000..da6e24180 --- /dev/null +++ b/packages/apollo/tests/code-first-graphql-federation2/users-service/users/users.entity.ts @@ -0,0 +1,11 @@ +import { Directive, Field, ID, ObjectType } from '@nestjs/graphql'; + +@ObjectType() +@Directive('@key(fields: "id")') +export class User { + @Field(() => ID) + id: string; + + @Field() + name: string; +} diff --git a/packages/apollo/tests/code-first-graphql-federation2/users-service/users/users.module.ts b/packages/apollo/tests/code-first-graphql-federation2/users-service/users/users.module.ts new file mode 100644 index 000000000..d71042e83 --- /dev/null +++ b/packages/apollo/tests/code-first-graphql-federation2/users-service/users/users.module.ts @@ -0,0 +1,8 @@ +import { Module } from '@nestjs/common'; +import { UsersResolvers } from './users.resolvers'; +import { UsersService } from './users.service'; + +@Module({ + providers: [UsersResolvers, UsersService], +}) +export class UsersModule {} diff --git a/packages/apollo/tests/code-first-graphql-federation2/users-service/users/users.resolvers.ts b/packages/apollo/tests/code-first-graphql-federation2/users-service/users/users.resolvers.ts new file mode 100644 index 000000000..284c0ec5a --- /dev/null +++ b/packages/apollo/tests/code-first-graphql-federation2/users-service/users/users.resolvers.ts @@ -0,0 +1,18 @@ +import { Args, ID, Query, Resolver, ResolveReference } from '@nestjs/graphql'; +import { User } from './users.entity'; +import { UsersService } from './users.service'; + +@Resolver(User) +export class UsersResolvers { + constructor(private readonly usersService: UsersService) {} + + @Query(() => User, { nullable: true }) + getUser(@Args('id', { type: () => ID }) id: string) { + return this.usersService.findById(id); + } + + @ResolveReference() + resolveReference(reference: { __typename: string; id: string }) { + return this.usersService.findById(reference.id); + } +} diff --git a/packages/apollo/tests/code-first-graphql-federation2/users-service/users/users.service.ts b/packages/apollo/tests/code-first-graphql-federation2/users-service/users/users.service.ts new file mode 100644 index 000000000..f5029f9b8 --- /dev/null +++ b/packages/apollo/tests/code-first-graphql-federation2/users-service/users/users.service.ts @@ -0,0 +1,16 @@ +import { Injectable } from '@nestjs/common'; +import { User } from './users.entity'; + +@Injectable() +export class UsersService { + private readonly users: User[] = [ + { + id: '5', + name: 'GraphQL', + }, + ]; + + findById(id: string) { + return Promise.resolve(this.users.find((p) => p.id === id)); + } +} diff --git a/packages/apollo/tests/code-first/other/sample-scalar.ts b/packages/apollo/tests/code-first/other/sample-scalar.ts new file mode 100644 index 000000000..efe00af20 --- /dev/null +++ b/packages/apollo/tests/code-first/other/sample-scalar.ts @@ -0,0 +1,30 @@ +import { CustomScalar, Scalar } from '@nestjs/graphql'; +import { Kind } from 'graphql'; + +@Scalar('SampleScalar') +export class SampleScalar implements CustomScalar { + description = 'A sample scalar'; + + parseValue(value: unknown): string { + if (typeof value !== 'string') { + throw new Error(`Expected a string, but got ${value}.`); + } + return value; + } + + serialize(obj: unknown): string { + if (typeof obj !== 'string') { + throw new Error(`Expected a string, but got ${obj}.`); + } + return obj; + } + + parseLiteral(ast: any): string { + if (ast.kind === Kind.STRING) { + return ast.value; + } + throw new Error( + `Expected value of kind 'STRING', but got kind '${ast.kind}'.`, + ); + } +} diff --git a/packages/apollo/tests/code-first/recipes/ingredients.resolver.ts b/packages/apollo/tests/code-first/recipes/ingredients.resolver.ts new file mode 100644 index 000000000..1c1890c4b --- /dev/null +++ b/packages/apollo/tests/code-first/recipes/ingredients.resolver.ts @@ -0,0 +1,20 @@ +import { ID, ResolveField, Resolver, Parent } from '@nestjs/graphql'; +import { Ingredient } from './models/ingredient'; + +@Resolver((of) => Ingredient) +export class IngredientsResolver { + @ResolveField(() => ID) + id(@Parent() { id }: Ingredient): string { + return id; + } + + @ResolveField() + name(@Parent() { name }: Ingredient): string { + return name; + } + + @ResolveField() + baseName(@Parent() { name }: Ingredient): string { + return name; + } +} diff --git a/packages/apollo/tests/code-first/recipes/models/ingredient.ts b/packages/apollo/tests/code-first/recipes/models/ingredient.ts index 41945c4fd..fa9ff9bdb 100644 --- a/packages/apollo/tests/code-first/recipes/models/ingredient.ts +++ b/packages/apollo/tests/code-first/recipes/models/ingredient.ts @@ -1,9 +1,28 @@ import { Field, ID, ObjectType } from '@nestjs/graphql'; -@ObjectType() -export class Ingredient { - @Field((type) => ID) + +class NodeIngredient { + // This does not apply since the class is not decorated with the @ObjectType decorator + @Field((type) => ID, { + defaultValue: 'Not applied', + description: 'Not applied', + deprecationReason: 'Not applied', + }) id: string; +} + +@ObjectType({ isAbstract: true }) +class BaseIngredient extends NodeIngredient { + @Field({ + defaultValue: 'default', + deprecationReason: 'is deprecated', + description: 'ingredient base name', + nullable: true, + }) + baseName: string; +} +@ObjectType() +export class Ingredient extends BaseIngredient { @Field({ defaultValue: 'default', deprecationReason: 'is deprecated', @@ -13,6 +32,7 @@ export class Ingredient { name: string; constructor(ingredient: Partial) { + super(); Object.assign(this, ingredient); } } diff --git a/packages/apollo/tests/code-first/recipes/recipes.module.ts b/packages/apollo/tests/code-first/recipes/recipes.module.ts index 324a9222c..cb236e149 100644 --- a/packages/apollo/tests/code-first/recipes/recipes.module.ts +++ b/packages/apollo/tests/code-first/recipes/recipes.module.ts @@ -2,12 +2,14 @@ import { Module } from '@nestjs/common'; import { APP_FILTER } from '@nestjs/core'; import { UnauthorizedFilter } from '../common/filters/unauthorized.filter'; import { DateScalar } from '../common/scalars/date.scalar'; +import { IngredientsResolver } from './ingredients.resolver'; import { IRecipesResolver } from './irecipes.resolver'; import { RecipesResolver } from './recipes.resolver'; import { RecipesService } from './recipes.service'; @Module({ providers: [ + IngredientsResolver, RecipesResolver, IRecipesResolver, RecipesService, diff --git a/packages/apollo/tests/e2e/code-first-graphql-federation2.fed2-spec.ts b/packages/apollo/tests/e2e/code-first-graphql-federation2.fed2-spec.ts new file mode 100644 index 000000000..37f578a29 --- /dev/null +++ b/packages/apollo/tests/e2e/code-first-graphql-federation2.fed2-spec.ts @@ -0,0 +1,184 @@ +import { INestApplication } from '@nestjs/common'; +import { Test } from '@nestjs/testing'; +import * as request from 'supertest'; +import { AppModule as PostsModule } from '../code-first-graphql-federation2/posts-service/federation-posts.module'; +import { AppModule as UsersModule } from '../code-first-graphql-federation2/users-service/federation-users.module'; + +describe('Code First GraphQL Federation 2', () => { + let app: INestApplication; + + describe('UsersService', () => { + beforeEach(async () => { + const module = await Test.createTestingModule({ + imports: [UsersModule], + }).compile(); + + app = module.createNestApplication(); + await app.init(); + }); + + it(`should return query result`, () => { + return request(app.getHttpServer()) + .post('/graphql') + .send({ + operationName: null, + variables: {}, + query: ` + { + getUser(id: "5") { + id, + name, + } + }`, + }) + .expect(200, { + data: { + getUser: { + id: '5', + name: 'GraphQL', + }, + }, + }); + }); + + it('should resolve references', () => { + return request(app.getHttpServer()) + .post('/graphql') + .send({ + variables: { + representations: [ + { + __typename: 'User', + id: '5', + }, + ], + }, + query: ` + query ($representations: [_Any!]!) { + _entities(representations: $representations) { + __typename + ... on User { + id + name + } + } + }`, + }) + .expect(200, { + data: { + _entities: [ + { + __typename: 'User', + id: '5', + name: 'GraphQL', + }, + ], + }, + }); + }); + }); + + describe('PostsService', () => { + beforeEach(async () => { + const module = await Test.createTestingModule({ + imports: [PostsModule], + }).compile(); + + app = module.createNestApplication(); + await app.init(); + }); + + it(`should return query result`, () => { + return request(app.getHttpServer()) + .post('/graphql') + .send({ + operationName: null, + variables: {}, + query: ` + { + getPosts { + id, + title, + body, + } + }`, + }) + .expect(200, { + data: { + getPosts: [ + { + id: '1', + title: 'HELLO WORLD', + body: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', + }, + ], + }, + }); + }); + + it('should return a stripped reference', () => { + return request(app.getHttpServer()) + .post('/graphql') + .send({ + operationName: null, + variables: {}, + query: ` + { + getPosts { + id, + title, + body, + user { + id + } + } + }`, + }) + .expect(200, { + data: { + getPosts: [ + { + id: '1', + title: 'HELLO WORLD', + body: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', + user: { + id: '5', + }, + }, + ], + }, + }); + }); + + it('should accept enum as query input', () => { + return request(app.getHttpServer()) + .post('/graphql') + .send({ + variables: { + postType: 'TEXT', + }, + query: ` + query ($postType: PostType!) { + getPosts(type: $postType) { + id + type + } + }`, + }) + .expect(200, { + data: { + getPosts: [ + { + id: '1', + type: 'TEXT', + }, + ], + }, + }); + }); + }); + + afterEach(async () => { + await app.close(); + }); +}); diff --git a/packages/apollo/tests/e2e/code-first-graphql-gateway2.fed2-spec.ts b/packages/apollo/tests/e2e/code-first-graphql-gateway2.fed2-spec.ts new file mode 100644 index 000000000..85b73c08d --- /dev/null +++ b/packages/apollo/tests/e2e/code-first-graphql-gateway2.fed2-spec.ts @@ -0,0 +1,113 @@ +import { INestApplication } from '@nestjs/common'; +import { Test } from '@nestjs/testing'; +import * as request from 'supertest'; +import { AppModule as GatewayModule } from '../code-first-graphql-federation2/gateway/gateway.module'; +import { AppModule as PostsModule } from '../code-first-graphql-federation2/posts-service/federation-posts.module'; +import { AppModule as UsersModule } from '../code-first-graphql-federation2/users-service/federation-users.module'; + +describe('GraphQL Gateway with Federation 2', () => { + let postsApp: INestApplication; + let usersApp: INestApplication; + let gatewayApp: INestApplication; + + beforeAll(async () => { + const usersModule = await Test.createTestingModule({ + imports: [UsersModule], + }).compile(); + + usersApp = usersModule.createNestApplication(); + await usersApp.listen(3001); + + const postsModule = await Test.createTestingModule({ + imports: [PostsModule], + }).compile(); + + postsApp = postsModule.createNestApplication(); + await postsApp.listen(3002); + + const gatewayModule = await Test.createTestingModule({ + imports: [GatewayModule], + }).compile(); + + gatewayApp = gatewayModule.createNestApplication(); + await gatewayApp.init(); + }); + + it(`should run lookup across boundaries`, () => { + return request(gatewayApp.getHttpServer()) + .post('/graphql') + .send({ + operationName: null, + variables: {}, + query: ` + { + getPosts { + id, + title, + body, + user { + id, + name, + } + } + }`, + }) + .expect(200, { + data: { + getPosts: [ + { + id: '1', + title: 'HELLO WORLD', + body: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', + user: { + id: '5', + name: 'GraphQL', + }, + }, + ], + }, + }); + }); + + it(`should run reverse lookup across boundaries`, () => { + return request(gatewayApp.getHttpServer()) + .post('/graphql') + .send({ + operationName: null, + variables: {}, + query: ` + { + getUser(id: "5") { + id, + name, + posts { + id, + title, + body, + } + } + }`, + }) + .expect(200, { + data: { + getUser: { + id: '5', + name: 'GraphQL', + posts: [ + { + id: '1', + title: 'HELLO WORLD', + body: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', + }, + ], + }, + }, + }); + }); + + afterAll(async () => { + await postsApp.close(); + await usersApp.close(); + await gatewayApp.close(); + }); +}); diff --git a/packages/apollo/tests/e2e/code-first-schema.spec.ts b/packages/apollo/tests/e2e/code-first-schema.spec.ts index 3b337bb57..38090ce9b 100644 --- a/packages/apollo/tests/e2e/code-first-schema.spec.ts +++ b/packages/apollo/tests/e2e/code-first-schema.spec.ts @@ -17,6 +17,8 @@ import { DirectionsResolver } from '../code-first/directions/directions.resolver import { SampleOrphanedEnum } from '../code-first/enums/sample-orphaned.enum'; import { AbstractResolver } from '../code-first/other/abstract.resolver'; import { SampleOrphanedType } from '../code-first/other/sample-orphaned.type'; +import { SampleScalar } from '../code-first/other/sample-scalar'; +import { IngredientsResolver } from '../code-first/recipes/ingredients.resolver'; import { IRecipesResolver } from '../code-first/recipes/irecipes.resolver'; import { Recipe } from '../code-first/recipes/models/recipe'; import { RecipesResolver } from '../code-first/recipes/recipes.resolver'; @@ -48,11 +50,13 @@ describe('Code-first - schema factory', () => { beforeAll(async () => { schema = await schemaFactory.create( [ + IngredientsResolver, RecipesResolver, DirectionsResolver, AbstractResolver, IRecipesResolver, ], + [SampleScalar], { orphanedTypes: [SampleOrphanedType, SampleOrphanedEnum] }, ); @@ -68,6 +72,21 @@ describe('Code-first - schema factory', () => { printedSchemaSnapshot, ); }); + it('should add scalar to schema', () => { + // makeExecutableSchema throws if a resolver is defined without being + // present in the schema. We should include scalars even if they're not + // used by any field (yet) + const type = introspectionSchema.types.find( + ({ name }) => name === 'SampleScalar', + ); + expect(type).toEqual( + expect.objectContaining({ + description: 'A sample scalar', + kind: 'SCALAR', + name: 'SampleScalar', + }), + ); + }); it('should define 5 queries', async () => { const type = getQuery(introspectionSchema); @@ -212,6 +231,18 @@ describe('Code-first - schema factory', () => { ofType: null, }, }, + { + args: [], + deprecationReason: 'is deprecated', + description: 'ingredient base name', + isDeprecated: true, + name: 'baseName', + type: { + kind: TypeKind.SCALAR, + name: 'String', + ofType: null, + }, + }, ]), }), ); diff --git a/packages/apollo/tests/e2e/generated-definitions.spec.ts b/packages/apollo/tests/e2e/generated-definitions.spec.ts index f1c30bf54..ce614cc9d 100644 --- a/packages/apollo/tests/e2e/generated-definitions.spec.ts +++ b/packages/apollo/tests/e2e/generated-definitions.spec.ts @@ -339,4 +339,23 @@ describe('Generated Definitions', () => { afterEach(async () => { await app.close(); }); + + it('should generate for a federated graph with partial query definition', async () => { + const outputFile = generatedDefinitions( + 'federation-partial-query.test-definitions.ts', + ); + const factory = new GraphQLFederationDefinitionsFactory(); + await factory.generate({ + typePaths: [generatedDefinitions('federation-partial-query.graphql')], + path: outputFile, + outputAs: 'interface', + }); + + expect( + await readFile( + generatedDefinitions('federation-partial-query.fixture.ts'), + 'utf8', + ), + ).toBe(await readFile(outputFile, 'utf8')); + }); }); diff --git a/packages/apollo/tests/generated-definitions/array-property.fixture.ts b/packages/apollo/tests/generated-definitions/array-property.fixture.ts index 909289a2e..710990eae 100644 --- a/packages/apollo/tests/generated-definitions/array-property.fixture.ts +++ b/packages/apollo/tests/generated-definitions/array-property.fixture.ts @@ -7,6 +7,7 @@ /* tslint:disable */ /* eslint-disable */ + export interface Foo { a: string[]; b?: Nullable; diff --git a/packages/apollo/tests/generated-definitions/custom-header.fixture.ts b/packages/apollo/tests/generated-definitions/custom-header.fixture.ts index 395630c1e..f961bab4a 100644 --- a/packages/apollo/tests/generated-definitions/custom-header.fixture.ts +++ b/packages/apollo/tests/generated-definitions/custom-header.fixture.ts @@ -9,6 +9,5 @@ /* eslint-disable */ /* Put anything here you like */ - export type CustomDate = any; type Nullable = T | null; diff --git a/packages/apollo/tests/generated-definitions/enum.fixture.ts b/packages/apollo/tests/generated-definitions/enum.fixture.ts index 1869742e5..822aef612 100644 --- a/packages/apollo/tests/generated-definitions/enum.fixture.ts +++ b/packages/apollo/tests/generated-definitions/enum.fixture.ts @@ -7,6 +7,7 @@ /* tslint:disable */ /* eslint-disable */ + export enum Foobar { Foo = "Foo", Bar = "Bar", diff --git a/packages/apollo/tests/generated-definitions/federation-partial-query.fixture.ts b/packages/apollo/tests/generated-definitions/federation-partial-query.fixture.ts new file mode 100644 index 000000000..b7b47b1e1 --- /dev/null +++ b/packages/apollo/tests/generated-definitions/federation-partial-query.fixture.ts @@ -0,0 +1,15 @@ + +/* + * ------------------------------------------------------- + * THIS FILE WAS AUTOMATICALLY GENERATED (DO NOT MODIFY) + * ------------------------------------------------------- + */ + +/* tslint:disable */ +/* eslint-disable */ + +export interface IQuery { + foo(): Nullable | Promise>; +} + +type Nullable = T | null; diff --git a/packages/apollo/tests/generated-definitions/federation-partial-query.graphql b/packages/apollo/tests/generated-definitions/federation-partial-query.graphql new file mode 100644 index 000000000..d6e397fea --- /dev/null +++ b/packages/apollo/tests/generated-definitions/federation-partial-query.graphql @@ -0,0 +1,3 @@ +extend type Query { + foo: Boolean +} diff --git a/packages/apollo/tests/generated-definitions/federation-typedef.fixture.ts b/packages/apollo/tests/generated-definitions/federation-typedef.fixture.ts index 0f9283141..23f37181a 100644 --- a/packages/apollo/tests/generated-definitions/federation-typedef.fixture.ts +++ b/packages/apollo/tests/generated-definitions/federation-typedef.fixture.ts @@ -7,6 +7,7 @@ /* tslint:disable */ /* eslint-disable */ + export enum Animal { DOG = "DOG", CAT = "CAT" diff --git a/packages/apollo/tests/generated-definitions/federation.fixture.ts b/packages/apollo/tests/generated-definitions/federation.fixture.ts index 84eead0e3..66cc096d2 100644 --- a/packages/apollo/tests/generated-definitions/federation.fixture.ts +++ b/packages/apollo/tests/generated-definitions/federation.fixture.ts @@ -7,6 +7,7 @@ /* tslint:disable */ /* eslint-disable */ + export enum Category { POST = "POST" } diff --git a/packages/apollo/tests/generated-definitions/interface-property.fixture.ts b/packages/apollo/tests/generated-definitions/interface-property.fixture.ts index 5409ffbe5..6b4874344 100644 --- a/packages/apollo/tests/generated-definitions/interface-property.fixture.ts +++ b/packages/apollo/tests/generated-definitions/interface-property.fixture.ts @@ -7,6 +7,7 @@ /* tslint:disable */ /* eslint-disable */ + export interface Bar { id: number; } diff --git a/packages/apollo/tests/generated-definitions/mutation.fixture.ts b/packages/apollo/tests/generated-definitions/mutation.fixture.ts index 4fde83959..d70f6f741 100644 --- a/packages/apollo/tests/generated-definitions/mutation.fixture.ts +++ b/packages/apollo/tests/generated-definitions/mutation.fixture.ts @@ -7,6 +7,7 @@ /* tslint:disable */ /* eslint-disable */ + export interface Cat { id: number; } diff --git a/packages/apollo/tests/generated-definitions/query-skip-args.fixture.ts b/packages/apollo/tests/generated-definitions/query-skip-args.fixture.ts index 8790d6183..0ad8b3e09 100644 --- a/packages/apollo/tests/generated-definitions/query-skip-args.fixture.ts +++ b/packages/apollo/tests/generated-definitions/query-skip-args.fixture.ts @@ -7,6 +7,7 @@ /* tslint:disable */ /* eslint-disable */ + export interface Cat { id: number; } diff --git a/packages/apollo/tests/generated-definitions/query.fixture.ts b/packages/apollo/tests/generated-definitions/query.fixture.ts index de694988c..fab3bf5b8 100644 --- a/packages/apollo/tests/generated-definitions/query.fixture.ts +++ b/packages/apollo/tests/generated-definitions/query.fixture.ts @@ -7,6 +7,7 @@ /* tslint:disable */ /* eslint-disable */ + export interface Cat { id: number; } diff --git a/packages/apollo/tests/generated-definitions/simple-type.fixture.ts b/packages/apollo/tests/generated-definitions/simple-type.fixture.ts index 1d1709210..72cfc81c9 100644 --- a/packages/apollo/tests/generated-definitions/simple-type.fixture.ts +++ b/packages/apollo/tests/generated-definitions/simple-type.fixture.ts @@ -7,6 +7,7 @@ /* tslint:disable */ /* eslint-disable */ + export interface Cat { id: number; name: string; diff --git a/packages/apollo/tests/generated-definitions/typename.fixture.ts b/packages/apollo/tests/generated-definitions/typename.fixture.ts index 0d6ff8e67..b116f2368 100644 --- a/packages/apollo/tests/generated-definitions/typename.fixture.ts +++ b/packages/apollo/tests/generated-definitions/typename.fixture.ts @@ -7,6 +7,7 @@ /* tslint:disable */ /* eslint-disable */ + export interface Cat { __typename?: 'Cat'; id: number; diff --git a/packages/apollo/tests/jest-e2e-fed2.ts b/packages/apollo/tests/jest-e2e-fed2.ts new file mode 100644 index 000000000..01fc2aae4 --- /dev/null +++ b/packages/apollo/tests/jest-e2e-fed2.ts @@ -0,0 +1,34 @@ +import type { Config } from '@jest/types'; +import { pathsToModuleNameMapper } from 'ts-jest'; +import { compilerOptions } from '../tsconfig.spec.json'; + +const moduleNameMapper = pathsToModuleNameMapper(compilerOptions.paths, { + prefix: '/', +}); + +const config: Config.InitialOptions = { + moduleFileExtensions: ['js', 'json', 'ts'], + rootDir: '../.', + testRegex: '.fed2-spec.ts$', + moduleNameMapper: { + ...moduleNameMapper, + '^@apollo/subgraph$': '/../../node_modules/@apollo/subgraph-v2', + '^@apollo/subgraph/(.*)$': + '/../../node_modules/@apollo/subgraph-v2/$1', + '^@apollo/gateway$': '/../../node_modules/@apollo/gateway-v2', + '^@apollo/gateway/(.*)$': + '/../../node_modules/@apollo/gateway-v2/$1', + '^graphql$': '/../../node_modules/graphql-16', + '^graphql/(.*)$': '/../../node_modules/graphql-16/$1', + }, + transform: { + '^.+\\.(t|j)s$': [ + 'ts-jest', + { tsconfig: '/tsconfig.spec.json', isolatedModules: true }, + ], + }, + coverageDirectory: '../coverage', + testEnvironment: 'node', +}; + +export default config; diff --git a/packages/apollo/tests/jest-e2e.ts b/packages/apollo/tests/jest-e2e.ts index c2b5bf072..e117c0c30 100644 --- a/packages/apollo/tests/jest-e2e.ts +++ b/packages/apollo/tests/jest-e2e.ts @@ -10,17 +10,16 @@ const config: Config.InitialOptions = { moduleFileExtensions: ['js', 'json', 'ts'], rootDir: '../.', testRegex: '.spec.ts$', + testPathIgnorePatterns: ['.fed([1-9]).spec.ts$'], moduleNameMapper, transform: { - '^.+\\.(t|j)s$': 'ts-jest', + '^.+\\.(t|j)s$': [ + 'ts-jest', + { tsconfig: '/tsconfig.spec.json', isolatedModules: true }, + ], }, coverageDirectory: '../coverage', testEnvironment: 'node', - globals: { - 'ts-jest': { - tsconfig: '/tsconfig.spec.json', - }, - }, }; export default config; diff --git a/packages/apollo/tests/subscriptions/compat.spec.ts b/packages/apollo/tests/subscriptions/compat.spec.ts index 22129a856..7e81612cb 100644 --- a/packages/apollo/tests/subscriptions/compat.spec.ts +++ b/packages/apollo/tests/subscriptions/compat.spec.ts @@ -169,7 +169,7 @@ describe('Use graphql-ws + subscriptions-transport-ws', () => { try { await wsClient?.dispose(); } catch {} - await subWsClient?.close(); + subWsClient?.close(); await app.close(); jest.clearAllMocks(); }); diff --git a/packages/apollo/tests/utils/printed-schema.snapshot.ts b/packages/apollo/tests/utils/printed-schema.snapshot.ts index d851c5dc7..5d8f579fd 100644 --- a/packages/apollo/tests/utils/printed-schema.snapshot.ts +++ b/packages/apollo/tests/utils/printed-schema.snapshot.ts @@ -40,17 +40,19 @@ type SampleOrphanedType { averageRating: Float! } -type Category { - name: String! - description: String! - tags: [String!]! -} - type Ingredient { - id: ID! + """ingredient base name""" + baseName: String @deprecated(reason: "is deprecated") """ingredient name""" name: String @deprecated(reason: "is deprecated") + id: ID! +} + +type Category { + name: String! + description: String! + tags: [String!]! } """orphaned enum""" @@ -61,6 +63,9 @@ enum SampleOrphanedEnum { White } +"""A sample scalar""" +scalar SampleScalar + type Query { """get recipe by id""" recipe( @@ -141,6 +146,8 @@ interface IRecipe { } type Ingredient { + """ingredient base name""" + baseName: String @deprecated(reason: "is deprecated") id: ID! """ingredient name""" diff --git a/packages/graphql/lib/federation/graphql-federation-definitions.factory.ts b/packages/graphql/lib/federation/graphql-federation-definitions.factory.ts index e54a25bd5..c005bcf65 100644 --- a/packages/graphql/lib/federation/graphql-federation-definitions.factory.ts +++ b/packages/graphql/lib/federation/graphql-federation-definitions.factory.ts @@ -3,6 +3,7 @@ import { gql } from 'graphql-tag'; import { DefinitionsGeneratorOptions } from '../graphql-ast.explorer'; import { GraphQLDefinitionsFactory } from '../graphql-definitions.factory'; import { extend } from '../utils'; +import { mergeTypeDefs } from '@graphql-tools/merge'; export class GraphQLFederationDefinitionsFactory extends GraphQLDefinitionsFactory { protected async exploreAndEmit( @@ -35,9 +36,20 @@ export class GraphQLFederationDefinitionsFactory extends GraphQLDefinitionsFacto resolvers: {}, }, ]); + + // "buildSubgraphSchema" generates an empty Query definition if there is the `extend type Query` statement + // This leads to duplicated IQuery interfaces + // see: https://github.com//issues/2344 + const mergedDefinition = mergeTypeDefs([printSubgraphSchema(schema)], { + useSchemaDefinition: false, + throwOnConflict: true, + commentDescriptions: true, + reverseDirectives: true, + }); + const tsFile = await this.gqlAstExplorer.explore( gql` - ${printSubgraphSchema(schema)} + ${mergedDefinition} `, path, outputAs, diff --git a/packages/graphql/lib/federation/graphql-federation.factory.ts b/packages/graphql/lib/federation/graphql-federation.factory.ts index b24d5b94b..ff4c856ee 100644 --- a/packages/graphql/lib/federation/graphql-federation.factory.ts +++ b/packages/graphql/lib/federation/graphql-federation.factory.ts @@ -1,4 +1,5 @@ import { mergeSchemas } from '@graphql-tools/schema'; +import { printSchemaWithDirectives } from '@graphql-tools/utils'; import { Injectable } from '@nestjs/common'; import { loadPackage } from '@nestjs/common/utils/load-package.util'; import { isString } from '@nestjs/common/utils/shared.utils'; @@ -25,10 +26,19 @@ import { gql } from 'graphql-tag'; import { forEach, isEmpty } from 'lodash'; import { GraphQLSchemaBuilder } from '../graphql-schema.builder'; import { GraphQLSchemaHost } from '../graphql-schema.host'; -import { GqlModuleOptions, BuildFederatedSchemaOptions } from '../interfaces'; +import { + AutoSchemaFileValue, + BuildFederatedSchemaOptions, + FederationConfig, + FederationVersion, + GqlModuleOptions, +} from '../interfaces'; import { ResolversExplorerService, ScalarsExplorerService } from '../services'; import { extend } from '../utils'; import { transformSchema } from '../utils/transform-schema.util'; +import { TypeDefsDecoratorFactory } from './type-defs-decorator.factory'; + +const DEFAULT_FEDERATION_VERSION: FederationVersion = 1; @Injectable() export class GraphQLFederationFactory { @@ -37,6 +47,7 @@ export class GraphQLFederationFactory { private readonly scalarsExplorerService: ScalarsExplorerService, private readonly gqlSchemaBuilder: GraphQLSchemaBuilder, private readonly gqlSchemaHost: GraphQLSchemaHost, + private readonly typeDefsDecoratorFactory: TypeDefsDecoratorFactory, ) {} async mergeWithSchema( @@ -93,7 +104,13 @@ export class GraphQLFederationFactory { 'ApolloFederation', () => require('@apollo/subgraph'), ); + const apolloSubgraphVersion = ( + await import('@apollo/subgraph/package.json') + ).version; + const apolloSubgraphMajorVersion = Number( + apolloSubgraphVersion.split('.')[0], + ); const printSubgraphSchema = apolloSubgraph.printSubgraphSchema; if (!buildFederatedSchema) { @@ -105,9 +122,24 @@ export class GraphQLFederationFactory { options, this.resolversExplorerService.getAllCtors(), ); + let typeDefs = + apolloSubgraphMajorVersion >= 2 + ? printSchemaWithDirectives(autoGeneratedSchema) + : printSubgraphSchema(autoGeneratedSchema); + + const [federationVersion, federationOptions] = + this.getFederationVersionAndConfig(options.autoSchemaFile); + + const typeDefsDecorator = this.typeDefsDecoratorFactory.create( + federationVersion, + apolloSubgraphMajorVersion, + ); + if (typeDefsDecorator) { + typeDefs = typeDefsDecorator.decorate(typeDefs, federationOptions); + } let executableSchema: GraphQLSchema = buildFederatedSchema({ - typeDefs: gql(printSubgraphSchema(autoGeneratedSchema)), + typeDefs: gql(typeDefs), resolvers: this.getResolvers(options.resolvers), }); @@ -201,7 +233,10 @@ export class GraphQLFederationFactory { ...autoGeneratedObjectType.astNode, }; } - type.extensions = autoGeneratedObjectType.extensions; + type.extensions = { + ...type.extensions, + ...autoGeneratedObjectType.extensions, + }; return type; } else if (isScalarType(type) && type.name === 'DateTime') { const autoGeneratedScalar = autoGeneratedSchema.getType( @@ -282,23 +317,30 @@ export class GraphQLFederationFactory { } async buildFederatedSchema( - autoSchemaFile: string | boolean, + autoSchemaFile: AutoSchemaFileValue, options: T, resolvers: Function[], ) { const scalarsMap = this.scalarsExplorerService.getScalarsMap(); try { const buildSchemaOptions = options.buildSchemaOptions || {}; + const directives = [...specifiedDirectives]; + const [federationVersion] = + this.getFederationVersionAndConfig(autoSchemaFile); + + if (federationVersion < 2) { + directives.push(...this.loadFederationDirectives()); + } + if (buildSchemaOptions?.directives) { + directives.push(...buildSchemaOptions.directives); + } + return await this.gqlSchemaBuilder.generateSchema( resolvers, autoSchemaFile, { ...buildSchemaOptions, - directives: [ - ...specifiedDirectives, - ...this.loadFederationDirectives(), - ...((buildSchemaOptions && buildSchemaOptions.directives) || []), - ], + directives, scalarsMap, skipCheck: true, }, @@ -313,6 +355,21 @@ export class GraphQLFederationFactory { } } + private getFederationVersionAndConfig( + autoSchemaFile: AutoSchemaFileValue, + ): [FederationVersion, FederationConfig?] { + if (!autoSchemaFile || typeof autoSchemaFile !== 'object') { + return [DEFAULT_FEDERATION_VERSION]; + } + if (typeof autoSchemaFile.federation !== 'object') { + return [autoSchemaFile.federation ?? DEFAULT_FEDERATION_VERSION]; + } + return [ + autoSchemaFile.federation?.version ?? DEFAULT_FEDERATION_VERSION, + autoSchemaFile.federation, + ]; + } + private loadFederationDirectives() { const { federationDirectives, directivesWithNoDefinitionNeeded } = loadPackage('@apollo/subgraph/dist/directives', 'SchemaBuilder', () => diff --git a/packages/graphql/lib/federation/type-defs-decorator.factory.ts b/packages/graphql/lib/federation/type-defs-decorator.factory.ts new file mode 100644 index 000000000..3bbefc109 --- /dev/null +++ b/packages/graphql/lib/federation/type-defs-decorator.factory.ts @@ -0,0 +1,31 @@ +import { Injectable, Logger } from '@nestjs/common'; +import { FederationConfig, FederationVersion } from '../interfaces'; +import { TypeDefsFederation2Decorator } from './type-defs-federation2.decorator'; + +export interface TypeDefsDecorator { + decorate(typeDefs: string, options: T): string; +} + +@Injectable() +export class TypeDefsDecoratorFactory { + private readonly logger = new Logger(TypeDefsDecoratorFactory.name); + + create( + federationVersion: FederationVersion, + apolloSubgraphVersion: number, + ): TypeDefsDecorator | undefined { + switch (federationVersion) { + case 2: { + if (apolloSubgraphVersion === 1) { + this.logger.error( + 'To use Apollo Federation v2, you have to install the @apollo/subgraph@^2.0.0.', + ); + return; + } + return new TypeDefsFederation2Decorator(); + } + default: + return; + } + } +} diff --git a/packages/graphql/lib/federation/type-defs-federation2.decorator.ts b/packages/graphql/lib/federation/type-defs-federation2.decorator.ts new file mode 100644 index 000000000..7d5288c83 --- /dev/null +++ b/packages/graphql/lib/federation/type-defs-federation2.decorator.ts @@ -0,0 +1,35 @@ +import { isString } from '@nestjs/common/utils/shared.utils'; +import { Federation2Config } from '../interfaces'; +import { stringifyWithoutQuotes } from '../utils'; + +export class TypeDefsFederation2Decorator { + decorate(typeDefs: string, config: Federation2Config = { version: 2 }) { + const { + directives = [ + '@key', + '@shareable', + '@external', + '@override', + '@requires', + ], + importUrl = 'https://specs.apollo.dev/federation/v2.0', + } = config; + const mappedDirectives = directives + .map((directive) => { + if (!isString(directive)) { + return stringifyWithoutQuotes(directive); + } + let finalDirective = directive; + if (!directive.startsWith('@')) { + finalDirective = `@${directive}`; + } + return `"${finalDirective}"`; + }) + .join(', '); + + return ` + extend schema @link(url: "${importUrl}", import: [${mappedDirectives}]) + ${typeDefs} + `; + } +} diff --git a/packages/graphql/lib/graphql-ast.explorer.ts b/packages/graphql/lib/graphql-ast.explorer.ts index d9b67d031..be3ea139d 100644 --- a/packages/graphql/lib/graphql-ast.explorer.ts +++ b/packages/graphql/lib/graphql-ast.explorer.ts @@ -9,7 +9,6 @@ import { InputValueDefinitionNode, InterfaceTypeDefinitionNode, InterfaceTypeExtensionNode, - NamedTypeNode, ObjectTypeDefinitionNode, ObjectTypeExtensionNode, OperationTypeDefinitionNode, @@ -22,13 +21,18 @@ import { UnionTypeExtensionNode, } from 'graphql'; import { get, map, sortBy, upperFirst } from 'lodash'; -import { - ClassDeclaration, +import type { ClassDeclarationStructure, - InterfaceDeclaration, + EnumDeclarationStructure, InterfaceDeclarationStructure, + MethodDeclarationStructure, + MethodSignatureStructure, + OptionalKind, ParameterDeclarationStructure, + PropertyDeclarationStructure, + PropertySignatureStructure, SourceFile, + TypeAliasDeclarationStructure, } from 'ts-morph'; import { DEFINITIONS_FILE_HEADER } from './graphql.constants'; @@ -110,20 +114,28 @@ export class GraphQLAstExplorer { let { definitions } = documentNode; definitions = sortBy(definitions, ['kind', 'name']); - definitions.forEach((item) => - this.lookupDefinition( - item as Readonly, - tsFile, - mode, - options, - ), - ); + const fileStructure = tsFile.getStructure(); const header = options.additionalHeader - ? `${DEFINITIONS_FILE_HEADER}\n${options.additionalHeader}\n\n` + ? `${DEFINITIONS_FILE_HEADER}\n\n${options.additionalHeader}` : DEFINITIONS_FILE_HEADER; - tsFile.insertText(0, header); - tsFile.addTypeAlias({ + + fileStructure.statements = [header]; + + fileStructure.statements.push( + ...definitions + .map((item) => + this.toDefinitionStructures( + item as Readonly, + mode, + options, + ), + ) + .filter(Boolean), + ); + + fileStructure.statements.push({ + kind: tsMorphLib.StructureKind.TypeAlias, name: 'Nullable', isExported: false, type: 'T | null', @@ -134,76 +146,70 @@ export class GraphQLAstExplorer { ], }); + tsFile.set(fileStructure); + return tsFile; } - lookupDefinition( + toDefinitionStructures( item: Readonly, - tsFile: SourceFile, mode: 'class' | 'interface', options: DefinitionsGeneratorOptions, ) { switch (item.kind) { case 'SchemaDefinition': - return this.lookupRootSchemaDefinition( - item.operationTypes, - tsFile, - mode, - ); + return this.toRootSchemaDefinitionStructure(item.operationTypes, mode); case 'ObjectTypeDefinition': case 'ObjectTypeExtension': case 'InputObjectTypeDefinition': case 'InputObjectTypeExtension': - return this.addObjectTypeDefinition(item, tsFile, mode, options); + return this.toObjectTypeDefinitionStructure(item, mode, options); case 'InterfaceTypeDefinition': case 'InterfaceTypeExtension': - return this.addObjectTypeDefinition(item, tsFile, 'interface', options); + return this.toObjectTypeDefinitionStructure(item, 'interface', options); case 'ScalarTypeDefinition': case 'ScalarTypeExtension': - return this.addScalarDefinition(item, tsFile, options); + return this.toScalarDefinitionStructure(item, options); case 'EnumTypeDefinition': case 'EnumTypeExtension': - return this.addEnumDefinition(item, tsFile, options); + return this.toEnumDefinitionStructure(item, options); case 'UnionTypeDefinition': case 'UnionTypeExtension': - return this.addUnionDefinition(item, tsFile); + return this.toUnionDefinitionStructure(item); } } - lookupRootSchemaDefinition( + toRootSchemaDefinitionStructure( operationTypes: ReadonlyArray, - tsFile: SourceFile, mode: 'class' | 'interface', - ) { + ): ClassDeclarationStructure | InterfaceDeclarationStructure { const structureKind = mode === 'class' ? tsMorphLib.StructureKind.Class : tsMorphLib.StructureKind.Interface; - const rootInterface = this.addClassOrInterface(tsFile, mode, { + + const properties = operationTypes + .filter(Boolean) + .map((item) => { + const tempOperationName = item.operation; + const typeName = get(item, 'type.name.value'); + const interfaceName = typeName || tempOperationName; + return { + name: interfaceName, + type: this.addSymbolIfRoot(upperFirst(interfaceName)), + }; + }) + .filter(Boolean); + + return { name: 'ISchema', isExported: true, kind: structureKind, - }); - operationTypes.forEach((item) => { - if (!item) { - return; - } - const tempOperationName = item.operation; - const typeName = get(item, 'type.name.value'); - const interfaceName = typeName || tempOperationName; - const interfaceRef = this.addClassOrInterface(tsFile, mode, { - name: this.addSymbolIfRoot(upperFirst(interfaceName)), - isExported: true, - kind: structureKind, - }); - (rootInterface as InterfaceDeclaration).addProperty({ - name: interfaceName, - type: interfaceRef.getName(), - }); - }); + properties: properties, + }; } - addObjectTypeDefinition( + toObjectTypeDefinitionStructure( item: | ObjectTypeDefinitionNode | ObjectTypeExtensionNode @@ -211,112 +217,133 @@ export class GraphQLAstExplorer { | InputObjectTypeExtensionNode | InterfaceTypeDefinitionNode | InterfaceTypeExtensionNode, - tsFile: SourceFile, mode: 'class' | 'interface', options: DefinitionsGeneratorOptions, - ) { + ): ClassDeclarationStructure | InterfaceDeclarationStructure { const parentName = get(item, 'name.value'); if (!parentName) { return; } - let parentRef = this.getClassOrInterface( - tsFile, - mode, - this.addSymbolIfRoot(parentName), - ); - if (!parentRef) { - const structureKind = - mode === 'class' - ? tsMorphLib.StructureKind.Class - : tsMorphLib.StructureKind.Interface; - const isRoot = this.root.indexOf(parentName) >= 0; - parentRef = this.addClassOrInterface(tsFile, mode, { - name: this.addSymbolIfRoot(upperFirst(parentName)), - isExported: true, - isAbstract: isRoot && mode === 'class', - kind: structureKind, - }); - } + const structureKind = + mode === 'class' + ? tsMorphLib.StructureKind.Class + : tsMorphLib.StructureKind.Interface; + const isRoot = this.root.indexOf(parentName) >= 0; + const parentStructure: + | ClassDeclarationStructure + | InterfaceDeclarationStructure = { + name: this.addSymbolIfRoot(upperFirst(parentName)), + isExported: true, + isAbstract: isRoot && mode === 'class', + kind: structureKind, + properties: [], + methods: [], + }; + const interfaces = get(item, 'interfaces'); if (interfaces) { if (mode === 'class') { - this.addImplementsInterfaces(interfaces, parentRef as ClassDeclaration); + (parentStructure as ClassDeclarationStructure).implements = interfaces + .map((element) => get(element, 'name.value')) + .filter(Boolean); } else { - this.addExtendInterfaces(interfaces, parentRef as InterfaceDeclaration); + parentStructure.extends = interfaces + .map((element) => get(element, 'name.value')) + .filter(Boolean); } } const isObjectType = item.kind === 'ObjectTypeDefinition'; if (isObjectType && options.emitTypenameField) { - parentRef.addProperty({ + parentStructure.properties.push({ name: '__typename', - type: `'${parentRef.getName()}'`, + type: `'${parentStructure.name}'`, hasQuestionToken: true, }); } - ((item.fields || []) as any).forEach((element) => { - this.lookupFieldDefiniton(element, parentRef, mode, options); - }); - } - lookupFieldDefiniton( - item: FieldDefinitionNode | InputValueDefinitionNode, - parentRef: InterfaceDeclaration | ClassDeclaration, - mode: 'class' | 'interface', - options: DefinitionsGeneratorOptions, - ) { - switch (item.kind) { - case 'FieldDefinition': - case 'InputValueDefinition': - return this.lookupField(item, parentRef, mode, options); + if (!this.isRoot(parentStructure.name) || options.skipResolverArgs) { + const properties: readonly (OptionalKind & + OptionalKind)[] = ( + (item.fields || []) as ( + | FieldDefinitionNode + | InputValueDefinitionNode + )[] + ) + .map((element) => this.toPropertyDeclarationStructure(element, options)) + .filter(Boolean); + + parentStructure.properties.push(...properties); + } else { + const methods: readonly (OptionalKind & + OptionalKind)[] = ( + (item.fields || []) as ( + | FieldDefinitionNode + | InputValueDefinitionNode + )[] + ) + .map((element) => + this.toMethodDeclarationStructure(element, mode, options), + ) + .filter(Boolean); + + parentStructure.methods.push(...methods); } + return parentStructure; } - lookupField( + toPropertyDeclarationStructure( item: FieldDefinitionNode | InputValueDefinitionNode, - parentRef: InterfaceDeclaration | ClassDeclaration, - mode: 'class' | 'interface', options: DefinitionsGeneratorOptions, - ) { + ): OptionalKind & + OptionalKind { const propertyName = get(item, 'name.value'); if (!propertyName) { - return; + return undefined; } const federatedFields = ['_entities', '_service']; if (federatedFields.includes(propertyName)) { - return; + return undefined; } const { name: type, required } = this.getFieldTypeDefinition( item.type, options, ); - if (!this.isRoot(parentRef.getName())) { - (parentRef as InterfaceDeclaration).addProperty({ - name: propertyName, - type, - hasQuestionToken: !required, - }); + + return { + name: propertyName, + type: this.addSymbolIfRoot(type), + hasQuestionToken: !required, + }; + } + + toMethodDeclarationStructure( + item: FieldDefinitionNode | InputValueDefinitionNode, + mode: 'class' | 'interface', + options: DefinitionsGeneratorOptions, + ): OptionalKind & + OptionalKind { + const propertyName = get(item, 'name.value'); + if (!propertyName) { return; } - - if (options.skipResolverArgs) { - (parentRef as ClassDeclaration).addProperty({ - name: propertyName, - type: this.addSymbolIfRoot(type), - hasQuestionToken: !required, - }); - } else { - (parentRef as ClassDeclaration).addMethod({ - isAbstract: mode === 'class', - name: propertyName, - returnType: `${type} | Promise<${type}>`, - parameters: this.getFunctionParameters( - (item as FieldDefinitionNode).arguments, - options, - ), - }); + const federatedFields = ['_entities', '_service']; + if (federatedFields.includes(propertyName)) { + return; } + + const { name: type } = this.getFieldTypeDefinition(item.type, options); + + return { + isAbstract: mode === 'class', + name: propertyName, + returnType: `${type} | Promise<${type}>`, + parameters: this.getFunctionParameters( + (item as FieldDefinitionNode).arguments, + options, + ), + }; } getFieldTypeDefinition( @@ -402,103 +429,75 @@ export class GraphQLAstExplorer { }); } - addScalarDefinition( + toScalarDefinitionStructure( item: ScalarTypeDefinitionNode | ScalarTypeExtensionNode, - tsFile: SourceFile, options: DefinitionsGeneratorOptions, - ) { + ): TypeAliasDeclarationStructure { const name = get(item, 'name.value'); if (!name || name === 'Date') { - return; + return undefined; } const typeMapping = options.customScalarTypeMapping?.[name]; const mappedTypeName = typeof typeMapping === 'string' ? typeMapping : typeMapping?.name; - tsFile.addTypeAlias({ + return { + kind: tsMorphLib.StructureKind.TypeAlias, name, type: mappedTypeName ?? options.defaultScalarType ?? 'any', isExported: true, - }); - } - - addExtendInterfaces( - interfaces: NamedTypeNode[], - parentRef: InterfaceDeclaration, - ) { - if (!interfaces) { - return; - } - interfaces.forEach((element) => { - const interfaceName = get(element, 'name.value'); - if (interfaceName) { - parentRef.addExtends(interfaceName); - } - }); - } - - addImplementsInterfaces( - interfaces: NamedTypeNode[], - parentRef: ClassDeclaration, - ) { - if (!interfaces) { - return; - } - interfaces.forEach((element) => { - const interfaceName = get(element, 'name.value'); - if (interfaceName) { - parentRef.addImplements(interfaceName); - } - }); + }; } - addEnumDefinition( + toEnumDefinitionStructure( item: EnumTypeDefinitionNode | EnumTypeExtensionNode, - tsFile: SourceFile, options: DefinitionsGeneratorOptions, - ) { + ): TypeAliasDeclarationStructure | EnumDeclarationStructure { const name = get(item, 'name.value'); if (!name) { - return; + return undefined; } if (options.enumsAsTypes) { const values = item.values.map( (value) => `"${get(value, 'name.value')}"`, ); - return tsFile.addTypeAlias({ + return { + kind: tsMorphLib.StructureKind.TypeAlias, name, type: values.join(' | '), isExported: true, - }); + }; } const members = map(item.values, (value) => ({ name: get(value, 'name.value'), value: get(value, 'name.value'), })); - tsFile.addEnum({ + return { + kind: tsMorphLib.StructureKind.Enum, name, members, isExported: true, - }); + }; } - addUnionDefinition( + toUnionDefinitionStructure( item: UnionTypeDefinitionNode | UnionTypeExtensionNode, - tsFile: SourceFile, - ) { + ): TypeAliasDeclarationStructure { const name = get(item, 'name.value'); if (!name) { - return; + return undefined; } const types: string[] = map(item.types, (value) => get(value, 'name.value'), ); - tsFile.addTypeAlias({ + + return { + kind: tsMorphLib.StructureKind.TypeAlias, name, type: types.join(' | '), isExported: true, - }); + }; } addSymbolIfRoot(name: string): string { @@ -508,22 +507,4 @@ export class GraphQLAstExplorer { isRoot(name: string): boolean { return ['IQuery', 'IMutation', 'ISubscription'].indexOf(name) >= 0; } - - addClassOrInterface( - tsFile: SourceFile, - mode: 'class' | 'interface', - options: InterfaceDeclarationStructure | ClassDeclarationStructure, - ): InterfaceDeclaration | ClassDeclaration { - return mode === 'class' - ? tsFile.addClass(options as ClassDeclarationStructure) - : tsFile.addInterface(options as InterfaceDeclarationStructure); - } - - getClassOrInterface( - tsFile: SourceFile, - mode: 'class' | 'interface', - name: string, - ): InterfaceDeclaration | ClassDeclaration { - return mode === 'class' ? tsFile.getClass(name) : tsFile.getInterface(name); - } } diff --git a/packages/graphql/lib/graphql-schema.builder.ts b/packages/graphql/lib/graphql-schema.builder.ts index f1ba0d70f..557dfc136 100644 --- a/packages/graphql/lib/graphql-schema.builder.ts +++ b/packages/graphql/lib/graphql-schema.builder.ts @@ -3,11 +3,12 @@ import { isString } from '@nestjs/common/utils/shared.utils'; import { GraphQLSchema, lexicographicSortSchema, printSchema } from 'graphql'; import { resolve } from 'path'; import { GRAPHQL_SDL_FILE_HEADER } from './graphql.constants'; -import { GqlModuleOptions } from './interfaces'; +import { AutoSchemaFileValue, GqlModuleOptions } from './interfaces'; import { BuildSchemaOptions } from './interfaces/build-schema-options.interface'; import { GraphQLSchemaFactory } from './schema-builder/graphql-schema.factory'; import { FileSystemHelper } from './schema-builder/helpers/file-system.helper'; import { ScalarsExplorerService } from './services'; +import { getPathForAutoSchemaFile } from './utils'; @Injectable() export class GraphQLSchemaBuilder { @@ -18,7 +19,7 @@ export class GraphQLSchemaBuilder { ) {} public async build( - autoSchemaFile: string | boolean, + autoSchemaFile: AutoSchemaFileValue, options: GqlModuleOptions, resolvers: Function[], ): Promise { @@ -45,7 +46,7 @@ export class GraphQLSchemaBuilder { public async generateSchema( resolvers: Function[], - autoSchemaFile: boolean | string, + autoSchemaFile: AutoSchemaFileValue, options: BuildSchemaOptions = {}, sortSchema?: boolean, transformSchema?: ( @@ -53,11 +54,9 @@ export class GraphQLSchemaBuilder { ) => GraphQLSchema | Promise, ): Promise { const schema = await this.gqlSchemaFactory.create(resolvers, options); - if (typeof autoSchemaFile !== 'boolean') { - const filename = isString(autoSchemaFile) - ? autoSchemaFile - : resolve(process.cwd(), 'schema.gql'); + const filename = getPathForAutoSchemaFile(autoSchemaFile); + if (filename) { const transformedSchema = transformSchema ? await transformSchema(schema) : schema; diff --git a/packages/graphql/lib/graphql.constants.ts b/packages/graphql/lib/graphql.constants.ts index 450a8f245..87443cd52 100644 --- a/packages/graphql/lib/graphql.constants.ts +++ b/packages/graphql/lib/graphql.constants.ts @@ -26,7 +26,7 @@ export const DEFINITIONS_FILE_HEADER = ` */ /* tslint:disable */ -/* eslint-disable */\n`; +/* eslint-disable */`; export const GRAPHQL_SDL_FILE_HEADER = `\ # ------------------------------------------------------ diff --git a/packages/graphql/lib/graphql.module.ts b/packages/graphql/lib/graphql.module.ts index 60b156b02..b7705d164 100644 --- a/packages/graphql/lib/graphql.module.ts +++ b/packages/graphql/lib/graphql.module.ts @@ -6,10 +6,11 @@ import { Provider, } from '@nestjs/common/interfaces'; import { HttpAdapterHost } from '@nestjs/core'; -import { MetadataScanner } from '@nestjs/core/metadata-scanner'; import { ROUTE_MAPPED_MESSAGE } from '@nestjs/core/helpers/messages'; +import { MetadataScanner } from '@nestjs/core/metadata-scanner'; import { AbstractGraphQLDriver } from './drivers/abstract-graphql.driver'; import { GraphQLFederationFactory } from './federation/graphql-federation.factory'; +import { TypeDefsDecoratorFactory } from './federation/type-defs-decorator.factory'; import { GraphQLAstExplorer } from './graphql-ast.explorer'; import { GraphQLSchemaBuilder } from './graphql-schema.builder'; import { GraphQLSchemaHost } from './graphql-schema.host'; @@ -37,6 +38,7 @@ import { extend, generateString } from './utils'; GraphQLSchemaBuilder, GraphQLSchemaHost, GraphQLFederationFactory, + TypeDefsDecoratorFactory, ], exports: [ GraphQLTypesLoader, @@ -49,7 +51,9 @@ export class GraphQLModule< TAdapter extends AbstractGraphQLDriver = AbstractGraphQLDriver, > implements OnModuleInit, OnModuleDestroy { - private static readonly logger = new Logger(GraphQLModule.name, { timestamp: true }); + private static readonly logger = new Logger(GraphQLModule.name, { + timestamp: true, + }); get graphQlAdapter(): TAdapter { return this._graphQlAdapter as TAdapter; @@ -160,7 +164,9 @@ export class GraphQLModule< }); if (options.path) { - GraphQLModule.logger.log(ROUTE_MAPPED_MESSAGE(options.path, RequestMethod.POST)); + GraphQLModule.logger.log( + ROUTE_MAPPED_MESSAGE(options.path, RequestMethod.POST), + ); } } diff --git a/packages/graphql/lib/interfaces/build-schema-options.interface.ts b/packages/graphql/lib/interfaces/build-schema-options.interface.ts index 10b1781b5..205d0d83c 100644 --- a/packages/graphql/lib/interfaces/build-schema-options.interface.ts +++ b/packages/graphql/lib/interfaces/build-schema-options.interface.ts @@ -46,4 +46,9 @@ export interface BuildSchemaOptions { * Array of global field middleware functions */ fieldMiddleware?: FieldMiddleware[]; + + /** + * Set to true if it should throw an error when the same Query / Mutation field is defined more than once + */ + noDuplicatedFields?: boolean; } diff --git a/packages/graphql/lib/interfaces/gql-module-options.interface.ts b/packages/graphql/lib/interfaces/gql-module-options.interface.ts index bd81dbac7..b491fd160 100644 --- a/packages/graphql/lib/interfaces/gql-module-options.interface.ts +++ b/packages/graphql/lib/interfaces/gql-module-options.interface.ts @@ -5,6 +5,7 @@ import { GraphQLSchema } from 'graphql'; import { GraphQLDriver } from '.'; import { DefinitionsGeneratorOptions } from '../graphql-ast.explorer'; import { BuildSchemaOptions } from './build-schema-options.interface'; +import { AutoSchemaFileValue } from './schema-file-config.interface'; export type Enhancer = 'guards' | 'interceptors' | 'filters'; @@ -63,7 +64,7 @@ export interface GqlModuleOptions { /** * If enabled, GraphQL schema will be generated automatically */ - autoSchemaFile?: string | boolean; + autoSchemaFile?: AutoSchemaFileValue; /** * Sort the schema lexicographically diff --git a/packages/graphql/lib/interfaces/index.ts b/packages/graphql/lib/interfaces/index.ts index 1fcfea1bb..601594515 100644 --- a/packages/graphql/lib/interfaces/index.ts +++ b/packages/graphql/lib/interfaces/index.ts @@ -14,3 +14,4 @@ export * from './graphql-driver.interface'; export * from './resolve-type-fn.interface'; export * from './return-type-func.interface'; export * from './build-federated-schema-options.interface'; +export * from './schema-file-config.interface'; diff --git a/packages/graphql/lib/interfaces/schema-file-config.interface.ts b/packages/graphql/lib/interfaces/schema-file-config.interface.ts new file mode 100644 index 000000000..ed65d53a3 --- /dev/null +++ b/packages/graphql/lib/interfaces/schema-file-config.interface.ts @@ -0,0 +1,37 @@ +export interface AliasDirectiveImport { + name: string; + as: string; +} + +export type FederationVersion = 1 | 2; +export type FederationConfig = Federation2Config; + +export interface Federation2Config { + version: 2; + /** + * The imported directives + * @default ['@key', '@shareable', '@external', '@override', '@requires'] + */ + directives?: (string | AliasDirectiveImport)[]; + /** + * The import link + * @default 'https://specs.apollo.dev/federation/v2.0' + */ + importUrl?: string; +} + +export interface SchemaFileConfig { + /** + * Federation version and its configuration, + * + * @default 1 + */ + federation?: FederationVersion | FederationConfig; + + /** + * Path to the schema file. + */ + path?: string; +} + +export type AutoSchemaFileValue = boolean | string | SchemaFileConfig; diff --git a/packages/graphql/lib/plugin/utils/ast-utils.ts b/packages/graphql/lib/plugin/utils/ast-utils.ts index b5dbc5e4c..6f7dd51f9 100644 --- a/packages/graphql/lib/plugin/utils/ast-utils.ts +++ b/packages/graphql/lib/plugin/utils/ast-utils.ts @@ -1,9 +1,16 @@ +import * as ts from 'typescript'; import { CallExpression, Decorator, + getJSDocDeprecatedTag, + getJSDocTags, + getTextOfJSDocComment, Identifier, + JSDoc, LeftHandSideExpression, + ModifiersArray, Node, + NodeArray, ObjectFlags, ObjectType, PropertyAccessExpression, @@ -12,15 +19,28 @@ import { TypeChecker, TypeFlags, TypeFormatFlags, - SourceFile, - CommentRange, - getLeadingCommentRanges, - getTrailingCommentRanges, - UnionTypeNode, TypeNode, + UnionTypeNode, } from 'typescript'; import { isDynamicallyAdded } from './plugin-utils'; +const [tsVersionMajor, tsVersionMinor] = ts.versionMajorMinor + ?.split('.') + .map((x) => +x); +export const isInUpdatedAstContext = tsVersionMinor >= 8 || tsVersionMajor > 4; + +export function getDecorators(node: ts.Node) { + return isInUpdatedAstContext + ? (ts.canHaveDecorators(node) && ts.getDecorators(node)) ?? [] + : node.decorators; +} + +export function getModifiers(node: ts.Node) { + return isInUpdatedAstContext + ? (ts.canHaveModifiers(node) && ts.getModifiers(node)) ?? [] + : node.modifiers; +} + export function isArray(type: Type) { const symbol = type.getSymbol(); if (!symbol) { @@ -144,7 +164,7 @@ export function getDecoratorName(decorator: Decorator) { function getIdentifierFromName(expression: LeftHandSideExpression) { const identifier = getNameFromExpression(expression); - if (identifier && identifier.kind !== SyntaxKind.Identifier) { + if (expression && expression.kind !== SyntaxKind.Identifier) { throw new Error(); } return identifier; @@ -157,39 +177,28 @@ function getNameFromExpression(expression: LeftHandSideExpression) { return expression; } -export function getDescriptionOfNode( - node: Node, - sourceFile: SourceFile, -): string { - const sourceText = sourceFile.getFullText(); - // in case we decide to include "// comments" - const replaceRegex = - /^ *\** *@.*$|^ *\/\*+ *|^ *\/\/+.*|^ *\/+ *|^ *\*+ *| +$| *\**\/ *$/gim; - //const replaceRegex = /^ *\** *@.*$|^ *\/\*+ *|^ *\/+ *|^ *\*+ *| +$| *\**\/ *$/gim; - - const description = []; - const introspectCommentsAndExamples = (comments?: CommentRange[]) => - comments?.forEach((comment) => { - const commentSource = sourceText.substring(comment.pos, comment.end); - const oneComment = commentSource.replace(replaceRegex, '').trim(); - if (oneComment) { - description.push(oneComment); - } - }); +export function getJSDocDescription(node: Node): string { + const jsDoc: JSDoc[] = (node as any).jsDoc; - const leadingCommentRanges = getLeadingCommentRanges( - sourceText, - node.getFullStart(), - ); - introspectCommentsAndExamples(leadingCommentRanges); - if (!description.length) { - const trailingCommentRanges = getTrailingCommentRanges( - sourceText, - node.getFullStart(), - ); - introspectCommentsAndExamples(trailingCommentRanges); + if (!jsDoc) { + return undefined; } - return description.join('\n'); + + return getTextOfJSDocComment(jsDoc[0].comment); +} + +export function hasJSDocTags(node: Node, tagName: string[]): boolean { + const tags = getJSDocTags(node); + return tags.some((tag) => tagName.includes(tag.tagName.text)); + // return jsDoc; +} + +export function getJsDocDeprecation(node: Node): string { + const deprecatedTag = getJSDocDeprecatedTag(node); + if (!deprecatedTag) { + return undefined; + } + return getTextOfJSDocComment(deprecatedTag.comment) || 'deprecated'; } export function findNullableTypeFromUnion( @@ -200,3 +209,280 @@ export function findNullableTypeFromUnion( hasFlag(typeChecker.getTypeAtLocation(tNode), TypeFlags.Null), ); } + +export function hasModifiers( + modifiers: ModifiersArray | readonly ts.Modifier[], + toCheck: SyntaxKind[], +): boolean { + if (!modifiers) { + return false; + } + return modifiers.some((modifier) => toCheck.includes(modifier.kind)); +} + +export function hasDecorators( + decorators: NodeArray | readonly Decorator[], + toCheck: string[], +): boolean { + if (!decorators) { + return false; + } + + return decorators.some((decorator) => { + return toCheck.includes(getDecoratorName(decorator)); + }); +} + +export function hasImport(sf: ts.SourceFile, what: string): boolean { + for (const statement of sf.statements) { + if ( + ts.isImportDeclaration(statement) && + ts.isNamedImports(statement.importClause.namedBindings) + ) { + const bindings = statement.importClause.namedBindings.elements; + + for (const namedBinding of bindings) { + if (namedBinding.name.text === what) { + return true; + } + } + } + } + return false; +} + +export function createImportEquals( + f: ts.NodeFactory, + identifier: ts.Identifier | string, + from: string, +): ts.ImportEqualsDeclaration { + const [major, minor] = ts.versionMajorMinor?.split('.').map((x) => +x); + + if (major >= 4 && minor >= 2) { + // support TS v4.2+ + return minor >= 8 + ? f.createImportEqualsDeclaration( + undefined, + false, + identifier, + f.createExternalModuleReference(f.createStringLiteral(from)), + ) + : f.createImportEqualsDeclaration( + undefined, + undefined, + false, + identifier, + f.createExternalModuleReference(f.createStringLiteral(from)), + ); + } + return (f.createImportEqualsDeclaration as any)( + undefined, + undefined, + identifier, + f.createExternalModuleReference(f.createStringLiteral(from)), + ); +} + +export function createNamedImport( + f: ts.NodeFactory, + what: string[], + from: string, +) { + const importClause = f.createImportClause( + false, + undefined, + f.createNamedImports( + what.map((name) => + f.createImportSpecifier(false, undefined, f.createIdentifier(name)), + ), + ), + ); + return isInUpdatedAstContext + ? f.createImportDeclaration( + undefined, + importClause, + f.createStringLiteral(from), + ) + : f.createImportDeclaration( + undefined, + undefined, + importClause, + f.createStringLiteral(from), + ); +} + +export function isCallExpressionOf(name: string, node: ts.CallExpression) { + return ts.isIdentifier(node.expression) && node.expression.text === name; +} + +export type PrimitiveObject = { + [key: string]: string | boolean | ts.Node | PrimitiveObject; +}; + +function isNode(value: any): value is ts.Node { + return typeof value === 'object' && value.constructor.name === 'NodeObject'; +} + +export function serializePrimitiveObjectToAst( + f: ts.NodeFactory, + object: PrimitiveObject, +): ts.ObjectLiteralExpression { + const properties = []; + + Object.keys(object).forEach((key) => { + const value = object[key]; + + if (value === undefined) { + return; + } + + let initializer: ts.Expression; + if (isNode(value)) { + initializer = value as ts.Expression; + } else if (typeof value === 'string') { + initializer = f.createStringLiteral(value); + } else if (typeof value === 'boolean') { + initializer = value ? f.createTrue() : f.createFalse(); + } else if (typeof value === 'object') { + initializer = serializePrimitiveObjectToAst(f, value); + } + + properties.push(f.createPropertyAssignment(key, initializer)); + }); + + return f.createObjectLiteralExpression(properties); +} + +export function safelyMergeObjects( + f: ts.NodeFactory, + a: ts.Expression, + b: ts.Expression, +) { + // if both of objects are ObjectLiterals, so merge property by property in compile time + // if one or both of expressions not an object literal, produce rest spread and merge in runtime + if (ts.isObjectLiteralExpression(a) && ts.isObjectLiteralExpression(b)) { + const aMap = a.properties.reduce((acc, prop) => { + acc[(prop.name as ts.Identifier).text] = prop; + return acc; + }, {} as { [propName: string]: ts.ObjectLiteralElementLike }); + + b.properties.forEach((prop) => { + aMap[(prop.name as ts.Identifier).text] = prop; + }, {}); + + return f.createObjectLiteralExpression(Object.values(aMap)); + } else { + return f.createObjectLiteralExpression([ + f.createSpreadAssignment(a), + f.createSpreadAssignment(b), + ]); + } +} + +export function updateDecoratorArguments< + T extends + | ts.ClassDeclaration + | ts.PropertyDeclaration + | ts.GetAccessorDeclaration, +>( + f: ts.NodeFactory, + node: T, + decoratorName: string, + replaceFn: ( + decoratorArguments: ts.NodeArray, + ) => ts.Expression[], +): T { + let updated = false; + + const nodeOriginalDecorators = getDecorators(node); + const decorators = nodeOriginalDecorators.map((decorator) => { + if (getDecoratorName(decorator) !== decoratorName) { + return decorator; + } + + const decoratorExpression = decorator.expression as ts.CallExpression; + updated = true; + return f.updateDecorator( + decorator, + f.updateCallExpression( + decoratorExpression, + decoratorExpression.expression, + decoratorExpression.typeArguments, + replaceFn(decoratorExpression.arguments), + ), + ); + }); + + if (!updated) { + return node; + } + + if (ts.isClassDeclaration(node)) { + return ( + isInUpdatedAstContext + ? f.updateClassDeclaration( + node, + [...decorators, ...getModifiers(node)], + node.name, + node.typeParameters, + node.heritageClauses, + node.members, + ) + : (f.updateClassDeclaration as any)( + node, + decorators, + node.modifiers, + node.name, + node.typeParameters, + node.heritageClauses, + node.members, + ) + ) as T; + } + + if (ts.isPropertyDeclaration(node)) { + return ( + isInUpdatedAstContext + ? f.updatePropertyDeclaration( + node, + [...decorators, ...getModifiers(node)], + node.name, + node.questionToken, + node.type, + node.initializer, + ) + : (f.updatePropertyDeclaration as any)( + node, + decorators, + node.modifiers, + node.name, + node.questionToken, + node.type, + node.initializer, + ) + ) as T; + } + + if (ts.isGetAccessorDeclaration(node)) { + return ( + isInUpdatedAstContext + ? f.updateGetAccessorDeclaration( + node, + [...decorators, ...getModifiers(node)], + node.name, + node.parameters, + node.type, + node.body, + ) + : (f.updateGetAccessorDeclaration as any)( + node, + decorators, + node.modifiers, + node.name, + node.parameters, + node.type, + node.body, + ) + ) as T; + } +} diff --git a/packages/graphql/lib/plugin/utils/plugin-utils.ts b/packages/graphql/lib/plugin/utils/plugin-utils.ts index 40cf919f2..b90c42dbf 100644 --- a/packages/graphql/lib/plugin/utils/plugin-utils.ts +++ b/packages/graphql/lib/plugin/utils/plugin-utils.ts @@ -2,7 +2,6 @@ import { head } from 'lodash'; import { posix } from 'path'; import * as ts from 'typescript'; import { - getDecoratorName, getText, getTypeArguments, isArray, @@ -13,15 +12,6 @@ import { isString, } from './ast-utils'; -export function getDecoratorOrUndefinedByNames( - names: string[], - decorators: ts.NodeArray, -): ts.Decorator | undefined { - return (decorators || ts.createNodeArray()).find((item) => - names.includes(getDecoratorName(item)), - ); -} - export function getTypeReferenceAsString( type: ts.Type, typeChecker: ts.TypeChecker, @@ -107,22 +97,13 @@ export function isPromiseOrObservable(type: string) { return type.includes('Promise') || type.includes('Observable'); } -export function hasPropertyKey( - key: string, - properties: ts.NodeArray, -): boolean { - return properties - .filter((item) => !isDynamicallyAdded(item)) - .some((item) => item.name.getText() === key); -} - export function replaceImportPath(typeReference: string, fileName: string) { if (!typeReference.includes('import')) { - return typeReference; + return { typeReference, importPath: null }; } - let importPath = /\(\"([^)]).+(\")/.exec(typeReference)[0]; + let importPath = /\("([^)]).+(")/.exec(typeReference)[0]; if (!importPath) { - return undefined; + return { typeReference: undefined, importPath: null }; } importPath = convertPath(importPath); importPath = importPath.slice(2, importPath.length - 1); @@ -153,7 +134,9 @@ export function replaceImportPath(typeReference: string, fileName: string) { } typeReference = typeReference.replace(importPath, relativePath); - return typeReference.replace('import', 'require'); + typeReference = typeReference.replace('import', 'require'); + + return { typeReference, importPath: relativePath }; } export function isDynamicallyAdded(identifier: ts.Node) { @@ -234,23 +217,6 @@ export function isAutoGeneratedTypeUnion(type: ts.Type): boolean { return false; } -export function extractTypeArgumentIfArray(type: ts.Type) { - if (isArray(type)) { - type = getTypeArguments(type)[0]; - if (!type) { - return undefined; - } - return { - type, - isArray: true, - }; - } - return { - type, - isArray: false, - }; -} - /** * when "strict" mode enabled, TypeScript transform optional boolean properties to "boolean | undefined" * @param text diff --git a/packages/graphql/lib/plugin/visitors/model-class.visitor.ts b/packages/graphql/lib/plugin/visitors/model-class.visitor.ts index 55c80084e..4471f5664 100644 --- a/packages/graphql/lib/plugin/visitors/model-class.visitor.ts +++ b/packages/graphql/lib/plugin/visitors/model-class.visitor.ts @@ -1,228 +1,393 @@ -import { compact, flatten } from 'lodash'; import * as ts from 'typescript'; -import { HideField } from '../../decorators'; +import { + ArgsType, + Field, + HideField, + InputType, + InterfaceType, + ObjectType, +} from '../../decorators'; import { PluginOptions } from '../merge-options'; import { METADATA_FACTORY_NAME } from '../plugin-constants'; import { + createImportEquals, findNullableTypeFromUnion, - getDescriptionOfNode, + getDecoratorName, + getDecorators, + getJsDocDeprecation, + getJSDocDescription, + getModifiers, + hasDecorators, + hasModifiers, + isInUpdatedAstContext, isNull, isUndefined, + safelyMergeObjects, + serializePrimitiveObjectToAst, + updateDecoratorArguments, } from '../utils/ast-utils'; import { - getDecoratorOrUndefinedByNames, getTypeReferenceAsString, - hasPropertyKey, replaceImportPath, } from '../utils/plugin-utils'; -const metadataHostMap = new Map(); -const importsToAddPerFile = new Map>(); +const CLASS_DECORATORS = [ + ObjectType.name, + InterfaceType.name, + InputType.name, + ArgsType.name, +]; export class ModelClassVisitor { + private importsToAdd: Set; + visit( sourceFile: ts.SourceFile, ctx: ts.TransformationContext, program: ts.Program, pluginOptions: PluginOptions, ) { + this.importsToAdd = new Set(); + const typeChecker = program.getTypeChecker(); + const factory = ctx.factory; const visitNode = (node: ts.Node): ts.Node => { - if (ts.isClassDeclaration(node)) { - this.clearMetadataOnRestart(node); - - node = ts.visitEachChild(node, visitNode, ctx); - return this.addMetadataFactory(node as ts.ClassDeclaration); - } else if (ts.isPropertyDeclaration(node)) { - const decorators = node.decorators; - const hideField = getDecoratorOrUndefinedByNames( - [HideField.name], - decorators, + const decorators = getDecorators(node); + if ( + ts.isClassDeclaration(node) && + hasDecorators(decorators, CLASS_DECORATORS) + ) { + const members = this.amendFieldsDecorators( + factory, + node.members, + pluginOptions, + sourceFile.fileName, + typeChecker, ); - if (hideField) { - return node; - } - const isPropertyStatic = (node.modifiers || []).some( - (modifier) => modifier.kind === ts.SyntaxKind.StaticKeyword, + + const metadata = this.collectMetadataFromClassMembers( + factory, + members, + pluginOptions, + sourceFile.fileName, + typeChecker, + ); + + return this.updateClassDeclaration( + factory, + node, + members, + metadata, + pluginOptions, ); - if (isPropertyStatic) { - return node; - } - try { - this.inspectPropertyDeclaration( - node, - typeChecker, - sourceFile.fileName, - sourceFile, - pluginOptions, - ); - } catch (err) { - return node; - } - return node; } else if (ts.isSourceFile(node)) { const visitedNode = ts.visitEachChild(node, visitNode, ctx); - const importsToAdd = importsToAddPerFile.get(node.fileName); - if (!importsToAdd) { - return visitedNode; - } - return this.updateImports(visitedNode, Array.from(importsToAdd)); + + const importStatements: ts.Statement[] = + this.createEagerImports(factory); + + const existingStatements = Array.from(visitedNode.statements); + return factory.updateSourceFile(visitedNode, [ + ...importStatements, + ...existingStatements, + ]); } return ts.visitEachChild(node, visitNode, ctx); }; return ts.visitNode(sourceFile, visitNode); } - clearMetadataOnRestart(node: ts.ClassDeclaration) { - const classMetadata = this.getClassMetadata(node); - if (classMetadata) { - metadataHostMap.delete(node.name.getText()); + private addDescriptionToClassDecorators( + f: ts.NodeFactory, + node: ts.ClassDeclaration, + ) { + const description = getJSDocDescription(node); + const decorators = getDecorators(node); + if (!description) { + return decorators; } + + // get one of allowed decorators from list + return decorators.map((decorator) => { + if (!CLASS_DECORATORS.includes(getDecoratorName(decorator))) { + return decorator; + } + + const decoratorExpression = decorator.expression as ts.CallExpression; + const objectLiteralExpression = serializePrimitiveObjectToAst(f, { + description, + }); + + let newArgumentsArray: ts.Expression[] = []; + + if (decoratorExpression.arguments.length === 0) { + newArgumentsArray = [objectLiteralExpression]; + } else { + // Options always a last parameter: + // @ObjectType('name', {description: ''}); + // @ObjectType({description: ''}); + + newArgumentsArray = decoratorExpression.arguments.map( + (argument, index) => { + if (index + 1 != decoratorExpression.arguments.length) { + return argument; + } + + // merge existing props with new props + return safelyMergeObjects(f, objectLiteralExpression, argument); + }, + ); + } + + return f.updateDecorator( + decorator, + f.updateCallExpression( + decoratorExpression, + decoratorExpression.expression, + decoratorExpression.typeArguments, + newArgumentsArray, + ), + ); + }); + } + + private amendFieldsDecorators( + f: ts.NodeFactory, + members: ts.NodeArray, + pluginOptions: PluginOptions, + hostFilename: string, // sourceFile.fileName, + typeChecker: ts.TypeChecker | undefined, + ): ts.ClassElement[] { + return members.map((member) => { + const decorators = getDecorators(member); + if ( + (ts.isPropertyDeclaration(member) || ts.isGetAccessor(member)) && + hasDecorators(decorators, [Field.name]) + ) { + try { + return updateDecoratorArguments( + f, + member, + Field.name, + (decoratorArguments) => { + const options = + this.getOptionsFromFieldDecoratorOrUndefined( + decoratorArguments, + ); + + const { type, ...metadata } = this.createFieldMetadata( + f, + member, + typeChecker, + hostFilename, + pluginOptions, + this.getTypeFromFieldDecoratorOrUndefined(decoratorArguments), + ); + + const serializedMetadata = serializePrimitiveObjectToAst( + f, + metadata as any, + ); + return [ + type, + options + ? safelyMergeObjects(f, serializedMetadata, options) + : serializedMetadata, + ]; + }, + ); + } catch (e) { + // omit error + } + } + + return member; + }); } - addMetadataFactory(node: ts.ClassDeclaration) { - const classMutableNode = ts.getMutableClone(node); - const classMetadata = this.getClassMetadata(node as ts.ClassDeclaration); - const returnValue = classMetadata - ? ts.createObjectLiteral( - Object.keys(classMetadata).map((key) => - ts.createPropertyAssignment( - ts.createIdentifier(key), - classMetadata[key], + private collectMetadataFromClassMembers( + f: ts.NodeFactory, + members: ts.ClassElement[], + pluginOptions: PluginOptions, + hostFilename: string, // sourceFile.fileName, + typeChecker: ts.TypeChecker | undefined, + ): ts.ObjectLiteralExpression { + const properties: ts.PropertyAssignment[] = []; + + members.forEach((member) => { + const decorators = getDecorators(member); + const modifiers = getModifiers(member); + if ( + (ts.isPropertyDeclaration(member) || ts.isGetAccessor(member)) && + !hasModifiers(modifiers as readonly ts.Modifier[], [ + ts.SyntaxKind.StaticKeyword, + ts.SyntaxKind.PrivateKeyword, + ]) && + !hasDecorators(decorators, [HideField.name, Field.name]) + ) { + try { + const metadata = this.createFieldMetadata( + f, + member, + typeChecker, + hostFilename, + pluginOptions, + ); + + properties.push( + f.createPropertyAssignment( + f.createIdentifier(member.name.getText()), + serializePrimitiveObjectToAst(f, metadata), ), - ), - ) - : ts.createObjectLiteral([], false); - - const method = ts.createMethod( - undefined, - [ts.createModifier(ts.SyntaxKind.StaticKeyword)], - undefined, - ts.createIdentifier(METADATA_FACTORY_NAME), - undefined, - undefined, - [], - undefined, - ts.createBlock([ts.createReturn(returnValue)], true), - ); - (classMutableNode as any).members = ts.createNodeArray([ - ...(classMutableNode as ts.ClassDeclaration).members, - method, - ]); - return classMutableNode; + ); + } catch (e) { + // omit error + } + } + }); + + return f.createObjectLiteralExpression(properties); } - inspectPropertyDeclaration( - compilerNode: ts.PropertyDeclaration, - typeChecker: ts.TypeChecker, - hostFilename: string, - sourceFile: ts.SourceFile, + private updateClassDeclaration( + f: ts.NodeFactory, + node: ts.ClassDeclaration, + members: ts.ClassElement[], + propsMetadata: ts.ObjectLiteralExpression, pluginOptions: PluginOptions, ) { - const objectLiteralExpr = this.createDecoratorObjectLiteralExpr( - compilerNode, - typeChecker, - ts.createNodeArray(), - hostFilename, - sourceFile, - pluginOptions, - ); - this.addClassMetadata(compilerNode, objectLiteralExpr, sourceFile); + const method = isInUpdatedAstContext + ? f.createMethodDeclaration( + [f.createModifier(ts.SyntaxKind.StaticKeyword)], + undefined, + f.createIdentifier(METADATA_FACTORY_NAME), + undefined, + undefined, + [], + undefined, + f.createBlock([f.createReturnStatement(propsMetadata)], true), + ) + : f.createMethodDeclaration( + undefined, + [f.createModifier(ts.SyntaxKind.StaticKeyword)], + undefined, + f.createIdentifier(METADATA_FACTORY_NAME), + undefined, + undefined, + [], + undefined, + f.createBlock([f.createReturnStatement(propsMetadata)], true), + ); + + const decorators = pluginOptions.introspectComments + ? this.addDescriptionToClassDecorators(f, node) + : getDecorators(node); + + return isInUpdatedAstContext + ? f.updateClassDeclaration( + node, + [...decorators, ...getModifiers(node)], + node.name, + node.typeParameters, + node.heritageClauses, + [...members, method], + ) + : (f.updateClassDeclaration as any)( + node, + decorators, + node.modifiers, + node.name, + node.typeParameters, + node.heritageClauses, + [...members, method], + ); + } + + private getOptionsFromFieldDecoratorOrUndefined( + decoratorArguments: ts.NodeArray, + ): ts.Expression | undefined { + if (decoratorArguments.length > 1) { + return decoratorArguments[1]; + } + + if ( + decoratorArguments.length === 1 && + !ts.isArrowFunction(decoratorArguments[0]) + ) { + return decoratorArguments[0]; + } + } + + private getTypeFromFieldDecoratorOrUndefined( + decoratorArguments: ts.NodeArray, + ): ts.ArrowFunction | undefined { + if ( + decoratorArguments.length > 0 && + ts.isArrowFunction(decoratorArguments[0]) + ) { + return decoratorArguments[0]; + } } - createDecoratorObjectLiteralExpr( - node: ts.PropertyDeclaration | ts.PropertySignature, + private createFieldMetadata( + f: ts.NodeFactory, + node: ts.PropertyDeclaration | ts.GetAccessorDeclaration, typeChecker: ts.TypeChecker, - existingProperties: ts.NodeArray = ts.createNodeArray(), hostFilename = '', - sourceFile?: ts.SourceFile, pluginOptions?: PluginOptions, - ): ts.ObjectLiteralExpression { + typeArrowFunction?: ts.ArrowFunction, + ) { const type = typeChecker.getTypeAtLocation(node); const isNullable = !!node.questionToken || isNull(type) || isUndefined(type); - const properties = [ - ...existingProperties, - !hasPropertyKey('nullable', existingProperties) && - isNullable && - ts.createPropertyAssignment('nullable', ts.createLiteral(isNullable)), - this.createTypePropertyAssignment( - node.type, - typeChecker, - existingProperties, - hostFilename, - sourceFile, - pluginOptions, - ), - this.createDescriptionPropertyAssigment( - node, - existingProperties, - pluginOptions, - sourceFile, - ), - ]; - const objectLiteral = ts.createObjectLiteral(compact(flatten(properties))); - return objectLiteral; + if (!typeArrowFunction) { + typeArrowFunction = + typeArrowFunction || + f.createArrowFunction( + undefined, + undefined, + [], + undefined, + undefined, + this.getTypeUsingTypeChecker(f, node.type, typeChecker, hostFilename), + ); + } + + const description = pluginOptions.introspectComments + ? getJSDocDescription(node) + : undefined; + + const deprecationReason = pluginOptions.introspectComments + ? getJsDocDeprecation(node) + : undefined; + + return { + nullable: isNullable || undefined, + type: typeArrowFunction, + description, + deprecationReason, + }; } - createTypePropertyAssignment( + private getTypeUsingTypeChecker( + f: ts.NodeFactory, node: ts.TypeNode, typeChecker: ts.TypeChecker, - existingProperties: ts.NodeArray, hostFilename: string, - sourceFile?: ts.SourceFile, - pluginOptions?: PluginOptions, - ): ts.PropertyAssignment { - const key = 'type'; - if (hasPropertyKey(key, existingProperties)) { - return undefined; - } + ) { + if (node && ts.isUnionTypeNode(node)) { + const nullableType = findNullableTypeFromUnion(node, typeChecker); + const remainingTypes = node.types.filter((item) => item !== nullableType); - if (node) { - if (ts.isTypeLiteralNode(node)) { - const propertyAssignments = Array.from(node.members || []).map( - (member) => { - const literalExpr = this.createDecoratorObjectLiteralExpr( - member as ts.PropertySignature, - typeChecker, - existingProperties, - hostFilename, - sourceFile, - pluginOptions, - ); - return ts.createPropertyAssignment( - ts.createIdentifier(member.name.getText()), - literalExpr, - ); - }, + if (remainingTypes.length === 1) { + return this.getTypeUsingTypeChecker( + f, + remainingTypes[0], + typeChecker, + hostFilename, ); - return ts.createPropertyAssignment( - key, - ts.createArrowFunction( - undefined, - undefined, - [], - undefined, - undefined, - ts.createParen(ts.createObjectLiteral(propertyAssignments)), - ), - ); - } else if (ts.isUnionTypeNode(node)) { - const nullableType = findNullableTypeFromUnion(node, typeChecker); - const remainingTypes = node.types.filter( - (item) => item !== nullableType, - ); - - if (remainingTypes.length === 1) { - return this.createTypePropertyAssignment( - remainingTypes[0], - typeChecker, - existingProperties, - hostFilename, - ); - } } } @@ -231,116 +396,32 @@ export class ModelClassVisitor { return undefined; } - let typeReference = getTypeReferenceAsString(type, typeChecker); - if (!typeReference) { + const _typeReference = getTypeReferenceAsString(type, typeChecker); + + if (!_typeReference) { return undefined; } - typeReference = replaceImportPath(typeReference, hostFilename); - if (typeReference && typeReference.includes('require')) { - // add top-level import to eagarly load class metadata - const importPath = /\(\"([^)]).+(\")/.exec(typeReference)[0]; - if (importPath) { - let importsToAdd = importsToAddPerFile.get(hostFilename); - if (!importsToAdd) { - importsToAdd = new Set(); - importsToAddPerFile.set(hostFilename, importsToAdd); - } - importsToAdd.add(importPath.slice(2, importPath.length - 1)); - } - } - return ts.createPropertyAssignment( - key, - ts.createArrowFunction( - undefined, - undefined, - [], - undefined, - undefined, - ts.createIdentifier(typeReference), - ), + const { typeReference, importPath } = replaceImportPath( + _typeReference, + hostFilename, ); - } - addClassMetadata( - node: ts.PropertyDeclaration, - objectLiteral: ts.ObjectLiteralExpression, - sourceFile: ts.SourceFile, - ) { - const hostClass = node.parent; - const className = hostClass.name && hostClass.name.getText(); - if (!className) { - return; - } - const existingMetadata = metadataHostMap.get(className) || {}; - const propertyName = node.name && node.name.getText(sourceFile); - if ( - !propertyName || - (node.name && node.name.kind === ts.SyntaxKind.ComputedPropertyName) - ) { - return; + if (importPath) { + // add top-level import to eagarly load class metadata + this.importsToAdd.add(importPath); } - metadataHostMap.set(className, { - ...existingMetadata, - [propertyName]: objectLiteral, - }); - } - getClassMetadata(node: ts.ClassDeclaration) { - if (!node.name) { - return; - } - return metadataHostMap.get(node.name.getText()); + return f.createIdentifier(typeReference); } - updateImports( - sourceFile: ts.SourceFile, - pathsToImport: string[], - ): ts.SourceFile { - const [major, minor] = ts.versionMajorMinor?.split('.').map((x) => +x); - const IMPORT_PREFIX = 'eager_import_'; - const importDeclarations = pathsToImport.map((path, index) => { - if (major == 4 && minor >= 2) { - // support TS v4.2+ - return (ts.createImportEqualsDeclaration as any)( - undefined, - undefined, - false, - IMPORT_PREFIX + index, - ts.createExternalModuleReference(ts.createLiteral(path)), - ); - } - return (ts.createImportEqualsDeclaration as any)( - undefined, - undefined, - IMPORT_PREFIX + index, - ts.createExternalModuleReference(ts.createLiteral(path)), - ); - }); - return ts.updateSourceFileNode(sourceFile, [ - ...importDeclarations, - ...sourceFile.statements, - ]); - } - - createDescriptionPropertyAssigment( - node: ts.PropertyDeclaration | ts.PropertySignature, - existingProperties: ts.NodeArray = ts.createNodeArray(), - options: PluginOptions = {}, - sourceFile?: ts.SourceFile, - ): ts.PropertyAssignment { - if (!options.introspectComments || !sourceFile) { - return; + private createEagerImports(f: ts.NodeFactory): ts.ImportEqualsDeclaration[] { + if (!this.importsToAdd.size) { + return []; } - const description = getDescriptionOfNode(node, sourceFile); - const keyOfComment = 'description'; - if (!hasPropertyKey(keyOfComment, existingProperties) && description) { - const descriptionPropertyAssignment = ts.createPropertyAssignment( - keyOfComment, - ts.createLiteral(description), - ); - return descriptionPropertyAssignment; - } + return Array.from(this.importsToAdd).map((path, index) => { + return createImportEquals(f, 'eager_import_' + index, path); + }); } } diff --git a/packages/graphql/lib/schema-builder/collections/array-with-global-cache.collection.ts b/packages/graphql/lib/schema-builder/collections/array-with-global-cache.collection.ts new file mode 100644 index 000000000..363ea181c --- /dev/null +++ b/packages/graphql/lib/schema-builder/collections/array-with-global-cache.collection.ts @@ -0,0 +1,35 @@ +export class ArrayWithGlobalCacheCollection { + private readonly internalArray: T[] = []; + + constructor(private globalArray: Array) {} + + getAll() { + return this.internalArray; + } + + push(...items: T[]): number { + this.globalArray.push(...items); + return this.internalArray.push(...items); + } + + unshift(...items: T[]): number { + this.globalArray.unshift(...items); + return this.internalArray.unshift(...items); + } + + reverse() { + return this.internalArray.reverse(); + } + + reduce( + callbackfn: ( + previousValue: U, + currentValue: T, + currentIndex: number, + array: T[], + ) => U, + initialValue: U, + ): U { + return this.internalArray.reduce(callbackfn, initialValue); + } +} diff --git a/packages/graphql/lib/schema-builder/collections/field-directive.collection.ts b/packages/graphql/lib/schema-builder/collections/field-directive.collection.ts new file mode 100644 index 000000000..fd42ac351 --- /dev/null +++ b/packages/graphql/lib/schema-builder/collections/field-directive.collection.ts @@ -0,0 +1,19 @@ +import { PropertyDirectiveMetadata } from '../metadata'; +import { MetadataListByNameCollection } from './metadata-list-by-name.collection'; + +export class FieldDirectiveCollection extends MetadataListByNameCollection { + sdls = new Set(); + fieldNames = new Set(); + + add(value: PropertyDirectiveMetadata) { + if (this.sdls.has(value.sdl) && this.fieldNames.has(value.fieldName)) { + return; + } + + super.add(value, value.fieldName); + + this.sdls.add(value.sdl); + this.fieldNames.add(value.fieldName); + this.globalArray?.push(value); + } +} diff --git a/packages/graphql/lib/schema-builder/collections/index.ts b/packages/graphql/lib/schema-builder/collections/index.ts new file mode 100644 index 000000000..27ca55d70 --- /dev/null +++ b/packages/graphql/lib/schema-builder/collections/index.ts @@ -0,0 +1,7 @@ +export * from './array-with-global-cache.collection'; +export * from './field-directive.collection'; +export * from './metada-collection-model.interface'; +export * from './metadata-by-name.collection'; +export * from './metadata-by-target.collection'; +export * from './metadata-list-by-name.collection'; +export * from './target-metadata.collection'; diff --git a/packages/graphql/lib/schema-builder/collections/metada-collection-model.interface.ts b/packages/graphql/lib/schema-builder/collections/metada-collection-model.interface.ts new file mode 100644 index 000000000..6894d3db4 --- /dev/null +++ b/packages/graphql/lib/schema-builder/collections/metada-collection-model.interface.ts @@ -0,0 +1,21 @@ +import { + ClassDirectiveMetadata, + ClassExtensionsMetadata, + ClassMetadata, + PropertyDirectiveMetadata, + PropertyExtensionsMetadata, + ResolverClassMetadata, +} from '../metadata'; +import { ObjectTypeMetadata } from '../metadata/object-type.metadata'; + +export interface MetadataCollectionModel { + argumentType: ClassMetadata[]; + interface: ClassMetadata[]; + inputType: ClassMetadata[]; + objectType: ObjectTypeMetadata[]; + resolver: ResolverClassMetadata[]; + classDirectives: ClassDirectiveMetadata[]; + classExtensions: ClassExtensionsMetadata[]; + fieldDirectives: PropertyDirectiveMetadata[]; + fieldExtensions: PropertyExtensionsMetadata[]; +} diff --git a/packages/graphql/lib/schema-builder/collections/metadata-by-name.collection.ts b/packages/graphql/lib/schema-builder/collections/metadata-by-name.collection.ts new file mode 100644 index 000000000..e1c1f5231 --- /dev/null +++ b/packages/graphql/lib/schema-builder/collections/metadata-by-name.collection.ts @@ -0,0 +1,29 @@ +export class MetadataByNameCollection { + protected internalCollection = new Map(); + protected all: (T extends any[] ? T[number] : T)[] = []; + + getAll() { + return this.all; + } + + getByName(name: string) { + return this.internalCollection.get(name); + } + + add(value: T extends any[] ? T[number] : T, name: string) { + if (this.internalCollection.has(name)) { + return; + } + + this.internalCollection.set(name, value); + this.all.push(value); + } + + unshift(value: T extends any[] ? T[number] : T, name: string) { + if (this.internalCollection.has(name)) { + return; + } + this.internalCollection.set(name, value); + this.all.unshift(value); + } +} diff --git a/packages/graphql/lib/schema-builder/collections/metadata-by-target.collection.ts b/packages/graphql/lib/schema-builder/collections/metadata-by-target.collection.ts new file mode 100644 index 000000000..36c20eecd --- /dev/null +++ b/packages/graphql/lib/schema-builder/collections/metadata-by-target.collection.ts @@ -0,0 +1,44 @@ +import { MetadataCollectionModel } from './metada-collection-model.interface'; +import { TargetMetadataCollection } from './target-metadata.collection'; + +export class MetadataByTargetCollection { + public readonly all: MetadataCollectionModel = { + argumentType: [], + interface: [], + inputType: [], + objectType: [], + resolver: [], + classDirectives: [], + classExtensions: [], + fieldDirectives: [], + fieldExtensions: [], + }; + + private readonly storageMap = new Map(); + private readonly storageList = new Array(); + + get(target: Function) { + let metadata = this.storageMap.get(target); + + if (!metadata) { + metadata = new TargetMetadataCollection(this.all); + this.storageMap.set(target, metadata); + this.storageList.push(metadata); + } + + return metadata; + } + + compile() { + this.reversePredicate((t) => t.classDirectives.getAll()); + this.reversePredicate((t) => t.classExtensions.getAll()); + this.reversePredicate((t) => t.fieldDirectives.getAll()); + this.reversePredicate((t) => t.fieldExtensions.getAll()); + } + + private reversePredicate( + predicate: (t: TargetMetadataCollection) => Array, + ) { + this.storageList.forEach((t) => predicate(t).reverse()); + } +} diff --git a/packages/graphql/lib/schema-builder/collections/metadata-list-by-name.collection.ts b/packages/graphql/lib/schema-builder/collections/metadata-list-by-name.collection.ts new file mode 100644 index 000000000..a797f5d45 --- /dev/null +++ b/packages/graphql/lib/schema-builder/collections/metadata-list-by-name.collection.ts @@ -0,0 +1,37 @@ +import { MetadataByNameCollection } from './metadata-by-name.collection'; + +export class MetadataListByNameCollection extends MetadataByNameCollection< + T[] +> { + constructor(protected globalArray: Array = null) { + super(); + } + + getByName(name: string): T[] { + return super.getByName(name) || []; + } + + add(value: T, name: string) { + let arrayResult = super.getByName(name); + if (!arrayResult) { + arrayResult = []; + this.internalCollection.set(name, arrayResult); + } + + arrayResult.push(value); + this.all.push(value); + this.globalArray && this.globalArray.push(value); + } + + unshift(value: T, name: string) { + let arrayResult = super.getByName(name); + if (!arrayResult) { + arrayResult = []; + this.internalCollection.set(name, arrayResult); + } + + arrayResult.unshift(value); + this.all.push(value); + this.globalArray && this.globalArray.unshift(value); + } +} diff --git a/packages/graphql/lib/schema-builder/collections/target-metadata.collection.ts b/packages/graphql/lib/schema-builder/collections/target-metadata.collection.ts new file mode 100644 index 000000000..35f4dac0a --- /dev/null +++ b/packages/graphql/lib/schema-builder/collections/target-metadata.collection.ts @@ -0,0 +1,84 @@ +import { + ClassDirectiveMetadata, + ClassExtensionsMetadata, + ClassMetadata, + MethodArgsMetadata, + PropertyExtensionsMetadata, + PropertyMetadata, + ResolverClassMetadata, +} from '../metadata'; +import { ObjectTypeMetadata } from '../metadata/object-type.metadata'; +import { ArrayWithGlobalCacheCollection } from './array-with-global-cache.collection'; +import { FieldDirectiveCollection } from './field-directive.collection'; +import { MetadataCollectionModel } from './metada-collection-model.interface'; +import { MetadataByNameCollection } from './metadata-by-name.collection'; +import { MetadataListByNameCollection } from './metadata-list-by-name.collection'; + +export class TargetMetadataCollection { + constructor(private readonly all: MetadataCollectionModel) {} + + fields = new MetadataByNameCollection(); + params = new MetadataListByNameCollection(); + fieldDirectives = new FieldDirectiveCollection(this.all.fieldDirectives); + fieldExtensions = + new MetadataListByNameCollection( + this.all.fieldExtensions, + ); + classDirectives = new ArrayWithGlobalCacheCollection( + this.all.classDirectives, + ); + classExtensions = new ArrayWithGlobalCacheCollection( + this.all.classExtensions, + ); + + private _argumentType: ClassMetadata; + private _interface: ClassMetadata; + private _inputType: ClassMetadata; + private _objectType: ObjectTypeMetadata; + private _resolver: ResolverClassMetadata; + + set argumentType(val: ClassMetadata) { + this._argumentType = val; + this.all.argumentType.push(val); + } + + get argumentType() { + return this._argumentType; + } + + set interface(val: ClassMetadata) { + this._interface = val; + this.all.interface.push(val); + } + + get interface() { + return this._interface; + } + + set inputType(val: ClassMetadata) { + this._inputType = val; + this.all.inputType.push(val); + } + + get inputType() { + return this._inputType; + } + + set objectType(val: ObjectTypeMetadata) { + this._objectType = val; + this.all.objectType.push(val); + } + + get objectType() { + return this._objectType; + } + + set resolver(val: ResolverClassMetadata) { + this._resolver = val; + this.all.resolver.push(val); + } + + get resolver() { + return this._resolver; + } +} diff --git a/packages/graphql/lib/schema-builder/errors/cannot-determine-input-type.error.ts b/packages/graphql/lib/schema-builder/errors/cannot-determine-input-type.error.ts index 917e7428f..e9f881008 100644 --- a/packages/graphql/lib/schema-builder/errors/cannot-determine-input-type.error.ts +++ b/packages/graphql/lib/schema-builder/errors/cannot-determine-input-type.error.ts @@ -6,8 +6,8 @@ export class CannotDetermineInputTypeError extends Error { typeof typeRef === 'function' && typeRef.name; super( `Cannot determine a GraphQL input type ${ - inputObjectName ? `("${inputObjectName}") ` : null - }for the "${hostType}". Make sure your class is decorated with an appropriate decorator.`, + inputObjectName ? `("${inputObjectName}")` : null + } for the "${hostType}". Make sure your class is decorated with an appropriate decorator.`, ); } } diff --git a/packages/graphql/lib/schema-builder/errors/multiple-fields-with-same-name.error.ts b/packages/graphql/lib/schema-builder/errors/multiple-fields-with-same-name.error.ts new file mode 100644 index 000000000..0caaafa22 --- /dev/null +++ b/packages/graphql/lib/schema-builder/errors/multiple-fields-with-same-name.error.ts @@ -0,0 +1,7 @@ +export class MultipleFieldsWithSameNameError extends Error { + constructor(field: string, objectTypeName: string) { + super( + `Cannot define multiple fields with the same name "${field}" for type "${objectTypeName}"`, + ); + } +} diff --git a/packages/graphql/lib/schema-builder/factories/interface-definition.factory.ts b/packages/graphql/lib/schema-builder/factories/interface-definition.factory.ts index a4ec2a37a..2a86cd761 100644 --- a/packages/graphql/lib/schema-builder/factories/interface-definition.factory.ts +++ b/packages/graphql/lib/schema-builder/factories/interface-definition.factory.ts @@ -113,7 +113,22 @@ export class InterfaceDefinitionFactory { return () => { let fields: GraphQLFieldConfigMap = {}; - metadata.properties.forEach((field) => { + + let properties = []; + if (metadata.interfaces) { + const implementedInterfaces = + TypeMetadataStorage.getInterfacesMetadata() + .filter((it) => + getInterfacesArray(metadata.interfaces).includes(it.target), + ) + .map((it) => it.properties); + implementedInterfaces.forEach((fields) => + properties.push(...(fields || [])), + ); + } + properties = properties.concat(metadata.properties); + + properties.forEach((field) => { const type = this.outputTypeFactory.create( field.name, field.typeFn(), diff --git a/packages/graphql/lib/schema-builder/factories/root-type.factory.ts b/packages/graphql/lib/schema-builder/factories/root-type.factory.ts index bc5c8a77e..85dc49deb 100644 --- a/packages/graphql/lib/schema-builder/factories/root-type.factory.ts +++ b/packages/graphql/lib/schema-builder/factories/root-type.factory.ts @@ -6,6 +6,7 @@ import { OrphanedReferenceRegistry } from '../services/orphaned-reference.regist import { ArgsFactory } from './args.factory'; import { AstDefinitionNodeFactory } from './ast-definition-node.factory'; import { OutputTypeFactory } from './output-type.factory'; +import { MultipleFieldsWithSameNameError } from '../errors/multiple-fields-with-same-name.error'; export type FieldsFactory = ( handlers: ResolverTypeMetadata[], @@ -27,7 +28,7 @@ export class RootTypeFactory { objectTypeName: 'Subscription' | 'Mutation' | 'Query', options: BuildSchemaOptions, fieldsFactory: FieldsFactory = (handlers) => - this.generateFields(handlers, options), + this.generateFields(handlers, options, objectTypeName), ): GraphQLObjectType { const handlers = typeRefs ? resolversMetadata.filter((query) => typeRefs.includes(query.target)) @@ -45,6 +46,7 @@ export class RootTypeFactory { generateFields( handlers: ResolverTypeMetadata[], options: BuildSchemaOptions, + objectTypeName: string, ): GraphQLFieldConfigMap { const fieldConfigMap: GraphQLFieldConfigMap = {}; @@ -66,6 +68,11 @@ export class RootTypeFactory { ); const key = handler.schemaName; + + if (fieldConfigMap[key] && options.noDuplicatedFields) { + throw new MultipleFieldsWithSameNameError(key, objectTypeName); + } + fieldConfigMap[key] = { type, args: this.argsFactory.create(handler.methodArgs, options), diff --git a/packages/graphql/lib/schema-builder/graphql-schema.factory.ts b/packages/graphql/lib/schema-builder/graphql-schema.factory.ts index 8127e7451..38bd0e945 100644 --- a/packages/graphql/lib/schema-builder/graphql-schema.factory.ts +++ b/packages/graphql/lib/schema-builder/graphql-schema.factory.ts @@ -70,7 +70,10 @@ export class GraphQLSchemaFactory { mutation: this.mutationTypeFactory.create(resolvers, options), query: this.queryTypeFactory.create(resolvers, options), subscription: this.subscriptionTypeFactory.create(resolvers, options), - types: this.orphanedTypesFactory.create(options.orphanedTypes), + types: [ + ...this.orphanedTypesFactory.create(options.orphanedTypes), + ...(options.scalarsMap ?? []).map(({ scalar }) => scalar), + ], directives: [...specifiedDirectives, ...(options.directives ?? [])], }); diff --git a/packages/graphql/lib/schema-builder/storages/type-metadata.storage.ts b/packages/graphql/lib/schema-builder/storages/type-metadata.storage.ts index e701b08fe..a0aff4686 100644 --- a/packages/graphql/lib/schema-builder/storages/type-metadata.storage.ts +++ b/packages/graphql/lib/schema-builder/storages/type-metadata.storage.ts @@ -1,53 +1,38 @@ import { Type } from '@nestjs/common'; import { isUndefined } from '@nestjs/common/utils/shared.utils'; -import { addFieldMetadata } from '../../decorators/field.decorator'; +import { addFieldMetadata } from '../../decorators'; import { METADATA_FACTORY_NAME } from '../../plugin/plugin-constants'; +import { MetadataByTargetCollection } from '../collections/'; import { CannotDetermineHostTypeError } from '../errors/cannot-determine-host-type.error'; import { UndefinedTypeError } from '../errors/undefined-type.error'; import { BaseResolverMetadata, + ClassDirectiveMetadata, ClassExtensionsMetadata, ClassMetadata, EnumMetadata, FieldResolverMetadata, MethodArgsMetadata, + PropertyDirectiveMetadata, PropertyExtensionsMetadata, PropertyMetadata, ResolverClassMetadata, ResolverTypeMetadata, UnionMetadata, } from '../metadata'; -import { - ClassDirectiveMetadata, - PropertyDirectiveMetadata, -} from '../metadata/directive.metadata'; import { InterfaceMetadata } from '../metadata/interface.metadata'; import { ObjectTypeMetadata } from '../metadata/object-type.metadata'; -import { isTargetEqual } from '../utils/is-target-equal-util'; import { isThrowing } from '../utils/is-throwing.util'; export class TypeMetadataStorageHost { - /** - * The implementation of this class has been heavily inspired by the following code: - * @ref https://github.com/MichalLytek/type-graphql/blob/master/src/metadata/metadata-storage.ts - */ private queries = new Array(); private mutations = new Array(); private subscriptions = new Array(); private fieldResolvers = new Array(); - private readonly resolvers = new Array(); - private readonly fields = new Array(); - private readonly params = new Array(); - private readonly interfaces = new Array(); private readonly enums = new Array(); private readonly unions = new Array(); - private readonly classDirectives = new Array(); - private readonly fieldDirectives = new Array(); - private readonly classExtensions = new Array(); - private readonly fieldExtensions = new Array(); - private readonly objectTypes = new Array(); - private readonly inputTypes = new Array(); - private readonly argumentTypes = new Array(); + private readonly metadataByTargetCollection = + new MetadataByTargetCollection(); addMutationMetadata(metadata: ResolverTypeMetadata) { this.mutations.push(metadata); @@ -78,59 +63,60 @@ export class TypeMetadataStorageHost { } addArgsMetadata(metadata: ClassMetadata) { - this.argumentTypes.push(metadata); + this.metadataByTargetCollection.get(metadata.target).argumentType = + metadata; } getArgumentsMetadata(): ClassMetadata[] { - return this.argumentTypes; + return this.metadataByTargetCollection.all.argumentType; } getArgumentsMetadataByTarget( target: Type, ): ClassMetadata | undefined { - return this.argumentTypes.find((item) => item.target === target); + return this.metadataByTargetCollection.get(target).argumentType; } addInterfaceMetadata(metadata: InterfaceMetadata) { - this.interfaces.push(metadata); + this.metadataByTargetCollection.get(metadata.target).interface = metadata; } getInterfacesMetadata(): InterfaceMetadata[] { - return this.interfaces; + return this.metadataByTargetCollection.all.interface; } getInterfaceMetadataByTarget( target: Type, ): InterfaceMetadata | undefined { - return this.interfaces.find((item) => item.target === target); + return this.metadataByTargetCollection.get(target).interface; } addInputTypeMetadata(metadata: ClassMetadata) { - this.inputTypes.push(metadata); + this.metadataByTargetCollection.get(metadata.target).inputType = metadata; } getInputTypesMetadata(): ClassMetadata[] { - return this.inputTypes; + return this.metadataByTargetCollection.all.inputType; } getInputTypeMetadataByTarget( target: Type, ): ObjectTypeMetadata | undefined { - return this.inputTypes.find((item) => item.target === target); + return this.metadataByTargetCollection.get(target).inputType; } addObjectTypeMetadata(metadata: ObjectTypeMetadata) { - this.objectTypes.push(metadata); + this.metadataByTargetCollection.get(metadata.target).objectType = metadata; } getObjectTypesMetadata(): ObjectTypeMetadata[] { - return this.objectTypes; + return this.metadataByTargetCollection.all.objectType; } getObjectTypeMetadataByTarget( target: Type, ): ObjectTypeMetadata | undefined { - return this.objectTypes.find((item) => item.target === target); + return this.metadataByTargetCollection.get(target).objectType; } addEnumMetadata(metadata: EnumMetadata) { @@ -150,46 +136,39 @@ export class TypeMetadataStorageHost { } addDirectiveMetadata(metadata: ClassDirectiveMetadata) { - const exist = this.fieldDirectives.some((directiveMetadata) => { - return ( - directiveMetadata.sdl === metadata.sdl && - directiveMetadata.target === metadata.target - ); - }); - if (!exist) { - this.classDirectives.push(metadata); + const classMetadata = this.metadataByTargetCollection.get(metadata.target); + if (!classMetadata.fieldDirectives.sdls.has(metadata.sdl)) { + classMetadata.classDirectives.push(metadata); } } addDirectivePropertyMetadata(metadata: PropertyDirectiveMetadata) { - const exist = this.fieldDirectives.some((directiveMetadata) => { - return ( - directiveMetadata.fieldName === metadata.fieldName && - directiveMetadata.sdl === metadata.sdl && - directiveMetadata.target === metadata.target - ); - }); - if (!exist) { - this.fieldDirectives.push(metadata); - } + this.metadataByTargetCollection + .get(metadata.target) + .fieldDirectives.add(metadata); } addExtensionsMetadata(metadata: ClassExtensionsMetadata) { - this.classExtensions.push(metadata); + this.metadataByTargetCollection + .get(metadata.target) + .classExtensions.push(metadata); } addExtensionsPropertyMetadata(metadata: PropertyExtensionsMetadata) { - this.fieldExtensions.push(metadata); + this.metadataByTargetCollection + .get(metadata.target) + .fieldExtensions.add(metadata, metadata.fieldName); } addResolverMetadata(metadata: ResolverClassMetadata) { - this.resolvers.push(metadata); + this.metadataByTargetCollection.get(metadata.target).resolver = metadata; } addClassFieldMetadata(metadata: PropertyMetadata) { - const existingMetadata = this.fields.find( - (item) => item.target === metadata.target && item.name === metadata.name, - ); + const existingMetadata = this.metadataByTargetCollection + .get(metadata.target) + .fields.getByName(metadata.name); + if (existingMetadata) { const options = existingMetadata.options; // inherit nullable option @@ -197,25 +176,26 @@ export class TypeMetadataStorageHost { options.nullable = metadata.options.nullable; } } else { - this.fields.push(metadata); + this.metadataByTargetCollection + .get(metadata.target) + .fields.add(metadata, metadata.name); } } addMethodParamMetadata(metadata: MethodArgsMetadata) { - this.params.unshift(metadata); + this.metadataByTargetCollection + .get(metadata.target) + .params.unshift(metadata, metadata.methodName); } compile(orphanedTypes: (Function | object)[] = []) { - this.classDirectives.reverse(); - this.classExtensions.reverse(); - this.fieldDirectives.reverse(); - this.fieldExtensions.reverse(); + this.metadataByTargetCollection.compile(); const classMetadata = [ - ...this.objectTypes, - ...this.inputTypes, - ...this.argumentTypes, - ...this.interfaces, + ...this.metadataByTargetCollection.all.objectType, + ...this.metadataByTargetCollection.all.inputType, + ...this.metadataByTargetCollection.all.argumentType, + ...this.metadataByTargetCollection.all.interface, ]; this.loadClassPluginMetadata(classMetadata); this.compileClassMetadata(classMetadata); @@ -274,18 +254,21 @@ export class TypeMetadataStorageHost { compileClassMetadata(metadata: ClassMetadata[]) { metadata.forEach((item) => { - const belongsToClass = isTargetEqual.bind(undefined, item); - if (!item.properties) { - item.properties = this.getClassFieldsByPredicate(belongsToClass); + item.properties = this.getClassFieldsByPredicate(item); } if (!item.directives) { - item.directives = this.classDirectives.filter(belongsToClass); + item.directives = this.metadataByTargetCollection + .get(item.target) + .classDirectives.getAll(); } if (!item.extensions) { - item.extensions = this.classExtensions - .filter(belongsToClass) - .reduce((curr, acc) => ({ ...curr, ...acc.value }), {}); + item.extensions = this.metadataByTargetCollection + .get(item.target) + .classExtensions.reduce( + (curr, acc) => ({ ...curr, ...acc.value }), + {}, + ); } }); } @@ -294,20 +277,20 @@ export class TypeMetadataStorageHost { Object.assign(this, new TypeMetadataStorageHost()); } - private getClassFieldsByPredicate( - belongsToClass: (item: PropertyMetadata) => boolean, - ) { - const fields = this.fields.filter(belongsToClass); + private getClassFieldsByPredicate(item: ClassMetadata) { + const fields = this.metadataByTargetCollection + .get(item.target) + .fields.getAll(); fields.forEach((field) => { - const isHostEqual = isTargetEqual.bind(undefined, field); - field.methodArgs = this.params.filter( - (param) => isHostEqual(param) && field.name === param.methodName, - ); - field.directives = this.fieldDirectives.filter( - this.isFieldDirectiveOrExtension.bind(this, field), - ); - field.extensions = this.fieldExtensions - .filter(this.isFieldDirectiveOrExtension.bind(this, field)) + field.methodArgs = this.metadataByTargetCollection + .get(item.target) + .params.getByName(field.name); + field.directives = this.metadataByTargetCollection + .get(item.target) + .fieldDirectives.getByName(field.name); + field.extensions = this.metadataByTargetCollection + .get(item.target) + .fieldExtensions.getByName(field.name) .reduce((curr, acc) => ({ ...curr, ...acc.value }), {}); }); return fields; @@ -315,18 +298,18 @@ export class TypeMetadataStorageHost { private compileResolversMetadata(metadata: BaseResolverMetadata[]) { metadata.forEach((item) => { - const isTypeEqual = isTargetEqual.bind(undefined, item); - const resolverMetadata = this.resolvers.find(isTypeEqual); - - item.classMetadata = resolverMetadata; - item.methodArgs = this.params.filter( - (param) => isTypeEqual(param) && item.methodName === param.methodName, - ); - item.directives = this.fieldDirectives.filter( - this.isFieldDirectiveOrExtension.bind(this, item), - ); - item.extensions = this.fieldExtensions - .filter(this.isFieldDirectiveOrExtension.bind(this, item)) + item.classMetadata = this.metadataByTargetCollection.get( + item.target, + ).resolver; + item.methodArgs = this.metadataByTargetCollection + .get(item.target) + .params.getByName(item.methodName); + item.directives = this.metadataByTargetCollection + .get(item.target) + .fieldDirectives.getByName(item.methodName); + item.extensions = this.metadataByTargetCollection + .get(item.target) + .fieldExtensions.getByName(item.methodName) .reduce((curr, acc) => ({ ...curr, ...acc.value }), {}); }); } @@ -335,17 +318,17 @@ export class TypeMetadataStorageHost { this.compileResolversMetadata(metadata); metadata.forEach((item) => { - const belongsToClass = isTargetEqual.bind(undefined, item); - item.directives = this.fieldDirectives.filter( - this.isFieldDirectiveOrExtension.bind(this, item), - ); - item.extensions = this.fieldExtensions - .filter(this.isFieldDirectiveOrExtension.bind(this, item)) + item.directives = this.metadataByTargetCollection + .get(item.target) + .fieldDirectives.getByName(item.methodName); + item.extensions = this.metadataByTargetCollection + .get(item.target) + .fieldExtensions.getByName(item.methodName) .reduce((curr, acc) => ({ ...curr, ...acc.value }), {}); item.objectTypeFn = item.kind === 'external' - ? this.resolvers.find(belongsToClass).typeFn + ? this.metadataByTargetCollection.get(item.target).resolver.typeFn : () => item.target as Type; if (item.kind === 'external') { @@ -355,27 +338,8 @@ export class TypeMetadataStorageHost { } private compileExternalFieldResolverMetadata(item: FieldResolverMetadata) { - const objectTypeRef = this.resolvers - .find((el) => isTargetEqual(el, item)) - .typeFn(); - - const objectOrInterfaceTypeMetadata = - this.objectTypes.find( - (objTypeDef) => objTypeDef.target === objectTypeRef, - ) || - this.interfaces.find( - (interfaceTypeDef) => interfaceTypeDef.target === objectTypeRef, - ); - if (!objectOrInterfaceTypeMetadata) { - throw new CannotDetermineHostTypeError( - item.schemaName, - objectTypeRef?.name, - ); - } - const objectOrInterfaceTypeField = - objectOrInterfaceTypeMetadata.properties.find( - (fieldDef) => fieldDef.name === item.methodName, - ); + const [target, objectOrInterfaceTypeMetadata, objectOrInterfaceTypeField] = + this.findModelFieldMetadata(item); if (!objectOrInterfaceTypeField) { if (!item.typeFn || !item.typeOptions) { throw new UndefinedTypeError(item.target.name, item.methodName); @@ -386,7 +350,7 @@ export class TypeMetadataStorageHost { deprecationReason: item.deprecationReason, description: item.description, typeFn: item.typeFn, - target: objectTypeRef, + target, options: item.typeOptions, methodArgs: item.methodArgs, directives: item.directives, @@ -414,14 +378,58 @@ export class TypeMetadataStorageHost { } } + private findModelFieldMetadata( + item: FieldResolverMetadata, + ): [Function, ClassMetadata, PropertyMetadata | undefined] { + let objectTypeRef = this.metadataByTargetCollection + .get(item.target) + .resolver.typeFn(); + const getTypeMetadata = (target: any) => { + const metadata = this.metadataByTargetCollection.get(target); + return metadata.objectType || metadata.interface; + }; + let objectOrInterfaceTypeMetadata = getTypeMetadata(objectTypeRef); + if (!objectOrInterfaceTypeMetadata) { + throw new CannotDetermineHostTypeError( + item.schemaName, + objectTypeRef?.name, + ); + } + let objectOrInterfaceTypeField = + objectOrInterfaceTypeMetadata.properties.find( + (fieldDef) => fieldDef.name === item.methodName, + ); + for ( + let _objectTypeRef = objectTypeRef; + !objectOrInterfaceTypeField && _objectTypeRef?.prototype; + _objectTypeRef = Object.getPrototypeOf(_objectTypeRef) + ) { + const possibleTypeMetadata = getTypeMetadata(_objectTypeRef); + objectOrInterfaceTypeField = possibleTypeMetadata?.properties.find( + (fieldDef) => fieldDef.name === item.methodName, + ); + if (objectOrInterfaceTypeField) { + objectTypeRef = _objectTypeRef; + objectOrInterfaceTypeMetadata = possibleTypeMetadata; + break; + } + } + return [ + objectTypeRef, + objectOrInterfaceTypeMetadata, + objectOrInterfaceTypeField, + ]; + } + private compileExtendedResolversMetadata() { - this.resolvers.forEach((item) => { + this.metadataByTargetCollection.all.resolver.forEach((item) => { let parentClass = Object.getPrototypeOf(item.target); while (parentClass.prototype) { - const parentMetadata = this.resolvers.find( - (item) => item.target === parentClass, - ); + const parentMetadata = this.metadataByTargetCollection.get( + item.target, + ).resolver; + if (parentMetadata) { this.queries = this.mergeParentResolverHandlers( this.queries, @@ -449,16 +457,6 @@ export class TypeMetadataStorageHost { }); } - private isFieldDirectiveOrExtension( - host: Record<'target' | 'methodName' | 'name', any>, - metadata: PropertyDirectiveMetadata | PropertyExtensionsMetadata, - ): boolean { - return ( - metadata.target === host.target && - metadata.fieldName === (host.methodName || host.name) - ); - } - private mergeParentResolverHandlers< T extends ResolverTypeMetadata | FieldResolverMetadata, >( @@ -466,7 +464,7 @@ export class TypeMetadataStorageHost { parentClass: Function, classMetadata: ResolverClassMetadata, ): T[] { - const mergedMetadata = metadata.map((metadata) => { + return metadata.map((metadata) => { return metadata.target !== parentClass ? metadata : { @@ -475,7 +473,6 @@ export class TypeMetadataStorageHost { classMetadata, }; }); - return mergedMetadata; } private mergeParentFieldHandlers( @@ -488,7 +485,7 @@ export class TypeMetadataStorageHost { parentClass, classMetadata, ); - const mergedMetadata = parentMetadata.map((metadata) => { + return parentMetadata.map((metadata) => { return metadata.target === parentClass ? metadata : { @@ -498,7 +495,6 @@ export class TypeMetadataStorageHost { : metadata.objectTypeFn, }; }); - return mergedMetadata; } } diff --git a/packages/graphql/lib/services/gql-subscription.service.ts b/packages/graphql/lib/services/gql-subscription.service.ts index 0e5d2c503..27519c354 100644 --- a/packages/graphql/lib/services/gql-subscription.service.ts +++ b/packages/graphql/lib/services/gql-subscription.service.ts @@ -3,7 +3,11 @@ import { GraphQLSchema, subscribe as graphqlSubscribe, } from 'graphql'; -import { GRAPHQL_TRANSPORT_WS_PROTOCOL, ServerOptions } from 'graphql-ws'; +import { + Disposable, + GRAPHQL_TRANSPORT_WS_PROTOCOL, + ServerOptions, +} from 'graphql-ws'; import { useServer } from 'graphql-ws/lib/use/ws'; import { GRAPHQL_WS, @@ -51,6 +55,8 @@ export interface GqlSubscriptionServiceOptions extends SubscriptionConfig { export class GqlSubscriptionService { private readonly wss: ws.Server; private readonly subTransWs: ws.Server; + private wsGqlDisposable: Disposable; + private subServer: SubscriptionServer; constructor( private readonly options: GqlSubscriptionServiceOptions, @@ -83,7 +89,7 @@ export class GqlSubscriptionService { const graphqlWsOptions = this.options['graphql-ws'] === true ? {} : this.options['graphql-ws']; supportedProtocols.push(GRAPHQL_TRANSPORT_WS_PROTOCOL); - useServer( + this.wsGqlDisposable = useServer( { schema: this.options.schema, execute, @@ -102,7 +108,7 @@ export class GqlSubscriptionService { : this.options['subscriptions-transport-ws']; supportedProtocols.push(GRAPHQL_WS); - SubscriptionServer.create( + this.subServer = SubscriptionServer.create( { schema: this.options.schema, execute, @@ -132,18 +138,16 @@ export class GqlSubscriptionService { ? this.subTransWs : this.wss; - wss.handleUpgrade(req, socket, head, (ws) => { - wss.emit('connection', ws, req); - }); + if (req.url?.startsWith(wss.options.path)) { + wss.handleUpgrade(req, socket, head, (ws) => { + wss.emit('connection', ws, req); + }); + } }); } async stop() { - for (const client of this.wss.clients) { - client.close(1001, 'Going away'); - } - for (const client of this.subTransWs.clients) { - client.close(1001, 'Going away'); - } + await this.wsGqlDisposable?.dispose(); + this.subServer?.close(); } } diff --git a/packages/graphql/lib/services/resolvers-explorer.service.ts b/packages/graphql/lib/services/resolvers-explorer.service.ts index e160c7142..a04b65c5f 100644 --- a/packages/graphql/lib/services/resolvers-explorer.service.ts +++ b/packages/graphql/lib/services/resolvers-explorer.service.ts @@ -302,7 +302,10 @@ export class ResolversExplorerService extends BaseExplorerService { } const wrapper = coreModuleRef.getProviderByKey(REQUEST); wrapper.setInstanceByContextId(contextId, { - instance: request, + // TODO: remove "as any" in the next major release (backward compatibility) + instance: (contextId as any).getParent + ? (contextId as any).payload + : request, isResolved: true, }); } diff --git a/packages/graphql/lib/type-factories/create-union-type.factory.ts b/packages/graphql/lib/type-factories/create-union-type.factory.ts index 395a52d99..38f67691b 100644 --- a/packages/graphql/lib/type-factories/create-union-type.factory.ts +++ b/packages/graphql/lib/type-factories/create-union-type.factory.ts @@ -17,7 +17,7 @@ export interface UnionOptions[] = Type /** * Name of the union. */ - name: string; + name?: string; /** * Description of the union. */ diff --git a/packages/graphql/lib/type-factories/register-enum-type.factory.ts b/packages/graphql/lib/type-factories/register-enum-type.factory.ts index fc361539b..c18a4bcbe 100644 --- a/packages/graphql/lib/type-factories/register-enum-type.factory.ts +++ b/packages/graphql/lib/type-factories/register-enum-type.factory.ts @@ -33,7 +33,7 @@ export interface EnumOptions { */ export function registerEnumType( enumRef: T, - options: EnumOptions, + options?: EnumOptions, ) { LazyMetadataStorage.store(() => TypeMetadataStorage.addEnumMetadata({ diff --git a/packages/graphql/lib/type-helpers/intersection-type.helper.ts b/packages/graphql/lib/type-helpers/intersection-type.helper.ts index 8864d82e7..6deef6f0d 100644 --- a/packages/graphql/lib/type-helpers/intersection-type.helper.ts +++ b/packages/graphql/lib/type-helpers/intersection-type.helper.ts @@ -1,4 +1,5 @@ import { Type } from '@nestjs/common'; +import { isFunction } from '@nestjs/common/utils/shared.utils'; import { inheritPropertyInitializers, inheritTransformationMetadata, @@ -37,6 +38,14 @@ export function IntersectionType( inheritTransformationMetadata(classBRef, IntersectionObjectType); fields.forEach((item) => { + if (isFunction(item.typeFn)) { + /** + * Execute type function eagarly to update the type options object (before "clone" operation) + * when the passed function (e.g., @Field(() => Type)) lazily returns an array. + */ + item.typeFn(); + } + Field(item.typeFn, { ...item.options })( IntersectionObjectType.prototype, item.name, diff --git a/packages/graphql/lib/type-helpers/partial-type.helper.ts b/packages/graphql/lib/type-helpers/partial-type.helper.ts index 814cea620..590f254a2 100644 --- a/packages/graphql/lib/type-helpers/partial-type.helper.ts +++ b/packages/graphql/lib/type-helpers/partial-type.helper.ts @@ -35,7 +35,7 @@ export function PartialType( fields.forEach((item) => { if (isFunction(item.typeFn)) { /** - * Execute type function eagarly to update the type options object (before "clone" operation) + * Execute type function eagerly to update the type options object (before "clone" operation) * when the passed function (e.g., @Field(() => Type)) lazily returns an array. */ item.typeFn(); diff --git a/packages/graphql/lib/utils/auto-schema-file.util.ts b/packages/graphql/lib/utils/auto-schema-file.util.ts new file mode 100644 index 000000000..85d552e3d --- /dev/null +++ b/packages/graphql/lib/utils/auto-schema-file.util.ts @@ -0,0 +1,14 @@ +import { isObject, isString } from '@nestjs/common/utils/shared.utils'; +import { AutoSchemaFileValue } from '../interfaces'; + +export function getPathForAutoSchemaFile( + autoSchemaFile: AutoSchemaFileValue, +): string | null { + if (isString(autoSchemaFile)) { + return autoSchemaFile; + } + if (isObject(autoSchemaFile) && autoSchemaFile.path) { + return autoSchemaFile.path; + } + return null; +} diff --git a/packages/graphql/lib/utils/index.ts b/packages/graphql/lib/utils/index.ts index 663519e73..e51b06ac1 100644 --- a/packages/graphql/lib/utils/index.ts +++ b/packages/graphql/lib/utils/index.ts @@ -1,6 +1,8 @@ +export * from './auto-schema-file.util'; export * from './extend.util'; export * from './extract-metadata.util'; export * from './generate-token.util'; export * from './get-number-of-arguments.util'; export * from './normalize-route-path.util'; export * from './remove-temp.util'; +export * from './stringify-without-quotes.util'; diff --git a/packages/graphql/lib/utils/stringify-without-quotes.util.ts b/packages/graphql/lib/utils/stringify-without-quotes.util.ts new file mode 100644 index 000000000..f9f72efaa --- /dev/null +++ b/packages/graphql/lib/utils/stringify-without-quotes.util.ts @@ -0,0 +1,13 @@ +export function stringifyWithoutQuotes(obj: object, includeSpaces?: boolean) { + let result = includeSpaces + ? JSON.stringify(obj, null, 2) + : JSON.stringify(obj); + result = result + .replace(/"([^"]+)":/g, '$1:') + .replace(/(?({|,|:))/g, '$ '); + + if (!includeSpaces) { + result = result.replace(/}/g, ' }'); + } + return result; +} diff --git a/packages/graphql/lib/utils/transform-schema.util.ts b/packages/graphql/lib/utils/transform-schema.util.ts index bfc1bb975..9a350fcc2 100644 --- a/packages/graphql/lib/utils/transform-schema.util.ts +++ b/packages/graphql/lib/utils/transform-schema.util.ts @@ -1,6 +1,6 @@ -// This file is copied from `apollo-tooling`. The only difference is that it has a hack to not remove federation specific properties. -// The changed lines are 31-40 and 85-87 and the original file can be found here: -// https://github.com/apollographql/apollo-tooling/blob/master/packages/apollo-graphql/src/schema/transformSchema.ts +// This file is copied from `apollographql/federation`. The only difference is +// that it has a hack to not remove federation specific properties. +// https://github.com/apollographql/federation/blob/main/subgraph-js/src/schema-helper/transformSchema.ts import { GraphQLDirective, @@ -15,6 +15,7 @@ import { GraphQLNonNull, GraphQLObjectType, GraphQLOutputType, + GraphQLResolveInfo, GraphQLSchema, GraphQLType, GraphQLUnionType, @@ -27,13 +28,33 @@ import { isUnionType, } from 'graphql'; +type GraphQLReferenceResolver = ( + reference: object, + context: TContext, + info: GraphQLResolveInfo, +) => any; + +interface ApolloSubgraphExtensions { + resolveReference?: GraphQLReferenceResolver; +} + declare module 'graphql/type/definition' { - interface GraphQLObjectType { - resolveReference?: any; + interface GraphQLObjectTypeExtensions<_TSource = any, _TContext = any> { + apollo?: { + subgraph?: ApolloSubgraphExtensions<_TContext>; + }; + } + + interface GraphQLInterfaceTypeExtensions<_TSource = any, _TContext = any> { + apollo?: { + subgraph?: ApolloSubgraphExtensions<_TContext>; + }; } - interface GraphQLObjectTypeConfig { - resolveReference?: any; + interface GraphQLUnionTypeExtensions<_TSource = any, _TContext = any> { + apollo?: { + subgraph?: ApolloSubgraphExtensions<_TContext>; + }; } } @@ -81,7 +102,27 @@ export function transformSchema( fields: () => replaceFields(config.fields), }); - if (type.resolveReference) { + if (type.extensions?.apollo?.subgraph?.resolveReference) { + objectType.extensions = { + ...objectType.extensions, + apollo: { + ...objectType.extensions.apollo, + subgraph: { + ...objectType.extensions.apollo.subgraph, + resolveReference: + type.extensions.apollo.subgraph.resolveReference, + }, + }, + }; + /** + * Backcompat for old versions of @apollo/subgraph which didn't use + * `extensions` This can be removed when support for @apollo/subgraph < + * 0.4.2 is dropped Reference: + * https://github.com/apollographql/federation/pull/1747 + */ + // @ts-expect-error (explanation above) + } else if (type.resolveReference) { + // @ts-expect-error (explanation above) objectType.resolveReference = type.resolveReference; } diff --git a/packages/graphql/package.json b/packages/graphql/package.json index f0ce659af..63b50555c 100644 --- a/packages/graphql/package.json +++ b/packages/graphql/package.json @@ -1,6 +1,6 @@ { "name": "@nestjs/graphql", - "version": "10.0.15", + "version": "10.1.4", "description": "Nest - modern, fast, powerful node.js web framework (@graphql)", "author": "Kamil Mysliwiec", "license": "MIT", @@ -18,37 +18,37 @@ "test:e2e:dev": "jest --config ./tests/jest-e2e.json --watch" }, "dependencies": { - "@graphql-tools/merge": "8.2.13", - "@graphql-tools/schema": "8.3.13", - "@graphql-tools/utils": "8.6.12", - "@nestjs/mapped-types": "1.0.1", + "@graphql-tools/merge": "8.3.6", + "@graphql-tools/schema": "9.0.4", + "@graphql-tools/utils": "8.12.0", + "@nestjs/mapped-types": "1.2.0", "chokidar": "3.5.3", - "fast-glob": "3.2.11", + "fast-glob": "3.2.12", "graphql-tag": "2.12.6", "graphql-ws": "5.5.5", "lodash": "4.17.21", "normalize-path": "3.0.0", "subscriptions-transport-ws": "0.11.0", "tslib": "2.4.0", - "uuid": "8.3.2", - "ws": "8.7.0" + "uuid": "9.0.0", + "ws": "8.10.0" }, "devDependencies": { - "@apollo/subgraph": "0.4.2", - "@nestjs/common": "8.4.6", - "@nestjs/core": "8.4.6", - "@nestjs/testing": "8.4.6", + "@apollo/subgraph": "0.5.1", + "@nestjs/common": "8.4.7", + "@nestjs/core": "8.4.7", + "@nestjs/testing": "8.4.7", "graphql": "15.8.0", "reflect-metadata": "0.1.13", - "ts-morph": "15.0.0" + "ts-morph": "16.0.0" }, "peerDependencies": { "@apollo/subgraph": "^0.1.5 || ^0.3.0 || ^0.4.0 || ^2.0.0", - "@nestjs/common": "^8.2.3", - "@nestjs/core": "^8.2.3", + "@nestjs/common": "^8.2.3 || ^9.0.0", + "@nestjs/core": "^8.2.3 || ^9.0.0", "graphql": "^15.8.0 || ^16.0.0", "reflect-metadata": "^0.1.13", - "ts-morph": "^13.0.2 || ^14.0.0 || ^15.0.0" + "ts-morph": "^13.0.2 || ^14.0.0 || ^15.0.0 || ^16.0.0" }, "peerDependenciesMeta": { "@apollo/subgraph": { diff --git a/packages/graphql/tests/jest-e2e.json b/packages/graphql/tests/jest-e2e.json index 2a17641b8..b6ce59843 100644 --- a/packages/graphql/tests/jest-e2e.json +++ b/packages/graphql/tests/jest-e2e.json @@ -4,11 +4,9 @@ "testEnvironment": "node", "testRegex": ".spec.ts$", "transform": { - "^.+\\.(t|j)s$": "ts-jest" - }, - "globals": { - "ts-jest": { - "tsconfig": "/../tsconfig.spec.json" - } + "^.+\\.(t|j)s$": [ + "ts-jest", + { "tsconfig": "/../tsconfig.spec.json", "isolatedModules": true } + ] } } diff --git a/packages/graphql/tests/plugin/cases/.gitignore b/packages/graphql/tests/plugin/cases/.gitignore new file mode 100644 index 000000000..508061b4e --- /dev/null +++ b/packages/graphql/tests/plugin/cases/.gitignore @@ -0,0 +1 @@ +actual diff --git a/packages/graphql/tests/plugin/cases/es5-eager-imports/author.model.ts b/packages/graphql/tests/plugin/cases/es5-eager-imports/author.model.ts new file mode 100644 index 000000000..229c63e10 --- /dev/null +++ b/packages/graphql/tests/plugin/cases/es5-eager-imports/author.model.ts @@ -0,0 +1,7 @@ +declare const ObjectType: any; + +@ObjectType() +export class Author { + name: string; + email: string; +} diff --git a/packages/graphql/tests/plugin/cases/es5-eager-imports/expected/author.model.js b/packages/graphql/tests/plugin/cases/es5-eager-imports/expected/author.model.js new file mode 100644 index 000000000..11a718aa0 --- /dev/null +++ b/packages/graphql/tests/plugin/cases/es5-eager-imports/expected/author.model.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Author = void 0; +let Author = class Author { + static _GRAPHQL_METADATA_FACTORY() { + return { name: { type: () => String }, email: { type: () => String } }; + } +}; +Author = __decorate([ + ObjectType() +], Author); +exports.Author = Author; diff --git a/packages/graphql/tests/plugin/cases/es5-eager-imports/expected/post.model.js b/packages/graphql/tests/plugin/cases/es5-eager-imports/expected/post.model.js new file mode 100644 index 000000000..4b50c9de6 --- /dev/null +++ b/packages/graphql/tests/plugin/cases/es5-eager-imports/expected/post.model.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Post = void 0; +const eager_import_0 = require("./author.model"); +let Post = class Post { + static _GRAPHQL_METADATA_FACTORY() { + return { author: { type: () => require("./author.model").Author } }; + } +}; +Post = __decorate([ + ObjectType() +], Post); +exports.Post = Post; diff --git a/packages/graphql/tests/plugin/cases/es5-eager-imports/post.model.ts b/packages/graphql/tests/plugin/cases/es5-eager-imports/post.model.ts new file mode 100644 index 000000000..225538feb --- /dev/null +++ b/packages/graphql/tests/plugin/cases/es5-eager-imports/post.model.ts @@ -0,0 +1,21 @@ +/** + * When code is downleveled to CommonJs imports typescript will try to remove all imports + * which lead to only a type. In this case we should re-create imports in the transform. + * + * Another problem might be if one ModelA uses ModelB and file + * containing the latest is not referenced anywhere else. + * In this case ModelA will reference in schema ModelB but ModelB + * will never appear in runtime code hence will never be executed and registered. + * + * For this case we create an 'eager' import in the begining of the file to make + * sure all types used in metadata is loaded into runtime + */ + +import { Author } from './author.model'; + +declare const ObjectType: any; + +@ObjectType() +export class Post { + author: Author; +} diff --git a/packages/graphql/tests/plugin/cases/tsconfig.json b/packages/graphql/tests/plugin/cases/tsconfig.json new file mode 100644 index 000000000..e908f47e3 --- /dev/null +++ b/packages/graphql/tests/plugin/cases/tsconfig.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es5", + "experimentalDecorators": true, + "sourceMap": true + }, + "include": ["**/*.ts"] +} diff --git a/packages/graphql/tests/plugin/fixtures/create-cat-alt.dto.ts b/packages/graphql/tests/plugin/fixtures/create-cat-alt.dto.ts index 541df2af9..0d2b3ff54 100644 --- a/packages/graphql/tests/plugin/fixtures/create-cat-alt.dto.ts +++ b/packages/graphql/tests/plugin/fixtures/create-cat-alt.dto.ts @@ -13,6 +13,7 @@ type AliasedType = { }; type NumberAlias = number; +@ObjectType() export class CreateCatDto2 { /** * name description @@ -56,16 +57,20 @@ export class CreateCatDto2 { export const createCatDtoTextAltTranspiled = `var Status; (function (Status) { - Status[Status[\"ENABLED\"] = 0] = \"ENABLED\"; - Status[Status[\"DISABLED\"] = 1] = \"DISABLED\"; + Status[Status["ENABLED"] = 0] = "ENABLED"; + Status[Status["DISABLED"] = 1] = "DISABLED"; })(Status || (Status = {})); -export class CreateCatDto2 { +let CreateCatDto2 = class CreateCatDto2 { constructor() { this.age = 3; this.status = Status.ENABLED; } static _GRAPHQL_METADATA_FACTORY() { - return { name: { type: () => String, description: "name description" }, age: { type: () => Number, description: "test on age" }, tags: { type: () => [String] }, status: { type: () => Status }, breed: { nullable: true, type: () => String }, nodes: { type: () => [Object] }, alias: { type: () => Object }, numberAlias: { type: () => Number }, union: { type: () => Object }, intersection: { type: () => Object }, optionalBoolean: { nullable: true, type: () => Boolean }, nested: { type: () => ({ first: { type: () => String }, second: { type: () => Number }, status: { type: () => Status }, tags: { type: () => [String] }, nodes: { type: () => [Object] }, alias: { type: () => Object }, numberAlias: { type: () => Number } }) }, tuple: { type: () => Object } }; + return { name: { type: () => String, description: "name description" }, age: { type: () => Number, description: "test on age" }, tags: { type: () => [String] }, status: { type: () => Status }, breed: { nullable: true, type: () => String }, nodes: { type: () => [Object] }, alias: { type: () => Object }, numberAlias: { type: () => Number }, union: { type: () => Object }, intersection: { type: () => Object }, optionalBoolean: { nullable: true, type: () => Boolean }, nested: { type: () => Object }, prop: { type: () => Object }, tuple: { type: () => Object } }; } -} +}; +CreateCatDto2 = __decorate([ + ObjectType() +], CreateCatDto2); +export { CreateCatDto2 }; `; diff --git a/packages/graphql/tests/plugin/fixtures/create-cat.dto.ts b/packages/graphql/tests/plugin/fixtures/create-cat.dto.ts index 4bf0669aa..6c5482b46 100644 --- a/packages/graphql/tests/plugin/fixtures/create-cat.dto.ts +++ b/packages/graphql/tests/plugin/fixtures/create-cat.dto.ts @@ -12,6 +12,7 @@ interface Node { id: number; } +@ObjectType() export class CreateCatDto { name: string; age: number = 3; @@ -28,18 +29,56 @@ export class CreateCatDto { static staticProperty: string; } + +@InputType() +export class CreateCatInput { + name: string; + age: number = 3; + tags: string[]; + status: Status = Status.ENABLED; + status2?: Status; + statusArr?: Status[]; + readonly breed?: string; + nodes: Node[]; + date: Date; + + @HideField() + hidden: number; + + static staticProperty: string; +} + +@ArgsType() +export class CreateCatArgs { + name: string; + age: number = 3; + tags: string[]; + status: Status = Status.ENABLED; + status2?: Status; + statusArr?: Status[]; + readonly breed?: string; + nodes: Node[]; + date: Date; + + @HideField() + hidden: number; + + static staticProperty: string; + + input: CreateCatInput; +} `; export const createCatDtoTextTranspiled = `var Status; (function (Status) { - Status[Status[\"ENABLED\"] = 0] = \"ENABLED\"; - Status[Status[\"DISABLED\"] = 1] = \"DISABLED\"; + Status[Status["ENABLED"] = 0] = "ENABLED"; + Status[Status["DISABLED"] = 1] = "DISABLED"; })(Status || (Status = {})); var OneValueEnum; (function (OneValueEnum) { - OneValueEnum[OneValueEnum[\"ONE\"] = 0] = \"ONE\"; + OneValueEnum[OneValueEnum["ONE"] = 0] = "ONE"; })(OneValueEnum || (OneValueEnum = {})); -export class CreateCatDto { +let CreateCatDto = class CreateCatDto { constructor() { this.age = 3; this.status = Status.ENABLED; @@ -47,8 +86,44 @@ export class CreateCatDto { static _GRAPHQL_METADATA_FACTORY() { return { name: { type: () => String }, age: { type: () => Number }, tags: { type: () => [String] }, status: { type: () => Status }, status2: { nullable: true, type: () => Status }, statusArr: { nullable: true, type: () => [Status] }, breed: { nullable: true, type: () => String }, nodes: { type: () => [Object] }, date: { type: () => Date } }; } -} +}; +__decorate([ + HideField() +], CreateCatDto.prototype, "hidden", void 0); +CreateCatDto = __decorate([ + ObjectType() +], CreateCatDto); +export { CreateCatDto }; +let CreateCatInput = class CreateCatInput { + constructor() { + this.age = 3; + this.status = Status.ENABLED; + } + static _GRAPHQL_METADATA_FACTORY() { + return { name: { type: () => String }, age: { type: () => Number }, tags: { type: () => [String] }, status: { type: () => Status }, status2: { nullable: true, type: () => Status }, statusArr: { nullable: true, type: () => [Status] }, breed: { nullable: true, type: () => String }, nodes: { type: () => [Object] }, date: { type: () => Date } }; + } +}; +__decorate([ + HideField() +], CreateCatInput.prototype, \"hidden\", void 0); +CreateCatInput = __decorate([ + InputType() +], CreateCatInput); +export { CreateCatInput }; +let CreateCatArgs = class CreateCatArgs { + constructor() { + this.age = 3; + this.status = Status.ENABLED; + } + static _GRAPHQL_METADATA_FACTORY() { + return { name: { type: () => String }, age: { type: () => Number }, tags: { type: () => [String] }, status: { type: () => Status }, status2: { nullable: true, type: () => Status }, statusArr: { nullable: true, type: () => [Status] }, breed: { nullable: true, type: () => String }, nodes: { type: () => [Object] }, date: { type: () => Date }, input: { type: () => require(\"./create-cat.input\").CreateCatInput } }; + } +}; __decorate([ HideField() -], CreateCatDto.prototype, \"hidden\", void 0); +], CreateCatArgs.prototype, \"hidden\", void 0); +CreateCatArgs = __decorate([ + ArgsType() +], CreateCatArgs); +export { CreateCatArgs }; `; diff --git a/packages/graphql/tests/plugin/fixtures/deprecation.dto.ts b/packages/graphql/tests/plugin/fixtures/deprecation.dto.ts new file mode 100644 index 000000000..f29937f03 --- /dev/null +++ b/packages/graphql/tests/plugin/fixtures/deprecation.dto.ts @@ -0,0 +1,27 @@ +export const deprecationDtoText = ` +@ObjectType() +export class CreateCatDto2 { + /** + * name description + * + * @deprecated + */ + name: string; + + /** + * @deprecated consult docs for better alternative! + */ + breed: string; +} +`; + +export const deprecationDtoTranspiled = `let CreateCatDto2 = class CreateCatDto2 { + static _GRAPHQL_METADATA_FACTORY() { + return { name: { type: () => String, description: "name description", deprecationReason: "deprecated" }, breed: { type: () => String, deprecationReason: "consult docs for better alternative!" } }; + } +}; +CreateCatDto2 = __decorate([ + ObjectType() +], CreateCatDto2); +export { CreateCatDto2 }; +`; diff --git a/packages/graphql/tests/plugin/fixtures/es5-class.dto.ts b/packages/graphql/tests/plugin/fixtures/es5-class.dto.ts index 9dc05fbf5..246b4846d 100644 --- a/packages/graphql/tests/plugin/fixtures/es5-class.dto.ts +++ b/packages/graphql/tests/plugin/fixtures/es5-class.dto.ts @@ -2,6 +2,7 @@ export const es5CreateCatDtoText = ` import { Status } from './status'; import { CONSTANT_STRING, CONSTANT_OBJECT } from './constants'; +@ObjectType() export class CreateCatDtoEs5 { name: string = CONSTANT_STRING; status: Status = Status.ENABLED; @@ -9,11 +10,11 @@ export class CreateCatDtoEs5 { } `; -export const es5CreateCatDtoTextTranspiled = `\"use strict\"; -Object.defineProperty(exports, \"__esModule\", { value: true }); +export const es5CreateCatDtoTextTranspiled = `"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); exports.CreateCatDtoEs5 = void 0; -var status_1 = require(\"./status\"); -var constants_1 = require(\"./constants\"); +var status_1 = require("./status"); +var constants_1 = require("./constants"); var CreateCatDtoEs5 = /** @class */ (function () { function CreateCatDtoEs5() { this.name = constants_1.CONSTANT_STRING; @@ -23,6 +24,9 @@ var CreateCatDtoEs5 = /** @class */ (function () { CreateCatDtoEs5._GRAPHQL_METADATA_FACTORY = function () { return { name: { type: function () { return String; } }, status: { type: function () { return Object; } }, obj: { type: function () { return Object; } } }; }; + CreateCatDtoEs5 = __decorate([ + ObjectType() + ], CreateCatDtoEs5); return CreateCatDtoEs5; }()); exports.CreateCatDtoEs5 = CreateCatDtoEs5; diff --git a/packages/graphql/tests/plugin/fixtures/nullable.dto.ts b/packages/graphql/tests/plugin/fixtures/nullable.dto.ts index b05e30d58..ec56de535 100644 --- a/packages/graphql/tests/plugin/fixtures/nullable.dto.ts +++ b/packages/graphql/tests/plugin/fixtures/nullable.dto.ts @@ -4,6 +4,7 @@ enum Status { DISABLED } +@ObjectType() export class NullableDto { name: string | null; age: number = 3; @@ -22,7 +23,7 @@ export const nullableDtoTextTranspiled = `var Status; Status[Status["ENABLED"] = 0] = "ENABLED"; Status[Status["DISABLED"] = 1] = "DISABLED"; })(Status || (Status = {})); -export class NullableDto { +let NullableDto = class NullableDto { constructor() { this.age = 3; this.status = Status.ENABLED; @@ -30,5 +31,9 @@ export class NullableDto { static _GRAPHQL_METADATA_FACTORY() { return { name: { nullable: true, type: () => String }, age: { type: () => Number }, tags: { type: () => [String] }, status: { type: () => Status }, status2: { nullable: true, type: () => Status }, statusArr: { nullable: true, type: () => [Status] }, breed: { nullable: true, type: () => String }, nodes: { type: () => [Object] }, date: { nullable: true, type: () => Date } }; } -} +}; +NullableDto = __decorate([ + ObjectType() +], NullableDto); +export { NullableDto }; `; diff --git a/packages/graphql/tests/plugin/model-class-visitor.spec.ts b/packages/graphql/tests/plugin/model-class-visitor.spec.ts index c07130a24..41b7dec79 100644 --- a/packages/graphql/tests/plugin/model-class-visitor.spec.ts +++ b/packages/graphql/tests/plugin/model-class-visitor.spec.ts @@ -1,5 +1,8 @@ +import * as fs from 'fs'; import * as ts from 'typescript'; +import { InputType, InterfaceType, ObjectType } from '../../lib'; import { before } from '../../lib/plugin/compiler-plugin'; +import { PluginOptions } from '../../lib/plugin/merge-options'; import { createCatDtoAltText, createCatDtoTextAltTranspiled, @@ -9,14 +12,68 @@ import { createCatDtoTextTranspiled, } from './fixtures/create-cat.dto'; import { - es5CreateCatDtoText, - es5CreateCatDtoTextTranspiled, -} from './fixtures/es5-class.dto'; + deprecationDtoText, + deprecationDtoTranspiled, +} from './fixtures/deprecation.dto'; import { nullableDtoText, nullableDtoTextTranspiled, } from './fixtures/nullable.dto'; +const defaultCompilerOptions: ts.CompilerOptions = { + module: ts.ModuleKind.ES2020, + target: ts.ScriptTarget.ES2020, + newLine: ts.NewLineKind.LineFeed, + noEmitHelpers: true, + strict: true, +}; + +function transpile( + source: string, + pluginOptions: PluginOptions, + compilerOptions = defaultCompilerOptions, +): string { + const filename = 'create-cat.input.ts'; + const fakeProgram = ts.createProgram([filename], compilerOptions); + + const result = ts.transpileModule(source, { + compilerOptions: compilerOptions, + fileName: 'test.input.ts', + transformers: { + before: [before(pluginOptions, fakeProgram)], + }, + }); + + return result.outputText; +} + +function compileFiles( + rootDir: string, + file: string, + pluginOptions: PluginOptions = {}, + compilerOptions = defaultCompilerOptions, +) { + const caseDir = __dirname + rootDir; + + const options: ts.CompilerOptions = { + ...compilerOptions, + rootDir: caseDir, + outDir: caseDir + '/actual', + }; + + const program = ts.createProgram([caseDir + '/' + file], options); + + program.emit(undefined, undefined, undefined, undefined, { + before: [before(pluginOptions, program)], + }); + + const jsFile = file.replace(/\.ts$/, '.js'); + const actual = fs.readFileSync(caseDir + '/actual/' + jsFile).toString(); + const expected = fs.readFileSync(caseDir + '/expected/' + jsFile).toString(); + + return { actual, expected }; +} + describe('API model properties', () => { it('should add the metadata factory when no decorators exist', () => { const options: ts.CompilerOptions = { @@ -69,27 +126,43 @@ describe('API model properties', () => { }); it('should manage imports statements when code "downleveled"', () => { - const options: ts.CompilerOptions = { + const compilerOptions: ts.CompilerOptions = { + ...defaultCompilerOptions, module: ts.ModuleKind.CommonJS, - target: ts.ScriptTarget.ES5, + }; + + const { actual, expected } = compileFiles( + '/cases/es5-eager-imports', + 'post.model.ts', + {}, + compilerOptions, + ); + + expect(actual).toEqual(expected); + }); + + it('should support & understand nullable type unions', () => { + const options: ts.CompilerOptions = { + module: ts.ModuleKind.ES2020, + target: ts.ScriptTarget.ES2020, newLine: ts.NewLineKind.LineFeed, noEmitHelpers: true, strict: true, }; - const filename = 'es5-class.input.ts'; + const filename = 'nullable.input.ts'; const fakeProgram = ts.createProgram([filename], options); - const result = ts.transpileModule(es5CreateCatDtoText, { + const result = ts.transpileModule(nullableDtoText, { compilerOptions: options, fileName: filename, transformers: { before: [before({}, fakeProgram)], }, }); - expect(result.outputText).toEqual(es5CreateCatDtoTextTranspiled); + expect(result.outputText).toEqual(nullableDtoTextTranspiled); }); - it('should support & understand nullable type unions', () => { + it('should respect @deprecation tag from JsDoc', () => { const options: ts.CompilerOptions = { module: ts.ModuleKind.ES2020, target: ts.ScriptTarget.ES2020, @@ -97,16 +170,253 @@ describe('API model properties', () => { noEmitHelpers: true, strict: true, }; - const filename = 'nullable.input.ts'; + const filename = 'deprecation.input.ts'; const fakeProgram = ts.createProgram([filename], options); - const result = ts.transpileModule(nullableDtoText, { + const result = ts.transpileModule(deprecationDtoText, { compilerOptions: options, fileName: filename, transformers: { - before: [before({}, fakeProgram)], + before: [before({ introspectComments: true }, fakeProgram)], }, }); - expect(result.outputText).toEqual(nullableDtoTextTranspiled); + expect(result.outputText).toEqual(deprecationDtoTranspiled); + }); + + it('should process only classes decorated with one of supported decorators', () => { + const source = ` +@${ObjectType.name}() +class ObjectTypeModel { + prop: string; +} + +@${InputType.name}() +class InputTypeModel { + prop: string; +} + +@${InterfaceType.name}() +class InterfaceTypeModel { + prop: string; +} + +class NotAModel { + prop: string; +} +`; + + const actual = transpile(source, {}); + expect(actual).toMatchInlineSnapshot(` + "\"use strict\"; + let ObjectTypeModel = class ObjectTypeModel { + static _GRAPHQL_METADATA_FACTORY() { + return { prop: { type: () => String } }; + } + }; + ObjectTypeModel = __decorate([ + ObjectType() + ], ObjectTypeModel); + let InputTypeModel = class InputTypeModel { + static _GRAPHQL_METADATA_FACTORY() { + return { prop: { type: () => String } }; + } + }; + InputTypeModel = __decorate([ + InputType() + ], InputTypeModel); + let InterfaceTypeModel = class InterfaceTypeModel { + static _GRAPHQL_METADATA_FACTORY() { + return { prop: { type: () => String } }; + } + }; + InterfaceTypeModel = __decorate([ + InterfaceType() + ], InterfaceTypeModel); + class NotAModel { + } + " + `); + }); + + it('should process fields declared as getters ', () => { + const source = ` +@ObjectType() +class ObjectTypeModel { + get prop(): string {} +} +`; + + const actual = transpile(source, {}); + expect(actual).toMatchInlineSnapshot(` + "\"use strict\"; + let ObjectTypeModel = class ObjectTypeModel { + get prop() { } + static _GRAPHQL_METADATA_FACTORY() { + return { prop: { type: () => String } }; + } + }; + ObjectTypeModel = __decorate([ + ObjectType() + ], ObjectTypeModel); + " + `); + }); + + describe('should add description from JSDoc to class decorators argument', () => { + it('when there are no arguments on decorator', () => { + const source = ` +/** Test Description */ +@ObjectType() +class ObjectTypeModel {} +`; + const actual = transpile(source, { introspectComments: true }); + expect(actual).toMatchInlineSnapshot(` + "\"use strict\"; + /** Test Description */ + let ObjectTypeModel = class ObjectTypeModel { + static _GRAPHQL_METADATA_FACTORY() { + return {}; + } + }; + ObjectTypeModel = __decorate([ + ObjectType({ description: \"Test Description\" }) + ], ObjectTypeModel); + " + `); + }); + + it('when there are arguments on decorator', () => { + const source = ` +/** Test1 Description */ +@ObjectType({isAbstract: true}) +class Test1Model {} + +/** Test2 Description */ +@ObjectType('name', {isAbstract: true}) +class Test2Model {} +`; + const actual = transpile(source, { introspectComments: true }); + expect(actual).toMatchInlineSnapshot(` + "\"use strict\"; + /** Test1 Description */ + let Test1Model = class Test1Model { + static _GRAPHQL_METADATA_FACTORY() { + return {}; + } + }; + Test1Model = __decorate([ + ObjectType({ description: \"Test1 Description\", isAbstract: true }) + ], Test1Model); + /** Test2 Description */ + let Test2Model = class Test2Model { + static _GRAPHQL_METADATA_FACTORY() { + return {}; + } + }; + Test2Model = __decorate([ + ObjectType('name', { description: \"Test2 Description\", isAbstract: true }) + ], Test2Model); + " + `); + }); + + it('should work if parameters passed as variable reference or function', () => { + const source = ` +/** test1 description */ +@ObjectType('name', getOptions()) +class Test1 {} + +/** test2 description */ +@ObjectType('name', options) +class Test2 {} +`; + const actual = transpile(source, { introspectComments: true }); + expect(actual).toMatchInlineSnapshot(` + "\"use strict\"; + /** test1 description */ + let Test1 = class Test1 { + static _GRAPHQL_METADATA_FACTORY() { + return {}; + } + }; + Test1 = __decorate([ + ObjectType('name', { ...{ description: \"test1 description\" }, ...getOptions() }) + ], Test1); + /** test2 description */ + let Test2 = class Test2 { + static _GRAPHQL_METADATA_FACTORY() { + return {}; + } + }; + Test2 = __decorate([ + ObjectType('name', { ...{ description: \"test2 description\" }, ...options }) + ], Test2); + " + `); + }); + }); + + it('should amend Field decorator with introspection data', () => { + const source = ` +import { ID } from '@nestjs/graphql'; + +const field3Options = {nullable: true}; + +@ObjectType() +class Model { + /** + * Description + */ + @Field(() => ID) + field: string; + + /** + * Description + */ + @Field(() => ID, {nullable: true}) + field1: string; + + /** + * Description + */ + @Field({nullable: false}) + field2?: string; + + /** + * Description + */ + @Field(field3Options) + field3: string; + + name: string; +} +`; + + const actual = transpile(source, { introspectComments: true }); + expect(actual).toMatchInlineSnapshot(` + "import { ID } from '@nestjs/graphql'; + const field3Options = { nullable: true }; + let Model = class Model { + static _GRAPHQL_METADATA_FACTORY() { + return { name: { type: () => String } }; + } + }; + __decorate([ + Field(() => ID, { description: \"Description\" }) + ], Model.prototype, \"field\", void 0); + __decorate([ + Field(() => ID, { description: \"Description\", nullable: true }) + ], Model.prototype, \"field1\", void 0); + __decorate([ + Field(() => String, { nullable: false, description: \"Description\" }) + ], Model.prototype, \"field2\", void 0); + __decorate([ + Field(() => String, { ...{ description: \"Description\" }, ...field3Options }) + ], Model.prototype, \"field3\", void 0); + Model = __decorate([ + ObjectType() + ], Model); + " + `); }); }); diff --git a/packages/graphql/tests/plugin/plugin-utils.spec.ts b/packages/graphql/tests/plugin/plugin-utils.spec.ts new file mode 100644 index 000000000..c5b142860 --- /dev/null +++ b/packages/graphql/tests/plugin/plugin-utils.spec.ts @@ -0,0 +1,53 @@ +import { replaceImportPath } from '../../lib/plugin/utils/plugin-utils'; + +describe('plugin-utils', () => { + describe('replaceImportPath', () => { + it('should replace path to relative', () => { + const actual = replaceImportPath( + 'import("/root/project/src/author.model").Author', + '/root/project/src/post.model.ts', + ); + + expect(actual).toStrictEqual({ + typeReference: 'require("./author.model").Author', + importPath: './author.model', + }); + }); + + it('should shorten path if it points to node_modules', () => { + const actual = replaceImportPath( + 'import("/root/project/src/node_modules/dependency/author.model").Author', + '/root/project/src/post.model.ts', + ); + + expect(actual).toStrictEqual({ + typeReference: 'require("dependency/author.model").Author', + importPath: 'dependency/author.model', + }); + }); + + it('should shorten path if it points to node_modules/@types', () => { + const actual = replaceImportPath( + 'import("/root/project/src/node_modules/@types/dependency/author.model").Author', + '/root/project/src/post.model.ts', + ); + + expect(actual).toStrictEqual({ + typeReference: 'require("dependency/author.model").Author', + importPath: 'dependency/author.model', + }); + }); + + it('should shorten path if it points to dependency index file', () => { + const actual = replaceImportPath( + 'import("/root/project/src/node_modules/dependency/index").Author', + '/root/project/src/post.model.ts', + ); + + expect(actual).toStrictEqual({ + typeReference: 'require("dependency").Author', + importPath: 'dependency', + }); + }); + }); +}); diff --git a/packages/graphql/tests/plugin/type-helpers/intersection-type.helper.spec.ts b/packages/graphql/tests/plugin/type-helpers/intersection-type.helper.spec.ts index 639bab984..83268055d 100644 --- a/packages/graphql/tests/plugin/type-helpers/intersection-type.helper.spec.ts +++ b/packages/graphql/tests/plugin/type-helpers/intersection-type.helper.spec.ts @@ -2,11 +2,11 @@ import { Directive, Extensions, Field, + IntersectionType, ObjectType, -} from '../../../lib/decorators'; +} from '../../../lib'; import { METADATA_FACTORY_NAME } from '../../../lib/plugin/plugin-constants'; import { getFieldsAndDecoratorForType } from '../../../lib/schema-builder/utils/get-fields-and-decorator.util'; -import { IntersectionType } from '../../../lib/type-helpers'; describe('IntersectionType', () => { @ObjectType() @@ -29,6 +29,9 @@ describe('IntersectionType', () => { firstName?: string; + @Field(() => [String]) + hobbies?: string[]; + static [METADATA_FACTORY_NAME]() { return { firstName: { nullable: true, type: () => String }, @@ -41,27 +44,36 @@ describe('IntersectionType', () => { it('should inherit all fields from two types', () => { const prototype = Object.getPrototypeOf(UpdateUserDto); const { fields } = getFieldsAndDecoratorForType(prototype); - expect(fields.length).toEqual(4); - expect(fields[0].name).toEqual('login'); - expect(fields[1].name).toEqual('password'); - expect(fields[2].name).toEqual('lastName'); - expect(fields[3].name).toEqual('firstName'); - expect(fields[0].directives.length).toEqual(1); - expect(fields[0].directives).toContainEqual({ + const [ + loginField, + passwordField, + lastNameField, + hobbiesField, + firstNameField, + ] = fields; + expect(fields.length).toEqual(5); + expect(loginField.name).toEqual('login'); + expect(passwordField.name).toEqual('password'); + expect(lastNameField.name).toEqual('lastName'); + expect(hobbiesField.name).toEqual('hobbies'); + expect(hobbiesField.options).toEqual({ isArray: true, arrayDepth: 1 }); + expect(firstNameField.name).toEqual('firstName'); + expect(loginField.directives.length).toEqual(1); + expect(loginField.directives).toContainEqual({ fieldName: 'login', sdl: '@upper', target: prototype, }); - expect(fields[0].extensions).toEqual({ + expect(loginField.extensions).toEqual({ extension: true, }); - expect(fields[2].directives.length).toEqual(1); - expect(fields[2].directives).toContainEqual({ + expect(lastNameField.directives.length).toEqual(1); + expect(lastNameField.directives).toContainEqual({ fieldName: 'lastName', sdl: '@upper', target: prototype, }); - expect(fields[2].extensions).toEqual({ + expect(lastNameField.extensions).toEqual({ extension: true, }); }); diff --git a/packages/graphql/tests/schema-builder/factories/root-type.factory.spec.ts b/packages/graphql/tests/schema-builder/factories/root-type.factory.spec.ts new file mode 100644 index 000000000..6d34ee369 --- /dev/null +++ b/packages/graphql/tests/schema-builder/factories/root-type.factory.spec.ts @@ -0,0 +1,126 @@ +import { Test } from '@nestjs/testing'; +import { + GraphQLSchemaBuilderModule, + Mutation, + Query, + Resolver, + TypeMetadataStorage, +} from '../../../lib'; +import { MultipleFieldsWithSameNameError } from '../../../lib/schema-builder/errors/multiple-fields-with-same-name.error'; +import { RootTypeFactory } from '../../../lib/schema-builder/factories/root-type.factory'; +import { ResolverTypeMetadata } from '../../../lib/schema-builder/metadata'; +import { LazyMetadataStorage } from '../../../lib/schema-builder/storages/lazy-metadata.storage'; + +function booleanResolverFactory(Decorator: typeof Query | typeof Mutation) { + @Resolver() + class BooleanResolver { + @Decorator(() => Boolean) + bool() { + return true; + } + } + + return BooleanResolver; +} + +@Resolver() +class StringResolver { + @Query(() => String) + str() { + return ''; + } +} + +describe('RootTypeFactory', () => { + let rootTypeFactory: RootTypeFactory; + + beforeEach(async () => { + const module = await Test.createTestingModule({ + imports: [GraphQLSchemaBuilderModule], + }).compile(); + + rootTypeFactory = module.get(RootTypeFactory); + }); + + afterEach(() => { + TypeMetadataStorage.clear(); + }); + + describe('generateFields', () => { + describe.each([ + ['queries', Query, 'Query', TypeMetadataStorage.getQueriesMetadata], + [ + 'mutations', + Mutation, + 'Mutation', + TypeMetadataStorage.getMutationsMetadata, + ], + ])( + 'when duplicate %s are defined', + (_, Decorator, objectTypeName, metadataFn) => { + let metadata: ResolverTypeMetadata[]; + + beforeEach(() => { + LazyMetadataStorage.load([ + booleanResolverFactory(Decorator), + booleanResolverFactory(Decorator), + ]); + TypeMetadataStorage.compile(); + + metadata = metadataFn.apply(TypeMetadataStorage); + }); + + it('should throw an error with noDuplicateFields: true', () => { + expect(() => + rootTypeFactory.generateFields( + metadata, + { noDuplicatedFields: true }, + objectTypeName, + ), + ).toThrow(MultipleFieldsWithSameNameError); + }); + + it('should create GraphQL fields with noDuplicateFields: false', () => { + const fields = rootTypeFactory.generateFields( + metadata, + { noDuplicatedFields: false }, + objectTypeName, + ); + expect(fields).toHaveProperty('bool'); + }); + + it('should create GraphQL fields with noDuplicateFields undefined', () => { + const fields = rootTypeFactory.generateFields( + metadata, + {}, + objectTypeName, + ); + expect(fields).toHaveProperty('bool'); + }); + }, + ); + + describe('when no duplicate queries are found', () => { + beforeEach(() => { + LazyMetadataStorage.load([ + booleanResolverFactory(Query), + StringResolver, + ]); + TypeMetadataStorage.compile(); + }); + + it('should correctly create GraphQL fields', () => { + const queriesMetadata = TypeMetadataStorage.getQueriesMetadata(); + + const fields = rootTypeFactory.generateFields( + queriesMetadata, + { noDuplicatedFields: true }, + 'Query', + ); + + expect(fields).toHaveProperty('bool'); + expect(fields).toHaveProperty('str'); + }); + }); + }); +}); diff --git a/packages/graphql/tests/schema-builder/storages/field-directive.collection.spec.ts b/packages/graphql/tests/schema-builder/storages/field-directive.collection.spec.ts new file mode 100644 index 000000000..363e48a81 --- /dev/null +++ b/packages/graphql/tests/schema-builder/storages/field-directive.collection.spec.ts @@ -0,0 +1,76 @@ +import { FieldDirectiveCollection } from '../../../lib/schema-builder/collections/'; +import { PropertyDirectiveMetadata } from '../../../lib/schema-builder/metadata'; + +describe('FieldDirectiveCollection', () => { + const directive1: PropertyDirectiveMetadata = { + fieldName: 'foo', + sdl: '@foo', + target: () => {}, + }; + const directive2: PropertyDirectiveMetadata = { + fieldName: 'bar', + sdl: '@bar', + target: () => {}, + }; + const directive3: PropertyDirectiveMetadata = { + fieldName: 'baz', + sdl: '@baz', + target: () => {}, + }; + + it('should keep a list of all SDLs added', () => { + const map = new FieldDirectiveCollection(); + map.add(directive1); + map.add(directive2); + map.add(directive3); + + expect([...map.sdls]).toEqual(['@foo', '@bar', '@baz']); + }); + + it('should keep a list of all fieldName added', () => { + const map = new FieldDirectiveCollection(); + map.add(directive1); + map.add(directive2); + map.add(directive3); + + expect([...map.fieldNames]).toEqual(['foo', 'bar', 'baz']); + }); + + it('should add 2 different directives on the same field', () => { + const map = new FieldDirectiveCollection(); + const directive1Alt: PropertyDirectiveMetadata = { + fieldName: 'foo', + sdl: '@bar', + target: () => {}, + }; + map.add(directive1); + map.add(directive1Alt); + + expect(map.getByName('foo')).toEqual([directive1, directive1Alt]); + }); + + it('should add 2 different fields with the same directive', () => { + const map = new FieldDirectiveCollection(); + const directive1Alt: PropertyDirectiveMetadata = { + fieldName: 'bar', + sdl: '@foo', + target: () => {}, + }; + map.add(directive1); + map.add(directive1Alt); + + expect(map.getByName('foo')).toEqual([directive1]); + expect(map.getByName('bar')).toEqual([directive1Alt]); + }); + + it('should NOT the same directive on the same field twice', () => { + const map = new FieldDirectiveCollection(); + map.add(directive1); + map.add(directive1); + + const directives = map.getByName('foo'); + + expect(directives).toEqual([directive1]); + expect(directives.length).toEqual(1); + }); +}); diff --git a/packages/graphql/tests/schema-builder/storages/metadata-by-name.collection.spec.ts b/packages/graphql/tests/schema-builder/storages/metadata-by-name.collection.spec.ts new file mode 100644 index 000000000..a3db1edf4 --- /dev/null +++ b/packages/graphql/tests/schema-builder/storages/metadata-by-name.collection.spec.ts @@ -0,0 +1,36 @@ +import { MetadataByNameCollection } from '../../../lib/schema-builder/collections/'; + +describe('MetadataByNameCollection', () => { + it('should not add multiple values under the same name', () => { + const map = new MetadataByNameCollection(); + map.add('foo', 'uniqueName1'); + map.add('bar', 'uniqueName2'); + map.add('baz', 'uniqueName1'); + + expect(map.getByName('uniqueName1')).toBe('foo'); + expect(map.getByName('uniqueName2')).toBe('bar'); + expect(map.getAll().length).toBe(2); + }); + + it('should not add multiple values under the same name even in reverse', () => { + const map = new MetadataByNameCollection(); + map.unshift('foo', 'uniqueName1'); + map.unshift('bar', 'uniqueName2'); + map.unshift('baz', 'uniqueName1'); + + expect(map.getByName('uniqueName1')).toBe('foo'); + expect(map.getByName('uniqueName2')).toBe('bar'); + expect(map.getAll().length).toBe(2); + }); + + it('should add items in reverse', () => { + const map = new MetadataByNameCollection(); + map.add('foo', 'uniqueName1'); + map.unshift('bar', 'uniqueName2'); + + const [first, second] = map.getAll(); + + expect(first).toBe('bar'); + expect(second).toBe('foo'); + }); +}); diff --git a/packages/graphql/tests/schema-builder/storages/metadata-list-by-name.collection.spec.ts b/packages/graphql/tests/schema-builder/storages/metadata-list-by-name.collection.spec.ts new file mode 100644 index 000000000..deac0f22c --- /dev/null +++ b/packages/graphql/tests/schema-builder/storages/metadata-list-by-name.collection.spec.ts @@ -0,0 +1,34 @@ +import { MetadataListByNameCollection } from '../../../lib/schema-builder/collections/'; + +describe('MapArrayByName', () => { + it('should return an empty array if a name is not found', () => { + const map = new MetadataListByNameCollection(); + const possibleArray = map.getByName('unknown'); + expect(Array.isArray(possibleArray)).toBe(true); + expect(possibleArray.length).toBe(0); + }); + + it('should continuously add values to an array', () => { + const map = new MetadataListByNameCollection(); + map.add('foo', 'uniqueName1'); + map.add('baz', 'uniqueName1'); + map.add('bar', 'uniqueName2'); + + const uniqueName1Value = map.getByName('uniqueName1'); + const uniqueName2Value = map.getByName('uniqueName2'); + + expect(uniqueName1Value).toEqual(['foo', 'baz']); + expect(uniqueName2Value).toEqual(['bar']); + }); + + it('should return a flat array of all values', () => { + const map = new MetadataListByNameCollection(); + map.add('foo', 'uniqueName1'); + map.add('baz', 'uniqueName1'); + map.add('bar', 'uniqueName2'); + + const allValues = map.getAll(); + + expect(allValues).toEqual(['foo', 'baz', 'bar']); + }); +}); diff --git a/packages/graphql/tests/utils/get-number-of-arguments.util.spec.ts b/packages/graphql/tests/utils/get-number-of-arguments.util.spec.ts index 7ae5e4414..20c175226 100644 --- a/packages/graphql/tests/utils/get-number-of-arguments.util.spec.ts +++ b/packages/graphql/tests/utils/get-number-of-arguments.util.spec.ts @@ -1,4 +1,4 @@ -import { getNumberOfArguments } from '../../lib/utils'; +import { getNumberOfArguments, stringifyWithoutQuotes } from '../../lib/utils'; describe('getNumberOfArguments', () => { describe('when using function', () => { @@ -203,3 +203,14 @@ describe('getNumberOfArguments', () => { }); }); }); + +describe('stringifyWithoutQuotes', () => { + it('should stringify object correctly', () => { + const obj = { + name: '@tag', + as: '@mytag', + }; + + expect(stringifyWithoutQuotes(obj)).toBe('{ name: "@tag", as: "@mytag" }'); + }); +}); diff --git a/packages/graphql/tsconfig.spec.json b/packages/graphql/tsconfig.spec.json index 57a8729db..b08ae9728 100644 --- a/packages/graphql/tsconfig.spec.json +++ b/packages/graphql/tsconfig.spec.json @@ -1,6 +1,7 @@ { "extends": "./tsconfig.json", "compilerOptions": { + "sourceMap": true, "outDir": "./dist/tests", "rootDir": ".", "types": ["jest", "node"] diff --git a/packages/mercurius/lib/utils/build-mercurius-federated-schema.util.ts b/packages/mercurius/lib/utils/build-mercurius-federated-schema.util.ts index 2709a30d9..ce6a19615 100644 --- a/packages/mercurius/lib/utils/build-mercurius-federated-schema.util.ts +++ b/packages/mercurius/lib/utils/build-mercurius-federated-schema.util.ts @@ -2,7 +2,6 @@ import { loadPackage } from '@nestjs/common/utils/load-package.util'; import { transformSchema } from '@nestjs/graphql'; import { BuildFederatedSchemaOptions } from '@nestjs/graphql'; import { GraphQLSchema, isObjectType, buildASTSchema } from 'graphql'; -import { forEach } from 'lodash'; export function buildMercuriusFederatedSchema({ typeDefs, @@ -22,7 +21,7 @@ export function buildMercuriusFederatedSchema({ executableSchema = transformSchema(executableSchema, (type) => { if (isObjectType(type)) { const isSubscription = type.name === 'Subscription'; - forEach(type.getFields(), (value, key) => { + for (const [key, value] of Object.entries(type.getFields())) { if (isSubscription && subscriptionResolvers) { const resolver = subscriptionResolvers[key]; if (resolver && !value.subscribe) { @@ -43,7 +42,7 @@ export function buildMercuriusFederatedSchema({ }; }; } - }); + } } return type; }); diff --git a/packages/mercurius/lib/utils/transform-schema.util.ts b/packages/mercurius/lib/utils/transform-schema.util.ts index 33c00e882..ddde4d5de 100644 --- a/packages/mercurius/lib/utils/transform-schema.util.ts +++ b/packages/mercurius/lib/utils/transform-schema.util.ts @@ -145,11 +145,19 @@ export function transformFederatedSchema(schema: GraphQLSchema) { throw new MER_ERR_GQL_GATEWAY_INVALID_SCHEMA(__typename); } - const resolveReference = (type as any).resolveReference - ? (type as any).resolveReference - : function defaultResolveReference() { - return reference; - }; + const resolveReference = + type.extensions?.apollo?.subgraph?.resolveReference ?? + /** + * Backcompat for old versions of @apollo/subgraph which didn't use + * `extensions` This can be removed when support for + * @apollo/subgraph < 0.4.2 is dropped Reference: + * https://github.com/apollographql/federation/pull/1747 + */ + // @ts-expect-error (explanation above) + type.resolveReference ?? + function defaultResolveReference() { + return reference; + }; const result = resolveReference(reference, {}, context, info); diff --git a/packages/mercurius/package.json b/packages/mercurius/package.json index 79ba73543..62a3b20d8 100644 --- a/packages/mercurius/package.json +++ b/packages/mercurius/package.json @@ -1,6 +1,6 @@ { "name": "@nestjs/mercurius", - "version": "10.0.14", + "version": "10.1.4", "description": "Nest - modern, fast, powerful node.js web framework (@graphql)", "author": "Kamil Mysliwiec", "license": "MIT", @@ -27,17 +27,18 @@ "tslib": "2.4.0" }, "devDependencies": { - "@nestjs/common": "8.4.6", - "@nestjs/platform-fastify": "8.4.6", - "@nestjs/testing": "8.4.6", - "fastify": "3.29.0", - "mercurius": "8.12.2", - "mercurius-integration-testing": "4.0.0" + "@nestjs/common": "8.4.7", + "@nestjs/platform-fastify": "8.4.7", + "@nestjs/testing": "8.4.7", + "fastify": "4.9.2", + "mercurius": "8.13.1", + "mercurius-integration-testing": "6.0.1" }, "peerDependencies": { - "@nestjs/common": "^8.2.3", + "@nestjs/common": "^8.2.3 || ^9.0.0", "@nestjs/graphql": "^10.0.0", - "fastify": "^3.25.0", - "mercurius": "^8.12.0 || ^9.0.0" + "fastify": "^3.25.0 || ^4.0.0", + "graphql": "^15.8.0 || ^16.0.0", + "mercurius": "^8.12.0 || ^9.0.0 || ^10.0.0" } } diff --git a/packages/mercurius/tests/jest-e2e.ts b/packages/mercurius/tests/jest-e2e.ts index c2b5bf072..5f719e18d 100644 --- a/packages/mercurius/tests/jest-e2e.ts +++ b/packages/mercurius/tests/jest-e2e.ts @@ -12,15 +12,13 @@ const config: Config.InitialOptions = { testRegex: '.spec.ts$', moduleNameMapper, transform: { - '^.+\\.(t|j)s$': 'ts-jest', + '^.+\\.(t|j)s$': [ + 'ts-jest', + { tsconfig: '/tsconfig.spec.json', isolatedModules: true }, + ], }, coverageDirectory: '../coverage', testEnvironment: 'node', - globals: { - 'ts-jest': { - tsconfig: '/tsconfig.spec.json', - }, - }, }; export default config; diff --git a/yarn.lock b/yarn.lock index dc08a5c35..d3098792e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,43 +9,86 @@ dependencies: "@jridgewell/trace-mapping" "^0.3.0" +"@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" + integrity sha512-Por80co1eUm4ATsvjCOoS/tIR8PHxqVjsA6z76I6Vw0rFn4cgyVElQcmQDIZiYsy41k8e5xkrMRECkM2WR8pNw== + +"@apollo/composition@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@apollo/composition/-/composition-2.1.4.tgz#ce89f61869fe9d6614ca3b4e5206773d9acf15da" + integrity sha512-M72m29u4Zx0EHaLO989YGH+shnRE3ADKRtOSe3xx2eESHpN5GuugihQF4bdGKBFpseKBaJwl0x060eq8MVjSeg== + dependencies: + "@apollo/federation-internals" "^2.1.4" + "@apollo/query-graphs" "^2.1.4" + "@apollo/core-schema@^0.2.0": version "0.2.0" resolved "https://registry.yarnpkg.com/@apollo/core-schema/-/core-schema-0.2.0.tgz#4eb529ee27553eeb6c18cd27eb0b94f2bd8b22a8" integrity sha512-bhzZMIyzP3rynXwtUuEt2ENJIgKd9P/iR98VsuA3tOyYdWPjD5BfsrdWO0oIJXW/pjbbr0oHX5gqutFRKYuwAA== -"@apollo/federation@^0.36.2": - version "0.36.2" - resolved "https://registry.yarnpkg.com/@apollo/federation/-/federation-0.36.2.tgz#bc37e668cb541dfdd0d76eeb20e9b39e8a29365c" - integrity sha512-2yqHevdz41wR/fZI+OEk7ibDlEWWhHxXg7ABT8KqHHS5VtKGIwbcekf3kxJXQWIHSXNuHu8r2BcEGJO7JqY8ww== +"@apollo/federation-internals@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@apollo/federation-internals/-/federation-internals-2.1.4.tgz#aa475c51fbc91d9e37e9a6e69446412ab8e32b88" + integrity sha512-Fpln5hHEh0Jjy0vaTpIlv1SF+zg2cjunsH2X5QDHwKOXoHsT4o7LF+Duoy7LgZj6W3HNW9Z/srmuOXXNTl2gjw== + dependencies: + chalk "^4.1.0" + js-levenshtein "^1.1.6" + +"@apollo/federation@^0.37.1": + version "0.37.1" + resolved "https://registry.yarnpkg.com/@apollo/federation/-/federation-0.37.1.tgz#526e6be32cd012b15734738d5e060e641df5bbbc" + integrity sha512-cLoBrBLt2dUEUmfISvGJ9YevnRGWhj+bVVJ8pP0bBrLfy1GWRYrsV8Jd87U2YeMEp7wuYM6M2PjE4Oy6PBMf2w== dependencies: - "@apollo/subgraph" "^0.4.2" + "@apollo/subgraph" "^0.5.1" apollo-server-types "^3.0.2" lodash.xorby "^4.7.0" -"@apollo/gateway@0.51.0": - version "0.51.0" - resolved "https://registry.yarnpkg.com/@apollo/gateway/-/gateway-0.51.0.tgz#b3f44653474f7a5f7771349928bc02ab1660db3b" - integrity sha512-itFIAHj7h/r5QQbYe4tsYMfuQUdPC1WEHd9O8UHiIY3lU7Mo4ALpbHPs5W7LEMXHhHaLEvo/MI+sZ7BBRDzb4Q== +"@apollo/gateway-v2@npm:@apollo/gateway@2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@apollo/gateway/-/gateway-2.1.4.tgz#f8aac42450e793f3e3f23b8a6e8c4170b254cf1c" + integrity sha512-EIKHZFdaaNEzySs48b7r6BEXVTiS4pi/yI2OVPWkEUbkVnk7NPlQNIhDXtxSeIgEY1l79PEZ9Jw09QqtjTFoTg== + dependencies: + "@apollo/composition" "^2.1.4" + "@apollo/federation-internals" "^2.1.4" + "@apollo/query-planner" "^2.1.4" + "@apollo/server-gateway-interface" "^1.0.2" + "@apollo/usage-reporting-protobuf" "^4.0.0" + "@apollo/utils.createhash" "^1.1.0" + "@apollo/utils.fetcher" "^1.1.0" + "@apollo/utils.isnodelike" "^1.1.0" + "@apollo/utils.logger" "^1.0.0" + "@josephg/resolvable" "^1.0.1" + "@opentelemetry/api" "^1.0.1" + "@types/node-fetch" "^2.6.2" + async-retry "^1.3.3" + loglevel "^1.6.1" + lru-cache "^7.13.1" + make-fetch-happen "^10.1.2" + node-abort-controller "^3.0.1" + node-fetch "^2.6.7" + +"@apollo/gateway@0.52.1": + version "0.52.1" + resolved "https://registry.yarnpkg.com/@apollo/gateway/-/gateway-0.52.1.tgz#e07228e5e53745434eb337e346b205e9aa3e19d8" + integrity sha512-FRnQQLxEovuDU1ILh2mLD16u/nk8hWYZ1B89q1owFZLG/ZnrWkYh3+i+gbAMzNALpCTtkulHbhQBqJQHAiNUbg== dependencies: "@apollo/core-schema" "^0.2.0" - "@apollo/federation" "^0.36.2" - "@apollo/query-planner" "^0.10.2" + "@apollo/federation" "^0.37.1" + "@apollo/query-planner" "^0.11.1" + "@apollo/server-gateway-interface" "^1.0.2" "@apollo/utils.createhash" "^1.0.0" "@apollo/utils.fetcher" "^1.0.0" "@apollo/utils.logger" "^1.0.0" "@josephg/resolvable" "^1.0.1" "@opentelemetry/api" "^1.0.1" - "@types/node-fetch" "2.6.1" + "@types/node-fetch" "2.6.2" apollo-reporting-protobuf "^0.8.0 || ^3.0.0" - apollo-server-caching "^0.7.0 || ^3.0.0" - apollo-server-core "^2.23.0 || ^3.0.0" - apollo-server-errors "^2.5.0 || ^3.0.0" - apollo-server-types "^0.9.0 || ^3.0.0" async-retry "^1.3.3" loglevel "^1.6.1" + lru-cache "^7.13.1" make-fetch-happen "^10.1.2" - pretty-format "^27.4.6" + pretty-format "^28.0.0" "@apollo/protobufjs@1.2.2": version "1.2.2" @@ -66,19 +109,111 @@ "@types/node" "^10.1.0" long "^4.0.0" -"@apollo/query-planner@^0.10.2": - version "0.10.2" - resolved "https://registry.yarnpkg.com/@apollo/query-planner/-/query-planner-0.10.2.tgz#e71d4bf794787229da49f23421a6a9253dcc9775" - integrity sha512-A9pqfaoDrfWwewkBcRmXsTxTctRtkiPi+uQ86CJTfxz8ZfNw/KEgr0CdFCzHLcToo4SQDBFLOsb4kDdo2jjxRg== +"@apollo/protobufjs@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@apollo/protobufjs/-/protobufjs-1.2.4.tgz#d913e7627210ec5efd758ceeb751c776c68ba133" + integrity sha512-npVJ9NVU/pynj+SCU+fambvTneJDyCnif738DnZ7pCxdDtzeEz7WkpSIq5wNUmWm5Td55N+S2xfqZ+WP4hDLng== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.0" + "@types/node" "^10.1.0" + long "^4.0.0" + +"@apollo/protobufjs@1.2.6": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@apollo/protobufjs/-/protobufjs-1.2.6.tgz#d601e65211e06ae1432bf5993a1a0105f2862f27" + integrity sha512-Wqo1oSHNUj/jxmsVp4iR3I480p6qdqHikn38lKrFhfzcDJ7lwd7Ck7cHRl4JE81tWNArl77xhnG/OkZhxKBYOw== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.0" + "@types/node" "^10.1.0" + long "^4.0.0" + +"@apollo/query-graphs@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@apollo/query-graphs/-/query-graphs-2.1.4.tgz#305bf8e39075cae03c08834485be292619e8cd14" + integrity sha512-oGDdfj+Mhh02JIU0onc0yVxb4f3jqmyHEdTveNYmnmEtFjJWPn9PGq0hpFwTquHyrzUNkx0pqDc4UIFUnZQNGg== + dependencies: + "@apollo/federation-internals" "^2.1.4" + deep-equal "^2.0.5" + ts-graphviz "^0.16.0" + +"@apollo/query-planner@^0.11.1": + version "0.11.1" + resolved "https://registry.yarnpkg.com/@apollo/query-planner/-/query-planner-0.11.1.tgz#63e9384827b968465d881fa09709519aec082921" + integrity sha512-fKSZDAL+JCTdBa3k3hdnWWgqzyaNE/Gu4tXIMa+GrzKafeRx2gcsYWPiywca645qoiKt0hk0GyJy8zZILJ2o6w== dependencies: chalk "^4.1.0" deep-equal "^2.0.5" - pretty-format "^27.4.6" + pretty-format "^28.0.0" -"@apollo/subgraph@0.4.2", "@apollo/subgraph@^0.4.2": - version "0.4.2" - resolved "https://registry.yarnpkg.com/@apollo/subgraph/-/subgraph-0.4.2.tgz#f8516f1d5e5fbd57189727497ed9f805fa5017c8" - integrity sha512-sIGzqfUryW6tS5RPWp1awtO+5CehjPV6xbDrWS4I2Hsj8rug8Y9oiMpcnNk8GaQ1TF3UEf99ZL16mNa4J++IIQ== +"@apollo/query-planner@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@apollo/query-planner/-/query-planner-2.1.4.tgz#ae37cbf312a2eb286d2857dbaef05a6c4b337710" + integrity sha512-OaC52LslJN/uGwJSdJCwJUz1e/0vo+gbHXk1deuRQiM5kr8iV8yklxeMVzy68PG9ioeA3r5SUDIZC+NuCLZeaQ== + dependencies: + "@apollo/federation-internals" "^2.1.4" + "@apollo/query-graphs" "^2.1.4" + chalk "^4.1.0" + deep-equal "^2.0.5" + pretty-format "^28.0.0" + +"@apollo/server-gateway-interface@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@apollo/server-gateway-interface/-/server-gateway-interface-1.0.3.tgz#d33afd34eefbcc57153cd65aee3973443b81f204" + integrity sha512-XYdxr73Ld6DzQ4/LsCOo4ElOyJVcgPDJUybv43htN9AN5ninto9mwLfo2Q8FVkRH5FMIe57EycsHnIyBu7wDPg== + dependencies: + "@apollo/usage-reporting-protobuf" "^4.0.0-alpha.1" + "@apollo/utils.fetcher" "^1.0.0" + "@apollo/utils.keyvaluecache" "^1.0.1" + "@apollo/utils.logger" "^1.0.0" + +"@apollo/subgraph-v2@npm:@apollo/subgraph@2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@apollo/subgraph/-/subgraph-2.1.4.tgz#a8e0c0eb0e2d6a7f8869dfecf8e0d07ed5236712" + integrity sha512-WrZuvCtTjLczkJq9BxyGgGB5lE0vr83ZFvbdVdByve+EbvfCh0rNtXNFaAXOkOcqzMcDv258AN44o7WBm+raYw== + dependencies: + "@apollo/cache-control-types" "^1.0.2" + "@apollo/federation-internals" "^2.1.4" + +"@apollo/subgraph@0.5.1", "@apollo/subgraph@^0.5.1": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@apollo/subgraph/-/subgraph-0.5.1.tgz#9d9aabe69bc61e13a510c19f50c6aa6e741a6ec4" + integrity sha512-pj+igKgdpmTfgUmscTNuVdLip8WZ8jFKS5FGb/tD2hj4xPwaQ+MfszLsuNfoytp7d63PdLorIndxcHCW+rb7Dg== + dependencies: + "@apollo/cache-control-types" "^1.0.2" + +"@apollo/usage-reporting-protobuf@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@apollo/usage-reporting-protobuf/-/usage-reporting-protobuf-4.0.0.tgz#36db64164f511508822bc8ac8fedb850f43af86e" + integrity sha512-MyQIaDkePoYbqMdwuubfUdUELT1ozpfBM1poV7x5S44Qs2b+247ni4+sqt1W/3cXC8WiJVmfUXJ9QcPGIOqu5w== + dependencies: + "@apollo/protobufjs" "1.2.6" + +"@apollo/usage-reporting-protobuf@^4.0.0-alpha.1": + version "4.0.0-alpha.1" + resolved "https://registry.yarnpkg.com/@apollo/usage-reporting-protobuf/-/usage-reporting-protobuf-4.0.0-alpha.1.tgz#7badb84e203b313218f80722e371eab5b1e6e3c6" + integrity sha512-5pN8CQGxvGbpm58VK7EguR5d6rwZ+v2B9MddKM4DWnh87DuUEbu2xzcSBGaj2Yk2kVzro9YJ1J0vrQrQn8ESYQ== + dependencies: + "@apollo/protobufjs" "1.2.4" "@apollo/utils.createhash@^1.0.0": version "1.0.0" @@ -88,6 +223,14 @@ "@apollo/utils.isnodelike" "^1.0.0" sha.js "^2.4.11" +"@apollo/utils.createhash@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@apollo/utils.createhash/-/utils.createhash-1.1.0.tgz#b18a353008d2583a34eaebaf471aff6e15360172" + integrity sha512-5fT4ZiW75515OlikWpIQzaVDws1yy9VgYSoHoJCrvI2UH6/7YNKXQjbjT5qVYu6ytch2wBxFMfFfYWMn/2bSCQ== + dependencies: + "@apollo/utils.isnodelike" "^1.1.0" + sha.js "^2.4.11" + "@apollo/utils.dropunuseddefinitions@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@apollo/utils.dropunuseddefinitions/-/utils.dropunuseddefinitions-1.1.0.tgz#02b04006442eaf037f4c4624146b12775d70d929" @@ -98,11 +241,29 @@ resolved "https://registry.yarnpkg.com/@apollo/utils.fetcher/-/utils.fetcher-1.0.0.tgz#467c99e97c1a81841435280707fcf2fb0b5768b7" integrity sha512-SpJH69ffk91BoYSVb12Dt/jFQKVOrm4NE59XUeHXRsha1xBmxjvZNN6qvYySAcGjloW4TtFZYlPkBpwjMRWymw== +"@apollo/utils.fetcher@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@apollo/utils.fetcher/-/utils.fetcher-1.1.0.tgz#025a0343cf7598bef3d540a9dba75d9cc42c09ac" + integrity sha512-UOI25Q8kN6ADYxCPSzilMzMir2CNNFLif/+1WcTgMog9HbMGtG3LSlC9vStsSBcNGlwViaFFGP4ybgoZ2Ro5rQ== + "@apollo/utils.isnodelike@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@apollo/utils.isnodelike/-/utils.isnodelike-1.0.0.tgz#a7b2638f7c39acbdbd5b3f62c94708ed4789c246" integrity sha512-uS0TNODZXYDiKp5r+OXUtqLcjgcJ7s0GyY8m+TGnYOLu6CpqL4BiJSR54o4gXK+oxFGWy7Fs2NjVJtjFVt8ifg== +"@apollo/utils.isnodelike@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@apollo/utils.isnodelike/-/utils.isnodelike-1.1.0.tgz#24d3f36276b6ba4b08117925083bc5c5f2513c3d" + integrity sha512-q/Q82kBUSEcx1ED11JO1TYBY781mWluUnBD8NvhjHVsu1K1C5R9BZVUxShyK/V8XcePcRUB5fdWOcBMGwS0KOA== + +"@apollo/utils.keyvaluecache@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@apollo/utils.keyvaluecache/-/utils.keyvaluecache-1.0.1.tgz#46f310f859067efe9fa126156c6954f8381080d2" + integrity sha512-nLgYLomqjVimEzQ4cdvVQkcryi970NDvcRVPfd0OPeXhBfda38WjBq+WhQFk+czSHrmrSp34YHBxpat0EtiowA== + dependencies: + "@apollo/utils.logger" "^1.0.0" + lru-cache "^7.10.1" + "@apollo/utils.logger@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@apollo/utils.logger/-/utils.logger-1.0.0.tgz#6e3460a2250c2ef7c2c3b0be6b5e148a1596f12b" @@ -142,11 +303,6 @@ "@apollo/utils.stripsensitiveliterals" "^1.2.0" apollo-reporting-protobuf "^3.3.1" -"@apollographql/apollo-tools@^0.5.1": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@apollographql/apollo-tools/-/apollo-tools-0.5.2.tgz#01750a655731a198c3634ee819c463254a7c7767" - integrity sha512-KxZiw0Us3k1d0YkJDhOpVH5rJ+mBfjXcgoRoCcslbgirjgLotKMzOcx4PZ7YTEvvEROmvG7X3Aon41GvMmyGsw== - "@apollographql/apollo-tools@^0.5.3": version "0.5.3" resolved "https://registry.yarnpkg.com/@apollographql/apollo-tools/-/apollo-tools-0.5.3.tgz#ba241d50f0849150ca0de54fd2927160033bc0bc" @@ -369,6 +525,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== +"@babel/helper-plugin-utils@^7.18.6": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz#4b8aea3b069d8cb8a72cdfe28ddf5ceca695ef2f" + integrity sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w== + "@babel/helper-replace-supers@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz#73055e8d3cf9bcba8ddb55cad93fedc860f68f17" @@ -513,6 +674,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-syntax-jsx@^7.7.2": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" + integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" @@ -647,15 +815,15 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@commitlint/cli@17.0.2": - version "17.0.2" - resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-17.0.2.tgz#57c925fb5f09b8e4a83448d94db291ddf7aa58ee" - integrity sha512-Axe89Js0YzGGd4gxo3JLlF7yIdjOVpG1LbOorGc6PfYF+drBh14PvarSDLzyd2TNqdylUCq9wb9/A88ZjIdyhA== +"@commitlint/cli@17.1.2": + version "17.1.2" + resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-17.1.2.tgz#38240f84936df5216f749f06f838dc50cc85a43d" + integrity sha512-h/4Hlka3bvCLbnxf0Er2ri5A44VMlbMSkdTRp8Adv2tRiklSTRIoPGs7OEXDv3EoDs2AAzILiPookgM4Gi7LOw== dependencies: "@commitlint/format" "^17.0.0" - "@commitlint/lint" "^17.0.0" - "@commitlint/load" "^17.0.0" - "@commitlint/read" "^17.0.0" + "@commitlint/lint" "^17.1.0" + "@commitlint/load" "^17.1.2" + "@commitlint/read" "^17.1.0" "@commitlint/types" "^17.0.0" execa "^5.0.0" lodash "^4.17.19" @@ -668,20 +836,20 @@ resolved "https://registry.yarnpkg.com/@commitlint/config-angular-type-enum/-/config-angular-type-enum-17.0.0.tgz#4487ea0f2b97e255ad306316152a0b9b0b7fcf38" integrity sha512-OJrxpzszJ+jF0RvqLjsM/iZ94IfJ33NVCFFGVmkzuHjKxPt/i/+yJKJ5lzGhlsp5YV2F2Ui5ECIf5Sor2/OZvQ== -"@commitlint/config-angular@17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/config-angular/-/config-angular-17.0.0.tgz#727f07c16583ec6ad201ebb806fef8cd16e2b018" - integrity sha512-OngMpL/DpCHCebiQEVripTn/STqzbzwcP8jiwnCftXvUAaNQvAEBqbf7IbVPAvkj00WQsjvMQqRZD8D9NY7QaQ== +"@commitlint/config-angular@17.1.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@commitlint/config-angular/-/config-angular-17.1.0.tgz#5a8a3bbddeeaeb665813f059d0b73668304eb5e2" + integrity sha512-icTZHZlKUSkAhNk0qX2KGAKVTsuhP8XnSLLusoKHZHPqbz2fX7DzjzsTU/Llr3J7v+XBv04ml2Rw4ZAvcIhcxQ== dependencies: "@commitlint/config-angular-type-enum" "^17.0.0" -"@commitlint/config-validator@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-17.0.0.tgz#49ab09f3ca0ac3449e79ea389cb4942423162ac0" - integrity sha512-78IQjoZWR4kDHp/U5y17euEWzswJpPkA9TDL5F6oZZZaLIEreWzrDZD5PWtM8MsSRl/K2LDU/UrzYju2bKLMpA== +"@commitlint/config-validator@^17.1.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-17.1.0.tgz#51d09ca53d7a0d19736abf34eb18a66efce0f97a" + integrity sha512-Q1rRRSU09ngrTgeTXHq6ePJs2KrI+axPTgkNYDWSJIuS1Op4w3J30vUfSXjwn5YEJHklK3fSqWNHmBhmTR7Vdg== dependencies: "@commitlint/types" "^17.0.0" - ajv "^6.12.6" + ajv "^8.11.0" "@commitlint/ensure@^17.0.0": version "17.0.0" @@ -704,39 +872,40 @@ "@commitlint/types" "^17.0.0" chalk "^4.1.0" -"@commitlint/is-ignored@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-17.0.0.tgz#64f53517b390689e58aa3c29fbf1e05b7d4fbd65" - integrity sha512-UmacD0XM/wWykgdXn5CEWVS4XGuqzU+ZGvM2hwv85+SXGnIOaG88XHrt81u37ZeVt1riWW+YdOxcJW6+nd5v5w== +"@commitlint/is-ignored@^17.1.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-17.1.0.tgz#c9d5ca22679fdc657fff33a8aa23e0c0152ebbd1" + integrity sha512-JITWKDMHhIh8IpdIbcbuH9rEQJty1ZWelgjleTFrVRAcEwN/sPzk1aVUXRIZNXMJWbZj8vtXRJnFihrml8uECQ== dependencies: "@commitlint/types" "^17.0.0" semver "7.3.7" -"@commitlint/lint@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-17.0.0.tgz#38ef61e0e977d738f738233fbcdf33a5fc04cf96" - integrity sha512-5FL7VLvGJQby24q0pd4UdM8FNFcL+ER1T/UBf8A9KRL5+QXV1Rkl6Zhcl7+SGpGlVo6Yo0pm6aLW716LVKWLGg== +"@commitlint/lint@^17.1.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-17.1.0.tgz#de2d3baa2b20d9ec3d5fd2f2421f6025c8439630" + integrity sha512-ltpqM2ogt/+SDhUaScFo0MdscncEF96lvQTPMM/VTTWlw7sTGLLWkOOppsee2MN/uLNNWjQ7kqkd4h6JqoM9AQ== dependencies: - "@commitlint/is-ignored" "^17.0.0" + "@commitlint/is-ignored" "^17.1.0" "@commitlint/parse" "^17.0.0" "@commitlint/rules" "^17.0.0" "@commitlint/types" "^17.0.0" -"@commitlint/load@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-17.0.0.tgz#0bbefe6d8b99276714c5ea8ef32de2bd2f082698" - integrity sha512-XaiHF4yWQOPAI0O6wXvk+NYLtJn/Xb7jgZEeKd4C1ZWd7vR7u8z5h0PkWxSr0uLZGQsElGxv3fiZ32C5+q6M8w== +"@commitlint/load@^17.1.2": + version "17.1.2" + resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-17.1.2.tgz#19c88be570d8666bbd32f9b3d81925a08328bc13" + integrity sha512-sk2p/jFYAWLChIfOIp/MGSIn/WzZ0vkc3afw+l4X8hGEYkvDe4gQUUAVxjl/6xMRn0HgnSLMZ04xXh5pkTsmgg== dependencies: - "@commitlint/config-validator" "^17.0.0" + "@commitlint/config-validator" "^17.1.0" "@commitlint/execute-rule" "^17.0.0" - "@commitlint/resolve-extends" "^17.0.0" + "@commitlint/resolve-extends" "^17.1.0" "@commitlint/types" "^17.0.0" - "@types/node" ">=12" + "@types/node" "^14.0.0" chalk "^4.1.0" cosmiconfig "^7.0.0" - cosmiconfig-typescript-loader "^2.0.0" + cosmiconfig-typescript-loader "^4.0.0" lodash "^4.17.19" resolve-from "^5.0.0" + ts-node "^10.8.1" typescript "^4.6.4" "@commitlint/message@^17.0.0": @@ -753,22 +922,23 @@ conventional-changelog-angular "^5.0.11" conventional-commits-parser "^3.2.2" -"@commitlint/read@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-17.0.0.tgz#8ab01cf2f27350d8f81f21690962679a7cae5abf" - integrity sha512-zkuOdZayKX3J6F6mPnVMzohK3OBrsEdOByIqp4zQjA9VLw1hMsDEFQ18rKgUc2adkZar+4S01QrFreDCfZgbxA== +"@commitlint/read@^17.1.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-17.1.0.tgz#cf6bab410180f32f70891c97b15467c0b92ac14f" + integrity sha512-73BoFNBA/3Ozo2JQvGsE0J8SdrJAWGfZQRSHqvKaqgmY042Su4gXQLqvAzgr55S9DI1l9TiU/5WDuh8IE86d/g== dependencies: "@commitlint/top-level" "^17.0.0" "@commitlint/types" "^17.0.0" fs-extra "^10.0.0" git-raw-commits "^2.0.0" + minimist "^1.2.6" -"@commitlint/resolve-extends@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-17.0.0.tgz#3a40ee08184b984acf475ebc962641f435e3a639" - integrity sha512-wi60WiJmwaQ7lzMXK8Vbc18Hq9tE2j/6iv2AFfPUGV7fvfY6Sf1iNKuUHirSqR0fquUyufIXe4y/K9A6LVIIvw== +"@commitlint/resolve-extends@^17.1.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-17.1.0.tgz#7cf04fa13096c8a6544a4af13321fdf8d0d50694" + integrity sha512-jqKm00LJ59T0O8O4bH4oMa4XyJVEOK4GzH8Qye9XKji+Q1FxhZznxMV/bDLyYkzbTodBt9sL0WLql8wMtRTbqQ== dependencies: - "@commitlint/config-validator" "^17.0.0" + "@commitlint/config-validator" "^17.1.0" "@commitlint/types" "^17.0.0" import-fresh "^3.0.0" lodash "^4.17.19" @@ -805,18 +975,6 @@ dependencies: chalk "^4.1.0" -"@cspotcode/source-map-consumer@0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz#33bf4b7b39c178821606f669bbc447a6a629786b" - integrity sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg== - -"@cspotcode/source-map-support@0.7.0": - version "0.7.0" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz#4789840aa859e46d2f3173727ab707c66bf344f5" - integrity sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA== - dependencies: - "@cspotcode/source-map-consumer" "0.8.0" - "@cspotcode/source-map-support@^0.8.0": version "0.8.1" resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" @@ -824,14 +982,14 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@eslint/eslintrc@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.0.tgz#29f92c30bb3e771e4a2048c95fa6855392dfac4f" - integrity sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw== +"@eslint/eslintrc@^1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.3.tgz#2b044ab39fdfa75b4688184f9e573ce3c5b0ff95" + integrity sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.3.2" + espree "^9.4.0" globals "^13.15.0" ignore "^5.2.0" import-fresh "^3.2.1" @@ -854,6 +1012,15 @@ dependencies: ajv "^6.12.6" +"@fastify/ajv-compiler@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@fastify/ajv-compiler/-/ajv-compiler-3.3.1.tgz#7045dbf23c11c42b50011ccc36998cd624856e5d" + integrity sha512-IRnids8lblQ8e1i8h4JLyfJmebXE+ohcj8x8X/+Ew6ZB4H0Ui05z5YL6q5FOcl0zItVpu4adRzeyVNNUwmduIg== + dependencies: + ajv "^8.11.0" + ajv-formats "^2.1.1" + fast-uri "^2.0.0" + "@fastify/cors@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@fastify/cors/-/cors-7.0.0.tgz#c67c5a5909498b696bb19578e903f36037ac6f32" @@ -867,6 +1034,39 @@ resolved "https://registry.yarnpkg.com/@fastify/error/-/error-2.0.0.tgz#a9f94af56eb934f0ab1ce4ef9f0ced6ebf2319dc" integrity sha512-wI3fpfDT0t7p8E6dA2eTECzzOd+bZsZCJ2Hcv+Onn2b7ZwK3RwD27uW2QDaMtQhAfWQQP+WNK7nKf0twLsBf9w== +"@fastify/error@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@fastify/error/-/error-3.0.0.tgz#bfcb7b33cec0196413083a91ef2edc7b2c88455b" + integrity sha512-dPRyT40GiHRzSCll3/Jn2nPe25+E1VXc9tDwRAIKwFCxd5Np5wzgz1tmooWG3sV0qKgrBibihVoCna2ru4SEFg== + +"@fastify/fast-json-stringify-compiler@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-4.1.0.tgz#ebf657ce4ec88e27ba311f7560eaa0b37de8719d" + integrity sha512-cTKBV2J9+u6VaKDhX7HepSfPSzw+F+TSd+k0wzifj4rG+4E5PjSFJCk19P8R6tr/72cuzgGd+mbB3jFT6lvAgw== + dependencies: + fast-json-stringify "^5.0.0" + +"@fastify/static@^5.0.0": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@fastify/static/-/static-5.0.2.tgz#46cee887393b422f4b10a46a14e970a64dd086d4" + integrity sha512-HvyXZ5a7hUHoSBRq9jKUuKIUCkHMkCDcmiAeEmixXlGOx8pEWx3NYOIaiivcjWa6/NLvfdUT+t/jzfVQ2PA7Gw== + dependencies: + content-disposition "^0.5.3" + encoding-negotiator "^2.0.1" + fastify-plugin "^3.0.0" + glob "^7.1.4" + p-limit "^3.1.0" + readable-stream "^3.4.0" + send "^0.17.1" + +"@fastify/websocket@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@fastify/websocket/-/websocket-5.0.0.tgz#1fe62743c7663fb71d18953e6f62873a5b9cf448" + integrity sha512-ngZo5rchmhRZaML4MkAY/ClGs8Iyp0+rL97EIP0QsU2N4ICqBKEBG/wGL21ImAhha1RFixEzz8+CB/Ad/W50yw== + dependencies: + fastify-plugin "^3.0.0" + ws "^8.0.0" + "@gar/promisify@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.2.tgz#30aa825f11d438671d585bd44e7fd564535fc210" @@ -877,13 +1077,13 @@ resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== -"@graphql-tools/merge@8.2.13": - version "8.2.13" - resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.2.13.tgz#d4f254dcea301ce3d9c23b03eb68a7ae9baf6981" - integrity sha512-lhzjCa6wCthOYl7B6UzER3SGjU2WjSGnW0WGr8giMYsrtf6G3vIRotMcSVMlhDzyyMIOn7uPULOUt3/kaJ/rIA== +"@graphql-tools/merge@8.3.6": + version "8.3.6" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.6.tgz#97a936d4c8e8f935e58a514bb516c476437b5b2c" + integrity sha512-uUBokxXi89bj08P+iCvQk3Vew4vcfL5ZM6NTylWi8PIpoq4r5nJ625bRuN8h2uubEdRiH8ntN9M4xkd/j7AybQ== dependencies: - "@graphql-tools/utils" "8.6.12" - tslib "~2.4.0" + "@graphql-tools/utils" "8.12.0" + tslib "^2.4.0" "@graphql-tools/merge@^8.2.1": version "8.2.1" @@ -903,14 +1103,14 @@ fast-json-stable-stringify "^2.1.0" tslib "~2.3.0" -"@graphql-tools/schema@8.3.13": - version "8.3.13" - resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-8.3.13.tgz#099460459d7821dd8deb34952900fe300085ba0b" - integrity sha512-e+bx1VHj1i5v4HmhCYCar0lqdoLmkRi/CfV07rTqHR6CRDbIb/S/qDCajHLt7FCovQ5ozlI5sRVbBhzfq5H0PQ== +"@graphql-tools/schema@9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.4.tgz#1a74608b57abf90fae6fd929d25e5482c57bc05d" + integrity sha512-B/b8ukjs18fq+/s7p97P8L1VMrwapYc3N2KvdG/uNThSazRRn8GsBK0Nr+FH+mVKiUfb4Dno79e3SumZVoHuOQ== dependencies: - "@graphql-tools/merge" "8.2.13" - "@graphql-tools/utils" "8.6.12" - tslib "~2.4.0" + "@graphql-tools/merge" "8.3.6" + "@graphql-tools/utils" "8.12.0" + tslib "^2.4.0" value-or-promise "1.0.11" "@graphql-tools/schema@^8.0.0", "@graphql-tools/schema@^8.3.1": @@ -923,14 +1123,14 @@ tslib "~2.3.0" value-or-promise "1.0.11" -"@graphql-tools/utils@8.6.12": - version "8.6.12" - resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.6.12.tgz#0a550dc0331fd9b097fe7223d65cbbee720556e4" - integrity sha512-WQ91O40RC+UJgZ9K+IzevSf8oolR1QE+WQ21Oyc2fgDYYiqT0eSf+HVyhZr/8x9rVjn3N9HeqCsywbdmbljg0w== +"@graphql-tools/utils@8.12.0": + version "8.12.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.12.0.tgz#243bc4f5fc2edbc9e8fd1038189e57d837cbe31f" + integrity sha512-TeO+MJWGXjUTS52qfK4R8HiPoF/R7X+qmgtOYd8DTH0l6b+5Y/tlg5aGeUJefqImRq7nvi93Ms40k/Uz4D5CWw== dependencies: - tslib "~2.4.0" + tslib "^2.4.0" -"@graphql-tools/utils@^8.0.0", "@graphql-tools/utils@^8.5.1": +"@graphql-tools/utils@^8.5.1": version "8.5.2" resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.5.2.tgz#fa775d92c19237f648105f7d4aeeeb63ba3d257f" integrity sha512-wxA51td/759nQziPYh+HxE0WbURRufrp1lwfOYMgfK4e8Aa6gCa1P1p6ERogUIm423NrIfOVau19Q/BBpHdolw== @@ -942,15 +1142,20 @@ resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.1.1.tgz#076d78ce99822258cf813ecc1e7fa460fa74d052" integrity sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg== -"@humanwhocodes/config-array@^0.9.2": - version "0.9.2" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.2.tgz#68be55c737023009dfc5fe245d51181bb6476914" - integrity sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA== +"@humanwhocodes/config-array@^0.11.6": + version "0.11.6" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.6.tgz#6a51d603a3aaf8d4cf45b42b3f2ac9318a4adc4b" + integrity sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" minimatch "^3.0.4" +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + "@humanwhocodes/object-schema@^1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" @@ -987,110 +1192,117 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^28.1.0": - version "28.1.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-28.1.0.tgz#db78222c3d3b0c1db82f1b9de51094c2aaff2176" - integrity sha512-tscn3dlJFGay47kb4qVruQg/XWlmvU0xp3EJOjzzY+sBaI+YgwKcvAmTcyYU7xEiLLIY5HCdWRooAL8dqkFlDA== +"@jest/console@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.2.1.tgz#5f2c62dcdd5ce66e94b6d6729e021758bceea090" + integrity sha512-MF8Adcw+WPLZGBiNxn76DOuczG3BhODTcMlDCA4+cFi41OkaY/lyI0XUUhi73F88Y+7IHoGmD80pN5CtxQUdSw== dependencies: - "@jest/types" "^28.1.0" + "@jest/types" "^29.2.1" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^28.1.0" - jest-util "^28.1.0" + jest-message-util "^29.2.1" + jest-util "^29.2.1" slash "^3.0.0" -"@jest/core@^28.1.0": - version "28.1.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.1.0.tgz#784a1e6ce5358b46fcbdcfbbd93b1b713ed4ea80" - integrity sha512-/2PTt0ywhjZ4NwNO4bUqD9IVJfmFVhVKGlhvSpmEfUCuxYf/3NHcKmRFI+I71lYzbTT3wMuYpETDCTHo81gC/g== +"@jest/core@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.2.2.tgz#207aa8973d9de8769f9518732bc5f781efc3ffa7" + integrity sha512-susVl8o2KYLcZhhkvSB+b7xX575CX3TmSvxfeDjpRko7KmT89rHkXj6XkDkNpSeFMBzIENw5qIchO9HC9Sem+A== dependencies: - "@jest/console" "^28.1.0" - "@jest/reporters" "^28.1.0" - "@jest/test-result" "^28.1.0" - "@jest/transform" "^28.1.0" - "@jest/types" "^28.1.0" + "@jest/console" "^29.2.1" + "@jest/reporters" "^29.2.2" + "@jest/test-result" "^29.2.1" + "@jest/transform" "^29.2.2" + "@jest/types" "^29.2.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" ci-info "^3.2.0" exit "^0.1.2" graceful-fs "^4.2.9" - jest-changed-files "^28.0.2" - jest-config "^28.1.0" - jest-haste-map "^28.1.0" - jest-message-util "^28.1.0" - jest-regex-util "^28.0.2" - jest-resolve "^28.1.0" - jest-resolve-dependencies "^28.1.0" - jest-runner "^28.1.0" - jest-runtime "^28.1.0" - jest-snapshot "^28.1.0" - jest-util "^28.1.0" - jest-validate "^28.1.0" - jest-watcher "^28.1.0" + jest-changed-files "^29.2.0" + jest-config "^29.2.2" + jest-haste-map "^29.2.1" + jest-message-util "^29.2.1" + jest-regex-util "^29.2.0" + jest-resolve "^29.2.2" + jest-resolve-dependencies "^29.2.2" + jest-runner "^29.2.2" + jest-runtime "^29.2.2" + jest-snapshot "^29.2.2" + jest-util "^29.2.1" + jest-validate "^29.2.2" + jest-watcher "^29.2.2" micromatch "^4.0.4" - pretty-format "^28.1.0" - rimraf "^3.0.0" + pretty-format "^29.2.1" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^28.1.0": - version "28.1.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-28.1.0.tgz#dedf7d59ec341b9292fcf459fd0ed819eb2e228a" - integrity sha512-S44WGSxkRngzHslhV6RoAExekfF7Qhwa6R5+IYFa81mpcj0YgdBnRSmvHe3SNwOt64yXaE5GG8Y2xM28ii5ssA== +"@jest/environment@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.2.2.tgz#481e729048d42e87d04842c38aa4d09c507f53b0" + integrity sha512-OWn+Vhu0I1yxuGBJEFFekMYc8aGBGrY4rt47SOh/IFaI+D7ZHCk7pKRiSoZ2/Ml7b0Ony3ydmEHRx/tEOC7H1A== dependencies: - "@jest/fake-timers" "^28.1.0" - "@jest/types" "^28.1.0" + "@jest/fake-timers" "^29.2.2" + "@jest/types" "^29.2.1" "@types/node" "*" - jest-mock "^28.1.0" + jest-mock "^29.2.2" -"@jest/expect-utils@^28.1.0": - version "28.1.0" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-28.1.0.tgz#a5cde811195515a9809b96748ae8bcc331a3538a" - integrity sha512-5BrG48dpC0sB80wpeIX5FU6kolDJI4K0n5BM9a5V38MGx0pyRvUBSS0u2aNTdDzmOrCjhOg8pGs6a20ivYkdmw== +"@jest/expect-utils@^29.0.1": + version "29.0.1" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.0.1.tgz#c1a84ee66caaef537f351dd82f7c63d559cf78d5" + integrity sha512-Tw5kUUOKmXGQDmQ9TSgTraFFS7HMC1HG/B7y0AN2G2UzjdAXz9BzK2rmNpCSDl7g7y0Gf/VLBm//blonvhtOTQ== dependencies: - jest-get-type "^28.0.2" + jest-get-type "^29.0.0" -"@jest/expect@^28.1.0": - version "28.1.0" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.1.0.tgz#2e5a31db692597070932366a1602b5157f0f217c" - integrity sha512-be9ETznPLaHOmeJqzYNIXv1ADEzENuQonIoobzThOYPuK/6GhrWNIJDVTgBLCrz3Am73PyEU2urQClZp0hLTtA== +"@jest/expect-utils@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.2.2.tgz#460a5b5a3caf84d4feb2668677393dd66ff98665" + integrity sha512-vwnVmrVhTmGgQzyvcpze08br91OL61t9O0lJMDyb6Y/D8EKQ9V7rGUb/p7PDt0GPzK0zFYqXWFo4EO2legXmkg== dependencies: - expect "^28.1.0" - jest-snapshot "^28.1.0" + jest-get-type "^29.2.0" -"@jest/fake-timers@^28.1.0": - version "28.1.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.1.0.tgz#ea77878aabd5c5d50e1fc53e76d3226101e33064" - integrity sha512-Xqsf/6VLeAAq78+GNPzI7FZQRf5cCHj1qgQxCjws9n8rKw8r1UYoeaALwBvyuzOkpU3c1I6emeMySPa96rxtIg== +"@jest/expect@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.2.2.tgz#81edbd33afbde7795ca07ff6b4753d15205032e4" + integrity sha512-zwblIZnrIVt8z/SiEeJ7Q9wKKuB+/GS4yZe9zw7gMqfGf4C5hBLGrVyxu1SzDbVSqyMSlprKl3WL1r80cBNkgg== dependencies: - "@jest/types" "^28.1.0" - "@sinonjs/fake-timers" "^9.1.1" + expect "^29.2.2" + jest-snapshot "^29.2.2" + +"@jest/fake-timers@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.2.2.tgz#d8332e6e3cfa99cde4bc87d04a17d6b699deb340" + integrity sha512-nqaW3y2aSyZDl7zQ7t1XogsxeavNpH6kkdq+EpXncIDvAkjvFD7hmhcIs1nWloengEWUoWqkqSA6MSbf9w6DgA== + dependencies: + "@jest/types" "^29.2.1" + "@sinonjs/fake-timers" "^9.1.2" "@types/node" "*" - jest-message-util "^28.1.0" - jest-mock "^28.1.0" - jest-util "^28.1.0" + jest-message-util "^29.2.1" + jest-mock "^29.2.2" + jest-util "^29.2.1" -"@jest/globals@^28.1.0": - version "28.1.0" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.1.0.tgz#a4427d2eb11763002ff58e24de56b84ba79eb793" - integrity sha512-3m7sTg52OTQR6dPhsEQSxAvU+LOBbMivZBwOvKEZ+Rb+GyxVnXi9HKgOTYkx/S99T8yvh17U4tNNJPIEQmtwYw== +"@jest/globals@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.2.2.tgz#205ff1e795aa774301c2c0ba0be182558471b845" + integrity sha512-/nt+5YMh65kYcfBhj38B3Hm0Trk4IsuMXNDGKE/swp36yydBWfz3OXkLqkSvoAtPW8IJMSJDFCbTM2oj5SNprw== dependencies: - "@jest/environment" "^28.1.0" - "@jest/expect" "^28.1.0" - "@jest/types" "^28.1.0" + "@jest/environment" "^29.2.2" + "@jest/expect" "^29.2.2" + "@jest/types" "^29.2.1" + jest-mock "^29.2.2" -"@jest/reporters@^28.1.0": - version "28.1.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.1.0.tgz#5183a28b9b593b6000fa9b89b031c7216b58a9a0" - integrity sha512-qxbFfqap/5QlSpIizH9c/bFCDKsQlM4uAKSOvZrP+nIdrjqre3FmKzpTtYyhsaVcOSNK7TTt2kjm+4BJIjysFA== +"@jest/reporters@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.2.2.tgz#69b395f79c3a97ce969ce05ccf1a482e5d6de290" + integrity sha512-AzjL2rl2zJC0njIzcooBvjA4sJjvdoq98sDuuNs4aNugtLPSQ+91nysGKRF0uY1to5k0MdGMdOBggUsPqvBcpA== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^28.1.0" - "@jest/test-result" "^28.1.0" - "@jest/transform" "^28.1.0" - "@jest/types" "^28.1.0" - "@jridgewell/trace-mapping" "^0.3.7" + "@jest/console" "^29.2.1" + "@jest/test-result" "^29.2.1" + "@jest/transform" "^29.2.2" + "@jest/types" "^29.2.1" + "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" collect-v8-coverage "^1.0.0" @@ -1102,20 +1314,13 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-util "^28.1.0" - jest-worker "^28.1.0" + jest-message-util "^29.2.1" + jest-util "^29.2.1" + jest-worker "^29.2.1" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" - terminal-link "^2.0.0" - v8-to-istanbul "^9.0.0" - -"@jest/schemas@^28.0.0": - version "28.0.0" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-28.0.0.tgz#55cf5fcc82440a2a39b717bb949570c501fd5410" - integrity sha512-Pap9Jvwr8KYFvDgkya/p0FCVya+jZkWt57lHpwBylfjgmwi/gtXfhyAO/Cw+jKuMafHcXY0beNf2XV2pkcu9vA== - dependencies: - "@sinclair/typebox" "^0.23.3" + v8-to-istanbul "^9.0.1" "@jest/schemas@^28.0.2": version "28.0.2" @@ -1124,85 +1329,93 @@ dependencies: "@sinclair/typebox" "^0.23.3" -"@jest/source-map@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-28.0.2.tgz#914546f4410b67b1d42c262a1da7e0406b52dc90" - integrity sha512-Y9dxC8ZpN3kImkk0LkK5XCEneYMAXlZ8m5bflmSL5vrwyeUpJfentacCUg6fOb8NOpOO7hz2+l37MV77T6BFPw== +"@jest/schemas@^29.0.0": + version "29.0.0" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.0.0.tgz#5f47f5994dd4ef067fb7b4188ceac45f77fe952a" + integrity sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA== dependencies: - "@jridgewell/trace-mapping" "^0.3.7" + "@sinclair/typebox" "^0.24.1" + +"@jest/source-map@^29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.2.0.tgz#ab3420c46d42508dcc3dc1c6deee0b613c235744" + integrity sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ== + dependencies: + "@jridgewell/trace-mapping" "^0.3.15" callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^28.1.0": - version "28.1.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.1.0.tgz#fd149dee123510dd2fcadbbf5f0020f98ad7f12c" - integrity sha512-sBBFIyoPzrZho3N+80P35A5oAkSKlGfsEFfXFWuPGBsW40UAjCkGakZhn4UQK4iQlW2vgCDMRDOob9FGKV8YoQ== +"@jest/test-result@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.2.1.tgz#f42dbf7b9ae465d0a93eee6131473b8bb3bd2edb" + integrity sha512-lS4+H+VkhbX6z64tZP7PAUwPqhwj3kbuEHcaLuaBuB+riyaX7oa1txe0tXgrFj5hRWvZKvqO7LZDlNWeJ7VTPA== dependencies: - "@jest/console" "^28.1.0" - "@jest/types" "^28.1.0" + "@jest/console" "^29.2.1" + "@jest/types" "^29.2.1" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^28.1.0": - version "28.1.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-28.1.0.tgz#ce7294bbe986415b9a30e218c7e705e6ebf2cdf2" - integrity sha512-tZCEiVWlWNTs/2iK9yi6o3AlMfbbYgV4uuZInSVdzZ7ftpHZhCMuhvk2HLYhCZzLgPFQ9MnM1YaxMnh3TILFiQ== +"@jest/test-sequencer@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.2.2.tgz#4ac7487b237e517a1f55e7866fb5553f6e0168b9" + integrity sha512-Cuc1znc1pl4v9REgmmLf0jBd3Y65UXJpioGYtMr/JNpQEIGEzkmHhy6W6DLbSsXeUA13TDzymPv0ZGZ9jH3eIw== dependencies: - "@jest/test-result" "^28.1.0" + "@jest/test-result" "^29.2.1" graceful-fs "^4.2.9" - jest-haste-map "^28.1.0" + jest-haste-map "^29.2.1" slash "^3.0.0" -"@jest/transform@^28.1.0": - version "28.1.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.1.0.tgz#224a3c9ba4cc98e2ff996c0a89a2d59db15c74ce" - integrity sha512-omy2xe5WxlAfqmsTjTPxw+iXRTRnf+NtX0ToG+4S0tABeb4KsKmPUHq5UBuwunHg3tJRwgEQhEp0M/8oiatLEA== +"@jest/transform@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.2.2.tgz#dfc03fc092b31ffea0c55917728e75bfcf8b5de6" + integrity sha512-aPe6rrletyuEIt2axxgdtxljmzH8O/nrov4byy6pDw9S8inIrTV+2PnjyP/oFHMSynzGxJ2s6OHowBNMXp/Jzg== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^28.1.0" - "@jridgewell/trace-mapping" "^0.3.7" + "@jest/types" "^29.2.1" + "@jridgewell/trace-mapping" "^0.3.15" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" + fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^28.1.0" - jest-regex-util "^28.0.2" - jest-util "^28.1.0" + jest-haste-map "^29.2.1" + jest-regex-util "^29.2.0" + jest-util "^29.2.1" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" write-file-atomic "^4.0.1" -"@jest/types@^27.2.5": - version "27.2.5" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.2.5.tgz#420765c052605e75686982d24b061b4cbba22132" - integrity sha512-nmuM4VuDtCZcY+eTpw+0nvstwReMsjPoj7ZR80/BbixulhLaiX+fbv8oeLW8WZlJMcsGQsTmMKT/iTZu1Uy/lQ== +"@jest/types@^29.0.1": + version "29.0.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.0.1.tgz#1985650acf137bdb81710ff39a4689ec071dd86a" + integrity sha512-ft01rxzVsbh9qZPJ6EFgAIj3PT9FCRfBF9Xljo2/33VDOUjLZr0ZJ2oKANqh9S/K0/GERCsHDAQlBwj7RxA+9g== dependencies: + "@jest/schemas" "^29.0.0" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" - "@types/yargs" "^16.0.0" + "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@jest/types@^28.0.0": - version "28.0.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.0.0.tgz#1818a07d26b204c1c34a5b22474d0a32f4b02a8d" - integrity sha512-4rxVTiBbSjsl8V9sXkspfxW+t2Tdcmmc3fX7AU49gVrRpjXMjEDurSx/iruXnOSor4PTL0fwO61/2+n1XQ/RgA== +"@jest/types@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.0.3.tgz#0be78fdddb1a35aeb2041074e55b860561c8ef63" + integrity sha512-coBJmOQvurXjN1Hh5PzF7cmsod0zLIOXpP8KD161mqNlroMhLcwpODiEzi7ZsRl5Z/AIuxpeNm8DCl43F4kz8A== dependencies: - "@jest/schemas" "^28.0.0" + "@jest/schemas" "^29.0.0" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@jest/types@^28.1.0": - version "28.1.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.0.tgz#508327a89976cbf9bd3e1cc74641a29fd7dfd519" - integrity sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA== +"@jest/types@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.2.1.tgz#ec9c683094d4eb754e41e2119d8bdaef01cf6da0" + integrity sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw== dependencies: - "@jest/schemas" "^28.0.2" + "@jest/schemas" "^29.0.0" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" @@ -1224,7 +1437,7 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== -"@jridgewell/trace-mapping@0.3.9", "@jridgewell/trace-mapping@^0.3.0", "@jridgewell/trace-mapping@^0.3.7": +"@jridgewell/trace-mapping@0.3.9", "@jridgewell/trace-mapping@^0.3.0": version "0.3.9" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== @@ -1232,629 +1445,646 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@lerna/add@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/add/-/add-5.0.0.tgz#0545e2eef157c142d82ba765467c27b36fe53ce8" - integrity sha512-KdIOQL+88iHU9zuAU8Be1AL4cOVmm77nlckylsNaVVTiomNipr/h7lStiBO52BoMkwKzNwOH6He5HGY0Yo7s2w== - dependencies: - "@lerna/bootstrap" "5.0.0" - "@lerna/command" "5.0.0" - "@lerna/filter-options" "5.0.0" - "@lerna/npm-conf" "5.0.0" - "@lerna/validation-error" "5.0.0" +"@jridgewell/trace-mapping@^0.3.12": + version "0.3.14" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz#b231a081d8f66796e475ad588a1ef473112701ed" + integrity sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/trace-mapping@^0.3.15": + version "0.3.15" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" + integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@lerna/add@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/add/-/add-6.0.1.tgz#6d71084fe7918c96c909bebdc5c27ed6006e09d6" + integrity sha512-cCQIlMODhi3KYyTDOp2WWL4Kj2dKK+MmCiaSf+USrbSWPVVXQGn5Eb11XOMUfYYq3Ula75sWL2urtYwuu8IbmA== + dependencies: + "@lerna/bootstrap" "6.0.1" + "@lerna/command" "6.0.1" + "@lerna/filter-options" "6.0.1" + "@lerna/npm-conf" "6.0.1" + "@lerna/validation-error" "6.0.1" dedent "^0.7.0" - npm-package-arg "^8.1.0" + npm-package-arg "8.1.1" p-map "^4.0.0" - pacote "^13.4.1" + pacote "^13.6.1" semver "^7.3.4" -"@lerna/bootstrap@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/bootstrap/-/bootstrap-5.0.0.tgz#624b67a4631c7455b98cfed4dbb2e38b27025a7a" - integrity sha512-2m1BxKbYwDABy+uE/Da3EQM61R58bI3YQ0o1rsFQq1u0ltL9CJxw1o0lMg84hwMsBb4D+kLIXLqetYlLVgbr0Q== - dependencies: - "@lerna/command" "5.0.0" - "@lerna/filter-options" "5.0.0" - "@lerna/has-npm-version" "5.0.0" - "@lerna/npm-install" "5.0.0" - "@lerna/package-graph" "5.0.0" - "@lerna/pulse-till-done" "5.0.0" - "@lerna/rimraf-dir" "5.0.0" - "@lerna/run-lifecycle" "5.0.0" - "@lerna/run-topologically" "5.0.0" - "@lerna/symlink-binary" "5.0.0" - "@lerna/symlink-dependencies" "5.0.0" - "@lerna/validation-error" "5.0.0" - "@npmcli/arborist" "5.2.0" +"@lerna/bootstrap@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/bootstrap/-/bootstrap-6.0.1.tgz#2af0b790b9ce426b78f12543159c8506d77afc28" + integrity sha512-a3DWchHFOiRmDN24VTdmTxKvAqw6Msp8pDCWXq4rgOQSFxqyYECd8BYvmy8dTW6LcC4EG0HqTGRguuEaKCasOw== + dependencies: + "@lerna/command" "6.0.1" + "@lerna/filter-options" "6.0.1" + "@lerna/has-npm-version" "6.0.1" + "@lerna/npm-install" "6.0.1" + "@lerna/package-graph" "6.0.1" + "@lerna/pulse-till-done" "6.0.1" + "@lerna/rimraf-dir" "6.0.1" + "@lerna/run-lifecycle" "6.0.1" + "@lerna/run-topologically" "6.0.1" + "@lerna/symlink-binary" "6.0.1" + "@lerna/symlink-dependencies" "6.0.1" + "@lerna/validation-error" "6.0.1" + "@npmcli/arborist" "5.3.0" dedent "^0.7.0" get-port "^5.1.1" multimatch "^5.0.0" - npm-package-arg "^8.1.0" - npmlog "^4.1.2" + npm-package-arg "8.1.1" + npmlog "^6.0.2" p-map "^4.0.0" p-map-series "^2.1.0" p-waterfall "^2.1.1" semver "^7.3.4" -"@lerna/changed@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/changed/-/changed-5.0.0.tgz#fb3cdd5f281683a461c3099cbcf0978e23b33140" - integrity sha512-A24MHipPGODmzQBH1uIMPPUUOc1Zm7Qe/eSYzm52bFHtVxWH0nIVXfunadoMX32NhzKQH3Sw8X2rWHPQSRoUvA== +"@lerna/changed@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/changed/-/changed-6.0.1.tgz#58614a0c65bfab77fefd142d5edc8282e057ea83" + integrity sha512-b0KzqpNv25ZxH9M/7jtDQaXWUBhVzBVJ8DQ4PjjeoulOCQ+mA9tNQr8UVmeU1UZiaNtNz6Hcy55vyvVvNe07VA== dependencies: - "@lerna/collect-updates" "5.0.0" - "@lerna/command" "5.0.0" - "@lerna/listable" "5.0.0" - "@lerna/output" "5.0.0" + "@lerna/collect-updates" "6.0.1" + "@lerna/command" "6.0.1" + "@lerna/listable" "6.0.1" + "@lerna/output" "6.0.1" -"@lerna/check-working-tree@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/check-working-tree/-/check-working-tree-5.0.0.tgz#e7b653b78c3bb96db7a00f6a74018e2bb88ec088" - integrity sha512-PnUMdpT2qS4o+vs+7l5fFIizstGdqSkhLG+Z9ZiY5OMtnGd+pmAFQFlbLSZSmdvQSOSobl9fhB1St8qhPD60xQ== +"@lerna/check-working-tree@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/check-working-tree/-/check-working-tree-6.0.1.tgz#ad71d53941b5c85523499b283e5f44b52eca6276" + integrity sha512-9Ti1EuE3IiJUvvAtFk+Xr9Uw6KehT78ghnI4f/hi4uew5q0Mf2+DMaBNexbhOTpRFBeIq4ucDFhiN091pNkUNw== dependencies: - "@lerna/collect-uncommitted" "5.0.0" - "@lerna/describe-ref" "5.0.0" - "@lerna/validation-error" "5.0.0" + "@lerna/collect-uncommitted" "6.0.1" + "@lerna/describe-ref" "6.0.1" + "@lerna/validation-error" "6.0.1" -"@lerna/child-process@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/child-process/-/child-process-5.0.0.tgz#1c7663d2910431f6c25543fd53998ae95b2dac19" - integrity sha512-cFVNkedrlU8XTt15EvUtQ84hqtV4oToQW/elKNv//mhCz06HY8Y+Ia6XevK2zrIhZjS6DT576F/7SmTk3vnpmg== +"@lerna/child-process@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/child-process/-/child-process-6.0.1.tgz#2141f643a4ed7d38fa9270a80403467a353a3b39" + integrity sha512-5smM8Or/RQkHysNFrUYdrCYlhpr3buNpCYU7T2DPYzOWRPm+X5rCvt/dDOcS3UgYT2jEyS86S5Y7pK2X7eXtmg== dependencies: chalk "^4.1.0" execa "^5.0.0" strong-log-transformer "^2.1.0" -"@lerna/clean@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/clean/-/clean-5.0.0.tgz#2b5cf202ab3eca18a075b292c55e6641d18b1b8f" - integrity sha512-7B+0Nx6MEPmCfnEa1JFyZwJsC7qlGrikWXyLglLb/wcbapYVsuDauOl9AT1iOFoXKw82P77HWYUKWeD9DQgw/w== - dependencies: - "@lerna/command" "5.0.0" - "@lerna/filter-options" "5.0.0" - "@lerna/prompt" "5.0.0" - "@lerna/pulse-till-done" "5.0.0" - "@lerna/rimraf-dir" "5.0.0" +"@lerna/clean@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/clean/-/clean-6.0.1.tgz#e59f94140e577cbb66f76f78794b97778f78a246" + integrity sha512-ZaWPzzYNkJM7Ib2GWPLSELVBf5nRCGOGBtR9DSLKAore0Me876JLgi4h2R+Y2PVyCvT1kmoQKAclnjxdZbCONA== + dependencies: + "@lerna/command" "6.0.1" + "@lerna/filter-options" "6.0.1" + "@lerna/prompt" "6.0.1" + "@lerna/pulse-till-done" "6.0.1" + "@lerna/rimraf-dir" "6.0.1" p-map "^4.0.0" p-map-series "^2.1.0" p-waterfall "^2.1.1" -"@lerna/cli@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/cli/-/cli-5.0.0.tgz#f440f6664aa6c22bb58e69aacfde655c831de2f9" - integrity sha512-g8Nifko8XNySOl8u2molSHVl+fk/E1e5FSn/W2ekeijmc3ezktp+xbPWofNq71N/d297+KPQpLBfwzXSo9ufIQ== +"@lerna/cli@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/cli/-/cli-6.0.1.tgz#8a92386702cff815f36104792ad5dc14f11a61a8" + integrity sha512-AuAnUXkBGdts/rmHltrkZucYy11OwYPb/4HM3zxLeq4O30w2ocZIytkOtSkuVKOMPWBZR8b37fNuZBzvxe5OmA== dependencies: - "@lerna/global-options" "5.0.0" + "@lerna/global-options" "6.0.1" dedent "^0.7.0" - npmlog "^4.1.2" + npmlog "^6.0.2" yargs "^16.2.0" -"@lerna/collect-uncommitted@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/collect-uncommitted/-/collect-uncommitted-5.0.0.tgz#2843f98995c8bcc1d783d1d9739122c79378f3c5" - integrity sha512-mga/2S9rK0TP5UCulWiCTrC/uKaiIlOro1n8R3oCw6eRw9eupCSRx5zGI7pdh8CPD82MDL7w0a6OTep3WBSBVA== +"@lerna/collect-uncommitted@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/collect-uncommitted/-/collect-uncommitted-6.0.1.tgz#b93f5acfa9c63fffe41bfaaac02a0efad9180b00" + integrity sha512-qPqwmIlSlf8XBJnqMc+6pz6qXQ0Pfjil70FB2IPvoWbfrLvMI6K3I/AXeub9X5fj5HYqNs1XtwhWHJcMFpJddw== dependencies: - "@lerna/child-process" "5.0.0" + "@lerna/child-process" "6.0.1" chalk "^4.1.0" - npmlog "^4.1.2" + npmlog "^6.0.2" -"@lerna/collect-updates@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/collect-updates/-/collect-updates-5.0.0.tgz#cce16b9e8136e1e7bc33fe0fb12b283e538fa658" - integrity sha512-X82i8SVgBXLCk8vbKWfQPRLTAXROCANL8Z/bU1l6n7yycsHKdjrrlNi1+KprFdfRsMvSm10R4qPNcl9jgsp/IA== +"@lerna/collect-updates@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/collect-updates/-/collect-updates-6.0.1.tgz#7b4be193ee51a72ccedc20acf845fe32fdee9ee2" + integrity sha512-OwRcLqD1N5znlZM/Ctf031RDkodHVO62byiD35AbHGoGM2EI2TSYyIbqnJ8QsQJMB05/KhIBndL8Mpcdle7/rg== dependencies: - "@lerna/child-process" "5.0.0" - "@lerna/describe-ref" "5.0.0" + "@lerna/child-process" "6.0.1" + "@lerna/describe-ref" "6.0.1" minimatch "^3.0.4" - npmlog "^4.1.2" + npmlog "^6.0.2" slash "^3.0.0" -"@lerna/command@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/command/-/command-5.0.0.tgz#cdc9f32a6b1c7153fe7150d642d2a420a3d0797d" - integrity sha512-j7/apU5d/nhSc1qIZgcV03KyO5jz3y7cwSum3IuK8/XF6rKwt3FVnbue1V3l9sJ6IRJjsRGKyViB1IdP5nSX4Q== - dependencies: - "@lerna/child-process" "5.0.0" - "@lerna/package-graph" "5.0.0" - "@lerna/project" "5.0.0" - "@lerna/validation-error" "5.0.0" - "@lerna/write-log-file" "5.0.0" +"@lerna/command@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/command/-/command-6.0.1.tgz#a429e724237bc3c4a735e8eaef9816f2203cb7dc" + integrity sha512-V9w8M7pMU7KztxaL0+fetTSQYTa12bhTl86ll9VjlgYZ5qUAXk9E42Y8hbVThyYtHEhkRnIMinkWsmH/9YKU/A== + dependencies: + "@lerna/child-process" "6.0.1" + "@lerna/package-graph" "6.0.1" + "@lerna/project" "6.0.1" + "@lerna/validation-error" "6.0.1" + "@lerna/write-log-file" "6.0.1" clone-deep "^4.0.1" dedent "^0.7.0" execa "^5.0.0" is-ci "^2.0.0" - npmlog "^4.1.2" + npmlog "^6.0.2" -"@lerna/conventional-commits@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/conventional-commits/-/conventional-commits-5.0.0.tgz#7f9c16fda074c9ed897cb695f5ae23678dd441eb" - integrity sha512-tUCRTAycDCtSlCEI0hublq4uKHeV0UHpwIb3Fdt6iv2AoTSPBSX/Dwu/6VqguysOSEkkR4M2JCOLvJCl4IMxwg== +"@lerna/conventional-commits@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/conventional-commits/-/conventional-commits-6.0.1.tgz#72dd55aadc7c20eca5af3d03cdcfb613964dafc4" + integrity sha512-6oIGEZKy1GpooW28C0aEDkZ/rVkqpX44knP8Jyb5//1054QogqPhGC5q6J0lZxyhun8dQkpF6XTHlIintI8xow== dependencies: - "@lerna/validation-error" "5.0.0" + "@lerna/validation-error" "6.0.1" conventional-changelog-angular "^5.0.12" - conventional-changelog-core "^4.2.2" + conventional-changelog-core "^4.2.4" conventional-recommended-bump "^6.1.0" fs-extra "^9.1.0" get-stream "^6.0.0" - lodash.template "^4.5.0" - npm-package-arg "^8.1.0" - npmlog "^4.1.2" + npm-package-arg "8.1.1" + npmlog "^6.0.2" pify "^5.0.0" semver "^7.3.4" -"@lerna/create-symlink@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/create-symlink/-/create-symlink-5.0.0.tgz#eccef7f89fdc4d7cd904694d9e2eb0b582073b5e" - integrity sha512-nHYNacrh15Y0yEofVlUVu9dhf4JjIn9hY7v7rOUXzUeQ91iXY5Q3PVHkBeRUigyT5CWP5qozZwraCMwp+lDWYg== +"@lerna/create-symlink@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/create-symlink/-/create-symlink-6.0.1.tgz#5a9f75f8e5c0d83c39d70240f51284cc5d6770ad" + integrity sha512-ZmLx9SP5De6u1xkD7Z6gMMFuyLKCb+2bodreFe7ryOVP3cOLbmNOmgMgj+gtUgIwIv7BDwX3qFWlPY6B3VW3hQ== dependencies: - cmd-shim "^4.1.0" + cmd-shim "^5.0.0" fs-extra "^9.1.0" - npmlog "^4.1.2" + npmlog "^6.0.2" -"@lerna/create@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/create/-/create-5.0.0.tgz#4aac3d1f2c1f6d7fadde49d3663b318fcdd39b06" - integrity sha512-sdFTVTLOVuhHpzIYhFAwK0Ry3p4d7uMe9ZG/Ii128/pB9kEEfCth+1WBq6mBpYZ5mOLLgxJbWalbiJFl0toQRw== +"@lerna/create@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/create/-/create-6.0.1.tgz#7905cef9196cb6a1caff5d7cd78a46fc7ea635a9" + integrity sha512-VuTdvBJDzvAaMBYoKTRMBQC+nfwnihxdA/ekUqBD+W8MMsqPLCGCneyl7JK9RaSSib/10LyRDEmfo79UAndcgQ== dependencies: - "@lerna/child-process" "5.0.0" - "@lerna/command" "5.0.0" - "@lerna/npm-conf" "5.0.0" - "@lerna/validation-error" "5.0.0" + "@lerna/child-process" "6.0.1" + "@lerna/command" "6.0.1" + "@lerna/npm-conf" "6.0.1" + "@lerna/validation-error" "6.0.1" dedent "^0.7.0" fs-extra "^9.1.0" - globby "^11.0.2" - init-package-json "^2.0.2" - npm-package-arg "^8.1.0" + init-package-json "^3.0.2" + npm-package-arg "8.1.1" p-reduce "^2.1.0" - pacote "^13.4.1" + pacote "^13.6.1" pify "^5.0.0" semver "^7.3.4" slash "^3.0.0" validate-npm-package-license "^3.0.4" - validate-npm-package-name "^3.0.0" - whatwg-url "^8.4.0" + validate-npm-package-name "^4.0.0" yargs-parser "20.2.4" -"@lerna/describe-ref@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/describe-ref/-/describe-ref-5.0.0.tgz#f0676843642e8880133783a9f059e6cb4c027fe1" - integrity sha512-iLvMHp3nl4wcMR3/lVkz0ng7pAHfLQ7yvz2HsYBq7wllCcEzpchzPgyVzyvbpJ+Ke/MKjQTsrHE/yOGOH67GVw== +"@lerna/describe-ref@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/describe-ref/-/describe-ref-6.0.1.tgz#e9277bcc3c1c839fc7305b808f9dd02a5404aaf8" + integrity sha512-PcTVt4qgAXUPBtWHyqixtwE/eXe56+DFRnfTcJlb4x5F7LJ+7VNpdR/81qfP89Xj10U5IjELXbXmriz1KMwhfw== dependencies: - "@lerna/child-process" "5.0.0" - npmlog "^4.1.2" + "@lerna/child-process" "6.0.1" + npmlog "^6.0.2" -"@lerna/diff@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/diff/-/diff-5.0.0.tgz#844333f5478fc4993c4389fee1e0cd8eff9114fe" - integrity sha512-S4XJ6i9oP77cSmJ3oRUJGMgrI+jOTmkYWur2nqgSdyJBE1J2eClgTJknb3WAHg2cHALT18WzFqNghFOGM+9dRA== +"@lerna/diff@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/diff/-/diff-6.0.1.tgz#e8c5d541d74a9aa13a4ac6745f2f0d9531207fd1" + integrity sha512-/pGXH9txA8wX1YJ/KOBXzx0Z2opADBW4HKPCxxHAu+6dTGMbKABDljVT5Np3UpfIrAGDE5fTuf0aGL4vkKUWrg== dependencies: - "@lerna/child-process" "5.0.0" - "@lerna/command" "5.0.0" - "@lerna/validation-error" "5.0.0" - npmlog "^4.1.2" + "@lerna/child-process" "6.0.1" + "@lerna/command" "6.0.1" + "@lerna/validation-error" "6.0.1" + npmlog "^6.0.2" -"@lerna/exec@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/exec/-/exec-5.0.0.tgz#a59dd094e456ea46cfa8f713da0ea3334a7ec9ac" - integrity sha512-g5i+2RclCGWLsl88m11j99YM2Gqnwa2lxZ5tDeqqWZFno6Dlvop17Yl6/MFH42EgM2DQHUUCammvcLIAJ2XwEA== - dependencies: - "@lerna/child-process" "5.0.0" - "@lerna/command" "5.0.0" - "@lerna/filter-options" "5.0.0" - "@lerna/profiler" "5.0.0" - "@lerna/run-topologically" "5.0.0" - "@lerna/validation-error" "5.0.0" +"@lerna/exec@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/exec/-/exec-6.0.1.tgz#d2d0785c46b7ceb3758fe75bb6d95d177a0a0ec3" + integrity sha512-x9puoI3091Alp45w7XOGRxThOw45p+tWGPR5TBCEQiiH7f8eF9Dc4WX5HXf31ooK6NmD40eKPYhBgy8oQnJY9w== + dependencies: + "@lerna/child-process" "6.0.1" + "@lerna/command" "6.0.1" + "@lerna/filter-options" "6.0.1" + "@lerna/profiler" "6.0.1" + "@lerna/run-topologically" "6.0.1" + "@lerna/validation-error" "6.0.1" p-map "^4.0.0" -"@lerna/filter-options@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/filter-options/-/filter-options-5.0.0.tgz#1d2606e1d2ed106689b43cc5d41a77b239afb837" - integrity sha512-un73aYkXlzKlnDPx2AlqNW+ArCZ20XaX+Y6C0F+av9VZriiBsCgZTnflhih9fiSMnXjN5r9CA8YdWvZqa3oAcQ== +"@lerna/filter-options@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/filter-options/-/filter-options-6.0.1.tgz#4dbd29a31fb2ac228f72c51b223f17623d1f2c71" + integrity sha512-6KxbBI/2skRl/yQdjugQ1PWrSLq19650z8mltF0HT7B686fj7LlDNtESFOtY6iZ8IPqKBkIavOP0DPmJZd7Szw== dependencies: - "@lerna/collect-updates" "5.0.0" - "@lerna/filter-packages" "5.0.0" + "@lerna/collect-updates" "6.0.1" + "@lerna/filter-packages" "6.0.1" dedent "^0.7.0" - npmlog "^4.1.2" + npmlog "^6.0.2" -"@lerna/filter-packages@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/filter-packages/-/filter-packages-5.0.0.tgz#9aae543ab5e45a1b0c3f7ad33e0686ceb8d92c88" - integrity sha512-+EIjVVaMPDZ05F/gZa+kcXjBOLXqEamcEIDr+2ZXRgJmnrLx9BBY1B7sBEFHg7JXbeOKS+fKtMGVveV0SzgH3Q== +"@lerna/filter-packages@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/filter-packages/-/filter-packages-6.0.1.tgz#07f10dc78e852bbba44843b785ebc16f386cedaa" + integrity sha512-2bKhexeF07Urs2b0xYX2OgYUN0EzmS2FSgvw0KT6He48PGOkqgJjU7PIiWdPyOvZdukwm07qXTmJZulAHftceA== dependencies: - "@lerna/validation-error" "5.0.0" + "@lerna/validation-error" "6.0.1" multimatch "^5.0.0" - npmlog "^4.1.2" + npmlog "^6.0.2" -"@lerna/get-npm-exec-opts@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-5.0.0.tgz#25c1cd7d2b6c1fe903cd144d9f6e2d5cae47429b" - integrity sha512-ZOg3kc5FXYA1kVFD2hfJOl64hNASWD6panwD0HlyzXgfKKTDRm/P/qtAqS8WGCzQWgEdx4wvsDe/58Lzzh6QzQ== +"@lerna/get-npm-exec-opts@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-6.0.1.tgz#c766588d030c0ec7170650808957998e8ad70831" + integrity sha512-y2T+ODP8HNzHQn1ldrrPW+n823fGsN2sY0r78yURFxYZnxA9ZINyQ6IAejo5LqHrYN8Qhr++0RHo2tUisIHdKg== dependencies: - npmlog "^4.1.2" + npmlog "^6.0.2" -"@lerna/get-packed@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/get-packed/-/get-packed-5.0.0.tgz#4de7f66184232c805dfca07b9a8c577f6ef02351" - integrity sha512-fks7Tg7DvcCZxRWPS3JAWVuLnwjPC/hLlNsdYmK9nN3+RtPhmYQgBjLSONcENw1E46t4Aph72lA9nLcYBLksqw== +"@lerna/get-packed@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/get-packed/-/get-packed-6.0.1.tgz#d31c10ec10658eeee4306886c100cd9600d6dd78" + integrity sha512-Z/5J5vbjdeGqZcPvUSiszvyizHdsTRiFlpPORWK3YfIsHllUB7QZnVHLg92UnSJrpPE0O1gH+k6ByhhR+3qEdA== dependencies: fs-extra "^9.1.0" - ssri "^8.0.1" + ssri "^9.0.1" tar "^6.1.0" -"@lerna/github-client@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/github-client/-/github-client-5.0.0.tgz#65c984a393b1cbe35c2a707059c645bb9a03395e" - integrity sha512-NoEyRkQ8XgBnrjRfC9ph1npfg1/4OdYG+r8lG/1WkJbdt1Wlym4VNZU2BYPMWwSQYMJuppoEr0LL2uuVcS4ZUw== +"@lerna/github-client@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/github-client/-/github-client-6.0.1.tgz#081d13c2debf312d0e5a2bb2fad6e0c69e1501d6" + integrity sha512-UA7V3XUunJnrfCL2eyW9QsCjBWShv4dCRGUITXmpQJrNIMZIqVbBJzqN9LVHDNc/hEVZGt0EjtHWdpFCgD4ypg== dependencies: - "@lerna/child-process" "5.0.0" + "@lerna/child-process" "6.0.1" "@octokit/plugin-enterprise-rest" "^6.0.1" - "@octokit/rest" "^18.1.0" - git-url-parse "^11.4.4" - npmlog "^4.1.2" + "@octokit/rest" "^19.0.3" + git-url-parse "^13.1.0" + npmlog "^6.0.2" -"@lerna/gitlab-client@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/gitlab-client/-/gitlab-client-5.0.0.tgz#c4e3d16566a3b07908ee604ce681a09c418481de" - integrity sha512-WREAT7qzta9hxNxktTX0x1/sEMpBP+4Gc00QSJYXt+ZzxY0t5RUx/ZK5pQl+IDhtkajrvXT6fSfZjMxxyE8hhQ== +"@lerna/gitlab-client@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/gitlab-client/-/gitlab-client-6.0.1.tgz#1863b621a1530bc482113cac8791247664dedb2a" + integrity sha512-yyaBKf/OqBAau6xDk1tnMjfkxRpC/j3OwUyXFFGfJFSulWRHpbHoFSfvIgOn/hkjAr9FfHC7TXItRg8qdm38Wg== dependencies: node-fetch "^2.6.1" - npmlog "^4.1.2" - whatwg-url "^8.4.0" + npmlog "^6.0.2" -"@lerna/global-options@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/global-options/-/global-options-5.0.0.tgz#02505c9e468188e3a254c262d58739092de93d8d" - integrity sha512-PZYy/3mTZwtA9lNmHHRCc/Ty1W20qGJ/BdDIo4bw/Bk0AOcoBCLT9b3Mjijkl4AbC9+eSGk3flUYapCGVuS32Q== +"@lerna/global-options@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/global-options/-/global-options-6.0.1.tgz#83061d85759c105120ff55716959642ba6eb0eea" + integrity sha512-vzjDI3Bg2NR+cSgfjHWax2bF1HmQYjJF2tmZlT/hJbwhaVMIEnhzHnJ9Yycmm98cdV77xEMlbmk5YD7xgFdG2w== -"@lerna/has-npm-version@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/has-npm-version/-/has-npm-version-5.0.0.tgz#ed62c6ef857f068209663aae9f156f06a93dc1bd" - integrity sha512-zJPgcml86nhJFJTpT+kjkcafuCFvK7PSq3oDC2KJxwB1bhlYwy+SKtAEypHSsHQ2DwP0YgPITcy1pvtHkie1SA== +"@lerna/has-npm-version@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/has-npm-version/-/has-npm-version-6.0.1.tgz#ed27a27cad2090069feb3108b105ceec765bec5e" + integrity sha512-ol1onJaauMXK0cQsfRX2rvbhNRyNBY9Ne5trrRjfMROa7Tnr8c3I4+aKQs7m4z1JdWaGBV4xBH+NSZ/esPuaWA== dependencies: - "@lerna/child-process" "5.0.0" + "@lerna/child-process" "6.0.1" semver "^7.3.4" -"@lerna/import@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/import/-/import-5.0.0.tgz#11cd83ef0fe854c512146fd4165f33519364b97a" - integrity sha512-cD+Is7eV/I+ZU0Wlg+yAgKaZbOvfzA7kBj2Qu1HtxeLhc7joTR8PFW1gNjEsvrWOTiaHAtObbo1A+MKYQ/T12g== - dependencies: - "@lerna/child-process" "5.0.0" - "@lerna/command" "5.0.0" - "@lerna/prompt" "5.0.0" - "@lerna/pulse-till-done" "5.0.0" - "@lerna/validation-error" "5.0.0" +"@lerna/import@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/import/-/import-6.0.1.tgz#9e869d6bbe82446ee3620c4310ca6232881b7952" + integrity sha512-GrTtIWUCnDf+FqRjenV2OKWU+khoZj0h/etgfXus45PBO2+V/SkkzIY4xof23XphiydUYrSrYtwx2i1aEmk3Wg== + dependencies: + "@lerna/child-process" "6.0.1" + "@lerna/command" "6.0.1" + "@lerna/prompt" "6.0.1" + "@lerna/pulse-till-done" "6.0.1" + "@lerna/validation-error" "6.0.1" dedent "^0.7.0" fs-extra "^9.1.0" p-map-series "^2.1.0" -"@lerna/info@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/info/-/info-5.0.0.tgz#649566474d0d133c22bb821f88e7d062a2beace5" - integrity sha512-k9TMK81apTjxxpnjfFOABKXndTtHBPgB8UO+I6zKhsfRqVb9FCz2MHOx8cQiSyolvNyGSQdSylSo4p7EBBomQQ== +"@lerna/info@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/info/-/info-6.0.1.tgz#68395061ffbd81c7716d60b99b5220c90ade2862" + integrity sha512-QEW7JtJjoR1etUrcft7BnrwPZFHE2JPmt2DoSvSmLISLyy+HlmdXHK+p6Ej3g1ql8gS0GWCacgwmlRZ27CDp5A== dependencies: - "@lerna/command" "5.0.0" - "@lerna/output" "5.0.0" + "@lerna/command" "6.0.1" + "@lerna/output" "6.0.1" envinfo "^7.7.4" -"@lerna/init@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/init/-/init-5.0.0.tgz#e35d95a4882aafb4600abf9b32fd1a0056e73ed9" - integrity sha512-2n68x7AIqVa+Vev9xF3NV9ba0C599KYf7JsIrQ5ESv4593ftInJpwgMwjroLT3X/Chi4BK7y2/xGmrfFVwgILg== +"@lerna/init@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/init/-/init-6.0.1.tgz#babee56707bd19b3c1b82967e3360d1083c04cf9" + integrity sha512-zOMrSij09LSAVUUujpD3y32wkHp8dQ+/dVCp4USlfcGfI+kIPc5prkYCGDO8dEcqkze0pMfDMF23pVNvAf9g7w== dependencies: - "@lerna/child-process" "5.0.0" - "@lerna/command" "5.0.0" + "@lerna/child-process" "6.0.1" + "@lerna/command" "6.0.1" + "@lerna/project" "6.0.1" fs-extra "^9.1.0" p-map "^4.0.0" write-json-file "^4.3.0" -"@lerna/link@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/link/-/link-5.0.0.tgz#dbd5aefa0bb22f2fd9d61ee82009fb34eb946298" - integrity sha512-00YxQ06TVhQJthOjcuxCCJRjkAM+qM/8Lv0ckdCzBBCSr4RdAGBp6QcAX/gjLNasgmNpyiza3ADet7mCH7uodw== +"@lerna/link@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/link/-/link-6.0.1.tgz#a94cf3aead92538835d955c6de281c65097f3471" + integrity sha512-VXZ77AWsJCycTu219ZLUHyRzMd5hgivLk5ZyBD1s/emArFvdEmGLscj2RXn3P3w/951b+DNG2Zbi6nek0iJ6DA== dependencies: - "@lerna/command" "5.0.0" - "@lerna/package-graph" "5.0.0" - "@lerna/symlink-dependencies" "5.0.0" + "@lerna/command" "6.0.1" + "@lerna/package-graph" "6.0.1" + "@lerna/symlink-dependencies" "6.0.1" + "@lerna/validation-error" "6.0.1" p-map "^4.0.0" slash "^3.0.0" -"@lerna/list@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/list/-/list-5.0.0.tgz#0a979dc9c24ca176c7b4b58de80cab2dac2dcb8a" - integrity sha512-+B0yFil2AFdiYO8hyU1bFbKXGBAUUQQ43/fp2XS2jBFCipLme4eTILL5gMKOhr2Xg9AsfYPXRMRer5VW7qTeeQ== +"@lerna/list@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/list/-/list-6.0.1.tgz#ab6d056c5d7b99ca0ed6a17d48bf907afd9d970a" + integrity sha512-M9Vneh866E1nlpU88rcUMLR+XTVi3VY0fLPr1OqXdYF+eTe6RkEHUQj8HIk94Rnt02HsWc4+FO31T4i5sf+PaA== dependencies: - "@lerna/command" "5.0.0" - "@lerna/filter-options" "5.0.0" - "@lerna/listable" "5.0.0" - "@lerna/output" "5.0.0" + "@lerna/command" "6.0.1" + "@lerna/filter-options" "6.0.1" + "@lerna/listable" "6.0.1" + "@lerna/output" "6.0.1" -"@lerna/listable@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/listable/-/listable-5.0.0.tgz#c1753d9375932b15c4c84cc767fffb3447b8f213" - integrity sha512-Rd5sE7KTbqA8u048qThH5IyBuJIwMcUnEObjFyJyKpc1SEWSumo4yAYmcEeN/9z62tcdud5wHYPSbVgfXJq37g== +"@lerna/listable@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/listable/-/listable-6.0.1.tgz#444e81f6642c198d116e9e6b86d96d10ddf2e147" + integrity sha512-+xEByVX0sbnBW3EBu3XCg71Bz9/dahncmCjNK0kVnZLnQZzfULCndaQeSt+f9KO0VCs8h1tnXdo2uLPm4lThnw== dependencies: - "@lerna/query-graph" "5.0.0" + "@lerna/query-graph" "6.0.1" chalk "^4.1.0" - columnify "^1.5.4" + columnify "^1.6.0" -"@lerna/log-packed@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/log-packed/-/log-packed-5.0.0.tgz#afa35bb6a5736038d7dde039e09828ac1c4945a2" - integrity sha512-0TxKX+XnlEYj0du9U2kg3HEyIb/0QsM0Slt8utuCxALUnXRHTEKohjqVKsBdvh1QmJpnUbL5I+vfoYqno4Y42w== +"@lerna/log-packed@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/log-packed/-/log-packed-6.0.1.tgz#20fe38b5f18e65392b42bf84cfdda0afc0b62330" + integrity sha512-HTJdZzfBbb5jyk/QU2O6o+yaWRwLoaPruhK+Q3ESTzQ2mlNCr0CI4UKWDcWURWx0EsVsYqsoUHuPZInpIHqCnA== dependencies: byte-size "^7.0.0" - columnify "^1.5.4" + columnify "^1.6.0" has-unicode "^2.0.1" - npmlog "^4.1.2" + npmlog "^6.0.2" -"@lerna/npm-conf@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/npm-conf/-/npm-conf-5.0.0.tgz#1364270d231d0df5ac079a9a9733ba0dd7f8c2f9" - integrity sha512-KSftxtMNVhLol1JNwFFNgh5jiCG010pewM+uKeSrUe0BCB3lnidiEDzu2CCn8JYYfIXqAiou/pScUiOxVLpcAA== +"@lerna/npm-conf@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/npm-conf/-/npm-conf-6.0.1.tgz#fa242a36ef687c7b5207a9d9a85b9e7a4f38bdc5" + integrity sha512-VjxODCnl6QJGoQ8z8AWEID1GO9CtCr2yRyn6NoRdBOTYmzI5KhBBM+nWmyMSOUe0EZI+K5j04/GRzKHg2KXTAQ== dependencies: config-chain "^1.1.12" pify "^5.0.0" -"@lerna/npm-dist-tag@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/npm-dist-tag/-/npm-dist-tag-5.0.0.tgz#becd7fb0bd963357818c8d4fae955cc9f8885cba" - integrity sha512-ccUFhp9Wu/FHW5/5fL+vLiSTcUZXtKQ7c0RMXtNRzIdTXBxPBkVi1k5QAnBAAffsz6Owc/K++cb+/zQ/asrG3g== +"@lerna/npm-dist-tag@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/npm-dist-tag/-/npm-dist-tag-6.0.1.tgz#4718bdedd82f375ba619319070b694f1113e627b" + integrity sha512-jJKDgnhj6xGqSWGcbwdcbPtoo2m4mHRwqu8iln9e3TMOEyUO9aA4uvd0/18tEAsboOMiLUhhcQ8709iKv21ZEA== dependencies: - "@lerna/otplease" "5.0.0" - npm-package-arg "^8.1.0" - npm-registry-fetch "^9.0.0" - npmlog "^4.1.2" + "@lerna/otplease" "6.0.1" + npm-package-arg "8.1.1" + npm-registry-fetch "^13.3.0" + npmlog "^6.0.2" -"@lerna/npm-install@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/npm-install/-/npm-install-5.0.0.tgz#0ee1750bb26eae3c2b4d742d5c1f055e46d534df" - integrity sha512-72Jf05JCIdeSBWXAiNjd/y2AQH4Ojgas55ojV2sAcEYz2wgyR7wSpiI6fHBRlRP+3XPjV9MXKxI3ZwOnznQxqQ== +"@lerna/npm-install@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/npm-install/-/npm-install-6.0.1.tgz#5d6f0c62b34f2bfeb8f20b81b08f01ca0d3ed60b" + integrity sha512-saDJSyhhl/wxgZSzRx2/pr0wsMR+hZpdhLGd1lZgo5XzLq3ogK+BxPFz3AK3xhRnNaMq96gDQ3xmeetoV53lwQ== dependencies: - "@lerna/child-process" "5.0.0" - "@lerna/get-npm-exec-opts" "5.0.0" + "@lerna/child-process" "6.0.1" + "@lerna/get-npm-exec-opts" "6.0.1" fs-extra "^9.1.0" - npm-package-arg "^8.1.0" - npmlog "^4.1.2" + npm-package-arg "8.1.1" + npmlog "^6.0.2" signal-exit "^3.0.3" write-pkg "^4.0.0" -"@lerna/npm-publish@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/npm-publish/-/npm-publish-5.0.0.tgz#a1a06e47e45e56999c85086a40f9b77f801b5a00" - integrity sha512-jnapZ2jRajSzshSfd1Y3rHH5R7QC+JJlYST04FBebIH3VePwDT7uAglDCI4um2THvxkW4420EzE4BUMUwKlnXA== +"@lerna/npm-publish@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/npm-publish/-/npm-publish-6.0.1.tgz#ffbca4be5b971df978a60917460ee8f28b1c62b7" + integrity sha512-hgzF9fOfp010z7PJtqNLxNXiHr6u4UDVwiX8g22rhJKBh9Ekrq7N9NS3mF0l+RcleRU/jJKYtZ0Ci3fICaaRUg== dependencies: - "@lerna/otplease" "5.0.0" - "@lerna/run-lifecycle" "5.0.0" + "@lerna/otplease" "6.0.1" + "@lerna/run-lifecycle" "6.0.1" fs-extra "^9.1.0" - libnpmpublish "^4.0.0" - npm-package-arg "^8.1.0" - npmlog "^4.1.2" + libnpmpublish "^6.0.4" + npm-package-arg "8.1.1" + npmlog "^6.0.2" pify "^5.0.0" - read-package-json "^3.0.0" + read-package-json "^5.0.1" -"@lerna/npm-run-script@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/npm-run-script/-/npm-run-script-5.0.0.tgz#114374b89f228c9719bbfacf9f08d6aac2739fb2" - integrity sha512-qgGf0Wc/E2YxPwIiF8kC/OB9ffPf0/HVtPVkqrblVuNE9XVP80WilOH966PIDiXzwXaCo/cTswFoBeseccYRGw== +"@lerna/npm-run-script@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/npm-run-script/-/npm-run-script-6.0.1.tgz#3a255aa6f37a5e2369a37a8ddcb2709f84019ed1" + integrity sha512-K+D4LEoVRuBoKRImprkVRHIORu0xouX+c6yI1B93KWHKJ60H8qCeB0gQkA30pFALx3qG07bXVnFmfK9SGQXD3Q== dependencies: - "@lerna/child-process" "5.0.0" - "@lerna/get-npm-exec-opts" "5.0.0" - npmlog "^4.1.2" + "@lerna/child-process" "6.0.1" + "@lerna/get-npm-exec-opts" "6.0.1" + npmlog "^6.0.2" -"@lerna/otplease@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/otplease/-/otplease-5.0.0.tgz#5b0419f64908d7ad840c2735e0284d67cd37095b" - integrity sha512-QLLkEy1DPN1XFRAAZDHxAD26MHFQDHfzB6KKSzRYxbHc6lH/YbDaMH1RloSWIm7Hwkxl/3NgpokgN4Lj5XFuzg== +"@lerna/otplease@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/otplease/-/otplease-6.0.1.tgz#da5467c603565940c1f91e65d077abf25d96df7f" + integrity sha512-RrP8GtfE9yz37GuuCFqddR3mVIQc1ulUpAaaDNK4AOTb7gM0aCsTN7V2gCGBk1zdIsBuvNvNqt5jpWm4U6/EAA== dependencies: - "@lerna/prompt" "5.0.0" + "@lerna/prompt" "6.0.1" -"@lerna/output@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/output/-/output-5.0.0.tgz#f3712f0cad3e9ef73c803fe368f6a9ac20403868" - integrity sha512-/7sUJQWPcvnLudjVIdN7t9MlfBLuP4JCDAWgQMqZe+wpQRuKNyKQ5dLBH5NHU/ElJCjAwMPfWuk3mh3GuvuiGA== +"@lerna/output@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/output/-/output-6.0.1.tgz#5e301ad0bed607ee139cf207fd75ed1e5fac7908" + integrity sha512-4jZ3fgaCbnsTZ353/lXE/3w20Cge6G3iUoESVip+JE2yhZ8rWgPISG8RFR0YGEtSgq2yC9AgGnGlvmOnAc4SAQ== dependencies: - npmlog "^4.1.2" + npmlog "^6.0.2" -"@lerna/pack-directory@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/pack-directory/-/pack-directory-5.0.0.tgz#f277418545786ca68ca15647bab52ad29bd57f59" - integrity sha512-E1SNDS7xSWhJrTSmRzJK7DibneljrymviKcsZW3mRl4TmF4CpYJmNXCMlhEtKEy6ghnGQvnl3/4+eslHDJ5J/w== - dependencies: - "@lerna/get-packed" "5.0.0" - "@lerna/package" "5.0.0" - "@lerna/run-lifecycle" "5.0.0" - "@lerna/temp-write" "5.0.0" - npm-packlist "^2.1.4" - npmlog "^4.1.2" +"@lerna/pack-directory@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/pack-directory/-/pack-directory-6.0.1.tgz#4a0bf61b7cb1b1b3f1fb95afec987a7c63ff9f95" + integrity sha512-vNgS5Rs7s6khOYuHE5nTds0VDfHBH8YNGvV1s0yGAg/Zkivi7bOTs8jDQFiYhQX3HOTC1/85BLhGQ3zcDHlrew== + dependencies: + "@lerna/get-packed" "6.0.1" + "@lerna/package" "6.0.1" + "@lerna/run-lifecycle" "6.0.1" + "@lerna/temp-write" "6.0.1" + npm-packlist "^5.1.1" + npmlog "^6.0.2" tar "^6.1.0" -"@lerna/package-graph@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/package-graph/-/package-graph-5.0.0.tgz#53e88ef46359ef7a2f6e3b7c5bab82302a10653f" - integrity sha512-Z3QeUQVjux0Blo64rA3/NivoLDlsQBjsZRIgGLbcQh7l7pJrqLK1WyNCBbPJ0KQNljQqUXthCKzdefnEWe37Ew== +"@lerna/package-graph@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/package-graph/-/package-graph-6.0.1.tgz#db72ab9ed45933d1518de7f7389a6c79e6059336" + integrity sha512-OMppRWpfSaI6HO/Tc5FVpNefgOsCc3/DzaMLme6QTTpbEwD3EhvQ3Xx0MgsGMPdmZhWp/WOoAJsVRnLa+l03gg== dependencies: - "@lerna/prerelease-id-from-version" "5.0.0" - "@lerna/validation-error" "5.0.0" - npm-package-arg "^8.1.0" - npmlog "^4.1.2" + "@lerna/prerelease-id-from-version" "6.0.1" + "@lerna/validation-error" "6.0.1" + npm-package-arg "8.1.1" + npmlog "^6.0.2" semver "^7.3.4" -"@lerna/package@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/package/-/package-5.0.0.tgz#4beeb3a1e8eed6e7ae9cebca283c7684278cdd28" - integrity sha512-/JiUU88bhbYEUTzPqoGLGwrrdWWTIVMlBb1OPxCGNGDEqYYNySX+OTTSs3zGMcmJnRNI0UyQALiEd0sh3JFN5w== +"@lerna/package@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/package/-/package-6.0.1.tgz#cb950e574b1ea3ef5cd8cf62b3c4308f6c869122" + integrity sha512-vCwyiLVJ4K3SR6KZleglq1dUXIiYGmk3b+NrFWP/Z3dhVE0C+RqgxSsAS4aaUNMSO2KSI0dBdce7BT/D+FdpIQ== dependencies: load-json-file "^6.2.0" - npm-package-arg "^8.1.0" + npm-package-arg "8.1.1" write-pkg "^4.0.0" -"@lerna/prerelease-id-from-version@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-5.0.0.tgz#3edb90ba9ceace97708d03ff9f650d177f973184" - integrity sha512-bUZwyx6evRn2RxogOQXaiYxRK1U/1Mh/KLO4n49wUhqb8S8Vb9aG3+7lLOgg4ZugHpj9KAlD3YGEKvwYQiWzhg== +"@lerna/prerelease-id-from-version@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-6.0.1.tgz#a47980aa6c78deaa36430d03b6300bc889960b50" + integrity sha512-aZBs/FinztKjNXlk0cW99FpABynZzZwlmJuW4h9nMrQPgWoaDAERfImbefIH/lcpxdRuuGtClyZUFBOSq8ppfg== dependencies: semver "^7.3.4" -"@lerna/profiler@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/profiler/-/profiler-5.0.0.tgz#e1b74d17dbd6172b5ce9c80426b336bf6ab2e8e9" - integrity sha512-hFX+ZtoH7BdDoGI+bqOYaSptJTFI58wNK9qq/pHwL5ksV7vOhxP2cQAuo1SjgBKHGl0Ex/9ZT080YVV4jP1ehw== +"@lerna/profiler@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/profiler/-/profiler-6.0.1.tgz#2b7a043e6999823ad97a7ddaea0ed7f338032f92" + integrity sha512-vZrgF5pDhYWY/Gx7MjtyOgTVMA6swDV2+xPZwkvRD1Z0XpWEIn5d79zRN/1SBpdMNozC7Lj++1oEbCGNWhy/ow== dependencies: fs-extra "^9.1.0" - npmlog "^4.1.2" + npmlog "^6.0.2" upath "^2.0.1" -"@lerna/project@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/project/-/project-5.0.0.tgz#31672891236696b2a70226388de0300c6086d75f" - integrity sha512-+izHk7D/Di2b0s69AzKzAa/qBz32H9s67oN9aKntrjNylpY7iN5opU157l60Kh4TprYHU5bLisqzFLZsHHADGw== +"@lerna/project@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/project/-/project-6.0.1.tgz#0d4a6dbca1943478d554d4a3a610968caf9b303a" + integrity sha512-/n2QuAEgImbwUqrJND15FxYu29p/mLTUpL/8cSg6IUlOQRFyXteESRyl8A2Ex7Wj00FMbtB13vgbmTdkTgKL0A== dependencies: - "@lerna/package" "5.0.0" - "@lerna/validation-error" "5.0.0" + "@lerna/package" "6.0.1" + "@lerna/validation-error" "6.0.1" cosmiconfig "^7.0.0" dedent "^0.7.0" dot-prop "^6.0.1" glob-parent "^5.1.1" globby "^11.0.2" + js-yaml "^4.1.0" load-json-file "^6.2.0" - npmlog "^4.1.2" + npmlog "^6.0.2" p-map "^4.0.0" resolve-from "^5.0.0" write-json-file "^4.3.0" -"@lerna/prompt@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/prompt/-/prompt-5.0.0.tgz#31d3d82ecd17e863f8b7cc7944accff4f3de3395" - integrity sha512-cq2k04kOPY1yuJNHJn4qfBDDrCi9PF4Q228JICa6bxaONRf/C/TRsEQXHVIdlax8B3l53LnlGv5GECwRuvkQbA== +"@lerna/prompt@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/prompt/-/prompt-6.0.1.tgz#2a744b168ce4a29b7c66d500258a3f65b3f028e2" + integrity sha512-faR7oVdHBO3QTJ6o9kUEDPpyjCftd/CCa1rAC6q8f3vlLfCPrTym0qT+DcOBFGpDQh4m2dmGfJZgpXIVi6bMbg== dependencies: - inquirer "^7.3.3" - npmlog "^4.1.2" + inquirer "^8.2.4" + npmlog "^6.0.2" -"@lerna/publish@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/publish/-/publish-5.0.0.tgz#27c4c469e6abd5b52e977568d328632929e859b1" - integrity sha512-QEWFtN8fW1M+YXEQOWb2XBBCT137CrwHYK29ojMXW9HShvSZezf8Q/niH91nZ4kIhWdpOGz4w3rKopsumAM5SA== - dependencies: - "@lerna/check-working-tree" "5.0.0" - "@lerna/child-process" "5.0.0" - "@lerna/collect-updates" "5.0.0" - "@lerna/command" "5.0.0" - "@lerna/describe-ref" "5.0.0" - "@lerna/log-packed" "5.0.0" - "@lerna/npm-conf" "5.0.0" - "@lerna/npm-dist-tag" "5.0.0" - "@lerna/npm-publish" "5.0.0" - "@lerna/otplease" "5.0.0" - "@lerna/output" "5.0.0" - "@lerna/pack-directory" "5.0.0" - "@lerna/prerelease-id-from-version" "5.0.0" - "@lerna/prompt" "5.0.0" - "@lerna/pulse-till-done" "5.0.0" - "@lerna/run-lifecycle" "5.0.0" - "@lerna/run-topologically" "5.0.0" - "@lerna/validation-error" "5.0.0" - "@lerna/version" "5.0.0" +"@lerna/publish@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/publish/-/publish-6.0.1.tgz#9448a35a87e2c986c8919114698f3a314a9a2574" + integrity sha512-xIleRwCuPHtShNSPc6RDH33Z+EO1E4O0LOhPq5qTwanNPYh5eL6bDHBsox44BbMD9dhhI4PUrqIGTu3AoKdDxg== + dependencies: + "@lerna/check-working-tree" "6.0.1" + "@lerna/child-process" "6.0.1" + "@lerna/collect-updates" "6.0.1" + "@lerna/command" "6.0.1" + "@lerna/describe-ref" "6.0.1" + "@lerna/log-packed" "6.0.1" + "@lerna/npm-conf" "6.0.1" + "@lerna/npm-dist-tag" "6.0.1" + "@lerna/npm-publish" "6.0.1" + "@lerna/otplease" "6.0.1" + "@lerna/output" "6.0.1" + "@lerna/pack-directory" "6.0.1" + "@lerna/prerelease-id-from-version" "6.0.1" + "@lerna/prompt" "6.0.1" + "@lerna/pulse-till-done" "6.0.1" + "@lerna/run-lifecycle" "6.0.1" + "@lerna/run-topologically" "6.0.1" + "@lerna/validation-error" "6.0.1" + "@lerna/version" "6.0.1" fs-extra "^9.1.0" - libnpmaccess "^4.0.1" - npm-package-arg "^8.1.0" - npm-registry-fetch "^9.0.0" - npmlog "^4.1.2" + libnpmaccess "^6.0.3" + npm-package-arg "8.1.1" + npm-registry-fetch "^13.3.0" + npmlog "^6.0.2" p-map "^4.0.0" p-pipe "^3.1.0" - pacote "^13.4.1" + pacote "^13.6.1" semver "^7.3.4" -"@lerna/pulse-till-done@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/pulse-till-done/-/pulse-till-done-5.0.0.tgz#df3c32c2d7457362956d997da366f5c060953eef" - integrity sha512-qFeVybGIZbQSWKasWIzZmHsvCQMC/AwTz5B44a0zTt5eSNQuI65HRpKKUgmFFu/Jzd7u+yp7eP+NQ53gjOcQlQ== +"@lerna/pulse-till-done@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/pulse-till-done/-/pulse-till-done-6.0.1.tgz#d23985aea1ba25bb33cf74b39f36f2b7a5d21791" + integrity sha512-DK5Ylh/O7Vzn9ObEggvoHdLxc1hiXsDZ4fUvSmi50kc5QrMrk+xo6OyPgIaDBhYxj6lm3TQ1KkvWnRgiEynKAg== dependencies: - npmlog "^4.1.2" + npmlog "^6.0.2" -"@lerna/query-graph@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/query-graph/-/query-graph-5.0.0.tgz#76c45f648915ef5c884c32c3d35daa3ebb53440b" - integrity sha512-C/HXssBI8DVsZ/7IDW6JG9xhoHtWywi3L5oZB9q84MBYpQ9otUv6zbB+K4JCj7w9WHcuFWe2T/mc9wsaFuvB5g== +"@lerna/query-graph@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/query-graph/-/query-graph-6.0.1.tgz#f72b55f0ee4662d06167e639e975019e5c004c59" + integrity sha512-X8Z63Ax5a9nXgNBG+IAXEdCL4MG88akr7L4mBvKiTPrK5VgP46YzuZSaSoPI8bU67MlWBkSYQWAJJ5t0HEtKTw== dependencies: - "@lerna/package-graph" "5.0.0" + "@lerna/package-graph" "6.0.1" -"@lerna/resolve-symlink@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/resolve-symlink/-/resolve-symlink-5.0.0.tgz#edff89908e90a390791ab762305d34aa95e7bdbe" - integrity sha512-O1EMQh3O3nKjLyI2guCCaxmi9xzZXpiMZhrz2ki5ENEDB2N1+f7cZ2THT0lEOIkLRuADI6hrzoN1obJ+TTk+KQ== +"@lerna/resolve-symlink@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/resolve-symlink/-/resolve-symlink-6.0.1.tgz#30c3ccf4c730451754ce7aa002772f26dd757c20" + integrity sha512-btosycLN+2lpqou6pz0Oeq4XIKHDIn0NvdnuCBLxtuBOBNIkdlx5QWKCtZ31GYKbCUt55w1DSGL64kfVuejVQQ== dependencies: fs-extra "^9.1.0" - npmlog "^4.1.2" - read-cmd-shim "^2.0.0" + npmlog "^6.0.2" + read-cmd-shim "^3.0.0" -"@lerna/rimraf-dir@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/rimraf-dir/-/rimraf-dir-5.0.0.tgz#9e7689610415e6d68c9e766a462c8acfdbf04b9a" - integrity sha512-hWJg/13CiSUrWWEek3B/A1mkvBbcPvG5z69/Ugyerdpzlw44ubf02MAZ0/kXPJjkICI2hMrS07YotQ60LdYpCw== +"@lerna/rimraf-dir@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/rimraf-dir/-/rimraf-dir-6.0.1.tgz#e52ba283a4c39ade75792c23d0c6dcec65dcbbf4" + integrity sha512-rBFkwrxEQWFfZV5IMiPfGVubOquvOTNsPJPUf5tZoPAqKHXVQi5iYZGB65VG8JA7eFenZxh5mVErX2gtWFh1Ew== dependencies: - "@lerna/child-process" "5.0.0" - npmlog "^4.1.2" + "@lerna/child-process" "6.0.1" + npmlog "^6.0.2" path-exists "^4.0.0" rimraf "^3.0.2" -"@lerna/run-lifecycle@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/run-lifecycle/-/run-lifecycle-5.0.0.tgz#0f62c2faebc19e4ee247bdfa1e05b2a9f51b0637" - integrity sha512-36mAm9rC5DSliFShI0Y4ICjgrJXdIIVt7VW9rdbdJ8/XYjRHDzhGPB9Sc1neJOVlGL4DmaArvh5tGgo62KPJYQ== +"@lerna/run-lifecycle@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/run-lifecycle/-/run-lifecycle-6.0.1.tgz#ab94838cf7daa1edd6228be0a161b38ec1a42a0b" + integrity sha512-gC7rnV3mrgFFIM8GlHc3d22ovYHoExu9CuIAxN26CVrMq7iEYxWoxYvweqVANsCHR7CVbs+dsDx8/TP1pQG8wg== dependencies: - "@lerna/npm-conf" "5.0.0" - "@npmcli/run-script" "^3.0.2" - npmlog "^4.1.2" + "@lerna/npm-conf" "6.0.1" + "@npmcli/run-script" "^4.1.7" + npmlog "^6.0.2" + p-queue "^6.6.2" -"@lerna/run-topologically@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/run-topologically/-/run-topologically-5.0.0.tgz#0b0156e3ebe2bf768b9ba1339e02e947e70d1dd1" - integrity sha512-B2s1N/+r3sfPOLRA2svNk+C52JpXQleMuGap0yhOx5mZzR1M2Lo4vpe9Ody4hCvXQjfdLx/U342fxVmgugUtfQ== +"@lerna/run-topologically@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/run-topologically/-/run-topologically-6.0.1.tgz#dcf26259e57b224d4aad2e3b259555ecd2f226ea" + integrity sha512-p4J9RvOUyDUjQ21tDh7Durci9YnuBu3T8WXD8xu5ZwcxVnawK1h5B8kP4V1R5L/jwNqkXsAnlLwikPVGQ5Iptw== dependencies: - "@lerna/query-graph" "5.0.0" + "@lerna/query-graph" "6.0.1" p-queue "^6.6.2" -"@lerna/run@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/run/-/run-5.0.0.tgz#3af69d1a787866cf85072a0ae9571b9c3bf262e7" - integrity sha512-8nBZstqKSO+7wHlKk1g+iexSYRVVNJq/u5ZbAzBiHNrABtqA6/0G7q9vsAEMsnPZ8ARAUYpwvbfKTipjpWH0VA== - dependencies: - "@lerna/command" "5.0.0" - "@lerna/filter-options" "5.0.0" - "@lerna/npm-run-script" "5.0.0" - "@lerna/output" "5.0.0" - "@lerna/profiler" "5.0.0" - "@lerna/run-topologically" "5.0.0" - "@lerna/timer" "5.0.0" - "@lerna/validation-error" "5.0.0" +"@lerna/run@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/run/-/run-6.0.1.tgz#20d3c77fa8faad01b915214b95477ae5390c8b45" + integrity sha512-F1vvpaevsWCjaQs3NlBegH54izm3cO3Qbg/cRRzPZMK4Jo7gE1ddL7+zCIq0zGt6aeVqRGBOtUMk4SvNGkzI4w== + dependencies: + "@lerna/command" "6.0.1" + "@lerna/filter-options" "6.0.1" + "@lerna/npm-run-script" "6.0.1" + "@lerna/output" "6.0.1" + "@lerna/profiler" "6.0.1" + "@lerna/run-topologically" "6.0.1" + "@lerna/timer" "6.0.1" + "@lerna/validation-error" "6.0.1" + fs-extra "^9.1.0" p-map "^4.0.0" -"@lerna/symlink-binary@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/symlink-binary/-/symlink-binary-5.0.0.tgz#f9da5673ed3a44570fa4d2e691759f82bd7ad057" - integrity sha512-uYyiiNjkdL1tWf8MDXIIyCa/a2gmYaUxagqMgEZ4wRtOk+PDypDwMUFVop/EQtUWZqG5CAJBJYOztG3DdapTbA== +"@lerna/symlink-binary@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/symlink-binary/-/symlink-binary-6.0.1.tgz#b9278650c3360cc518e0d313d9999cd740a2c054" + integrity sha512-TcwxDMgU9w+hGl0EeYihPytVRKV0KTeZZW4Bq6NEtjTCIIuKWxZjcY5ocxW22i6BClBvfFAJqkf+e+i3Nixlhg== dependencies: - "@lerna/create-symlink" "5.0.0" - "@lerna/package" "5.0.0" + "@lerna/create-symlink" "6.0.1" + "@lerna/package" "6.0.1" fs-extra "^9.1.0" p-map "^4.0.0" -"@lerna/symlink-dependencies@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/symlink-dependencies/-/symlink-dependencies-5.0.0.tgz#878b0f52737f82bb7014e13afda8efc606fc071c" - integrity sha512-wlZGOOB87XMy278hpF4fOwGNnjTXf1vJ/cFHIdKsJAiDipyhtnuCiJLBDPh4NzEGb02o4rhaqt8Nl5yWRu9CNA== +"@lerna/symlink-dependencies@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/symlink-dependencies/-/symlink-dependencies-6.0.1.tgz#28c01b3f910c1d13b1d447d27c47f5c76efd0096" + integrity sha512-ImyqjLjMBu0ORGO9gYHr9oDgN/5QeeGuELtYNweLS5vMNSH1dokQW9fqZSrgfCJPbxeCizBcDTi/Knqg17ebkA== dependencies: - "@lerna/create-symlink" "5.0.0" - "@lerna/resolve-symlink" "5.0.0" - "@lerna/symlink-binary" "5.0.0" + "@lerna/create-symlink" "6.0.1" + "@lerna/resolve-symlink" "6.0.1" + "@lerna/symlink-binary" "6.0.1" fs-extra "^9.1.0" p-map "^4.0.0" p-map-series "^2.1.0" -"@lerna/temp-write@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/temp-write/-/temp-write-5.0.0.tgz#44f8c7c82f498e15db33c166d063be117b819162" - integrity sha512-JOkRR6xyASuBy1udyS/VD52Wgywnz7cSKppD+QKIDseNzTq27I9mNmb702BSXNXIdD19lLVQ7q6WoAlpnelnZg== +"@lerna/temp-write@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/temp-write/-/temp-write-6.0.1.tgz#84f8aa3f74b6150706a70430c68815517f5301cf" + integrity sha512-9eklYncDnwTnGF9o14GOrZU05ZK5n6/x5XYRQHbuLfK5T9pmOiUyl6sO1613cZygUMaWHHi7BLtBPiw2CklqXQ== dependencies: graceful-fs "^4.1.15" is-stream "^2.0.0" @@ -1862,42 +2092,43 @@ temp-dir "^1.0.0" uuid "^8.3.2" -"@lerna/timer@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/timer/-/timer-5.0.0.tgz#ab8fba29f90de21b0eb02406916269122deb2e41" - integrity sha512-p2vevkpB6V/b0aR8VyMLDfg0Arp9VvMxcZOEu+IfZ9XKTtnbwjWPHKUOS34x/VGa6bnOIWjE046ixWymOs/fTw== +"@lerna/timer@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/timer/-/timer-6.0.1.tgz#eb10242c48a1246e1bf216af305974fbd6332d39" + integrity sha512-FLoga8iprKmRkh9jO+LP4Bm7MZLO4wNHM4LML4Dlh9CPwcIOWTteI8wSgRXvEJpt33IRIoPOUnfL3iHh8WwaYA== -"@lerna/validation-error@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/validation-error/-/validation-error-5.0.0.tgz#3d3557023e3eb2fd3d8fc9c89f7352a1b6e5bd3e" - integrity sha512-fu/MhqRXiRQM2cirP/HoSkfwc5XtJ21G60WHv74RnanKBqWEZAUALWa3MQN2sYhVV/FpDW3GLkO008IW5NWzdg== +"@lerna/validation-error@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/validation-error/-/validation-error-6.0.1.tgz#afcf6b193eae86d64df9561afb7698696257304f" + integrity sha512-kjAxfFY1pDltwoCTvMQCbnpBwMXBFuvE4hdi8qePhBQ1Lf0PlTOI4ZqMFIkaTud+oujzysDXraTJbYTjc+C+zw== dependencies: - npmlog "^4.1.2" + npmlog "^6.0.2" -"@lerna/version@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/version/-/version-5.0.0.tgz#36a808e8b4458febd58a6b76852f2ce30e740ca1" - integrity sha512-M8KvdyG5kR/d3wgg5S46Q2YMf0L9iw9MiumTvlDP4ckysTt+04kS74Vp4+aClgPM4xaoI5OuMrs6wy5ICcd3Pw== - dependencies: - "@lerna/check-working-tree" "5.0.0" - "@lerna/child-process" "5.0.0" - "@lerna/collect-updates" "5.0.0" - "@lerna/command" "5.0.0" - "@lerna/conventional-commits" "5.0.0" - "@lerna/github-client" "5.0.0" - "@lerna/gitlab-client" "5.0.0" - "@lerna/output" "5.0.0" - "@lerna/prerelease-id-from-version" "5.0.0" - "@lerna/prompt" "5.0.0" - "@lerna/run-lifecycle" "5.0.0" - "@lerna/run-topologically" "5.0.0" - "@lerna/temp-write" "5.0.0" - "@lerna/validation-error" "5.0.0" +"@lerna/version@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/version/-/version-6.0.1.tgz#988675be8ea29f1548cb4554c257c2cc94b78084" + integrity sha512-d/addeHVsRFWx3fb/XZIh6f23KuEC9Fn3ytpaMzA8rlLF3Nob1opIR98ZfUz7Nf+skpIV1QiIbXdJTZzIKvd9g== + dependencies: + "@lerna/check-working-tree" "6.0.1" + "@lerna/child-process" "6.0.1" + "@lerna/collect-updates" "6.0.1" + "@lerna/command" "6.0.1" + "@lerna/conventional-commits" "6.0.1" + "@lerna/github-client" "6.0.1" + "@lerna/gitlab-client" "6.0.1" + "@lerna/output" "6.0.1" + "@lerna/prerelease-id-from-version" "6.0.1" + "@lerna/prompt" "6.0.1" + "@lerna/run-lifecycle" "6.0.1" + "@lerna/run-topologically" "6.0.1" + "@lerna/temp-write" "6.0.1" + "@lerna/validation-error" "6.0.1" + "@nrwl/devkit" ">=14.8.6 < 16" chalk "^4.1.0" dedent "^0.7.0" load-json-file "^6.2.0" minimatch "^3.0.4" - npmlog "^4.1.2" + npmlog "^6.0.2" p-map "^4.0.0" p-pipe "^3.1.0" p-reduce "^2.1.0" @@ -1906,28 +2137,28 @@ slash "^3.0.0" write-json-file "^4.3.0" -"@lerna/write-log-file@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@lerna/write-log-file/-/write-log-file-5.0.0.tgz#ad3d33d6153b962beef48442ab6472233b5d5197" - integrity sha512-kpPNxe9xm36QbCWY7DwO96Na6FpCHzZinJtw6ttBHslIcdR38lZuCp+/2KfJcVsRIPNOsp1VvgP7EZIKiBhgjw== +"@lerna/write-log-file@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@lerna/write-log-file/-/write-log-file-6.0.1.tgz#4335d5e08686f8250ebae9d7f56b64452bd90cd3" + integrity sha512-fJGDE8rlE35DwKSqV8M1VV2xw/vQlgwTwURjNOMvd1Ar23Aa9CkJC4XAwc9uUgIku34IsWUM8MNbw9ClSsJaqw== dependencies: - npmlog "^4.1.2" - write-file-atomic "^3.0.3" + npmlog "^6.0.2" + write-file-atomic "^4.0.1" -"@nestjs/common@8.4.6": - version "8.4.6" - resolved "https://registry.yarnpkg.com/@nestjs/common/-/common-8.4.6.tgz#e2858c230371eeb5ccf7547d5b9434a2096da835" - integrity sha512-INp1ERDrLiQ4GwRc3zotTwBLZm2sIwcJwnBE2yXqsth17KijmoVmY8UB5Tares0IlwjsqlRFWkCX8uWE5rzbSA== +"@nestjs/common@8.4.7": + version "8.4.7" + resolved "https://registry.yarnpkg.com/@nestjs/common/-/common-8.4.7.tgz#fc4a575b797e230bb5a0bcab6da8b796aa88d605" + integrity sha512-m/YsbcBal+gA5CFrDpqXqsSfylo+DIQrkFY3qhVIltsYRfu8ct8J9pqsTO6OPf3mvqdOpFGrV5sBjoyAzOBvsw== dependencies: axios "0.27.2" iterare "1.2.1" tslib "2.4.0" uuid "8.3.2" -"@nestjs/core@8.4.6": - version "8.4.6" - resolved "https://registry.yarnpkg.com/@nestjs/core/-/core-8.4.6.tgz#db1afa3202cddffa308c6f321e2e07ebcc05d513" - integrity sha512-5zHpxTYV7HT3lfF7l/x0EWBfmuyuDOnGRcALf88tzDGs/7Q/VC6l65d6eFwDwI37NLtScqnmEkT9of8E3fT3mA== +"@nestjs/core@8.4.7": + version "8.4.7" + resolved "https://registry.yarnpkg.com/@nestjs/core/-/core-8.4.7.tgz#fbec7fa744ac8749a4b966f759a6656c1cf43883" + integrity sha512-XB9uexHqzr2xkPo6QSiQWJJttyYYLmvQ5My64cFvWFi7Wk2NIus0/xUNInwX3kmFWB6pF1ab5Y2ZBvWdPwGBhw== dependencies: "@nuxtjs/opencollective" "0.3.2" fast-safe-stringify "2.1.1" @@ -1937,26 +2168,26 @@ tslib "2.4.0" uuid "8.3.2" -"@nestjs/mapped-types@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@nestjs/mapped-types/-/mapped-types-1.0.1.tgz#78b62041c7a407db4a90eb140567321602bed18e" - integrity sha512-NFvofzSinp00j5rzUd4tf+xi9od6383iY0JP7o0Bnu1fuItAUkWBgc4EKuIQ3D+c2QI3i9pG1kDWAeY27EMGtg== +"@nestjs/mapped-types@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@nestjs/mapped-types/-/mapped-types-1.2.0.tgz#1bbdbb5c956f0adb3fd76add929137bc6ad3183f" + integrity sha512-NTFwPZkQWsArQH8QSyFWGZvJ08gR+R4TofglqZoihn/vU+ktHEJjMqsIsADwb7XD97DhiD+TVv5ac+jG33BHrg== -"@nestjs/platform-express@8.4.6": - version "8.4.6" - resolved "https://registry.yarnpkg.com/@nestjs/platform-express/-/platform-express-8.4.6.tgz#517f503391248e7a88c51365cedd8ad9a9c6cb9d" - integrity sha512-OserZ+RwjMyECFAL0/12Bztf63EnFhlFUEJ4/a502RQ0eZogt4M3ROauaW4bpt2Q3YH4hy0eT+4eqkVOMzjtPQ== +"@nestjs/platform-express@8.4.7": + version "8.4.7" + resolved "https://registry.yarnpkg.com/@nestjs/platform-express/-/platform-express-8.4.7.tgz#402a3d3c47327a164bb3867615f423c29d1a6cd9" + integrity sha512-lPE5Ltg2NbQGRQIwXWY+4cNrXhJdycbxFDQ8mNxSIuv+LbrJBIdEB/NONk+LLn9N/8d2+I2LsIETGQrPvsejBg== dependencies: body-parser "1.20.0" cors "2.8.5" express "4.18.1" - multer "1.4.4" + multer "1.4.4-lts.1" tslib "2.4.0" -"@nestjs/platform-fastify@8.4.6": - version "8.4.6" - resolved "https://registry.yarnpkg.com/@nestjs/platform-fastify/-/platform-fastify-8.4.6.tgz#ef8b95c2d6e66900026bdfa3a1a4b348573a501b" - integrity sha512-sRu8nWRFOAyLsu84Mc/YIWztorcYnDkO21P2ZDK6kxGPOrw82ePr0G5xV5BtbbTlkJkzjJ4GWsZvRGYTtnH0cg== +"@nestjs/platform-fastify@8.4.7": + version "8.4.7" + resolved "https://registry.yarnpkg.com/@nestjs/platform-fastify/-/platform-fastify-8.4.7.tgz#5c37fe00b4d5c039c4fc0f43c0d14cfc0fa101aa" + integrity sha512-3miB5AYQMlwTAC6W3HE3UTfsQF5RcCsellIEHhNKWN9jGA3C++zr24nEBzw61+Ca2fOG4+ccg4agtODn53d+UA== dependencies: fastify "3.29.0" fastify-cors "6.1.0" @@ -1966,10 +2197,10 @@ path-to-regexp "3.2.0" tslib "2.4.0" -"@nestjs/testing@8.4.6": - version "8.4.6" - resolved "https://registry.yarnpkg.com/@nestjs/testing/-/testing-8.4.6.tgz#4e80368090bb71d775d14d99efa96803b96312d0" - integrity sha512-uGRNQ0iWIHqjz5CLxQCTtQ3dB1KyPfkHXnko5mBwKk/iBTiACmll61rVt89Wh8RM+w0bmvCHp9sacNI7IynESg== +"@nestjs/testing@8.4.7": + version "8.4.7" + resolved "https://registry.yarnpkg.com/@nestjs/testing/-/testing-8.4.7.tgz#fe4f356c0e081e25fe8c899a65e91dd88947fd13" + integrity sha512-aedpeJFicTBeiTCvJWUG45WMMS53f5eu8t2fXsfjsU1t+WdDJqYcZyrlCzA4dL1B7MfbqaTURdvuVVHTmJO8ag== dependencies: tslib "2.4.0" @@ -1986,7 +2217,7 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== -"@nodelib/fs.walk@^1.2.3": +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== @@ -1994,10 +2225,10 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@npmcli/arborist@5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-5.2.0.tgz#ee40dfe1f81ae1524819ee39c8f3e7022b0d6269" - integrity sha512-zWV7scFGL0SmpvfQyIWnMFbU/0YgtMNyvJiJwR98kyjUSntJGWFFR0O600d5W+TrDcTg0GyDbY+HdzGEg+GXLg== +"@npmcli/arborist@5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-5.3.0.tgz#321d9424677bfc08569e98a5ac445ee781f32053" + integrity sha512-+rZ9zgL1lnbl8Xbb1NQdMjveOMwj4lIYfcDtyJHHi5x4X8jtR6m8SXooJMZy5vmFVZ8w7A2Bnd/oX9eTuU8w5A== dependencies: "@isaacs/string-locale-compare" "^1.1.0" "@npmcli/installed-package-contents" "^1.0.7" @@ -2007,7 +2238,7 @@ "@npmcli/name-from-folder" "^1.0.1" "@npmcli/node-gyp" "^2.0.0" "@npmcli/package-json" "^2.0.0" - "@npmcli/run-script" "^3.0.0" + "@npmcli/run-script" "^4.1.3" bin-links "^3.0.0" cacache "^16.0.6" common-ancestor-path "^1.0.1" @@ -2021,7 +2252,7 @@ npm-pick-manifest "^7.0.0" npm-registry-fetch "^13.0.0" npmlog "^6.0.2" - pacote "^13.0.5" + pacote "^13.6.1" parse-conflict-json "^2.0.1" proc-log "^2.0.0" promise-all-reject-late "^1.0.0" @@ -2034,11 +2265,6 @@ treeverse "^2.0.0" walk-up-path "^1.0.0" -"@npmcli/ci-detect@^1.0.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@npmcli/ci-detect/-/ci-detect-1.4.0.tgz#18478bbaa900c37bfbd8a2006a6262c62e8b0fe1" - integrity sha512-3BGrt6FLjqM6br5AhWRKTr3u5GIVkjRYeAFrMp3HjnfICrg4xOrVRwFavKT6tsp++bq5dluL5t8ME/Nha/6c1Q== - "@npmcli/fs@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.0.0.tgz#589612cfad3a6ea0feafcb901d29c63fd52db09f" @@ -2138,7 +2364,7 @@ dependencies: infer-owner "^1.0.4" -"@npmcli/run-script@^3.0.0", "@npmcli/run-script@^3.0.1", "@npmcli/run-script@^3.0.2": +"@npmcli/run-script@^3.0.1": version "3.0.2" resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-3.0.2.tgz#3e9116d831f4539bf292d18b015977a6118997ee" integrity sha512-vdjD/PMBl+OX9j9C9irx5sCCIKfp2PWkpPNH9zxvlJAfSZ3Qp5aU412v+O3PFJl3R1PFNwuyChCqHg4ma6ci2Q== @@ -2148,6 +2374,42 @@ node-gyp "^9.0.0" read-package-json-fast "^2.0.3" +"@npmcli/run-script@^4.1.0", "@npmcli/run-script@^4.1.3", "@npmcli/run-script@^4.1.7": + version "4.1.7" + resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-4.1.7.tgz#b1a2f57568eb738e45e9ea3123fb054b400a86f7" + integrity sha512-WXr/MyM4tpKA4BotB81NccGAv8B48lNH0gRoILucbcAhTQXLCoi6HflMV3KdXubIqvP9SuLsFn68Z7r4jl+ppw== + dependencies: + "@npmcli/node-gyp" "^2.0.0" + "@npmcli/promise-spawn" "^3.0.0" + node-gyp "^9.0.0" + read-package-json-fast "^2.0.3" + which "^2.0.2" + +"@nrwl/cli@15.0.0": + version "15.0.0" + resolved "https://registry.yarnpkg.com/@nrwl/cli/-/cli-15.0.0.tgz#7b00d95a6502f83fdd84f8888fd1ba7a180cdd07" + integrity sha512-D0zAhZ375bQnoUM2HLifMzAa75A3/lC9OkkewsiVVbqaznjEIry8ezHZepgfjFRVzLr3ue7FIpDEH3iJIYzvVw== + dependencies: + nx "15.0.0" + +"@nrwl/devkit@>=14.8.6 < 16": + version "15.0.0" + resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-15.0.0.tgz#755bc07581a57e0ae87f68a7562ab86ff737e919" + integrity sha512-ALtPfILlxLDg77rV/XNdDGbhUkh0gZPj/4Ehy3ScvVqPhTrDIZNLGX13dXgUUF9xhGb7SXPmvzZkduBpqmHnfQ== + dependencies: + "@phenomnomnominal/tsquery" "4.1.1" + ejs "^3.1.7" + ignore "^5.0.4" + semver "7.3.4" + tslib "^2.3.0" + +"@nrwl/tao@15.0.0": + version "15.0.0" + resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-15.0.0.tgz#128499a4256e408716f7347131a3ed32d1fec5f0" + integrity sha512-qup1eSWYwp/KVrw/wxeWBvYttQ9dcbQnqpXb5NQMD31SpXEZSpJB1i3GV/o6CF5qQQSNLwICXZx25rNTTQAqpg== + dependencies: + nx "15.0.0" + "@nuxtjs/opencollective@0.3.2": version "0.3.2" resolved "https://registry.yarnpkg.com/@nuxtjs/opencollective/-/opencollective-0.3.2.tgz#620ce1044f7ac77185e825e1936115bb38e2681c" @@ -2157,41 +2419,41 @@ consola "^2.15.0" node-fetch "^2.6.1" -"@octokit/auth-token@^2.4.4": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.5.0.tgz#27c37ea26c205f28443402477ffd261311f21e36" - integrity sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g== +"@octokit/auth-token@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-3.0.0.tgz#6f22c5fc56445c496628488ba6810131558fa4a9" + integrity sha512-MDNFUBcJIptB9At7HiV7VCvU3NcL4GnfCQaP8C5lrxWrRPMJBnemYtehaKSOlaM7AYxeRyj9etenu8LVpSpVaQ== dependencies: "@octokit/types" "^6.0.3" -"@octokit/core@^3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.5.1.tgz#8601ceeb1ec0e1b1b8217b960a413ed8e947809b" - integrity sha512-omncwpLVxMP+GLpLPgeGJBF6IWJFjXDS5flY5VbppePYX9XehevbDykRH9PdCdvqt9TS5AOTiDide7h0qrkHjw== +"@octokit/core@^4.0.0": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-4.0.4.tgz#335d9b377691e3264ce57a9e5a1f6cda783e5838" + integrity sha512-sUpR/hc4Gc7K34o60bWC7WUH6Q7T6ftZ2dUmepSyJr9PRF76/qqkWjE2SOEzCqLA5W83SaISymwKtxks+96hPQ== dependencies: - "@octokit/auth-token" "^2.4.4" - "@octokit/graphql" "^4.5.8" - "@octokit/request" "^5.6.0" - "@octokit/request-error" "^2.0.5" + "@octokit/auth-token" "^3.0.0" + "@octokit/graphql" "^5.0.0" + "@octokit/request" "^6.0.0" + "@octokit/request-error" "^3.0.0" "@octokit/types" "^6.0.3" before-after-hook "^2.2.0" universal-user-agent "^6.0.0" -"@octokit/endpoint@^6.0.1": - version "6.0.12" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658" - integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA== +"@octokit/endpoint@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-7.0.0.tgz#be758a1236d68d6bbb505e686dd50881c327a519" + integrity sha512-Kz/mIkOTjs9rV50hf/JK9pIDl4aGwAtT8pry6Rpy+hVXkAPhXanNQRxMoq6AeRgDCZR6t/A1zKniY2V1YhrzlQ== dependencies: "@octokit/types" "^6.0.3" is-plain-object "^5.0.0" universal-user-agent "^6.0.0" -"@octokit/graphql@^4.5.8": - version "4.8.0" - resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.8.0.tgz#664d9b11c0e12112cbf78e10f49a05959aa22cc3" - integrity sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg== +"@octokit/graphql@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-5.0.0.tgz#2cc6eb3bf8e0278656df1a7d0ca0d7591599e3b3" + integrity sha512-1ZZ8tX4lUEcLPvHagfIVu5S2xpHYXAmgN0+95eAOPoaVPzCfUXJtA5vASafcpWcO86ze0Pzn30TAx72aB2aguQ== dependencies: - "@octokit/request" "^5.6.0" + "@octokit/request" "^6.0.0" "@octokit/types" "^6.0.3" universal-user-agent "^6.0.0" @@ -2200,74 +2462,145 @@ resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-11.2.0.tgz#b38d7fc3736d52a1e96b230c1ccd4a58a2f400a6" integrity sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA== +"@octokit/openapi-types@^12.10.0": + version "12.10.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-12.10.0.tgz#60b27456e2e750dae9925ed248b9daad12a12c5c" + integrity sha512-xsgA7LKuQ/2QReMZQXNlBP68ferPlqw66Jmx5/J399Cn5EgIDaHXou6Rgn1GkpDNjkPji67fTlC2rz6ABaVFKw== + +"@octokit/openapi-types@^13.4.0": + version "13.5.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-13.5.0.tgz#8b3000783869a76b65a633159df8d7ed73ba370d" + integrity sha512-e9uYcMLpU5nMDA4k4PufLsJV9Wwc4QuKxRD7xNPW3vveuA3j0Nb6zZYG9IgQpEgYPtIjQwrJK3Z2rKWJ9SfzKg== + "@octokit/plugin-enterprise-rest@^6.0.1": version "6.0.1" resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz#e07896739618dab8da7d4077c658003775f95437" integrity sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw== -"@octokit/plugin-paginate-rest@^2.16.8": - version "2.17.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.17.0.tgz#32e9c7cab2a374421d3d0de239102287d791bce7" - integrity sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw== +"@octokit/plugin-paginate-rest@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-3.0.0.tgz#df779de686aeb21b5e776e4318defc33b0418566" + integrity sha512-fvw0Q5IXnn60D32sKeLIxgXCEZ7BTSAjJd8cFAE6QU5qUp0xo7LjFUjjX1J5D7HgN355CN4EXE4+Q1/96JaNUA== dependencies: - "@octokit/types" "^6.34.0" + "@octokit/types" "^6.39.0" + +"@octokit/plugin-paginate-rest@^4.0.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-4.1.0.tgz#670ac9ac369448c69a2371bfcd7e2b37d95534f2" + integrity sha512-2O5K5fpajYG5g62wjzHR7/cWYaCA88CextAW3vFP+yoIHD0KEdlVMHfM5/i5LyV+JMmqiYW7w5qfg46FR+McNw== + dependencies: + "@octokit/types" "^7.1.1" "@octokit/plugin-request-log@^1.0.4": version "1.0.4" resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== -"@octokit/plugin-rest-endpoint-methods@^5.12.0": - version "5.13.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.13.0.tgz#8c46109021a3412233f6f50d28786f8e552427ba" - integrity sha512-uJjMTkN1KaOIgNtUPMtIXDOjx6dGYysdIFhgA52x4xSadQCz3b/zJexvITDVpANnfKPW/+E0xkOvLntqMYpviA== +"@octokit/plugin-rest-endpoint-methods@^6.0.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.1.0.tgz#64804122e6bb93d4165a56cdcfc8bab1143d3d9f" + integrity sha512-gP/yHUY0k/uKkEqXF6tZGRhCFqZNjQ0qdh9/gVo74AJ2pc3cr1rjnW/KRw1uXUKB/H9Y0rRBCBxsLXJmQjPv3A== dependencies: - "@octokit/types" "^6.34.0" + "@octokit/types" "^6.40.0" deprecation "^2.3.1" -"@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677" - integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg== +"@octokit/request-error@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-3.0.0.tgz#f527d178f115a3b62d76ce4804dd5bdbc0270a81" + integrity sha512-WBtpzm9lR8z4IHIMtOqr6XwfkGvMOOILNLxsWvDwtzm/n7f5AWuqJTXQXdDtOvPfTDrH4TPhEvW2qMlR4JFA2w== dependencies: "@octokit/types" "^6.0.3" deprecation "^2.0.0" once "^1.4.0" -"@octokit/request@^5.6.0": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.2.tgz#1aa74d5da7b9e04ac60ef232edd9a7438dcf32d8" - integrity sha512-je66CvSEVf0jCpRISxkUcCa0UkxmFs6eGDRSbfJtAVwbLH5ceqF+YEyC8lj8ystKyZTy8adWr0qmkY52EfOeLA== +"@octokit/request@^6.0.0": + version "6.2.0" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-6.2.0.tgz#9c25606df84e6f2ccbcc2c58e1d35438e20b688b" + integrity sha512-7IAmHnaezZrgUqtRShMlByJK33MT9ZDnMRgZjnRrRV9a/jzzFwKGz0vxhFU6i7VMLraYcQ1qmcAOin37Kryq+Q== dependencies: - "@octokit/endpoint" "^6.0.1" - "@octokit/request-error" "^2.1.0" + "@octokit/endpoint" "^7.0.0" + "@octokit/request-error" "^3.0.0" "@octokit/types" "^6.16.1" is-plain-object "^5.0.0" - node-fetch "^2.6.1" + node-fetch "^2.6.7" universal-user-agent "^6.0.0" -"@octokit/rest@18.12.0", "@octokit/rest@^18.1.0": - version "18.12.0" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.12.0.tgz#f06bc4952fc87130308d810ca9d00e79f6988881" - integrity sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q== +"@octokit/rest@19.0.4": + version "19.0.4" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-19.0.4.tgz#fd8bed1cefffa486e9ae46a9dc608ce81bcfcbdd" + integrity sha512-LwG668+6lE8zlSYOfwPj4FxWdv/qFXYBpv79TWIQEpBLKA9D/IMcWsF/U9RGpA3YqMVDiTxpgVpEW3zTFfPFTA== + dependencies: + "@octokit/core" "^4.0.0" + "@octokit/plugin-paginate-rest" "^4.0.0" + "@octokit/plugin-request-log" "^1.0.4" + "@octokit/plugin-rest-endpoint-methods" "^6.0.0" + +"@octokit/rest@^19.0.3": + version "19.0.3" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-19.0.3.tgz#b9a4e8dc8d53e030d611c053153ee6045f080f02" + integrity sha512-5arkTsnnRT7/sbI4fqgSJ35KiFaN7zQm0uQiQtivNQLI8RQx8EHwJCajcTUwmaCMNDg7tdCvqAnc7uvHHPxrtQ== dependencies: - "@octokit/core" "^3.5.1" - "@octokit/plugin-paginate-rest" "^2.16.8" + "@octokit/core" "^4.0.0" + "@octokit/plugin-paginate-rest" "^3.0.0" "@octokit/plugin-request-log" "^1.0.4" - "@octokit/plugin-rest-endpoint-methods" "^5.12.0" + "@octokit/plugin-rest-endpoint-methods" "^6.0.0" -"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.34.0": +"@octokit/types@^6.0.3", "@octokit/types@^6.16.1": version "6.34.0" resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.34.0.tgz#c6021333334d1ecfb5d370a8798162ddf1ae8218" integrity sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw== dependencies: "@octokit/openapi-types" "^11.2.0" +"@octokit/types@^6.39.0", "@octokit/types@^6.40.0": + version "6.40.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.40.0.tgz#f2e665196d419e19bb4265603cf904a820505d0e" + integrity sha512-MFZOU5r8SwgJWDMhrLUSvyJPtVsqA6VnbVI3TNbsmw+Jnvrktzvq2fYES/6RiJA/5Ykdwq4mJmtlYUfW7CGjmw== + dependencies: + "@octokit/openapi-types" "^12.10.0" + +"@octokit/types@^7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-7.1.1.tgz#a30fd6ca3279d59d532fa75583d65d93b7588e6d" + integrity sha512-Dx6cNTORyVaKY0Yeb9MbHksk79L8GXsihbG6PtWqTpkyA2TY1qBWE26EQXVG3dHwY9Femdd/WEeRUEiD0+H3TQ== + dependencies: + "@octokit/openapi-types" "^13.4.0" + "@opentelemetry/api@^1.0.1": version "1.0.3" resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.0.3.tgz#13a12ae9e05c2a782f7b5e84c3cbfda4225eaf80" integrity sha512-puWxACExDe9nxbBB3lOymQFrLYml2dVOrd7USiVRnSbgXE+KwBu+HxFvxrzfqsiSda9IWsXJG1ef7C1O2/GmKQ== +"@parcel/watcher@2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.0.4.tgz#f300fef4cc38008ff4b8c29d92588eced3ce014b" + integrity sha512-cTDi+FUDBIUOBKEtj+nhiJ71AZVlkAsQFuGQTun5tV9mwQBQgZvhCzG+URPQc8myeN32yRVZEfVAPCs1RW+Jvg== + dependencies: + node-addon-api "^3.2.1" + node-gyp-build "^4.3.0" + +"@phenomnomnominal/tsquery@4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@phenomnomnominal/tsquery/-/tsquery-4.1.1.tgz#42971b83590e9d853d024ddb04a18085a36518df" + integrity sha512-jjMmK1tnZbm1Jq5a7fBliM4gQwjxMU7TFoRNwIyzwlO+eHPRCFv/Nv+H/Gi1jc3WR7QURG8D5d0Tn12YGrUqBQ== + dependencies: + esquery "^1.0.1" + +"@pnpm/network.ca-file@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@pnpm/network.ca-file/-/network.ca-file-1.0.1.tgz#16f88d057c68cd5419c1ef3dfa281296ea80b047" + integrity sha512-gkINruT2KUhZLTaiHxwCOh1O4NVnFT0wLjWFBHmTz9vpKag/C/noIMJXBxFe4F0mYpUVX2puLwAieLYFg2NvoA== + dependencies: + graceful-fs "4.2.10" + +"@pnpm/npm-conf@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-1.0.4.tgz#e2c927a933f55e9211e12ef6cc4885ce915211ce" + integrity sha512-o5YFq/+ksEJMbSzzkaQDHlp00aonLDU5xNPVTRL12hTWBbVSSeWXxPukq75h+mvXnoOWT95vV2u1HSTw2C4XOw== + dependencies: + "@pnpm/network.ca-file" "^1.0.1" + config-chain "^1.1.11" + "@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" @@ -2326,16 +2659,21 @@ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.23.4.tgz#6ff93fd2585ce44f7481c9ff6af610fbb5de98a4" integrity sha512-0/WqSvpVbCBAV1yPeko7eAczKbs78dNVAaX14quVlwOb2wxfKuXCx91h4NrEfkYK9zEnyVSW4JVI/trP3iS+Qg== -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== +"@sinclair/typebox@^0.24.1": + version "0.24.19" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.19.tgz#5297278e0d8a1aea084685a3216074910ac6c113" + integrity sha512-gHJu8cdYTD5p4UqmQHrxaWrtb/jkH5imLXzuBypWhKzNkW0qfmgz+w1xaJccWVuJta1YYUdlDiPHXRTR4Ku0MQ== "@sindresorhus/is@^4.6.0": version "4.6.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== +"@sindresorhus/is@^5.2.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.3.0.tgz#0ec9264cf54a527671d990eb874e030b55b70dcc" + integrity sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw== + "@sinonjs/commons@^1.7.0": version "1.8.3" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" @@ -2343,20 +2681,13 @@ dependencies: type-detect "4.0.8" -"@sinonjs/fake-timers@^9.1.1": +"@sinonjs/fake-timers@^9.1.2": version "9.1.2" resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== dependencies: "@sinonjs/commons" "^1.7.0" -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== - dependencies: - defer-to-connect "^1.0.1" - "@szmarczak/http-timer@^5.0.1": version "5.0.1" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" @@ -2374,13 +2705,13 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== -"@ts-morph/common@~0.15.0": - version "0.15.0" - resolved "https://registry.yarnpkg.com/@ts-morph/common/-/common-0.15.0.tgz#aece752746fc0d779d2acfaece95fb2c23327ba5" - integrity sha512-QefRbadcwfBnd3HWrltpjRJprHgeKfQsnbyGbRF8pEjMqISAljJwq4wfRETxxojsmN4GWuJv3PWG+W7kBIHMMw== +"@ts-morph/common@~0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@ts-morph/common/-/common-0.17.0.tgz#de0d405df10857907469fef8d9363893b4163fd1" + integrity sha512-RMSSvSfs9kb0VzkvQ2NWobwnj7TxCA9vI/IjR9bDHqgAyVbu2T0DN4wiKVqomyDWqO7dPr/tErSfq7urQ1Q37g== dependencies: fast-glob "^3.2.11" - minimatch "^5.0.1" + minimatch "^5.1.0" mkdirp "^1.0.4" path-browserify "^1.0.1" @@ -2482,10 +2813,10 @@ resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== -"@types/express-serve-static-core@4.17.28": - version "4.17.28" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz#c47def9f34ec81dc6328d0b1b5303d1ec98d86b8" - integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig== +"@types/express-serve-static-core@4.17.31": + version "4.17.31" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz#a1139efeab4e7323834bb0226e62ac019f474b2f" + integrity sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q== dependencies: "@types/node" "*" "@types/qs" "*" @@ -2500,10 +2831,10 @@ "@types/qs" "*" "@types/range-parser" "*" -"@types/express@4.17.13": - version "4.17.13" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" - integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== +"@types/express@4.17.14": + version "4.17.14" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.14.tgz#143ea0557249bc1b3b54f15db4c81c3d4eb3569c" + integrity sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^4.17.18" @@ -2524,7 +2855,7 @@ dependencies: graphql "*" -"@types/http-cache-semantics@*": +"@types/http-cache-semantics@*", "@types/http-cache-semantics@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== @@ -2555,13 +2886,13 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@28.1.0": - version "28.1.0" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-28.1.0.tgz#6107d7f8cf46d994e4de23e11f873d61bafe5573" - integrity sha512-ITfF6JJIl9zbEi2k6NmhNE/BiDqfsI/ceqfvdaWaPbcrCpYyyRq4KtDQIWh6vQUru6SqwppODiom/Zhid+np6A== +"@types/jest@29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.2.0.tgz#fa98e08b46ab119f1a74a9552c48c589f5378a96" + integrity sha512-KO7bPV21d65PKwv3LLsD8Jn3E05pjNjRZvkm+YTacWhVmykAb07wW6IkZUmQAltwQafNcDUEUrMO2h3jeBSisg== dependencies: - jest-matcher-utils "^27.0.0" - pretty-format "^27.0.0" + expect "^29.0.0" + pretty-format "^29.0.0" "@types/json-buffer@~3.0.0": version "3.0.0" @@ -2605,10 +2936,10 @@ resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== -"@types/node-fetch@2.6.1": - version "2.6.1" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.1.tgz#8f127c50481db65886800ef496f20bbf15518975" - integrity sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA== +"@types/node-fetch@2.6.2", "@types/node-fetch@^2.6.2": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.2.tgz#d1a9c5fd049d9415dce61571557104dec3ec81da" + integrity sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A== dependencies: "@types/node" "*" form-data "^3.0.0" @@ -2625,21 +2956,21 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== -"@types/node@17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.0.tgz#62797cee3b8b497f6547503b2312254d4fe3c2bb" - integrity sha512-eMhwJXc931Ihh4tkU+Y7GiLzT/y/DBNpNtr4yU9O2w3SYBsr9NaOPhQlLKRmoWtI54uNwuo0IOUFQjVOTZYRvw== - -"@types/node@>=12": - version "17.0.17" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.17.tgz#a8ddf6e0c2341718d74ee3dc413a13a042c45a0c" - integrity sha512-e8PUNQy1HgJGV3iU/Bp2+D/DXh3PYeyli8LgIwsQcs1Ar1LoaWHSIT6Rw+H2rNJmiq6SNWiDytfx8+gYj7wDHw== +"@types/node@18.11.5": + version "18.11.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.5.tgz#1bc94cf2f9ab5fe33353bc7c79c797dcc5325bef" + integrity sha512-3JRwhbjI+cHLAkUorhf8RnqUbFXajvzX4q6fMn5JwkgtuwfYtRQYI3u4V92vI6NJuTsbBQWWh3RZjFsuevyMGQ== "@types/node@^10.1.0": version "10.17.60" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== +"@types/node@^14.0.0": + version "14.18.26" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.26.tgz#239e19f8b4ea1a9eb710528061c1d733dc561996" + integrity sha512-0b+utRBSYj8L7XAp0d+DX7lI4cSmowNaaTkk6/1SKzbKkG+doLuPusB9EOvzLJ8ahJSk03bTLIL6cWaEd4dBKA== + "@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" @@ -2677,6 +3008,11 @@ dependencies: "@types/node" "*" +"@types/semver@^7.3.12": + version "7.3.12" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.12.tgz#920447fdd78d76b19de0438b7f60df3c4a80bf1c" + integrity sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A== + "@types/serve-static@*": version "1.13.10" resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" @@ -2702,13 +3038,6 @@ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== -"@types/yargs@^16.0.0": - version "16.0.4" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977" - integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== - dependencies: - "@types/yargs-parser" "*" - "@types/yargs@^17.0.8": version "17.0.10" resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.10.tgz#591522fce85d8739bca7b8bb90d048e4478d186a" @@ -2721,84 +3050,86 @@ resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.3.tgz#781d360c282436494b32fe7d9f7f8e64b3118aa3" integrity sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw== -"@typescript-eslint/eslint-plugin@5.27.0": - version "5.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.27.0.tgz#23d82a4f21aaafd8f69dbab7e716323bb6695cc8" - integrity sha512-DDrIA7GXtmHXr1VCcx9HivA39eprYBIFxbQEHI6NyraRDxCGpxAFiYQAT/1Y0vh1C+o2vfBiy4IuPoXxtTZCAQ== +"@typescript-eslint/eslint-plugin@5.41.0": + version "5.41.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.41.0.tgz#f8eeb1c6bb2549f795f3ba71aec3b38d1ab6b1e1" + integrity sha512-DXUS22Y57/LAFSg3x7Vi6RNAuLpTXwxB9S2nIA7msBb/Zt8p7XqMwdpdc1IU7CkOQUPgAqR5fWvxuKCbneKGmA== dependencies: - "@typescript-eslint/scope-manager" "5.27.0" - "@typescript-eslint/type-utils" "5.27.0" - "@typescript-eslint/utils" "5.27.0" + "@typescript-eslint/scope-manager" "5.41.0" + "@typescript-eslint/type-utils" "5.41.0" + "@typescript-eslint/utils" "5.41.0" debug "^4.3.4" - functional-red-black-tree "^1.0.1" ignore "^5.2.0" regexpp "^3.2.0" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/parser@5.27.0": - version "5.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.27.0.tgz#62bb091ed5cf9c7e126e80021bb563dcf36b6b12" - integrity sha512-8oGjQF46c52l7fMiPPvX4It3u3V3JipssqDfHQ2hcR0AeR8Zge+OYyKUCm5b70X72N1qXt0qgHenwN6Gc2SXZA== +"@typescript-eslint/parser@5.41.0": + version "5.41.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.41.0.tgz#0414a6405007e463dc527b459af1f19430382d67" + integrity sha512-HQVfix4+RL5YRWZboMD1pUfFN8MpRH4laziWkkAzyO1fvNOY/uinZcvo3QiFJVS/siNHupV8E5+xSwQZrl6PZA== dependencies: - "@typescript-eslint/scope-manager" "5.27.0" - "@typescript-eslint/types" "5.27.0" - "@typescript-eslint/typescript-estree" "5.27.0" + "@typescript-eslint/scope-manager" "5.41.0" + "@typescript-eslint/types" "5.41.0" + "@typescript-eslint/typescript-estree" "5.41.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.27.0": - version "5.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.27.0.tgz#a272178f613050ed62f51f69aae1e19e870a8bbb" - integrity sha512-VnykheBQ/sHd1Vt0LJ1JLrMH1GzHO+SzX6VTXuStISIsvRiurue/eRkTqSrG0CexHQgKG8shyJfR4o5VYioB9g== +"@typescript-eslint/scope-manager@5.41.0": + version "5.41.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.41.0.tgz#28e3a41d626288d0628be14cf9de8d49fc30fadf" + integrity sha512-xOxPJCnuktUkY2xoEZBKXO5DBCugFzjrVndKdUnyQr3+9aDWZReKq9MhaoVnbL+maVwWJu/N0SEtrtEUNb62QQ== dependencies: - "@typescript-eslint/types" "5.27.0" - "@typescript-eslint/visitor-keys" "5.27.0" + "@typescript-eslint/types" "5.41.0" + "@typescript-eslint/visitor-keys" "5.41.0" -"@typescript-eslint/type-utils@5.27.0": - version "5.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.27.0.tgz#36fd95f6747412251d79c795b586ba766cf0974b" - integrity sha512-vpTvRRchaf628Hb/Xzfek+85o//zEUotr1SmexKvTfs7czXfYjXVT/a5yDbpzLBX1rhbqxjDdr1Gyo0x1Fc64g== +"@typescript-eslint/type-utils@5.41.0": + version "5.41.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.41.0.tgz#2371601171e9f26a4e6da918a7913f7266890cdf" + integrity sha512-L30HNvIG6A1Q0R58e4hu4h+fZqaO909UcnnPbwKiN6Rc3BUEx6ez2wgN7aC0cBfcAjZfwkzE+E2PQQ9nEuoqfA== dependencies: - "@typescript-eslint/utils" "5.27.0" + "@typescript-eslint/typescript-estree" "5.41.0" + "@typescript-eslint/utils" "5.41.0" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.27.0": - version "5.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.27.0.tgz#c3f44b9dda6177a9554f94a74745ca495ba9c001" - integrity sha512-lY6C7oGm9a/GWhmUDOs3xAVRz4ty/XKlQ2fOLr8GAIryGn0+UBOoJDWyHer3UgrHkenorwvBnphhP+zPmzmw0A== +"@typescript-eslint/types@5.41.0": + version "5.41.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.41.0.tgz#6800abebc4e6abaf24cdf220fb4ce28f4ab09a85" + integrity sha512-5BejraMXMC+2UjefDvrH0Fo/eLwZRV6859SXRg+FgbhA0R0l6lDqDGAQYhKbXhPN2ofk2kY5sgGyLNL907UXpA== -"@typescript-eslint/typescript-estree@5.27.0": - version "5.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.27.0.tgz#7965f5b553c634c5354a47dcce0b40b94611e995" - integrity sha512-QywPMFvgZ+MHSLRofLI7BDL+UczFFHyj0vF5ibeChDAJgdTV8k4xgEwF0geFhVlPc1p8r70eYewzpo6ps+9LJQ== +"@typescript-eslint/typescript-estree@5.41.0": + version "5.41.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.41.0.tgz#bf5c6b3138adbdc73ba4871d060ae12c59366c61" + integrity sha512-SlzFYRwFSvswzDSQ/zPkIWcHv8O5y42YUskko9c4ki+fV6HATsTODUPbRbcGDFYP86gaJL5xohUEytvyNNcXWg== dependencies: - "@typescript-eslint/types" "5.27.0" - "@typescript-eslint/visitor-keys" "5.27.0" + "@typescript-eslint/types" "5.41.0" + "@typescript-eslint/visitor-keys" "5.41.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.27.0": - version "5.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.27.0.tgz#d0021cbf686467a6a9499bd0589e19665f9f7e71" - integrity sha512-nZvCrkIJppym7cIbP3pOwIkAefXOmfGPnCM0LQfzNaKxJHI6VjI8NC662uoiPlaf5f6ymkTy9C3NQXev2mdXmA== +"@typescript-eslint/utils@5.41.0": + version "5.41.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.41.0.tgz#f41ae5883994a249d00b2ce69f4188f3a23fa0f9" + integrity sha512-QlvfwaN9jaMga9EBazQ+5DDx/4sAdqDkcs05AsQHMaopluVCUyu1bTRUVKzXbgjDlrRAQrYVoi/sXJ9fmG+KLQ== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.27.0" - "@typescript-eslint/types" "5.27.0" - "@typescript-eslint/typescript-estree" "5.27.0" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.41.0" + "@typescript-eslint/types" "5.41.0" + "@typescript-eslint/typescript-estree" "5.41.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" + semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.27.0": - version "5.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.27.0.tgz#97aa9a5d2f3df8215e6d3b77f9d214a24db269bd" - integrity sha512-46cYrteA2MrIAjv9ai44OQDUoCZyHeGIc4lsjCUX2WT6r4C+kidz1bNiR4017wHOPUythYeH+Sc7/cFP97KEAA== +"@typescript-eslint/visitor-keys@5.41.0": + version "5.41.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.41.0.tgz#d3510712bc07d5540160ed3c0f8f213b73e3bcd9" + integrity sha512-vilqeHj267v8uzzakbm13HkPMl7cbYpKVjgFWZPIOHIJHZtinvypUhJ5xBXfWYg4eFKqztbMMpOgFpT9Gfx4fw== dependencies: - "@typescript-eslint/types" "5.27.0" + "@typescript-eslint/types" "5.41.0" eslint-visitor-keys "^3.3.0" "@wry/context@^0.4.0": @@ -2814,7 +3145,27 @@ resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.1.11.tgz#35cb156e4a96695aa81a9ecc4d03787bc17f1790" integrity sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA== dependencies: - tslib "^1.9.3" + tslib "^1.9.3" + +"@yarnpkg/lockfile@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" + integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== + +"@yarnpkg/parsers@^3.0.0-rc.18": + version "3.0.0-rc.22" + resolved "https://registry.yarnpkg.com/@yarnpkg/parsers/-/parsers-3.0.0-rc.22.tgz#a78e10e1919ba706beb6a514ddcb09515607ada9" + integrity sha512-GAWDjXduYBUVmOzlj3X0OwTQ1BV4ZeDdgw8yXST3K0lB95drWEGxa1at0v7BmHDyK2y1F1IJufc8N4yrcuXjWg== + dependencies: + js-yaml "^3.10.0" + tslib "^2.4.0" + +"@zkochan/js-yaml@0.0.6": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@zkochan/js-yaml/-/js-yaml-0.0.6.tgz#975f0b306e705e28b8068a07737fa46d3fc04826" + integrity sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg== + dependencies: + argparse "^2.0.1" JSONStream@^1.0.4: version "1.3.5" @@ -2829,7 +3180,14 @@ abbrev@1: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== -abstract-logging@^2.0.0: +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + +abstract-logging@^2.0.0, abstract-logging@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/abstract-logging/-/abstract-logging-2.0.1.tgz#6b0c371df212db7129b57d2e7fcf282b8bf1c839" integrity sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA== @@ -2870,10 +3228,10 @@ acorn@^8.7.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== -acorn@^8.7.1: - version "8.7.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" - integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== +acorn@^8.8.0: + version "8.8.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" + integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== add-stream@^1.0.0: version "1.0.0" @@ -2913,6 +3271,13 @@ aggregate-error@^3.0.0: 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" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.0" + ajv@^6.10.0, ajv@^6.11.0, ajv@^6.12.4, ajv@^6.12.6: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" @@ -2923,6 +3288,16 @@ ajv@^6.10.0, ajv@^6.11.0, ajv@^6.12.4, ajv@^6.12.6: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^8.0.0, ajv@^8.10.0, ajv@^8.11.0: + version "8.11.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" + integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + ajv@^8.1.0: version "8.6.3" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.3.tgz#11a66527761dc3e9a3845ea775d2d3c0414e8764" @@ -2933,13 +3308,18 @@ ajv@^8.1.0: require-from-string "^2.0.2" uri-js "^4.2.2" -ansi-align@^3.0.0: +ansi-align@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== dependencies: string-width "^4.1.0" +ansi-colors@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" @@ -2947,10 +3327,12 @@ ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: dependencies: type-fest "^0.21.3" -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= +ansi-escapes@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-5.0.0.tgz#b6a0caf0eef0c41af190e9a749e0c00ec04bb2a6" + integrity sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA== + dependencies: + type-fest "^1.0.2" ansi-regex@^5.0.1: version "5.0.1" @@ -2981,7 +3363,7 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -ansi-styles@^6.0.0: +ansi-styles@^6.0.0, ansi-styles@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.1.0.tgz#87313c102b8118abd57371afab34618bf7350ed3" integrity sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ== @@ -3032,31 +3414,14 @@ apollo-client@2.6.10: tslib "^1.10.0" zen-observable "^0.8.0" -apollo-datasource@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/apollo-datasource/-/apollo-datasource-3.2.0.tgz#fe2fbaae7be0ee10deafa5c3f31732e368a564a1" - integrity sha512-2PK+p6dRFuQQM8F4JbBivGetnJxvb8ggQkY7XLeCSl4qVkBeBjX+mRtsiudk28NUTH3JEll7AgmKj2fHfxYpGQ== - dependencies: - apollo-server-caching "^3.2.0" - apollo-server-env "^4.1.0" - -apollo-datasource@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/apollo-datasource/-/apollo-datasource-3.3.1.tgz#a1168dd68371930de3ed4245ad12fa8600efe2cc" - integrity sha512-Z3a8rEUXVPIZ1p8xrFL8bcNhWmhOmovgDArvwIwmJOBnh093ZpRfO+ESJEDAN4KswmyzCLDAwjsW4zQOONdRUw== +apollo-datasource@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/apollo-datasource/-/apollo-datasource-3.3.2.tgz#5711f8b38d4b7b53fb788cb4dbd4a6a526ea74c8" + integrity sha512-L5TiS8E2Hn/Yz7SSnWIVbZw0ZfEIXZCa5VUiVxD9P53JvSrf4aStvsFDlGWPvpIdCR+aly2CfoB79B9/JjKFqg== dependencies: - apollo-server-caching "^3.3.0" + "@apollo/utils.keyvaluecache" "^1.0.1" apollo-server-env "^4.2.1" -apollo-graphql@^0.9.0: - version "0.9.5" - resolved "https://registry.yarnpkg.com/apollo-graphql/-/apollo-graphql-0.9.5.tgz#9113483ca7f7fa49ee9e9a299c45d30b1cf3bf61" - integrity sha512-RGt5k2JeBqrmnwRM0VOgWFiGKlGJMfmiif/4JvdaEqhMJ+xqe/9cfDYzXfn33ke2eWixsAbjEbRfy8XbaN9nTw== - dependencies: - core-js-pure "^3.10.2" - lodash.sortby "^4.7.0" - sha.js "^2.4.11" - apollo-link-ws@1.0.20: version "1.0.20" resolved "https://registry.yarnpkg.com/apollo-link-ws/-/apollo-link-ws-1.0.20.tgz#dfad44121f8445c6d7b7f8101a1b24813ba008ed" @@ -3089,25 +3454,26 @@ apollo-reporting-protobuf@^3.3.1: dependencies: "@apollo/protobufjs" "1.2.2" -"apollo-server-caching@^0.7.0 || ^3.0.0", apollo-server-caching@^3.2.0: +apollo-reporting-protobuf@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/apollo-reporting-protobuf/-/apollo-reporting-protobuf-3.3.3.tgz#df2b7ff73422cd682af3f1805d32301aefdd9e89" + integrity sha512-L3+DdClhLMaRZWVmMbBcwl4Ic77CnEBPXLW53F7hkYhkaZD88ivbCVB1w/x5gunO6ZHrdzhjq0FHmTsBvPo7aQ== + dependencies: + "@apollo/protobufjs" "1.2.6" + +apollo-server-caching@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/apollo-server-caching/-/apollo-server-caching-3.2.0.tgz#368bc3288cfc2dab8de900d045dbd66cf457f3f3" integrity sha512-kR92WjoQVe1Z/EXyh365w6Vz8egkRCKmd3mE7KJvKgk+f0+AGO1LPPrez5IhbCXxAgChqzpHhq2FIyfOqEuLFQ== dependencies: lru-cache "^6.0.0" -apollo-server-caching@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/apollo-server-caching/-/apollo-server-caching-3.3.0.tgz#f501cbeb820a4201d98c2b768c085f22848d9dc5" - integrity sha512-Wgcb0ArjZ5DjQ7ID+tvxUcZ7Yxdbk5l1MxZL8D8gkyjooOkhPNzjRVQ7ubPoXqO54PrOMOTm1ejVhsF+AfIirQ== - dependencies: - lru-cache "^6.0.0" - -apollo-server-core@3.8.1, apollo-server-core@^3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-3.8.1.tgz#51baba3a1073ad7aa950ffbfc5e3bbb5740d013c" - integrity sha512-7A6F+HWmz/1gIW/MvE/0yq/UwrYG/dQCyfk2areoWkvSmg86oV2umuvlnEvTbLE2LiJHBoDP4T+PIqv6pnlLGw== +apollo-server-core@3.10.3, apollo-server-core@^3.10.3: + version "3.10.3" + resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-3.10.3.tgz#64db45703785e9e79e7c5dadb6df2f7ee6fcbecc" + integrity sha512-PiTirlcaszgnJGzSsGui9XWh0KAh0BUW+GvRKN6O0H0qOSXSLmoqqyL83J+u+HaUZGyyiE0+VOkyCcuF+kKbEw== dependencies: + "@apollo/utils.keyvaluecache" "^1.0.1" "@apollo/utils.logger" "^1.0.0" "@apollo/utils.usagereporting" "^1.0.0" "@apollographql/apollo-tools" "^0.5.3" @@ -3115,49 +3481,21 @@ apollo-server-core@3.8.1, apollo-server-core@^3.8.1: "@graphql-tools/mock" "^8.1.2" "@graphql-tools/schema" "^8.0.0" "@josephg/resolvable" "^1.0.0" - apollo-datasource "^3.3.1" - apollo-reporting-protobuf "^3.3.1" - apollo-server-caching "^3.3.0" + apollo-datasource "^3.3.2" + apollo-reporting-protobuf "^3.3.3" apollo-server-env "^4.2.1" apollo-server-errors "^3.3.1" - apollo-server-plugin-base "^3.6.0" - apollo-server-types "^3.6.0" + apollo-server-plugin-base "^3.6.3" + apollo-server-types "^3.6.3" async-retry "^1.2.1" fast-json-stable-stringify "^2.1.0" graphql-tag "^2.11.0" loglevel "^1.6.8" lru-cache "^6.0.0" sha.js "^2.4.11" - uuid "^8.0.0" + uuid "^9.0.0" whatwg-mimetype "^3.0.0" -"apollo-server-core@^2.23.0 || ^3.0.0": - version "3.4.1" - resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-3.4.1.tgz#284287a17502318796ea8308522abb27bc37a955" - integrity sha512-v1mX3ijrIPbg6iAySw+uXgTW03cxVAZkyKhvPVWAD5yzXTqmPlVnonHJyoCq/P8B0v6sIjufnIqclHuq5/D/Xw== - dependencies: - "@apollographql/apollo-tools" "^0.5.1" - "@apollographql/graphql-playground-html" "1.6.29" - "@graphql-tools/mock" "^8.1.2" - "@graphql-tools/schema" "^8.0.0" - "@graphql-tools/utils" "^8.0.0" - "@josephg/resolvable" "^1.0.0" - apollo-datasource "^3.2.0" - apollo-graphql "^0.9.0" - apollo-reporting-protobuf "^3.1.0" - apollo-server-caching "^3.2.0" - apollo-server-env "^4.1.0" - apollo-server-errors "^3.2.0" - apollo-server-plugin-base "^3.3.0" - apollo-server-types "^3.3.0" - async-retry "^1.2.1" - fast-json-stable-stringify "^2.1.0" - graphql-tag "^2.11.0" - loglevel "^1.6.8" - lru-cache "^6.0.0" - sha.js "^2.4.11" - uuid "^8.0.0" - apollo-server-env@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/apollo-server-env/-/apollo-server-env-4.1.0.tgz#20b69216d87b4e73166b28d2675e72823655fe75" @@ -3172,67 +3510,55 @@ apollo-server-env@^4.2.1: dependencies: node-fetch "^2.6.7" -"apollo-server-errors@^2.5.0 || ^3.0.0", apollo-server-errors@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-3.2.0.tgz#6c5051107b073c09bb55c2554878af0e97d59d08" - integrity sha512-Y7YH3JVAaR1199ao4dae3j1UrF9D/6AJwHpsORTjI3BvrwjU1X7Nk1VvEHn9bZfZF6ONaqUM+uCLm5c8GPhffQ== - apollo-server-errors@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz#ba5c00cdaa33d4cbd09779f8cb6f47475d1cd655" integrity sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA== -apollo-server-express@3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-3.8.1.tgz#79a979c60a6e6d49ae5396c13aeb467389831500" - integrity sha512-58QJFFbLoBfQ3SOp+0PHOqJWVxHf2WzjB3DU2MlVxHi/CfrDbjf7EYjuWTtuvIuzuoEG6kAWLGn2zEDlLmXk1A== +apollo-server-express@3.10.3: + version "3.10.3" + resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-3.10.3.tgz#946b857c7d8516235a757e853966dd1189f247e1" + integrity sha512-Z8m0r10mX8KlGS3noYeRPcWxWR2hX6NHJicjuwZ62PeTZlrDJF5cwGmXqbUg/sCTPx7Ny//ZEASBTwFFp8DOeQ== dependencies: "@types/accepts" "^1.3.5" "@types/body-parser" "1.19.2" "@types/cors" "2.8.12" - "@types/express" "4.17.13" - "@types/express-serve-static-core" "4.17.28" + "@types/express" "4.17.14" + "@types/express-serve-static-core" "4.17.31" accepts "^1.3.5" - apollo-server-core "^3.8.1" - apollo-server-types "^3.6.0" + apollo-server-core "^3.10.3" + apollo-server-types "^3.6.3" body-parser "^1.19.0" cors "^2.8.5" parseurl "^1.3.3" -apollo-server-fastify@3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/apollo-server-fastify/-/apollo-server-fastify-3.8.1.tgz#c4b4dcaee9b7d0a241aac3892b66e71a049cebad" - integrity sha512-2yMGVUBzRd0q4+WmiJyqIVRrAwe4GSPDqExNCM/Nz2nWH9VeHJ2Ak5UiZnr5EQWumodTybrL+9sw489yi8osuQ== +apollo-server-fastify@3.10.3: + version "3.10.3" + resolved "https://registry.yarnpkg.com/apollo-server-fastify/-/apollo-server-fastify-3.10.3.tgz#8a066287934572a0eeaabea89a4608a0200783b4" + integrity sha512-cCcoDM/PaXWPRGjZvvU3JEipoDs24lB/QKMA0jiWpo5yfseRN6VygFKMdiQuo8RJEtpzQ6A5L8omQkhs6reDNw== dependencies: "@fastify/accepts" "^3.0.0" "@fastify/cors" "^7.0.0" - apollo-server-core "^3.8.1" - apollo-server-types "^3.6.0" + apollo-server-core "^3.10.3" + apollo-server-types "^3.6.3" -apollo-server-plugin-base@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/apollo-server-plugin-base/-/apollo-server-plugin-base-3.3.0.tgz#7615cc763848c33099ed4ac8dd5134fbf94df97c" - integrity sha512-4a4KpePhoU9FAIN2YjWm1Cfl7Y3AyRXLH8ZncSRCDcQFWww8gc/ZGqWZ+udRo4ejKvzLjnTwVyxfrd80sf9sHw== - dependencies: - apollo-server-types "^3.3.0" - -apollo-server-plugin-base@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/apollo-server-plugin-base/-/apollo-server-plugin-base-3.6.0.tgz#f85e19fa4a33866ef1b4235077397a63a9a7343e" - integrity sha512-GtXhczRGpTLQyFPWeWSnX1VcN2JaaAU7WT8PzoTQuJKYJ/Aj5mPebHbfG+PXQlDmI8IgyCKf7B1HIRnJqvAZbg== +apollo-server-plugin-base@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/apollo-server-plugin-base/-/apollo-server-plugin-base-3.6.3.tgz#7eaf24af19641ddccf37307f294aba6877bf4c86" + integrity sha512-/Q0Zx8N8La97faKV0siGHDzfZ56ygN6ovtUpPbr+1GIbNmUzkte3lWW2YV08HmxiRmC2i2OGN80exNJEvbKvNA== dependencies: - apollo-server-types "^3.6.0" + apollo-server-types "^3.6.3" -apollo-server-plugin-response-cache@3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/apollo-server-plugin-response-cache/-/apollo-server-plugin-response-cache-3.6.0.tgz#dbe97d20adf64e97159f62827ba01159eea8e317" - integrity sha512-rpoTR69BJ//e/QrwKZMJ3ElnYu9DqmN74r/eCa99Hc/IXnx7DmO0kT+n5A6TjyFrE00899Doe7z4htyRSoHN3Q== +apollo-server-plugin-response-cache@3.7.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/apollo-server-plugin-response-cache/-/apollo-server-plugin-response-cache-3.7.1.tgz#ee48637ff487880d97fb7311838e6e9eea01233e" + integrity sha512-3FHwwySf1kQl8dGC+2E08LtDeFGUOeqckLchAD1REYx1vwMZbGhmEIwaNezjXwxkTM5Y7l38n0vQTka6YoQN7w== dependencies: - apollo-server-caching "^3.3.0" - apollo-server-plugin-base "^3.6.0" - apollo-server-types "^3.6.0" + "@apollo/utils.keyvaluecache" "^1.0.1" + apollo-server-plugin-base "^3.6.3" + apollo-server-types "^3.6.3" -"apollo-server-types@^0.9.0 || ^3.0.0", apollo-server-types@^3.0.2, apollo-server-types@^3.3.0: +apollo-server-types@^3.0.2: version "3.3.0" resolved "https://registry.yarnpkg.com/apollo-server-types/-/apollo-server-types-3.3.0.tgz#20448e2c88e2045764a5fe82ab66069e79c4a834" integrity sha512-m+GyuXyuZ7YdZO1NIMJdJoOKsocCPx/WRVzBjDegYxNcAa/lDvNYU3hFyX87UGXt8Xsd9VIHxdhO88S6jkgCmw== @@ -3241,14 +3567,14 @@ apollo-server-plugin-response-cache@3.6.0: apollo-server-caching "^3.2.0" apollo-server-env "^4.1.0" -apollo-server-types@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/apollo-server-types/-/apollo-server-types-3.6.0.tgz#29fd8369aad99d42f72b760eb12bfe2c888da901" - integrity sha512-zISCkwXvwTHK2AysWSfLAUvDLSDJ0xj8pnfxDv34hqA+G9JqsLbykJdSL1Y1kT53HU4RWF6ymTuTwwOmmBiAWA== +apollo-server-types@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/apollo-server-types/-/apollo-server-types-3.6.3.tgz#7818cab914c865dafa53ea263ca6cb1854b4f05a" + integrity sha512-+7caNTLdevpWI2dGKSa7CWdyudO3NBuJ3HzcrYxjBei6Bth9YdRUNzPSFmBjlm2baHF0GsrMwLpjO+HStJzm3A== dependencies: + "@apollo/utils.keyvaluecache" "^1.0.1" "@apollo/utils.logger" "^1.0.0" - apollo-reporting-protobuf "^3.3.1" - apollo-server-caching "^3.3.0" + apollo-reporting-protobuf "^3.3.3" apollo-server-env "^4.2.1" apollo-utilities@1.3.4, apollo-utilities@^1.3.0, apollo-utilities@^1.3.4: @@ -3266,11 +3592,6 @@ append-field@^1.0.0: resolved "https://registry.yarnpkg.com/append-field/-/append-field-1.0.0.tgz#1e3440e915f0b1203d23748e78edd7b9b5b43e56" integrity sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY= -aproba@^1.0.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - "aproba@^1.0.3 || ^2.0.0", aproba@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" @@ -3289,14 +3610,6 @@ are-we-there-yet@^3.0.0: delegates "^1.0.0" readable-stream "^3.6.0" -are-we-there-yet@~1.1.2: - version "1.1.7" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" - integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - arg@^4.1.0: version "4.1.3" resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" @@ -3399,6 +3712,11 @@ async-retry@1.3.3, async-retry@^1.2.1, async-retry@^1.3.3: 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" @@ -3429,6 +3747,15 @@ avvio@^7.1.2: fastq "^1.6.1" queue-microtask "^1.1.2" +avvio@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/avvio/-/avvio-8.2.0.tgz#aff28b0266617bf07ffc1c2d5f4220c3663ce1c2" + integrity sha512-bbCQdg7bpEv6kGH41RO/3B2/GMMmJSo2iBK+X8AWN9mujtfUipMDfIjsgHCfpnKqoGEQrrmCDKSa5OQ19+fDmg== + dependencies: + archy "^1.0.0" + debug "^4.0.0" + fastq "^1.6.1" + axios@0.27.2: version "0.27.2" resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" @@ -3437,15 +3764,24 @@ axios@0.27.2: follow-redirects "^1.14.9" form-data "^4.0.0" -babel-jest@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.1.0.tgz#95a67f8e2e7c0042e7b3ad3951b8af41a533b5ea" - integrity sha512-zNKk0yhDZ6QUwfxh9k07GII6siNGMJWVUU49gmFj5gfdqDKLqa2RArXOF2CODp4Dr7dLxN2cvAV+667dGJ4b4w== +axios@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.1.2.tgz#8b6f6c540abf44ab98d9904e8daf55351ca4a331" + integrity sha512-bznQyETwElsXl2RK7HLLwb5GPpOLlycxHCtrpDR/4RqqBzjARaOTo3jz4IgtntWUYee7Ne4S8UHd92VCuzPaWA== + dependencies: + follow-redirects "^1.15.0" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +babel-jest@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.2.2.tgz#2c15abd8c2081293c9c3f4f80a4ed1d51542fee5" + integrity sha512-kkq2QSDIuvpgfoac3WZ1OOcHsQQDU5xYk2Ql7tLdJ8BVAYbefEXal+NfS45Y5LVZA7cxC8KYcQMObpCt1J025w== dependencies: - "@jest/transform" "^28.1.0" + "@jest/transform" "^29.2.2" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^28.0.2" + babel-preset-jest "^29.2.0" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -3461,10 +3797,10 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.0.2.tgz#9307d03a633be6fc4b1a6bc5c3a87e22bd01dd3b" - integrity sha512-Kizhn/ZL+68ZQHxSnHyuvJv8IchXD62KQxV77TBDV/xoBFBOfgRAk97GNs6hXdTTCiVES9nB2I6+7MXXrk5llQ== +babel-plugin-jest-hoist@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.2.0.tgz#23ee99c37390a98cfddf3ef4a78674180d823094" + integrity sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -3489,12 +3825,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-28.0.2.tgz#d8210fe4e46c1017e9fa13d7794b166e93aa9f89" - integrity sha512-sYzXIdgIXXroJTFeB3S6sNDWtlJ2dllCdTEsnZ65ACrMojj3hVNFRmnJ1HZtomGi+Be7aqpY/HJ92fr8OhKVkQ== +babel-preset-jest@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.2.0.tgz#3048bea3a1af222e3505e4a767a974c95a7620dc" + integrity sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA== dependencies: - babel-plugin-jest-hoist "^28.0.2" + babel-plugin-jest-hoist "^29.2.0" babel-preset-current-node-syntax "^1.0.0" backo2@^1.0.2: @@ -3534,7 +3870,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== @@ -3586,19 +3922,19 @@ body-parser@^1.19.0: raw-body "2.4.0" type-is "~1.6.17" -boxen@^5.0.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" - integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== - dependencies: - ansi-align "^3.0.0" - camelcase "^6.2.0" - chalk "^4.1.0" - cli-boxes "^2.2.1" - string-width "^4.2.2" - type-fest "^0.20.2" - widest-line "^3.1.0" - wrap-ansi "^7.0.0" +boxen@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-7.0.0.tgz#9e5f8c26e716793fc96edcf7cf754cdf5e3fbf32" + integrity sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg== + dependencies: + ansi-align "^3.0.1" + camelcase "^7.0.0" + chalk "^5.0.1" + cli-boxes "^3.0.0" + string-width "^5.1.2" + type-fest "^2.13.0" + widest-line "^4.0.1" + wrap-ansi "^8.0.1" brace-expansion@^1.1.7: version "1.1.11" @@ -3691,13 +4027,12 @@ builtins@^5.0.0: dependencies: semver "^7.0.0" -busboy@^0.2.11: - version "0.2.14" - resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453" - integrity sha1-bCpiLvz0fFe7vh4qnDetNseSVFM= +busboy@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== dependencies: - dicer "0.2.5" - readable-stream "1.1.x" + streamsearch "^1.1.0" byte-size@^7.0.0: version "7.0.1" @@ -3714,7 +4049,7 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -cacache@^15.0.5, cacache@^15.2.0: +cacache@^15.2.0: version "15.3.0" resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== @@ -3767,18 +4102,23 @@ cacheable-lookup@^6.0.4: resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-6.0.4.tgz#65c0e51721bb7f9f2cb513aed6da4a1b93ad7dc8" integrity sha512-mbcDEZCkv2CZF4G01kr8eBd/5agkt9oCqz75tJMSIsquvRZ2sL6Hi5zGVKi/0OSC9oO1GHfJ2AV0ZIOY9vye0A== -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== +cacheable-lookup@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz#3476a8215d046e5a3202a9209dd13fec1f933a27" + integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== + +cacheable-request@^10.2.1: + version "10.2.1" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-10.2.1.tgz#cbc7480bf057fb7bd5bc7520f7e5a43d9c865626" + integrity sha512-3tLJyBjGuXw1s5gpKFSG3iS4kaKT4id04dZi98wzHQp/8cqZNweBnrF9J+rrlvrf4M53OdtDGNctNHFias8BEA== dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^1.0.2" + "@types/http-cache-semantics" "^4.0.1" + get-stream "^6.0.1" + http-cache-semantics "^4.1.0" + keyv "^4.5.0" + mimic-response "^4.0.0" + normalize-url "^7.1.0" + responselike "^3.0.0" cacheable-request@^7.0.2: version "7.0.2" @@ -3825,6 +4165,11 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== +camelcase@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-7.0.0.tgz#fd112621b212126741f998d614cbc2a8623fd174" + integrity sha512-JToIvOmz6nhGsUhAYScbo2d6Py5wojjNfoxoc2mEVLUdJ70gJK2gnd+ABY1Tc3sVMyK7QDPtN0T/XdlCQWITyQ== + caniuse-lite@^1.0.30001274: version "1.0.30001278" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001278.tgz#51cafc858df77d966b17f59b5839250b24417fff" @@ -3835,7 +4180,15 @@ caniuse-lite@^1.0.30001286: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001301.tgz#ebc9086026534cab0dab99425d9c3b4425e5f450" integrity sha512-csfD/GpHMqgEL3V3uIgosvh+SVIQvCh43SNu9HRbP1lnxkKm1kjDG4f32PP571JplkLjfS+mg2p1gxR7MYrrIA== -chalk@5.0.1, chalk@^5.0.0: +chalk@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@5.0.1, chalk@^5.0.0, chalk@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.0.1.tgz#ca57d71e82bb534a296df63bbacc4a1c22b2a4b6" integrity sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w== @@ -3849,7 +4202,7 @@ chalk@^2.0.0: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: +chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -3867,7 +4220,7 @@ chardet@^0.7.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -chokidar@3.5.3: +chokidar@3.5.3, chokidar@^3.5.1: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -3920,12 +4273,12 @@ clean-stack@^2.0.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" - integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== +cli-boxes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-3.0.0.tgz#71a10c716feeba005e4504f36329ef0b17cf3145" + integrity sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g== -cli-cursor@^3.1.0: +cli-cursor@3.1.0, cli-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== @@ -3951,7 +4304,7 @@ cli-highlight@^2.1.11: parse5-htmlparser2-tree-adapter "^6.0.0" yargs "^16.0.0" -cli-spinners@^2.5.0, cli-spinners@^2.6.1: +cli-spinners@2.6.1, cli-spinners@^2.5.0, cli-spinners@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== @@ -3977,6 +4330,11 @@ cli-width@^3.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== +cli-width@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.0.0.tgz#a5622f6a3b0a9e3e711a25f099bf2399f608caf6" + integrity sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw== + cliui@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -4007,13 +4365,6 @@ clone@^1.0.2: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= -cmd-shim@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-4.1.0.tgz#b3a904a6743e9fede4148c6f3800bf2a08135bdd" - integrity sha512-lb9L7EM4I/ZRVuljLPEtUJOP+xiQVknZ4ZMpMgEp4JzNldPb27HU03hi6K1/6CoIuit/Zm/LQXySErFeXxDprw== - dependencies: - mkdirp-infer-owner "^2.0.0" - cmd-shim@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-5.0.0.tgz#8d0aaa1a6b0708630694c4dbde070ed94c707724" @@ -4026,17 +4377,10 @@ co@^4.6.0: resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= -code-block-writer@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-11.0.0.tgz#5956fb186617f6740e2c3257757fea79315dd7d4" - integrity sha512-GEqWvEWWsOvER+g9keO4ohFoD3ymwyCnqY3hoTr7GZipYFwEhMHJw+TtV0rfgRhNImM6QWZGO2XYjlJVyYT62w== - dependencies: - tslib "2.3.1" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= +code-block-writer@^11.0.3: + version "11.0.3" + resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-11.0.3.tgz#9eec2993edfb79bfae845fbc093758c0a0b73b76" + integrity sha512-NiujjUFB4SwScJq2bwbYUtXbZhBSlY6vYzm++3Q6oC+U+injTqfPYFK8wS9COOmb2lueqp0ZRB4nK1VYeHgNyw== collect-v8-coverage@^1.0.0: version "1.0.1" @@ -4077,12 +4421,17 @@ colorette@^2.0.16: resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== -columnify@^1.5.4: - version "1.5.4" - resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" - integrity sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs= +colorette@^2.0.17: + version "2.0.17" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.17.tgz#5dd4c0d15e2984b7433cb4a9f2ead45063b80c47" + integrity sha512-hJo+3Bkn0NCHybn9Tu35fIeoOKGOk5OCC32y4Hz2It+qlCO2Q3DeQ1hRn/tDDMQKRYUEzqsl7jbF6dYKjlE60g== + +columnify@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.6.0.tgz#6989531713c9008bb29735e61e37acf5bd553cf3" + integrity sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q== dependencies: - strip-ansi "^3.0.0" + strip-ansi "^6.0.1" wcwidth "^1.0.0" combined-stream@^1.0.6, combined-stream@^1.0.8: @@ -4153,7 +4502,7 @@ concat-stream@^2.0.0: readable-stream "^3.0.2" typedarray "^0.0.6" -config-chain@^1.1.12: +config-chain@^1.1.11, config-chain@^1.1.12: version "1.1.13" resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== @@ -4161,24 +4510,23 @@ config-chain@^1.1.12: ini "^1.3.4" proto-list "~1.2.1" -configstore@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" - integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== +configstore@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-6.0.0.tgz#49eca2ebc80983f77e09394a1a56e0aca8235566" + integrity sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA== dependencies: - dot-prop "^5.2.0" - graceful-fs "^4.1.2" - make-dir "^3.0.0" - unique-string "^2.0.0" - write-file-atomic "^3.0.0" - xdg-basedir "^4.0.0" + dot-prop "^6.0.1" + graceful-fs "^4.2.6" + unique-string "^3.0.0" + write-file-atomic "^3.0.3" + xdg-basedir "^5.0.1" consola@^2.15.0: version "2.15.3" resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550" integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw== -console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: +console-control-strings@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= @@ -4210,7 +4558,7 @@ conventional-changelog-angular@^5.0.11, conventional-changelog-angular@^5.0.12: compare-func "^2.0.0" q "^1.5.1" -conventional-changelog-core@^4.2.2: +conventional-changelog-core@^4.2.4: version "4.2.4" resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz#e50d047e8ebacf63fac3dc67bf918177001e1e9f" integrity sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg== @@ -4306,21 +4654,11 @@ cookie@^0.4.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== -cookie@^0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" - integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== - cookiejar@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.3.tgz#fc7a6216e408e74414b90230050842dacda75acc" integrity sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ== -core-js-pure@^3.10.2: - version "3.19.1" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.19.1.tgz#edffc1fc7634000a55ba05e95b3f0fe9587a5aa4" - integrity sha512-Q0Knr8Es84vtv62ei6/6jXH/7izKmOrtrxH9WJTHLCMAVeU+8TF8z8Nr08CsH4Ot0oJKzBzJJL9SJBYIv7WlfQ== - core-util-is@~1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" @@ -4334,15 +4672,12 @@ cors@2.8.5, cors@^2.8.5: object-assign "^4" vary "^1" -cosmiconfig-typescript-loader@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-2.0.0.tgz#bc4f5bfcaa11a353714ecdef00c4f2226ef191b8" - integrity sha512-2NlGul/E3vTQEANqPziqkA01vfiuUU8vT0jZAuUIjEW8u3eCcnCQWLggapCjhbF76s7KQF0fM0kXSKmzaDaG1g== - dependencies: - cosmiconfig "^7" - ts-node "^10.7.0" +cosmiconfig-typescript-loader@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.0.0.tgz#4a6d856c1281135197346a6f64dfa73a9cd9fefa" + integrity sha512-cVpucSc2Tf+VPwCCR7SZzmQTQkPbkk4O01yXsYqXBIbjE1bhwqSyAgYQkRK1un4i0OPziTleqFhdkmOc4RQ/9g== -cosmiconfig@7.0.1, cosmiconfig@^7, cosmiconfig@^7.0.0: +cosmiconfig@7.0.1, cosmiconfig@^7.0.0: version "7.0.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== @@ -4367,10 +4702,12 @@ 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== +crypto-random-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-4.0.0.tgz#5a3cc53d7dd86183df5da0312816ceeeb5bb1fc2" + integrity sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA== + dependencies: + type-fest "^1.0.1" cssfilter@0.0.10: version "0.0.10" @@ -4387,6 +4724,11 @@ data-uri-to-buffer@3, data-uri-to-buffer@^3.0.1: resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636" integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og== +data-uri-to-buffer@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz#b5db46aea50f6176428ac05b73be39a57701a64b" + integrity sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA== + dateformat@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" @@ -4445,18 +4787,6 @@ decamelize@^1.1.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" - decompress-response@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" @@ -4512,11 +4842,6 @@ defaults@^1.0.3: dependencies: clone "^1.0.2" -defer-to-connect@^1.0.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" - integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== - defer-to-connect@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" @@ -4602,23 +4927,15 @@ dezalgo@1.0.3, dezalgo@^1.0.0: asap "^2.0.0" wrappy "1" -dicer@0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f" - integrity sha1-WZbAhrszIYyBLAkL3cCc0S+stw8= - dependencies: - readable-stream "1.1.x" - streamsearch "0.1.2" - -diff-sequences@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" - integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== +diff-sequences@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.0.0.tgz#bae49972ef3933556bcb0800b72e8579d19d9e4f" + integrity sha512-7Qe/zd1wxSDL4D/X/FPjOMB+ZMDt71W94KYaq05I2l0oQqgXgs7s4ftYYmV38gBSrPz2vcygxfs1xn0FT+rKNA== -diff-sequences@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.0.2.tgz#40f8d4ffa081acbd8902ba35c798458d0ff1af41" - integrity sha512-YtEoNynLDFCRznv/XDalsKGSZDoj0U5kLnXvY0JSq3nBboRrZXjD81+eSiwi+nzcZDwedMmcowcxNwwgFW23mQ== +diff-sequences@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.2.0.tgz#4c55b5b40706c7b5d2c5c75999a50c56d214e8f6" + integrity sha512-413SY5JpYeSBZxmenGEmCVQ8mCgtFJF0w9PROdaS6z987XC2Pd2GOKqOITLtMftmyFZqgtCOb/QA7/Z3ZXfzIw== diff@^4.0.1: version "4.0.2" @@ -4646,7 +4963,7 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dot-prop@^5.1.0, dot-prop@^5.2.0: +dot-prop@^5.1.0: version "5.3.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== @@ -4660,21 +4977,33 @@ dot-prop@^6.0.1: dependencies: is-obj "^2.0.0" -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= +dotenv@~10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" + integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== duplexer@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= +ejs@^3.1.7: + version "3.1.8" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.8.tgz#758d32910c78047585c7ef1f92f9ee041c1c190b" + integrity sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ== + dependencies: + jake "^10.8.5" + electron-to-chromium@^1.3.886: version "1.3.889" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.889.tgz#0b7c6f7628559592d5406deda281788f37107790" @@ -4685,10 +5014,10 @@ electron-to-chromium@^1.4.17: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.52.tgz#ce44c6d6cc449e7688a4356b8c261cfeafa26833" integrity sha512-JGkh8HEh5PnVrhU4HbpyyO0O791dVY6k7AdqfDeqbcRMeoGxtNHWT77deR2nhvbLe4dKpxjlDEvdEwrvRLGu2Q== -emittery@^0.10.2: - version "0.10.2" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.2.tgz#902eec8aedb8c41938c46e9385e9db7e03182933" - integrity sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw== +emittery@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" + integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== emoji-regex@^8.0.0: version "8.0.0" @@ -4717,13 +5046,20 @@ encoding@^0.1.12, encoding@^0.1.13: dependencies: iconv-lite "^0.6.2" -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== dependencies: once "^1.4.0" +enquirer@~2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + env-paths@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" @@ -4805,10 +5141,10 @@ escalade@^3.1.1: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== -escape-goat@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" - integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== +escape-goat@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-4.0.0.tgz#9424820331b510b0666b98f7873fe11ac4aa8081" + integrity sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg== escape-html@~1.0.3: version "1.0.3" @@ -4830,6 +5166,11 @@ escape-string-regexp@^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@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== + escodegen@^1.8.1: version "1.14.3" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" @@ -4882,10 +5223,10 @@ eslint-plugin-import@2.26.0: resolve "^1.22.0" tsconfig-paths "^3.14.1" -eslint-plugin-prettier@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz#8b99d1e4b8b24a762472b4567992023619cb98e0" - integrity sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ== +eslint-plugin-prettier@4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" + integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== dependencies: prettier-linter-helpers "^1.0.0" @@ -4922,13 +5263,15 @@ eslint-visitor-keys@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@8.16.0: - version "8.16.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.16.0.tgz#6d936e2d524599f2a86c708483b4c372c5d3bbae" - integrity sha512-MBndsoXY/PeVTDJeWsYj7kLZ5hQpJOfMYLsF6LicLHQWbRDG19lK5jOix4DPl8yY4SUFcE3txy86OzFLWT+yoA== +eslint@8.26.0: + version "8.26.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.26.0.tgz#2bcc8836e6c424c4ac26a5674a70d44d84f2181d" + integrity sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg== dependencies: - "@eslint/eslintrc" "^1.3.0" - "@humanwhocodes/config-array" "^0.9.2" + "@eslint/eslintrc" "^1.3.3" + "@humanwhocodes/config-array" "^0.11.6" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -4938,18 +5281,21 @@ eslint@8.16.0: eslint-scope "^7.1.1" eslint-utils "^3.0.0" eslint-visitor-keys "^3.3.0" - espree "^9.3.2" + espree "^9.4.0" esquery "^1.4.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" globals "^13.15.0" + grapheme-splitter "^1.0.4" ignore "^5.2.0" import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-sdsl "^4.1.4" js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" @@ -4961,14 +5307,13 @@ eslint@8.16.0: strip-ansi "^6.0.1" strip-json-comments "^3.1.0" text-table "^0.2.0" - v8-compile-cache "^2.0.3" -espree@^9.3.2: - version "9.3.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.2.tgz#f58f77bd334731182801ced3380a8cc859091596" - integrity sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA== +espree@^9.4.0: + version "9.4.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.0.tgz#cd4bc3d6e9336c433265fc0aa016fc1aaf182f8a" + integrity sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw== dependencies: - acorn "^8.7.1" + acorn "^8.8.0" acorn-jsx "^5.3.2" eslint-visitor-keys "^3.3.0" @@ -4977,7 +5322,7 @@ esprima@^4.0.0, esprima@^4.0.1: resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.4.0: +esquery@^1.0.1, esquery@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== @@ -5011,6 +5356,11 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + eventemitter3@^3.1.0: version "3.1.2" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" @@ -5061,16 +5411,27 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= -expect@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-28.1.0.tgz#10e8da64c0850eb8c39a480199f14537f46e8360" - integrity sha512-qFXKl8Pmxk8TBGfaFKRtcQjfXEnKAs+dmlxdwvukJZorwrAabT7M3h8oLOG01I2utEhkmUTi17CHaPBovZsKdw== +expect@^29.0.0: + version "29.0.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.0.1.tgz#a2fa64a59cffe4b4007877e730bc82be3d1742bb" + integrity sha512-yQgemsjLU+1S8t2A7pXT3Sn/v5/37LY8J+tocWtKEA0iEYYc6gfKbbJJX2fxHZmd7K9WpdbQqXUpmYkq1aewYg== + dependencies: + "@jest/expect-utils" "^29.0.1" + jest-get-type "^29.0.0" + jest-matcher-utils "^29.0.1" + jest-message-util "^29.0.1" + jest-util "^29.0.1" + +expect@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.2.2.tgz#ba2dd0d7e818727710324a6e7f13dd0e6d086106" + integrity sha512-hE09QerxZ5wXiOhqkXy5d2G9ar+EqOyifnCXCpMNu+vZ6DG9TJ6CO2c2kPDSLqERTTWrO7OZj8EkYHQqSd78Yw== dependencies: - "@jest/expect-utils" "^28.1.0" - jest-get-type "^28.0.2" - jest-matcher-utils "^28.1.0" - jest-message-util "^28.1.0" - jest-util "^28.1.0" + "@jest/expect-utils" "^29.2.2" + jest-get-type "^29.2.0" + jest-matcher-utils "^29.2.2" + jest-message-util "^29.2.1" + jest-util "^29.2.1" express@4.18.1: version "4.18.1" @@ -5133,10 +5494,10 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== -fast-glob@3.2.11, fast-glob@^3.2.11, fast-glob@^3.2.9: - version "3.2.11" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" - integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== +fast-glob@3.2.12: + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -5144,7 +5505,7 @@ fast-glob@3.2.11, fast-glob@^3.2.11, fast-glob@^3.2.9: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.1.1: +fast-glob@3.2.7, fast-glob@^3.1.1: version "3.2.7" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== @@ -5155,6 +5516,17 @@ fast-glob@^3.1.1: merge2 "^1.3.0" micromatch "^4.0.4" +fast-glob@^3.2.11, fast-glob@^3.2.9: + version "3.2.11" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" + integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" @@ -5179,21 +5551,49 @@ fast-json-stringify@^2.5.2: rfdc "^1.2.0" string-similarity "^4.0.1" +fast-json-stringify@^5.0.0: + version "5.0.5" + resolved "https://registry.yarnpkg.com/fast-json-stringify/-/fast-json-stringify-5.0.5.tgz#9bcec65128303274600d95f74e4814e360346e68" + integrity sha512-NGXE7I6dBcSTM1pprcLEIQ6nHp424mDn8ABleM17Sp7XkyPLlbIDed41/VhUiqnLICX7XiOoFsNHx/nnJ8qhig== + dependencies: + ajv "^8.10.0" + ajv-formats "^2.1.1" + deepmerge "^4.2.2" + fast-uri "^2.1.0" + rfdc "^1.2.0" + fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= +fast-querystring@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-querystring/-/fast-querystring-1.0.0.tgz#d6151cd025d4b100e09e24045f6c35ae9ff191ef" + integrity sha512-3LQi62IhQoDlmt4ULCYmh17vRO2EtS7hTSsG4WwoKWgV7GLMKBOecEh+aiavASnLx8I2y89OD33AGLo0ccRhzA== + dependencies: + fast-decode-uri-component "^1.0.1" + fast-redact@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.0.2.tgz#c940ba7162dde3aeeefc522926ae8c5231412904" integrity sha512-YN+CYfCVRVMUZOUPeinHNKgytM1wPI/C/UCLEi56EsY2dwwvI00kIJHJoI7pMVqGoMew8SMZ2SSfHKHULHXDsg== +fast-redact@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.1.1.tgz#790fcff8f808c2e12fabbfb2be5cb2deda448fa0" + integrity sha512-odVmjC8x8jNeMZ3C+rPMESzXVSEU8tSWSHv9HFxP2mm89G/1WwqhrerJDQm9Zus8X6aoRgQDThKqptdNA6bt+A== + fast-safe-stringify@2.1.1, fast-safe-stringify@^2.0.8, fast-safe-stringify@^2.1.1: version "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-uri@^2.0.0, fast-uri@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-2.1.0.tgz#9279432d6b53675c90116b947ed2bbba582d6fb5" + integrity sha512-qKRta6N7BWEFVlyonVY/V+BMLgFqktCUV0QjT259ekAIlbVrMaFnFLxJ4s/JPl4tou56S1BzPufI60bLe29fHA== + "fastify-cors-deprecated@npm:fastify-cors@6.0.3": version "6.0.3" resolved "https://registry.yarnpkg.com/fastify-cors/-/fastify-cors-6.0.3.tgz#1907f92c3f855a18ef6fb6213186c73cf0bbf9e4" @@ -5210,11 +5610,6 @@ fastify-cors@6.1.0: fastify-cors-deprecated "npm:fastify-cors@6.0.3" process-warning "^1.0.0" -fastify-error@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/fastify-error/-/fastify-error-0.3.1.tgz#8eb993e15e3cf57f0357fc452af9290f1c1278d2" - integrity sha512-oCfpcsDndgnDVgiI7bwFKAun2dO+4h84vBlkWsWnz/OUK9Reff5UFoFl241xTiLeHWX/vU9zkDVXqYUxjOwHcQ== - "fastify-formbody-deprecated@npm:fastify-formbody@5.2.0": version "5.2.0" resolved "https://registry.yarnpkg.com/fastify-formbody/-/fastify-formbody-5.2.0.tgz#942f0847f106888cad419812590cfff7ffb61f92" @@ -5235,32 +5630,11 @@ fastify-plugin@^3.0.0: resolved "https://registry.yarnpkg.com/fastify-plugin/-/fastify-plugin-3.0.0.tgz#cf1b8c8098e3b5a7c8c30e6aeb06903370c054ca" integrity sha512-ZdCvKEEd92DNLps5n0v231Bha8bkz1DjnPP/aEz37rz/q42Z5JVLmgnqR4DYuNn3NXAO3IDCPyRvgvxtJ4Ym4w== -fastify-static@^4.2.2: - version "4.5.0" - resolved "https://registry.yarnpkg.com/fastify-static/-/fastify-static-4.5.0.tgz#0d3feff5373f5ed9c4e4cf31a2b84c2f70c35bb2" - integrity sha512-Q7Tgl55AjsmBwiO4hKYib2BUCt+XTWLJ6Xp8YPPHU3EsrKNpevJ4cz8pjf1Ey1QhHw9O8Y2FDKdu+IC74oHvqw== - dependencies: - content-disposition "^0.5.3" - encoding-negotiator "^2.0.1" - fastify-plugin "^3.0.0" - glob "^7.1.4" - p-limit "^3.1.0" - readable-stream "^3.4.0" - send "^0.17.1" - fastify-warning@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/fastify-warning/-/fastify-warning-0.2.0.tgz#e717776026a4493dc9a2befa44db6d17f618008f" integrity sha512-s1EQguBw/9qtc1p/WTY4eq9WMRIACkj+HTcOIK1in4MV5aFaQC9ZCIt0dJ7pr5bIf4lPpHvAtP2ywpTNgs7hqw== -fastify-websocket@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fastify-websocket/-/fastify-websocket-4.0.0.tgz#7d22e0fbd15cf64628b3fb77010f65e4880942b5" - integrity sha512-XeeE2r4SkkLBp83NZ3BKCEdR6KFPEtiiIAUrvJhsvLJFRCV6BCnF5ZdchZ6ghPQ5rJ1VwcWlajuXHlQWwXX/YQ== - dependencies: - fastify-plugin "^3.0.0" - ws "^8.0.0" - fastify@3.29.0: version "3.29.0" resolved "https://registry.yarnpkg.com/fastify/-/fastify-3.29.0.tgz#b840107f4fd40cc999b886548bfcda8062e38168" @@ -5282,6 +5656,26 @@ fastify@3.29.0: semver "^7.3.2" tiny-lru "^8.0.1" +fastify@4.9.2: + version "4.9.2" + resolved "https://registry.yarnpkg.com/fastify/-/fastify-4.9.2.tgz#0f5cfb3e1960320a9cae920efb59c3605c5577c7" + integrity sha512-Mk3hv7ZRet2huMYN6IJ8RGy1TAAC7LJsCEjxLf808zafAADNu43xRzbl7FSEIBxKyhntTM0F626Oc34LUNcUxQ== + dependencies: + "@fastify/ajv-compiler" "^3.3.1" + "@fastify/error" "^3.0.0" + "@fastify/fast-json-stringify-compiler" "^4.1.0" + abstract-logging "^2.0.1" + avvio "^8.2.0" + find-my-way "^7.3.0" + light-my-request "^5.6.1" + pino "^8.5.0" + process-warning "^2.0.0" + proxy-addr "^2.0.7" + rfdc "^1.3.0" + secure-json-parse "^2.5.0" + semver "^7.3.7" + tiny-lru "^9.0.2" + fastparallel@^2.3.0: version "2.4.1" resolved "https://registry.yarnpkg.com/fastparallel/-/fastparallel-2.4.1.tgz#0d984a5813ffa67f30b4a5cb4cb8cbe61c7ee5a5" @@ -5311,13 +5705,29 @@ fetch-blob@^3.1.2: dependencies: web-streams-polyfill "^3.0.3" -figures@^3.0.0: +fetch-blob@^3.1.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" + integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== + dependencies: + node-domexception "^1.0.0" + web-streams-polyfill "^3.0.3" + +figures@3.2.0, figures@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== dependencies: escape-string-regexp "^1.0.5" +figures@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-5.0.0.tgz#126cd055052dea699f8a54e8c9450e6ecfc44d5f" + integrity sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg== + dependencies: + escape-string-regexp "^5.0.0" + is-unicode-supported "^1.2.0" + file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" @@ -5330,6 +5740,13 @@ file-uri-to-path@2: resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz#7b415aeba227d575851e0a5b0c640d7656403fba" integrity sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg== +filelist@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" + integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== + dependencies: + minimatch "^5.0.1" + fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -5337,11 +5754,6 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -filter-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" - integrity sha1-mzERErxsYSehbgFsbF1/GeCAXFs= - finalhandler@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" @@ -5365,6 +5777,15 @@ find-my-way@^4.5.0: safe-regex2 "^2.0.0" semver-store "^0.3.0" +find-my-way@^7.3.0: + version "7.3.1" + resolved "https://registry.yarnpkg.com/find-my-way/-/find-my-way-7.3.1.tgz#fd8a0b468a18c283e05be59f93a627f37e306cfa" + integrity sha512-kGvM08SOkqvheLcuQ8GW9t/H901Qb9rZEbcNWbXopzy4jDRoaJpJoObPSKf4MnQLZ20ZTp7rL5MpF6rf+pqmyg== + dependencies: + fast-deep-equal "^3.1.3" + fast-querystring "^1.0.0" + safe-regex2 "^2.0.0" + find-up@^2.0.0, find-up@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" @@ -5396,6 +5817,11 @@ flat-cache@^3.0.4: flatted "^3.1.0" rimraf "^3.0.2" +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + flatstr@^1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/flatstr/-/flatstr-1.0.12.tgz#c2ba6a08173edbb6c9640e3055b95e287ceb5931" @@ -5411,6 +5837,11 @@ follow-redirects@^1.14.9: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.0.tgz#06441868281c86d0dda4ad8bdaead2d02dca89d4" integrity sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ== +follow-redirects@^1.15.0: + version "1.15.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + foreach@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" @@ -5421,6 +5852,11 @@ form-data-encoder@1.7.1: resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.7.1.tgz#ac80660e4f87ee0d3d3c3638b7da8278ddb8ec96" integrity sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg== +form-data-encoder@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.2.tgz#5996b7c236e8c418d08316055a2235226c5e4061" + integrity sha512-FCaIOVTRA9E0siY6FeXid7D5yrCqpsErplUkE2a1BEiKj1BE9z6FbKB4ntDTwC4NVLie9p+4E9nX4mWwEOT05A== + form-data@4.0.0, form-data@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" @@ -5448,6 +5884,13 @@ form-data@^3.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" +formdata-polyfill@^4.0.10: + version "4.0.10" + resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" + integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== + dependencies: + fetch-blob "^3.1.2" + formidable@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/formidable/-/formidable-2.0.1.tgz#4310bc7965d185536f9565184dee74fbb75557ff" @@ -5468,6 +5911,11 @@ fresh@0.5.2: resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= +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@^10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" @@ -5477,6 +5925,15 @@ fs-extra@^10.0.0: jsonfile "^6.0.1" universalify "^2.0.0" +fs-extra@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-extra@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" @@ -5526,11 +5983,6 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - gauge@^4.0.3: version "4.0.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce" @@ -5545,20 +5997,6 @@ gauge@^4.0.3: strip-ansi "^6.0.1" wide-align "^1.1.5" -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - generate-function@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f" @@ -5576,14 +6014,23 @@ get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.1, get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: +get-intrinsic@^1.0.1, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== dependencies: function-bind "^1.1.1" has "^1.0.3" - has-symbols "^1.0.1" + has-symbols "^1.0.1" + +get-intrinsic@^1.0.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" + integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" get-package-type@^0.1.0: version "0.1.0" @@ -5605,13 +6052,6 @@ get-port@^5.1.1: resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== -get-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - get-stream@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" @@ -5671,20 +6111,20 @@ git-semver-tags@^4.1.1: meow "^8.0.0" semver "^6.0.0" -git-up@^4.0.0: - version "4.0.5" - resolved "https://registry.yarnpkg.com/git-up/-/git-up-4.0.5.tgz#e7bb70981a37ea2fb8fe049669800a1f9a01d759" - integrity sha512-YUvVDg/vX3d0syBsk/CKUTib0srcQME0JyHkL5BaYdwLsiCslPWmDSi8PUMo9pXYjrryMcmsCoCgsTpSCJEQaA== +git-up@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/git-up/-/git-up-7.0.0.tgz#bace30786e36f56ea341b6f69adfd83286337467" + integrity sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ== dependencies: - is-ssh "^1.3.0" - parse-url "^6.0.0" + is-ssh "^1.4.0" + parse-url "^8.1.0" -git-url-parse@11.6.0, git-url-parse@^11.4.4: - version "11.6.0" - resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-11.6.0.tgz#c634b8de7faa66498a2b88932df31702c67df605" - integrity sha512-WWUxvJs5HsyHL6L08wOusa/IXYtMuCAhrMmnTjQPpBU0TTHyDhnOATNH3xNQz7YOQUsqIIPTGr4xiVti1Hsk5g== +git-url-parse@13.1.0, git-url-parse@^13.1.0: + version "13.1.0" + resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-13.1.0.tgz#07e136b5baa08d59fabdf0e33170de425adf07b4" + integrity sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA== dependencies: - git-up "^4.0.0" + git-up "^7.0.0" gitconfiglocal@^1.0.0: version "1.0.0" @@ -5700,14 +6140,26 @@ glob-parent@^5.1.1, glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob-parent@^6.0.1: +glob-parent@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: is-glob "^4.0.3" -glob@^7.0.0, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: +glob@7.1.4: + version "7.1.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" + integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.0, glob@^7.1.3, glob@^7.1.4: version "7.2.0" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== @@ -5756,10 +6208,10 @@ globals@^13.15.0: dependencies: type-fest "^0.20.2" -globby@13.1.1: - version "13.1.1" - resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.1.tgz#7c44a93869b0b7612e38f22ed532bfe37b25ea6f" - integrity sha512-XMzoDZbGZ37tufiv7g0N4F/zp3zkwdFtVbV3EHsVl1KQr4RPLfNoT068/97RPshz2J5xYNEjLKKBKaGHifBd3Q== +globby@13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.2.tgz#29047105582427ab6eca4f905200667b056da515" + integrity sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ== dependencies: dir-glob "^3.0.1" fast-glob "^3.2.11" @@ -5791,10 +6243,27 @@ globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -got@12.0.4: - version "12.0.4" - resolved "https://registry.yarnpkg.com/got/-/got-12.0.4.tgz#e3b6bf6992425f904076fd71aac7030da5122de8" - integrity sha512-2Eyz4iU/ktq7wtMFXxzK7g5p35uNYLLdiZarZ5/Yn3IJlNEpBd5+dCgcAyxN8/8guZLszffwe3wVyw+DEVrpBg== +got@12.5.1: + version "12.5.1" + resolved "https://registry.yarnpkg.com/got/-/got-12.5.1.tgz#0796191c61478273f4cdbeb19d358a75a54a008d" + integrity sha512-sD16AK8cCyUoPtKr/NMvLTFFa+T3i3S+zoiuvhq0HP2YiqBZA9AtlBjAdsQBsLBK7slPuvmfE0OxhGi7N5dD4w== + dependencies: + "@sindresorhus/is" "^5.2.0" + "@szmarczak/http-timer" "^5.0.1" + cacheable-lookup "^7.0.0" + cacheable-request "^10.2.1" + decompress-response "^6.0.0" + form-data-encoder "^2.1.2" + get-stream "^6.0.1" + http2-wrapper "^2.1.10" + lowercase-keys "^3.0.0" + p-cancelable "^3.0.0" + responselike "^3.0.0" + +got@^12.1.0: + version "12.1.0" + resolved "https://registry.yarnpkg.com/got/-/got-12.1.0.tgz#099f3815305c682be4fd6b0ee0726d8e4c6b0af4" + integrity sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig== dependencies: "@sindresorhus/is" "^4.6.0" "@szmarczak/http-timer" "^5.0.1" @@ -5810,38 +6279,31 @@ got@12.0.4: p-cancelable "^3.0.0" responselike "^2.0.0" -got@^9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - dependencies: - "@sindresorhus/is" "^0.14.0" - "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" +graceful-fs@4.2.10, graceful-fs@^4.2.6: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.8" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== -graceful-fs@^4.2.6: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - graceful-fs@^4.2.9: version "4.2.9" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== +grapheme-splitter@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== + +"graphql-16@npm:graphql@16.6.0": + version "16.6.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.6.0.tgz#c2dcffa4649db149f6282af726c8c83f1c7c5fdb" + integrity sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw== + graphql-jit@^0.7.0: version "0.7.3" resolved "https://registry.yarnpkg.com/graphql-jit/-/graphql-jit-0.7.3.tgz#cdc14d93efb8aba75cafb0be263cbafd4881d4d9" @@ -5923,6 +6385,11 @@ has-symbols@^1.0.1, has-symbols@^1.0.2: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== +has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + has-tostringtag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" @@ -5930,15 +6397,15 @@ has-tostringtag@^1.0.0: dependencies: has-symbols "^1.0.2" -has-unicode@^2.0.0, has-unicode@^2.0.1: +has-unicode@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= -has-yarn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" - integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== +has-yarn@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-3.0.0.tgz#c3c21e559730d1d3b57e28af1f30d06fac38147d" + integrity sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA== has@^1.0.3: version "1.0.3" @@ -5962,6 +6429,13 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== +hosted-git-info@^3.0.6: + version "3.0.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.8.tgz#6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d" + integrity sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw== + dependencies: + lru-cache "^6.0.0" + hosted-git-info@^4.0.0, hosted-git-info@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz#5e425507eede4fea846b7262f0838456c4209961" @@ -6102,13 +6576,6 @@ ieee754@^1.1.13, ieee754@^1.2.1: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -ignore-walk@^3.0.3: - version "3.0.4" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.4.tgz#c9a09f69b7c7b479a5d74ac1a3c0d4236d2a6335" - integrity sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ== - dependencies: - minimatch "^3.0.4" - ignore-walk@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-5.0.1.tgz#5f199e23e1288f518d90358d461387788a154776" @@ -6116,16 +6583,16 @@ ignore-walk@^5.0.1: dependencies: minimatch "^5.0.1" +ignore@^5.0.4, ignore@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" + integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== + ignore@^5.1.4: version "5.1.9" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.9.tgz#9ec1a5cbe8e1446ec60d4420060d43aa6e7382fb" integrity sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ== -ignore@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== - import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" @@ -6134,10 +6601,10 @@ import-fresh@^3.0.0, import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" -import-lazy@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" - integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= +import-lazy@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" + integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== import-local@^3.0.2: version "3.0.3" @@ -6190,20 +6657,41 @@ ini@^1.3.2, ini@^1.3.4, ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -init-package-json@^2.0.2: - version "2.0.5" - resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-2.0.5.tgz#78b85f3c36014db42d8f32117252504f68022646" - integrity sha512-u1uGAtEFu3VA6HNl/yUWw57jmKEMx8SKOxHhxjGnOFUiIlFnohKDFg4ZrPpv9wWqk44nDxGJAtqjdQFm+9XXQA== +init-package-json@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-3.0.2.tgz#f5bc9bac93f2bdc005778bc2271be642fecfcd69" + integrity sha512-YhlQPEjNFqlGdzrBfDNRLhvoSgX7iQRgSxgsNknRQ9ITXFT7UMfVMWhBTOh2Y+25lRnGrv5Xz8yZwQ3ACR6T3A== dependencies: - npm-package-arg "^8.1.5" + npm-package-arg "^9.0.1" promzard "^0.3.0" - read "~1.0.1" - read-package-json "^4.1.1" + read "^1.0.7" + read-package-json "^5.0.0" semver "^7.3.5" validate-npm-package-license "^3.0.4" - validate-npm-package-name "^3.0.0" + validate-npm-package-name "^4.0.0" -inquirer@8.2.4: +inquirer@9.1.2: + version "9.1.2" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-9.1.2.tgz#37f5486f3de0e38820aad83a1f75c52c747e2f9a" + integrity sha512-Hj2Ml1WpxKJU2npP2Rj0OURGkHV+GtNW2CwFdHDiXlqUBAUrWTcZHxCkFywX/XHzOS7wrG/kExgJFbUkVgyHzg== + dependencies: + ansi-escapes "^5.0.0" + chalk "^5.0.1" + cli-cursor "^4.0.0" + cli-width "^4.0.0" + external-editor "^3.0.3" + figures "^5.0.0" + lodash "^4.17.21" + mute-stream "0.0.8" + ora "^6.1.2" + run-async "^2.4.0" + rxjs "^7.5.6" + string-width "^5.1.2" + strip-ansi "^7.0.1" + through "^2.3.6" + wrap-ansi "^8.0.1" + +inquirer@^8.2.4: version "8.2.4" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.4.tgz#ddbfe86ca2f67649a67daa6f1051c128f684f0b4" integrity sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg== @@ -6224,25 +6712,6 @@ inquirer@8.2.4: through "^2.3.6" wrap-ansi "^7.0.0" -inquirer@^7.3.3: - version "7.3.3" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" - integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== - dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-width "^3.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.19" - mute-stream "0.0.8" - run-async "^2.4.0" - rxjs "^6.6.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - internal-slot@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" @@ -6307,7 +6776,7 @@ is-callable@^1.1.4, is-callable@^1.2.4: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== -is-ci@3.0.1: +is-ci@3.0.1, is-ci@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== @@ -6352,13 +6821,6 @@ is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" @@ -6414,10 +6876,10 @@ is-negative-zero@^2.0.1: resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== -is-npm@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" - integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== +is-npm@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-6.0.0.tgz#b59e75e8915543ca5d881ecff864077cba095261" + integrity sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ== is-number-object@^1.0.4: version "1.0.6" @@ -6436,7 +6898,7 @@ is-obj@^2.0.0: resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== -is-path-inside@^3.0.2: +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== @@ -6486,12 +6948,12 @@ is-shared-array-buffer@^1.0.1: resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== -is-ssh@^1.3.0: - version "1.3.3" - resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.3.3.tgz#7f133285ccd7f2c2c7fc897b771b53d95a2b2c7e" - integrity sha512-NKzJmQzJfEEma3w5cJNcUMxoXfDjz0Zj0eyCalHn2E6VOwlzjZo0yuO2fcBSf8zhFuVCL/82/r5gRcoi6aEPVQ== +is-ssh@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2" + integrity sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ== dependencies: - protocols "^1.1.0" + protocols "^2.0.1" is-stream@^2.0.0: version "2.0.1" @@ -6545,7 +7007,7 @@ 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-unicode-supported@^1.1.0: +is-unicode-supported@^1.1.0, is-unicode-supported@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-1.2.0.tgz#f4f54f34d8ebc84a46b93559a036763b6d3e1014" integrity sha512-wH+U77omcRzevfIG8dDhTS0V9zZyweakfD01FULl97+0EHiJTTZtJqxPSkIIo/SDPv/i07k/C9jAPY+jwLLeUQ== @@ -6574,10 +7036,10 @@ is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" -is-yarn-global@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" - integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== +is-yarn-global@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.4.0.tgz#714d94453327db9ea98fbf1a0c5f2b88f59ddd5c" + integrity sha512-HneQBCrXGBy15QnaDfcn6OLoU8AQPAa0Qn0IeJR/QCo4E8dNZaGGwxpCwWyEBQC5QvFonP8d6t60iGpAHVAfNA== isarray@0.0.1: version "0.0.1" @@ -6669,406 +7131,464 @@ iterate-value@^1.0.2: es-get-iterator "^1.0.2" iterate-iterator "^1.0.1" -jest-changed-files@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-28.0.2.tgz#7d7810660a5bd043af9e9cfbe4d58adb05e91531" - integrity sha512-QX9u+5I2s54ZnGoMEjiM2WeBvJR2J7w/8ZUmH2um/WLAuGAYFQcsVXY9+1YL6k0H/AGUdH8pXUAv6erDqEsvIA== +jake@^10.8.5: + version "10.8.5" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.5.tgz#f2183d2c59382cb274226034543b9c03b8164c46" + integrity sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw== + dependencies: + async "^3.2.3" + chalk "^4.0.2" + filelist "^1.0.1" + minimatch "^3.0.4" + +jest-changed-files@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.2.0.tgz#b6598daa9803ea6a4dce7968e20ab380ddbee289" + integrity sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA== dependencies: execa "^5.0.0" - throat "^6.0.1" + p-limit "^3.1.0" -jest-circus@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.1.0.tgz#e229f590911bd54d60efaf076f7acd9360296dae" - integrity sha512-rNYfqfLC0L0zQKRKsg4n4J+W1A2fbyGH7Ss/kDIocp9KXD9iaL111glsLu7+Z7FHuZxwzInMDXq+N1ZIBkI/TQ== +jest-circus@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.2.2.tgz#1dc4d35fd49bf5e64d3cc505fb2db396237a6dfa" + integrity sha512-upSdWxx+Mh4DV7oueuZndJ1NVdgtTsqM4YgywHEx05UMH5nxxA2Qu9T9T9XVuR021XxqSoaKvSmmpAbjwwwxMw== dependencies: - "@jest/environment" "^28.1.0" - "@jest/expect" "^28.1.0" - "@jest/test-result" "^28.1.0" - "@jest/types" "^28.1.0" + "@jest/environment" "^29.2.2" + "@jest/expect" "^29.2.2" + "@jest/test-result" "^29.2.1" + "@jest/types" "^29.2.1" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^28.1.0" - jest-matcher-utils "^28.1.0" - jest-message-util "^28.1.0" - jest-runtime "^28.1.0" - jest-snapshot "^28.1.0" - jest-util "^28.1.0" - pretty-format "^28.1.0" + jest-each "^29.2.1" + jest-matcher-utils "^29.2.2" + jest-message-util "^29.2.1" + jest-runtime "^29.2.2" + jest-snapshot "^29.2.2" + jest-util "^29.2.1" + p-limit "^3.1.0" + pretty-format "^29.2.1" slash "^3.0.0" stack-utils "^2.0.3" - throat "^6.0.1" -jest-cli@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.1.0.tgz#cd1d8adb9630102d5ba04a22895f63decdd7ac1f" - integrity sha512-fDJRt6WPRriHrBsvvgb93OxgajHHsJbk4jZxiPqmZbMDRcHskfJBBfTyjFko0jjfprP544hOktdSi9HVgl4VUQ== +jest-cli@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.2.2.tgz#feaf0aa57d327e80d4f2f18d5f8cd2e77cac5371" + integrity sha512-R45ygnnb2CQOfd8rTPFR+/fls0d+1zXS6JPYTBBrnLPrhr58SSuPTiA5Tplv8/PXpz4zXR/AYNxmwIj6J6nrvg== dependencies: - "@jest/core" "^28.1.0" - "@jest/test-result" "^28.1.0" - "@jest/types" "^28.1.0" + "@jest/core" "^29.2.2" + "@jest/test-result" "^29.2.1" + "@jest/types" "^29.2.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^28.1.0" - jest-util "^28.1.0" - jest-validate "^28.1.0" + jest-config "^29.2.2" + jest-util "^29.2.1" + jest-validate "^29.2.2" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.1.0.tgz#fca22ca0760e746fe1ce1f9406f6b307ab818501" - integrity sha512-aOV80E9LeWrmflp7hfZNn/zGA4QKv/xsn2w8QCBP0t0+YqObuCWTSgNbHJ0j9YsTuCO08ZR/wsvlxqqHX20iUA== +jest-config@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.2.2.tgz#bf98623a46454d644630c1f0de8bba3f495c2d59" + integrity sha512-Q0JX54a5g1lP63keRfKR8EuC7n7wwny2HoTRDb8cx78IwQOiaYUVZAdjViY3WcTxpR02rPUpvNVmZ1fkIlZPcw== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^28.1.0" - "@jest/types" "^28.1.0" - babel-jest "^28.1.0" + "@jest/test-sequencer" "^29.2.2" + "@jest/types" "^29.2.1" + babel-jest "^29.2.2" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^28.1.0" - jest-environment-node "^28.1.0" - jest-get-type "^28.0.2" - jest-regex-util "^28.0.2" - jest-resolve "^28.1.0" - jest-runner "^28.1.0" - jest-util "^28.1.0" - jest-validate "^28.1.0" + jest-circus "^29.2.2" + jest-environment-node "^29.2.2" + jest-get-type "^29.2.0" + jest-regex-util "^29.2.0" + jest-resolve "^29.2.2" + jest-runner "^29.2.2" + jest-util "^29.2.1" + jest-validate "^29.2.2" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^28.1.0" + pretty-format "^29.2.1" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.5.1.tgz#a07f5011ac9e6643cf8a95a462b7b1ecf6680def" - integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw== +jest-diff@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.0.1.tgz#d14e900a38ee4798d42feaaf0c61cb5b98e4c028" + integrity sha512-l8PYeq2VhcdxG9tl5cU78ClAlg/N7RtVSp0v3MlXURR0Y99i6eFnegmasOandyTmO6uEdo20+FByAjBFEO9nuw== dependencies: chalk "^4.0.0" - diff-sequences "^27.5.1" - jest-get-type "^27.5.1" - pretty-format "^27.5.1" + diff-sequences "^29.0.0" + jest-get-type "^29.0.0" + pretty-format "^29.0.1" -jest-diff@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.1.0.tgz#77686fef899ec1873dbfbf9330e37dd429703269" - integrity sha512-8eFd3U3OkIKRtlasXfiAQfbovgFgRDb0Ngcs2E+FMeBZ4rUezqIaGjuyggJBp+llosQXNEWofk/Sz4Hr5gMUhA== +jest-diff@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.2.1.tgz#027e42f5a18b693fb2e88f81b0ccab533c08faee" + integrity sha512-gfh/SMNlQmP3MOUgdzxPOd4XETDJifADpT937fN1iUGz+9DgOu2eUPHH25JDkLVcLwwqxv3GzVyK4VBUr9fjfA== dependencies: chalk "^4.0.0" - diff-sequences "^28.0.2" - jest-get-type "^28.0.2" - pretty-format "^28.1.0" + diff-sequences "^29.2.0" + jest-get-type "^29.2.0" + pretty-format "^29.2.1" -jest-docblock@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-28.0.2.tgz#3cab8abea53275c9d670cdca814fc89fba1298c2" - integrity sha512-FH10WWw5NxLoeSdQlJwu+MTiv60aXV/t8KEwIRGEv74WARE1cXIqh1vGdy2CraHuWOOrnzTWj/azQKqW4fO7xg== +jest-docblock@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.2.0.tgz#307203e20b637d97cee04809efc1d43afc641e82" + integrity sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A== dependencies: detect-newline "^3.0.0" -jest-each@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-28.1.0.tgz#54ae66d6a0a5b1913e9a87588d26c2687c39458b" - integrity sha512-a/XX02xF5NTspceMpHujmOexvJ4GftpYXqr6HhhmKmExtMXsyIN/fvanQlt/BcgFoRKN4OCXxLQKth9/n6OPFg== +jest-each@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.2.1.tgz#6b0a88ee85c2ba27b571a6010c2e0c674f5c9b29" + integrity sha512-sGP86H/CpWHMyK3qGIGFCgP6mt+o5tu9qG4+tobl0LNdgny0aitLXs9/EBacLy3Bwqy+v4uXClqJgASJWcruYw== dependencies: - "@jest/types" "^28.1.0" + "@jest/types" "^29.2.1" chalk "^4.0.0" - jest-get-type "^28.0.2" - jest-util "^28.1.0" - pretty-format "^28.1.0" - -jest-environment-node@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.1.0.tgz#6ed2150aa31babba0c488c5b4f4d813a585c68e6" - integrity sha512-gBLZNiyrPw9CSMlTXF1yJhaBgWDPVvH0Pq6bOEwGMXaYNzhzhw2kA/OijNF8egbCgDS0/veRv97249x2CX+udQ== - dependencies: - "@jest/environment" "^28.1.0" - "@jest/fake-timers" "^28.1.0" - "@jest/types" "^28.1.0" + jest-get-type "^29.2.0" + jest-util "^29.2.1" + pretty-format "^29.2.1" + +jest-environment-node@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.2.2.tgz#a64b272773870c3a947cd338c25fd34938390bc2" + integrity sha512-B7qDxQjkIakQf+YyrqV5dICNs7tlCO55WJ4OMSXsqz1lpI/0PmeuXdx2F7eU8rnPbRkUR/fItSSUh0jvE2y/tw== + dependencies: + "@jest/environment" "^29.2.2" + "@jest/fake-timers" "^29.2.2" + "@jest/types" "^29.2.1" "@types/node" "*" - jest-mock "^28.1.0" - jest-util "^28.1.0" + jest-mock "^29.2.2" + jest-util "^29.2.1" -jest-get-type@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" - integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== +jest-get-type@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.0.0.tgz#843f6c50a1b778f7325df1129a0fd7aa713aef80" + integrity sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw== -jest-get-type@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.2.tgz#34622e628e4fdcd793d46db8a242227901fcf203" - integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== +jest-get-type@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408" + integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA== -jest-haste-map@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.1.0.tgz#6c1ee2daf1c20a3e03dbd8e5b35c4d73d2349cf0" - integrity sha512-xyZ9sXV8PtKi6NCrJlmq53PyNVHzxmcfXNVvIRHpHmh1j/HChC4pwKgyjj7Z9us19JMw8PpQTJsFWOsIfT93Dw== +jest-haste-map@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.2.1.tgz#f803fec57f8075e6c55fb5cd551f99a72471c699" + integrity sha512-wF460rAFmYc6ARcCFNw4MbGYQjYkvjovb9GBT+W10Um8q5nHq98jD6fHZMDMO3tA56S8XnmNkM8GcA8diSZfnA== dependencies: - "@jest/types" "^28.1.0" + "@jest/types" "^29.2.1" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" - jest-regex-util "^28.0.2" - jest-util "^28.1.0" - jest-worker "^28.1.0" + jest-regex-util "^29.2.0" + jest-util "^29.2.1" + jest-worker "^29.2.1" micromatch "^4.0.4" - walker "^1.0.7" + walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-28.1.0.tgz#b65167776a8787443214d6f3f54935a4c73c8a45" - integrity sha512-uIJDQbxwEL2AMMs2xjhZl2hw8s77c3wrPaQ9v6tXJLGaaQ+4QrNJH5vuw7hA7w/uGT/iJ42a83opAqxGHeyRIA== +jest-leak-detector@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.2.1.tgz#ec551686b7d512ec875616c2c3534298b1ffe2fc" + integrity sha512-1YvSqYoiurxKOJtySc+CGVmw/e1v4yNY27BjWTVzp0aTduQeA7pdieLiW05wTYG/twlKOp2xS/pWuikQEmklug== + dependencies: + jest-get-type "^29.2.0" + pretty-format "^29.2.1" + +jest-matcher-utils@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.0.1.tgz#eaa92dd5405c2df9d31d45ec4486361d219de3e9" + integrity sha512-/e6UbCDmprRQFnl7+uBKqn4G22c/OmwriE5KCMVqxhElKCQUDcFnq5XM9iJeKtzy4DUjxT27y9VHmKPD8BQPaw== dependencies: - jest-get-type "^28.0.2" - pretty-format "^28.1.0" + chalk "^4.0.0" + jest-diff "^29.0.1" + jest-get-type "^29.0.0" + pretty-format "^29.0.1" -jest-matcher-utils@^27.0.0: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz#9c0cdbda8245bc22d2331729d1091308b40cf8ab" - integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw== +jest-matcher-utils@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.2.2.tgz#9202f8e8d3a54733266784ce7763e9a08688269c" + integrity sha512-4DkJ1sDPT+UX2MR7Y3od6KtvRi9Im1ZGLGgdLFLm4lPexbTaCgJW5NN3IOXlQHF7NSHY/VHhflQ+WoKtD/vyCw== dependencies: chalk "^4.0.0" - jest-diff "^27.5.1" - jest-get-type "^27.5.1" - pretty-format "^27.5.1" + jest-diff "^29.2.1" + jest-get-type "^29.2.0" + pretty-format "^29.2.1" -jest-matcher-utils@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.1.0.tgz#2ae398806668eeabd293c61712227cb94b250ccf" - integrity sha512-onnax0n2uTLRQFKAjC7TuaxibrPSvZgKTcSCnNUz/tOjJ9UhxNm7ZmPpoQavmTDUjXvUQ8KesWk2/VdrxIFzTQ== +jest-message-util@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.0.1.tgz#85c4b5b90296c228da158e168eaa5b079f2ab879" + integrity sha512-wRMAQt3HrLpxSubdnzOo68QoTfQ+NLXFzU0Heb18ZUzO2S9GgaXNEdQ4rpd0fI9dq2NXkpCk1IUWSqzYKji64A== dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.0.1" + "@types/stack-utils" "^2.0.0" chalk "^4.0.0" - jest-diff "^28.1.0" - jest-get-type "^28.0.2" - pretty-format "^28.1.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.0.1" + slash "^3.0.0" + stack-utils "^2.0.3" -jest-message-util@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.1.0.tgz#7e8f0b9049e948e7b94c2a52731166774ba7d0af" - integrity sha512-RpA8mpaJ/B2HphDMiDlrAZdDytkmwFqgjDZovM21F35lHGeUeCvYmm6W+sbQ0ydaLpg5bFAUuWG1cjqOl8vqrw== +jest-message-util@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.2.1.tgz#3a51357fbbe0cc34236f17a90d772746cf8d9193" + integrity sha512-Dx5nEjw9V8C1/Yj10S/8ivA8F439VS8vTq1L7hEgwHFn9ovSKNpYW/kwNh7UglaEgXO42XxzKJB+2x0nSglFVw== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^28.1.0" + "@jest/types" "^29.2.1" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^28.1.0" + pretty-format "^29.2.1" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-28.1.0.tgz#ccc7cc12a9b330b3182db0c651edc90d163ff73e" - integrity sha512-H7BrhggNn77WhdL7O1apG0Q/iwl0Bdd5E1ydhCJzL3oBLh/UYxAwR3EJLsBZ9XA3ZU4PA3UNw4tQjduBTCTmLw== +jest-mock@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.2.2.tgz#9045618b3f9d27074bbcf2d55bdca6a5e2e8bca7" + integrity sha512-1leySQxNAnivvbcx0sCB37itu8f4OX2S/+gxLAV4Z62shT4r4dTG9tACDywUAEZoLSr36aYUTsVp3WKwWt4PMQ== dependencies: - "@jest/types" "^28.1.0" + "@jest/types" "^29.2.1" "@types/node" "*" + jest-util "^29.2.1" jest-pnp-resolver@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== -jest-regex-util@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead" - integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== +jest-regex-util@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.2.0.tgz#82ef3b587e8c303357728d0322d48bbfd2971f7b" + integrity sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA== -jest-resolve-dependencies@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.0.tgz#167becb8bee6e20b5ef4a3a728ec67aef6b0b79b" - integrity sha512-Ue1VYoSZquPwEvng7Uefw8RmZR+me/1kr30H2jMINjGeHgeO/JgrR6wxj2ofkJ7KSAA11W3cOrhNCbj5Dqqd9g== +jest-resolve-dependencies@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.2.2.tgz#1f444766f37a25f1490b5137408b6ff746a05d64" + integrity sha512-wWOmgbkbIC2NmFsq8Lb+3EkHuW5oZfctffTGvwsA4JcJ1IRk8b2tg+hz44f0lngvRTeHvp3Kyix9ACgudHH9aQ== dependencies: - jest-regex-util "^28.0.2" - jest-snapshot "^28.1.0" + jest-regex-util "^29.2.0" + jest-snapshot "^29.2.2" -jest-resolve@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-28.1.0.tgz#b1f32748a6cee7d1779c7ef639c0a87078de3d35" - integrity sha512-vvfN7+tPNnnhDvISuzD1P+CRVP8cK0FHXRwPAcdDaQv4zgvwvag2n55/h5VjYcM5UJG7L4TwE5tZlzcI0X2Lhw== +jest-resolve@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.2.2.tgz#ad6436053b0638b41e12bbddde2b66e1397b35b5" + integrity sha512-3gaLpiC3kr14rJR3w7vWh0CBX2QAhfpfiQTwrFPvVrcHe5VUBtIXaR004aWE/X9B2CFrITOQAp5gxLONGrk6GA== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^28.1.0" + jest-haste-map "^29.2.1" jest-pnp-resolver "^1.2.2" - jest-util "^28.1.0" - jest-validate "^28.1.0" + jest-util "^29.2.1" + jest-validate "^29.2.2" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.1.0.tgz#aefe2a1e618a69baa0b24a50edc54fdd7e728eaa" - integrity sha512-FBpmuh1HB2dsLklAlRdOxNTTHKFR6G1Qmd80pVDvwbZXTriqjWqjei5DKFC1UlM732KjYcE6yuCdiF0WUCOS2w== +jest-runner@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.2.2.tgz#6b5302ed15eba8bf05e6b14d40f1e8d469564da3" + integrity sha512-1CpUxXDrbsfy9Hr9/1zCUUhT813kGGK//58HeIw/t8fa/DmkecEwZSWlb1N/xDKXg3uCFHQp1GCvlSClfImMxg== dependencies: - "@jest/console" "^28.1.0" - "@jest/environment" "^28.1.0" - "@jest/test-result" "^28.1.0" - "@jest/transform" "^28.1.0" - "@jest/types" "^28.1.0" + "@jest/console" "^29.2.1" + "@jest/environment" "^29.2.2" + "@jest/test-result" "^29.2.1" + "@jest/transform" "^29.2.2" + "@jest/types" "^29.2.1" "@types/node" "*" chalk "^4.0.0" - emittery "^0.10.2" + emittery "^0.13.1" graceful-fs "^4.2.9" - jest-docblock "^28.0.2" - jest-environment-node "^28.1.0" - jest-haste-map "^28.1.0" - jest-leak-detector "^28.1.0" - jest-message-util "^28.1.0" - jest-resolve "^28.1.0" - jest-runtime "^28.1.0" - jest-util "^28.1.0" - jest-watcher "^28.1.0" - jest-worker "^28.1.0" + jest-docblock "^29.2.0" + jest-environment-node "^29.2.2" + jest-haste-map "^29.2.1" + jest-leak-detector "^29.2.1" + jest-message-util "^29.2.1" + jest-resolve "^29.2.2" + jest-runtime "^29.2.2" + jest-util "^29.2.1" + jest-watcher "^29.2.2" + jest-worker "^29.2.1" + p-limit "^3.1.0" source-map-support "0.5.13" - throat "^6.0.1" - -jest-runtime@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.1.0.tgz#4847dcb2a4eb4b0f9eaf41306897e51fb1665631" - integrity sha512-wNYDiwhdH/TV3agaIyVF0lsJ33MhyujOe+lNTUiolqKt8pchy1Hq4+tDMGbtD5P/oNLA3zYrpx73T9dMTOCAcg== - dependencies: - "@jest/environment" "^28.1.0" - "@jest/fake-timers" "^28.1.0" - "@jest/globals" "^28.1.0" - "@jest/source-map" "^28.0.2" - "@jest/test-result" "^28.1.0" - "@jest/transform" "^28.1.0" - "@jest/types" "^28.1.0" + +jest-runtime@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.2.2.tgz#4068ee82423769a481460efd21d45a8efaa5c179" + integrity sha512-TpR1V6zRdLynckKDIQaY41od4o0xWL+KOPUCZvJK2bu5P1UXhjobt5nJ2ICNeIxgyj9NGkO0aWgDqYPVhDNKjA== + dependencies: + "@jest/environment" "^29.2.2" + "@jest/fake-timers" "^29.2.2" + "@jest/globals" "^29.2.2" + "@jest/source-map" "^29.2.0" + "@jest/test-result" "^29.2.1" + "@jest/transform" "^29.2.2" + "@jest/types" "^29.2.1" + "@types/node" "*" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" - execa "^5.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^28.1.0" - jest-message-util "^28.1.0" - jest-mock "^28.1.0" - jest-regex-util "^28.0.2" - jest-resolve "^28.1.0" - jest-snapshot "^28.1.0" - jest-util "^28.1.0" + jest-haste-map "^29.2.1" + jest-message-util "^29.2.1" + jest-mock "^29.2.2" + jest-regex-util "^29.2.0" + jest-resolve "^29.2.2" + jest-snapshot "^29.2.2" + jest-util "^29.2.1" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.1.0.tgz#4b74fa8816707dd10fe9d551c2c258e5a67b53b6" - integrity sha512-ex49M2ZrZsUyQLpLGxQtDbahvgBjlLPgklkqGM0hq/F7W/f8DyqZxVHjdy19QKBm4O93eDp+H5S23EiTbbUmHw== +jest-snapshot@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.2.2.tgz#1016ce60297b77382386bad561107174604690c2" + integrity sha512-GfKJrpZ5SMqhli3NJ+mOspDqtZfJBryGA8RIBxF+G+WbDoC7HCqKaeAss4Z/Sab6bAW11ffasx8/vGsj83jyjA== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" + "@babel/plugin-syntax-jsx" "^7.7.2" "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^28.1.0" - "@jest/transform" "^28.1.0" - "@jest/types" "^28.1.0" + "@jest/expect-utils" "^29.2.2" + "@jest/transform" "^29.2.2" + "@jest/types" "^29.2.1" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^28.1.0" + expect "^29.2.2" graceful-fs "^4.2.9" - jest-diff "^28.1.0" - jest-get-type "^28.0.2" - jest-haste-map "^28.1.0" - jest-matcher-utils "^28.1.0" - jest-message-util "^28.1.0" - jest-util "^28.1.0" + jest-diff "^29.2.1" + jest-get-type "^29.2.0" + jest-haste-map "^29.2.1" + jest-matcher-utils "^29.2.2" + jest-message-util "^29.2.1" + jest-util "^29.2.1" natural-compare "^1.4.0" - pretty-format "^28.1.0" + pretty-format "^29.2.1" semver "^7.3.5" -jest-util@^28.0.0: - version "28.0.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.0.0.tgz#c4c24f04e6d89209265198bd9fffe65cca1d1058" - integrity sha512-wSZjUR74ZR076RfyWdZ0tI3+U87QmK+RCB5igUKRUhinclf4O9om6UNBy0u9YfT6shKhno3l/eiQVmRp/AEfeA== +jest-util@^29.0.0: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.0.3.tgz#06d1d77f9a1bea380f121897d78695902959fbc0" + integrity sha512-Q0xaG3YRG8QiTC4R6fHjHQPaPpz9pJBEi0AeOE4mQh/FuWOijFjGXMMOfQEaU9i3z76cNR7FobZZUQnL6IyfdQ== + dependencies: + "@jest/types" "^29.0.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-util@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.0.1.tgz#f854a4a8877c7817316c4afbc2a851ceb2e71598" + integrity sha512-GIWkgNfkeA9d84rORDHPGGTFBrRD13A38QVSKE0bVrGSnoR1KDn8Kqz+0yI5kezMgbT/7zrWaruWP1Kbghlb2A== dependencies: - "@jest/types" "^28.0.0" + "@jest/types" "^29.0.1" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-util@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.1.0.tgz#d54eb83ad77e1dd441408738c5a5043642823be5" - integrity sha512-qYdCKD77k4Hwkose2YBEqQk7PzUf/NSE+rutzceduFveQREeH6b+89Dc9+wjX9dAwHcgdx4yedGA3FQlU/qCTA== +jest-util@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.2.1.tgz#f26872ba0dc8cbefaba32c34f98935f6cf5fc747" + integrity sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g== dependencies: - "@jest/types" "^28.1.0" + "@jest/types" "^29.2.1" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-28.1.0.tgz#8a6821f48432aba9f830c26e28226ad77b9a0e18" - integrity sha512-Lly7CJYih3vQBfjLeANGgBSBJ7pEa18cxpQfQEq2go2xyEzehnHfQTjoUia8xUv4x4J80XKFIDwJJThXtRFQXQ== +jest-validate@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.2.2.tgz#e43ce1931292dfc052562a11bc681af3805eadce" + integrity sha512-eJXATaKaSnOuxNfs8CLHgdABFgUrd0TtWS8QckiJ4L/QVDF4KVbZFBBOwCBZHOS0Rc5fOxqngXeGXE3nGQkpQA== dependencies: - "@jest/types" "^28.1.0" + "@jest/types" "^29.2.1" camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^28.0.2" + jest-get-type "^29.2.0" leven "^3.1.0" - pretty-format "^28.1.0" + pretty-format "^29.2.1" -jest-watcher@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.1.0.tgz#aaa7b4164a4e77eeb5f7d7b25ede5e7b4e9c9aaf" - integrity sha512-tNHMtfLE8Njcr2IRS+5rXYA4BhU90gAOwI9frTGOqd+jX0P/Au/JfRSNqsf5nUTcWdbVYuLxS1KjnzILSoR5hA== +jest-watcher@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.2.2.tgz#7093d4ea8177e0a0da87681a9e7b09a258b9daf7" + integrity sha512-j2otfqh7mOvMgN2WlJ0n7gIx9XCMWntheYGlBK7+5g3b1Su13/UAK7pdKGyd4kDlrLwtH2QPvRv5oNIxWvsJ1w== dependencies: - "@jest/test-result" "^28.1.0" - "@jest/types" "^28.1.0" + "@jest/test-result" "^29.2.1" + "@jest/types" "^29.2.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - emittery "^0.10.2" - jest-util "^28.1.0" + emittery "^0.13.1" + jest-util "^29.2.1" string-length "^4.0.1" -jest-worker@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.0.tgz#ced54757a035e87591e1208253a6e3aac1a855e5" - integrity sha512-ZHwM6mNwaWBR52Snff8ZvsCTqQsvhCxP/bT1I6T6DAnb6ygkshsyLQIMxFwHpYxht0HOoqt23JlC01viI7T03A== +jest-worker@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.2.1.tgz#8ba68255438252e1674f990f0180c54dfa26a3b1" + integrity sha512-ROHTZ+oj7sBrgtv46zZ84uWky71AoYi0vEV9CdEtc1FQunsoAGe5HbQmW76nI5QWdvECVPrSi1MCVUmizSavMg== dependencies: "@types/node" "*" + jest-util "^29.2.1" merge-stream "^2.0.0" supports-color "^8.0.0" -jest@28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-28.1.0.tgz#f420e41c8f2395b9a30445a97189ebb57593d831" - integrity sha512-TZR+tHxopPhzw3c3560IJXZWLNHgpcz1Zh0w5A65vynLGNcg/5pZ+VildAd7+XGOu6jd58XMY/HNn0IkZIXVXg== +jest@29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.2.2.tgz#24da83cbbce514718acd698926b7679109630476" + integrity sha512-r+0zCN9kUqoON6IjDdjbrsWobXM/09Nd45kIPRD8kloaRh1z5ZCMdVsgLXGxmlL7UpAJsvCYOQNO+NjvG/gqiQ== dependencies: - "@jest/core" "^28.1.0" + "@jest/core" "^29.2.2" + "@jest/types" "^29.2.1" import-local "^3.0.2" - jest-cli "^28.1.0" + jest-cli "^29.2.2" + +js-levenshtein@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" + integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== + +js-sdsl@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.1.4.tgz#78793c90f80e8430b7d8dc94515b6c77d98a26a6" + integrity sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw== js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.13.1: +js-yaml@4.1.0, js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +js-yaml@^3.10.0, js-yaml@^3.13.1: version "3.14.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== @@ -7076,23 +7596,11 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= - json-buffer@3.0.1, json-buffer@~3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" @@ -7157,6 +7665,11 @@ json5@^2.2.1: resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== +jsonc-parser@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" + integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== + jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -7188,13 +7701,6 @@ just-diff@^5.0.1: resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-5.0.2.tgz#68854c94280c37d28cb266d8f29bdd2cd29f003e" integrity sha512-uGd6F+eIZ4T95EinP8ubINGkbEy3jrgBym+6LjW+ja1UG1WQIcEcQ6FLeyXtVJZglk+bj7fvEn+Cu2LBxkgiYQ== -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== - dependencies: - json-buffer "3.0.0" - keyv@^4.0.0: version "4.2.9" resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.2.9.tgz#b8f25d4968b583ed7f07fceadab646d4baadad6b" @@ -7203,6 +7709,13 @@ keyv@^4.0.0: compress-brotli "^1.3.8" json-buffer "3.0.1" +keyv@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.0.tgz#dbce9ade79610b6e641a9a65f2f6499ba06b9bc6" + integrity sha512-2YvuMsA+jnFGtBareKqgANOEKe1mk3HKiXu2fRmAfyxG0MJAywNhi5ttWA3PMjl4NmpyjZNbFifR2vNjW1znfA== + dependencies: + json-buffer "3.0.1" + kind-of@^6.0.2, kind-of@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" @@ -7213,12 +7726,12 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -latest-version@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" - integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== +latest-version@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-7.0.0.tgz#843201591ea81a4d404932eeb61240fe04e9e5da" + integrity sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg== dependencies: - package-json "^6.3.0" + package-json "^8.1.0" lerna-changelog@2.2.0: version "2.2.0" @@ -7234,29 +7747,34 @@ lerna-changelog@2.2.0: progress "^2.0.0" yargs "^17.1.0" -lerna@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/lerna/-/lerna-5.0.0.tgz#077e35d41fcead5ea223af1862dc25475e1aaf2a" - integrity sha512-dUYmJ7H9k/xHtwKpQWLTNUa1jnFUiW4o4K2LFkRchlIijoIUT4yK/RprIxNvYCrLrEaOdZryvY5UZvSHI2tBxA== - dependencies: - "@lerna/add" "5.0.0" - "@lerna/bootstrap" "5.0.0" - "@lerna/changed" "5.0.0" - "@lerna/clean" "5.0.0" - "@lerna/cli" "5.0.0" - "@lerna/create" "5.0.0" - "@lerna/diff" "5.0.0" - "@lerna/exec" "5.0.0" - "@lerna/import" "5.0.0" - "@lerna/info" "5.0.0" - "@lerna/init" "5.0.0" - "@lerna/link" "5.0.0" - "@lerna/list" "5.0.0" - "@lerna/publish" "5.0.0" - "@lerna/run" "5.0.0" - "@lerna/version" "5.0.0" +lerna@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/lerna/-/lerna-6.0.1.tgz#7b14f05d1e17dc628478d33f225a579a6088d317" + integrity sha512-aNodtj1jyuEqzYmkYh+vTfRuzLkG3RZkvYxFCuLeXXzIYD5pjMHtf+1q4m03SPsZt+cElhhwkgjdg6GjihraBw== + dependencies: + "@lerna/add" "6.0.1" + "@lerna/bootstrap" "6.0.1" + "@lerna/changed" "6.0.1" + "@lerna/clean" "6.0.1" + "@lerna/cli" "6.0.1" + "@lerna/command" "6.0.1" + "@lerna/create" "6.0.1" + "@lerna/diff" "6.0.1" + "@lerna/exec" "6.0.1" + "@lerna/import" "6.0.1" + "@lerna/info" "6.0.1" + "@lerna/init" "6.0.1" + "@lerna/link" "6.0.1" + "@lerna/list" "6.0.1" + "@lerna/publish" "6.0.1" + "@lerna/run" "6.0.1" + "@lerna/version" "6.0.1" + "@nrwl/devkit" ">=14.8.6 < 16" import-local "^3.0.2" - npmlog "^4.1.2" + inquirer "^8.2.4" + npmlog "^6.0.2" + nx ">=14.8.6 < 16" + typescript "^3 || ^4" leven@^3.1.0: version "3.1.0" @@ -7279,26 +7797,26 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -libnpmaccess@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-4.0.3.tgz#dfb0e5b0a53c315a2610d300e46b4ddeb66e7eec" - integrity sha512-sPeTSNImksm8O2b6/pf3ikv4N567ERYEpeKRPSmqlNt1dTZbvgpJIzg5vAhXHpw2ISBsELFRelk0jEahj1c6nQ== +libnpmaccess@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-6.0.3.tgz#473cc3e4aadb2bc713419d92e45d23b070d8cded" + integrity sha512-4tkfUZprwvih2VUZYMozL7EMKgQ5q9VW2NtRyxWtQWlkLTAWHRklcAvBN49CVqEkhUw7vTX2fNgB5LzgUucgYg== dependencies: aproba "^2.0.0" minipass "^3.1.1" - npm-package-arg "^8.1.2" - npm-registry-fetch "^11.0.0" + npm-package-arg "^9.0.1" + npm-registry-fetch "^13.0.0" -libnpmpublish@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-4.0.2.tgz#be77e8bf5956131bcb45e3caa6b96a842dec0794" - integrity sha512-+AD7A2zbVeGRCFI2aO//oUmapCwy7GHqPXFJh3qpToSRNU+tXKJ2YFUgjt04LPPAf2dlEH95s6EhIHM1J7bmOw== +libnpmpublish@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-6.0.4.tgz#adb41ec6b0c307d6f603746a4d929dcefb8f1a0b" + integrity sha512-lvAEYW8mB8QblL6Q/PI/wMzKNvIrF7Kpujf/4fGS/32a2i3jzUXi04TNyIBcK6dQJ34IgywfaKGh+Jq4HYPFmg== dependencies: - normalize-package-data "^3.0.2" - npm-package-arg "^8.1.2" - npm-registry-fetch "^11.0.0" - semver "^7.1.3" - ssri "^8.0.1" + normalize-package-data "^4.0.0" + npm-package-arg "^9.0.1" + npm-registry-fetch "^13.0.0" + semver "^7.3.7" + ssri "^9.0.0" libphonenumber-js@^1.9.43: version "1.9.44" @@ -7325,6 +7843,15 @@ light-my-request@^4.2.0: fastify-warning "^0.2.0" set-cookie-parser "^2.4.1" +light-my-request@^5.6.1: + version "5.6.1" + resolved "https://registry.yarnpkg.com/light-my-request/-/light-my-request-5.6.1.tgz#cff5c75d8cb35a354433d75406fea74a2f8bcdb1" + integrity sha512-sbJnC1UBRivi9L1kICr3CESb82pNiPNB3TvtdIrZZqW0Qh8uDXvoywMmWKZlihDcmw952CMICCzM+54LDf+E+g== + dependencies: + cookie "^0.5.0" + process-warning "^2.0.0" + set-cookie-parser "^2.4.1" + lilconfig@2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.5.tgz#19e57fd06ccc3848fd1891655b5a447092225b25" @@ -7335,13 +7862,13 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= -lint-staged@13.0.0: - version "13.0.0" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.0.0.tgz#ce3526a844e6328814a3261fbfedc610a18856fa" - integrity sha512-vWban5utFt78VZohbosUxNIa46KKJ+KOQTDWTQ8oSl1DLEEVl9zhUtaQbiiydAmx+h2wKJK2d0+iMaRmknuWRQ== +lint-staged@13.0.3: + version "13.0.3" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.0.3.tgz#d7cdf03a3830b327a2b63c6aec953d71d9dc48c6" + integrity sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug== dependencies: cli-truncate "^3.1.0" - colorette "^2.0.16" + colorette "^2.0.17" commander "^9.3.0" debug "^4.3.4" execa "^6.1.0" @@ -7350,7 +7877,7 @@ lint-staged@13.0.0: micromatch "^4.0.5" normalize-path "^3.0.0" object-inspect "^1.12.2" - pidtree "^0.5.0" + pidtree "^0.6.0" string-argv "^0.3.1" yaml "^2.1.1" @@ -7410,11 +7937,6 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" -lodash._reinterpolate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= - lodash.ismatch@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" @@ -7445,27 +7967,12 @@ lodash.sortby@^4.7.0: resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= -lodash.template@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" - integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.templatesettings "^4.0.0" - -lodash.templatesettings@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" - integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.xorby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.xorby/-/lodash.xorby-4.7.0.tgz#9c19a6f9f063a6eb53dd03c1b6871799801463d7" integrity sha1-nBmm+fBjputT3QPBtocXmYAUY9c= -lodash@4.17.21, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.7.0: +lodash@4.17.21, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -7506,11 +8013,6 @@ long@^4.0.0: resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - lowercase-keys@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" @@ -7535,11 +8037,16 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: +lru-cache@^7.10.1, lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: version "7.10.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.10.1.tgz#db577f42a94c168f676b638d15da8fb073448cab" integrity sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A== +lru-cache@^7.13.1: + version "7.14.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.14.0.tgz#21be64954a4680e303a09e9468f880b98a0b3c7f" + integrity sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ== + macos-release@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-3.0.1.tgz#7d2a1329a616297db4a57f3d3ba8fa07a7caadd6" @@ -7587,28 +8094,7 @@ make-fetch-happen@^10.0.3, make-fetch-happen@^10.0.6, make-fetch-happen@^10.1.2: socks-proxy-agent "^6.1.1" ssri "^9.0.0" -make-fetch-happen@^8.0.9: - version "8.0.14" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz#aaba73ae0ab5586ad8eaa68bd83332669393e222" - integrity sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ== - dependencies: - agentkeepalive "^4.1.3" - cacache "^15.0.5" - http-cache-semantics "^4.1.0" - http-proxy-agent "^4.0.1" - https-proxy-agent "^5.0.0" - is-lambda "^1.0.1" - lru-cache "^6.0.0" - minipass "^3.1.3" - minipass-collect "^1.0.2" - minipass-fetch "^1.3.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - promise-retry "^2.0.1" - socks-proxy-agent "^5.0.0" - ssri "^8.0.0" - -make-fetch-happen@^9.0.0, make-fetch-happen@^9.0.1: +make-fetch-happen@^9.0.0: version "9.1.0" resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968" integrity sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg== @@ -7669,26 +8155,26 @@ meow@^8.0.0: type-fest "^0.18.0" yargs-parser "^20.2.3" -mercurius-integration-testing@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mercurius-integration-testing/-/mercurius-integration-testing-4.0.0.tgz#8ba8d0dbbbc052340106f3bd4c233836fecf232d" - integrity sha512-iYUQZN2K12Rf6Qfk/iMO2YugTEnBmrf9H2aiX21HPpsd9NWNvK3o5jLiWsAp/1+rFIX73tknX+TuRMdO1texyg== +mercurius-integration-testing@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/mercurius-integration-testing/-/mercurius-integration-testing-6.0.1.tgz#758d4447fff27a0061c7503989693bf40de7a3de" + integrity sha512-YBjsR0KtjtnlGIuyOpg40PD57eq9XKSSsyisrsGUAY2Ql4nY6nP8oM3JN2zjk7j8zYlZRnIiZKovsTOddqXZdA== dependencies: "@graphql-typed-document-node/core" "^3.1.1" - cookie "^0.4.2" - ws "^8.4.2" + cookie "^0.5.0" + ws "^8.9.0" -mercurius@8.12.2: - version "8.12.2" - resolved "https://registry.yarnpkg.com/mercurius/-/mercurius-8.12.2.tgz#78a94c764d987f9efb9ade43ff4c79891131fe91" - integrity sha512-3bLLjGapSsYStSDNgcGOkz2biSzHIHVCMi7ecGBVXLS8uBGCb1dlruYS83rq74AhOLdpWMwWReZ6jqyuc8SZNw== +mercurius@8.13.1: + version "8.13.1" + resolved "https://registry.yarnpkg.com/mercurius/-/mercurius-8.13.1.tgz#90d906b133ba3c4325f78d15605dbc4e0055dcb1" + integrity sha512-Z9oZrOoqRqelETySQZjCV/nPMdscRY5zbcvEMV8Ze63TPvJocreJL7Jam1kWtYnjmyOcyH2DPxdLRobZJf0Xjw== dependencies: + "@fastify/error" "^2.0.0" + "@fastify/static" "^5.0.0" + "@fastify/websocket" "^5.0.0" "@types/isomorphic-form-data" "^2.0.0" events.on "^1.0.1" - fastify-error "^0.3.1" fastify-plugin "^3.0.0" - fastify-static "^4.2.2" - fastify-websocket "^4.0.0" graphql "^15.5.1" graphql-jit "^0.7.0" mqemitter "^4.4.1" @@ -7788,7 +8274,7 @@ mime@1.6.0: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.5.0: +mime@2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== @@ -7803,7 +8289,7 @@ mimic-fn@^4.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== -mimic-response@^1.0.0, mimic-response@^1.0.1: +mimic-response@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== @@ -7813,11 +8299,23 @@ mimic-response@^3.1.0: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== +mimic-response@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-4.0.0.tgz#35468b19e7c75d10f5165ea25e75a5ceea7cf70f" + integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== + 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.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.5.tgz#4da8f1290ee0f0f8e83d60ca69f8f134068604a3" + integrity sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw== + dependencies: + brace-expansion "^1.1.7" + minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" @@ -7839,6 +8337,13 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" +minimatch@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" + integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== + dependencies: + brace-expansion "^2.0.1" + minimist-options@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -7860,7 +8365,7 @@ minipass-collect@^1.0.2: dependencies: minipass "^3.0.0" -minipass-fetch@^1.3.0, minipass-fetch@^1.3.2: +minipass-fetch@^1.3.2: version "1.4.1" resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.4.1.tgz#d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6" integrity sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw== @@ -7987,17 +8492,16 @@ ms@2.1.3, ms@^2.0.0, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multer@1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.4.tgz#e2bc6cac0df57a8832b858d7418ccaa8ebaf7d8c" - integrity sha512-2wY2+xD4udX612aMqMcB8Ws2Voq6NIUPEtD1be6m411T4uDH/VtL9i//xvcyFlTVfRdaBsk7hV5tgrGQqhuBiw== +multer@1.4.4-lts.1: + version "1.4.4-lts.1" + resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.4-lts.1.tgz#24100f701a4611211cfae94ae16ea39bb314e04d" + integrity sha512-WeSGziVj6+Z2/MwQo3GvqzgR+9Uc+qt8SwHKh3gvNPiISKfsMfG4SvCOFYlxxgkXt7yIV2i1yczehm0EOKIxIg== dependencies: append-field "^1.0.0" - busboy "^0.2.11" + busboy "^1.0.0" concat-stream "^1.5.2" mkdirp "^0.5.4" object-assign "^4.1.1" - on-finished "^2.3.0" type-is "^1.6.4" xtend "^4.0.0" @@ -8058,6 +8562,21 @@ new-github-release-url@2.0.0: dependencies: type-fest "^2.5.1" +node-abort-controller@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.0.1.tgz#f91fa50b1dee3f909afabb7e261b1e1d6b0cb74e" + integrity sha512-/ujIVxthRs+7q6hsdjHMaj8hRG9NuWmwrz+JdRwZ14jdFoKSkm+vDsCbF9PLpnSqjaWQJuTmVtcWHNLr+vrOFw== + +node-addon-api@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" + integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== + +node-domexception@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== + node-fetch@*: version "3.0.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.0.0.tgz#79da7146a520036f2c5f644e4a26095f17e411ea" @@ -8066,6 +8585,15 @@ node-fetch@*: data-uri-to-buffer "^3.0.1" fetch-blob "^3.1.2" +node-fetch@3.2.10: + version "3.2.10" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.2.10.tgz#e8347f94b54ae18b57c9c049ef641cef398a85c8" + integrity sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA== + dependencies: + data-uri-to-buffer "^4.0.0" + fetch-blob "^3.1.4" + formdata-polyfill "^4.0.10" + node-fetch@^2.6.1, node-fetch@^2.6.7: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" @@ -8073,6 +8601,11 @@ node-fetch@^2.6.1, node-fetch@^2.6.7: dependencies: whatwg-url "^5.0.0" +node-gyp-build@^4.3.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40" + integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== + node-gyp@^9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.0.0.tgz#e1da2067427f3eb5bb56820cb62bc6b1e4bd2089" @@ -8116,7 +8649,7 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-package-data@^3.0.0, normalize-package-data@^3.0.2: +normalize-package-data@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== @@ -8141,16 +8674,16 @@ normalize-path@3.0.0, normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-url@^4.1.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" - integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== - -normalize-url@^6.0.1, normalize-url@^6.1.0: +normalize-url@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== +normalize-url@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-7.2.0.tgz#5317f78cff95f5fa1e76cc0b5e33245c43781e11" + integrity sha512-uhXOdZry0L6M2UIo9BTt7FdpBDiAGN/7oItedQwPKh8jh31ZlvC8U9Xl/EJ3aijDHaywXTW3QbZ6LuCocur1YA== + npm-bundled@^1.1.1, npm-bundled@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" @@ -8170,13 +8703,13 @@ npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== -npm-package-arg@^8.0.0, npm-package-arg@^8.1.0, npm-package-arg@^8.1.2, npm-package-arg@^8.1.5: - version "8.1.5" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.5.tgz#3369b2d5fe8fdc674baa7f1786514ddc15466e44" - integrity sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q== +npm-package-arg@8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.1.tgz#00ebf16ac395c63318e67ce66780a06db6df1b04" + integrity sha512-CsP95FhWQDwNqiYS+Q0mZ7FAEDytDZAkNxQqea6IaAFJTAY9Lhhqyl0irU/6PMc7BGfUmnsbHcqxJD7XuVM/rg== dependencies: - hosted-git-info "^4.0.1" - semver "^7.3.4" + hosted-git-info "^3.0.6" + semver "^7.0.0" validate-npm-package-name "^3.0.0" npm-package-arg@^9.0.0, npm-package-arg@^9.0.1: @@ -8188,16 +8721,6 @@ npm-package-arg@^9.0.0, npm-package-arg@^9.0.1: semver "^7.3.5" validate-npm-package-name "^4.0.0" -npm-packlist@^2.1.4: - version "2.2.2" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-2.2.2.tgz#076b97293fa620f632833186a7a8f65aaa6148c8" - integrity sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg== - dependencies: - glob "^7.1.6" - ignore-walk "^3.0.3" - npm-bundled "^1.1.1" - npm-normalize-package-bin "^1.0.1" - npm-packlist@^5.0.0: version "5.0.4" resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-5.0.4.tgz#b8a0635964dbf72baeeb7e69ec32e822f1c26159" @@ -8208,27 +8731,25 @@ npm-packlist@^5.0.0: npm-bundled "^1.1.2" npm-normalize-package-bin "^1.0.1" +npm-packlist@^5.1.0, npm-packlist@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-5.1.1.tgz#79bcaf22a26b6c30aa4dd66b976d69cc286800e0" + integrity sha512-UfpSvQ5YKwctmodvPPkK6Fwk603aoVsf8AEbmVKAEECrfvL8SSe1A2YIwrJ6xmTHAITKPwwZsWo7WwEbNk0kxw== + dependencies: + glob "^8.0.1" + ignore-walk "^5.0.1" + npm-bundled "^1.1.2" + npm-normalize-package-bin "^1.0.1" + npm-pick-manifest@^7.0.0: version "7.0.1" resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-7.0.1.tgz#76dda30a7cd6b99be822217a935c2f5eacdaca4c" integrity sha512-IA8+tuv8KujbsbLQvselW2XQgmXWS47t3CB0ZrzsRZ82DbDfkcFunOaPm4X7qNuhMfq+FmV7hQT4iFVpHqV7mg== dependencies: - npm-install-checks "^5.0.0" - npm-normalize-package-bin "^1.0.1" - npm-package-arg "^9.0.0" - semver "^7.3.5" - -npm-registry-fetch@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz#68c1bb810c46542760d62a6a965f85a702d43a76" - integrity sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA== - dependencies: - make-fetch-happen "^9.0.1" - minipass "^3.1.3" - minipass-fetch "^1.3.0" - minipass-json-stream "^1.0.1" - minizlib "^2.0.0" - npm-package-arg "^8.0.0" + npm-install-checks "^5.0.0" + npm-normalize-package-bin "^1.0.1" + npm-package-arg "^9.0.0" + semver "^7.3.5" npm-registry-fetch@^13.0.0, npm-registry-fetch@^13.0.1: version "13.1.1" @@ -8243,19 +8764,18 @@ npm-registry-fetch@^13.0.0, npm-registry-fetch@^13.0.1: npm-package-arg "^9.0.1" proc-log "^2.0.0" -npm-registry-fetch@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-9.0.0.tgz#86f3feb4ce00313bc0b8f1f8f69daae6face1661" - integrity sha512-PuFYYtnQ8IyVl6ib9d3PepeehcUeHN9IO5N/iCRhyg9tStQcqGQBRVHmfmMWPDERU3KwZoHFvbJ4FPXPspvzbA== +npm-registry-fetch@^13.3.0: + version "13.3.0" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-13.3.0.tgz#0ce10fa4a699a1e70685ecf41bbfb4150d74231b" + integrity sha512-10LJQ/1+VhKrZjIuY9I/+gQTvumqqlgnsCufoXETHAPFTS3+M+Z5CFhZRDHGavmJ6rOye3UvNga88vl8n1r6gg== dependencies: - "@npmcli/ci-detect" "^1.0.0" - lru-cache "^6.0.0" - make-fetch-happen "^8.0.9" - minipass "^3.1.3" - minipass-fetch "^1.3.0" + make-fetch-happen "^10.0.6" + minipass "^3.1.6" + minipass-fetch "^2.0.3" minipass-json-stream "^1.0.1" - minizlib "^2.0.0" - npm-package-arg "^8.0.0" + minizlib "^2.1.2" + npm-package-arg "^9.0.1" + proc-log "^2.0.0" npm-run-path@^4.0.1: version "4.0.1" @@ -8271,16 +8791,6 @@ npm-run-path@^5.1.0: dependencies: path-key "^4.0.0" -npmlog@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - npmlog@^6.0.0, npmlog@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830" @@ -8291,12 +8801,48 @@ npmlog@^6.0.0, npmlog@^6.0.2: gauge "^4.0.3" set-blocking "^2.0.0" -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= +nx@15.0.0, "nx@>=14.8.6 < 16": + version "15.0.0" + resolved "https://registry.yarnpkg.com/nx/-/nx-15.0.0.tgz#8f1a291b7393861242b5c0f0d03c6317aed9c182" + integrity sha512-uh9Ou5oj7yr6Uyp4QhqW1vIVoanYn1sJM1jzOyoT17GAhhODfS0BtQgUvlmInDuRqP8LMaPg4LXFMby07U1HXg== + dependencies: + "@nrwl/cli" "15.0.0" + "@nrwl/tao" "15.0.0" + "@parcel/watcher" "2.0.4" + "@yarnpkg/lockfile" "^1.1.0" + "@yarnpkg/parsers" "^3.0.0-rc.18" + "@zkochan/js-yaml" "0.0.6" + axios "^1.0.0" + chalk "4.1.0" + chokidar "^3.5.1" + cli-cursor "3.1.0" + cli-spinners "2.6.1" + cliui "^7.0.2" + dotenv "~10.0.0" + enquirer "~2.3.6" + fast-glob "3.2.7" + figures "3.2.0" + flat "^5.0.2" + fs-extra "^10.1.0" + glob "7.1.4" + ignore "^5.0.4" + js-yaml "4.1.0" + jsonc-parser "3.2.0" + minimatch "3.0.5" + npm-run-path "^4.0.1" + open "^8.4.0" + semver "7.3.4" + string-width "^4.2.3" + strong-log-transformer "^2.1.0" + tar-stream "~2.2.0" + tmp "~0.2.1" + tsconfig-paths "^3.9.0" + tslib "^2.3.0" + v8-compile-cache "2.3.0" + yargs "^17.4.0" + yargs-parser "21.0.1" -object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -8306,12 +8852,12 @@ object-hash@3.0.0: resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== -object-inspect@^1.11.0, object-inspect@^1.9.0: +object-inspect@^1.11.0: version "1.11.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== -object-inspect@^1.12.2: +object-inspect@^1.12.2, object-inspect@^1.9.0: version "1.12.2" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== @@ -8348,6 +8894,11 @@ object.values@^1.1.5: define-properties "^1.1.3" es-abstract "^1.19.1" +on-exit-leak-free@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz#5c703c968f7e7f851885f6459bf8a8a57edc9cc4" + integrity sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w== + on-finished@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" @@ -8355,7 +8906,7 @@ on-finished@2.4.1: dependencies: ee-first "1.1.1" -on-finished@^2.3.0, on-finished@~2.3.0: +on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= @@ -8383,7 +8934,7 @@ onetime@^6.0.0: dependencies: mimic-fn "^4.0.0" -open@8.4.0: +open@8.4.0, open@^8.4.0: version "8.4.0" resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== @@ -8423,10 +8974,10 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" -ora@6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/ora/-/ora-6.1.0.tgz#86aa07058c4e9fb91444412d103b0d7e01aca973" - integrity sha512-CxEP6845hLK+NHFWZ+LplGO4zfw4QSfxTlqMfvlJ988GoiUeZDMzCvqsZkFHv69sPICmJH1MDxZoQFOKXerAVw== +ora@6.1.2, ora@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/ora/-/ora-6.1.2.tgz#7b3c1356b42fd90fb1dad043d5dbe649388a0bf5" + integrity sha512-EJQ3NiP5Xo94wJXIzAyOtSb0QEIAUu7m8t6UZ9krbz0vAJqr92JpcK/lEXg91q6B9pEGqrykkd2EQplnifDSBw== dependencies: bl "^5.0.0" chalk "^5.0.0" @@ -8466,11 +9017,6 @@ os-tmpdir@~1.0.2: resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== - p-cancelable@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" @@ -8608,17 +9154,17 @@ pac-resolver@^5.0.0: ip "^1.1.5" netmask "^2.0.1" -package-json@^6.3.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" - integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== +package-json@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-8.1.0.tgz#2a22806f1ed7c786c8e6ff26cfe20003bf4c6850" + integrity sha512-hySwcV8RAWeAfPsXb9/HGSPn8lwDnv6fabH+obUZKX169QknRkRhPxd1yMubpKDskLFATkl3jHpNtVtDPFA0Wg== dependencies: - got "^9.6.0" - registry-auth-token "^4.0.0" - registry-url "^5.0.0" - semver "^6.2.0" + got "^12.1.0" + registry-auth-token "^5.0.1" + registry-url "^6.0.0" + semver "^7.3.7" -pacote@^13.0.3, pacote@^13.0.5, pacote@^13.4.1: +pacote@^13.0.3: version "13.4.1" resolved "https://registry.yarnpkg.com/pacote/-/pacote-13.4.1.tgz#b6610bf8903abc075bfffa02a2cedafe81a97293" integrity sha512-FqlSWlD8n+ejCE17GF/lf0yasztMGFl4UFzYQk5njaK/qPPWfVDWnfQwqmqeXObWLSmIBew+O+CFD24vxkVDjg== @@ -8645,6 +9191,33 @@ pacote@^13.0.3, pacote@^13.0.5, pacote@^13.4.1: ssri "^9.0.0" tar "^6.1.11" +pacote@^13.6.1: + version "13.6.1" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-13.6.1.tgz#ac6cbd9032b4c16e5c1e0c60138dfe44e4cc589d" + integrity sha512-L+2BI1ougAPsFjXRyBhcKmfT016NscRFLv6Pz5EiNf1CCFJFU0pSKKQwsZTyAQB+sTuUL4TyFyp6J1Ork3dOqw== + dependencies: + "@npmcli/git" "^3.0.0" + "@npmcli/installed-package-contents" "^1.0.7" + "@npmcli/promise-spawn" "^3.0.0" + "@npmcli/run-script" "^4.1.0" + cacache "^16.0.0" + chownr "^2.0.0" + fs-minipass "^2.1.0" + infer-owner "^1.0.4" + minipass "^3.1.6" + mkdirp "^1.0.4" + npm-package-arg "^9.0.0" + npm-packlist "^5.1.0" + npm-pick-manifest "^7.0.0" + npm-registry-fetch "^13.0.1" + proc-log "^2.0.0" + promise-retry "^2.0.1" + read-package-json "^5.0.0" + read-package-json-fast "^2.0.3" + rimraf "^3.0.2" + ssri "^9.0.0" + tar "^6.1.11" + parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -8679,25 +9252,19 @@ parse-json@^5.0.0, parse-json@^5.2.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse-path@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.3.tgz#82d81ec3e071dcc4ab49aa9f2c9c0b8966bb22bf" - integrity sha512-9Cepbp2asKnWTJ9x2kpw6Fe8y9JDbqwahGCTvklzd/cEq5C5JC59x2Xb0Kx+x0QZ8bvNquGO8/BWP0cwBHzSAA== +parse-path@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-7.0.0.tgz#605a2d58d0a749c8594405d8cc3a2bf76d16099b" + integrity sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog== dependencies: - is-ssh "^1.3.0" - protocols "^1.4.0" - qs "^6.9.4" - query-string "^6.13.8" + protocols "^2.0.0" -parse-url@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-6.0.0.tgz#f5dd262a7de9ec00914939220410b66cff09107d" - integrity sha512-cYyojeX7yIIwuJzledIHeLUBVJ6COVLeT4eF+2P6aKVzwvgKQPndCBv3+yQ7pcWjqToYwaligxzSYNNmGoMAvw== +parse-url@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-8.1.0.tgz#972e0827ed4b57fc85f0ea6b0d839f0d8a57a57d" + integrity sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w== dependencies: - is-ssh "^1.3.0" - normalize-url "^6.1.0" - parse-path "^4.0.0" - protocols "^1.4.0" + parse-path "^7.0.0" parse5-htmlparser2-tree-adapter@^6.0.0: version "6.0.1" @@ -8798,10 +9365,10 @@ picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pidtree@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.5.0.tgz#ad5fbc1de78b8a5f99d6fbdd4f6e4eee21d1aca1" - integrity sha512-9nxspIM7OpZuhBxPg73Zvyq7j1QMPMPsGKTqRc2XOaFQauDvoNz9fM1Wdkjmeo7l9GXOZiRs97sPkuayl39wjA== +pidtree@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" + integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== pify@^2.3.0: version "2.3.0" @@ -8823,11 +9390,24 @@ pify@^5.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== +pino-abstract-transport@v1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz#cc0d6955fffcadb91b7b49ef220a6cc111d48bb3" + integrity sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA== + dependencies: + readable-stream "^4.0.0" + split2 "^4.0.0" + pino-std-serializers@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz#b56487c402d882eb96cd67c257868016b61ad671" integrity sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg== +pino-std-serializers@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-6.0.0.tgz#4c20928a1bafca122fdc2a7a4a171ca1c5f9c526" + integrity sha512-mMMOwSKrmyl+Y12Ri2xhH1lbzQxwwpuru9VjyJpgFIH4asSj88F2csdMwN6+M5g1Ll4rmsYghHLQJw81tgZ7LQ== + pino@^6.13.0: version "6.13.3" resolved "https://registry.yarnpkg.com/pino/-/pino-6.13.3.tgz#60b93bcda1541f92fb37b3f2be0a25cf1d05b6fe" @@ -8841,6 +9421,23 @@ pino@^6.13.0: quick-format-unescaped "^4.0.3" sonic-boom "^1.0.2" +pino@^8.5.0: + version "8.6.1" + resolved "https://registry.yarnpkg.com/pino/-/pino-8.6.1.tgz#3fc43acc79bcd3e871670347854f7359e2612f10" + integrity sha512-fi+V2K98eMZjQ/uEHHSiMALNrz7HaFdKNYuyA3ZUrbH0f1e8sPFDmeRGzg7ZH2q4QDxGnJPOswmqlEaTAZeDPA== + dependencies: + atomic-sleep "^1.0.0" + fast-redact "^3.1.1" + on-exit-leak-free "^2.1.0" + pino-abstract-transport v1.0.0 + pino-std-serializers "^6.0.0" + process-warning "^2.0.0" + quick-format-unescaped "^4.0.3" + real-require "^0.2.0" + safe-stable-stringify "^2.3.1" + sonic-boom "^3.1.0" + thread-stream "^2.0.0" + pirates@^4.0.4: version "4.0.5" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" @@ -8863,11 +9460,6 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= - prettier-linter-helpers@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" @@ -8875,46 +9467,36 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032" - integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew== - -pretty-format@^27.0.0: - version "27.3.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.3.1.tgz#7e9486365ccdd4a502061fa761d3ab9ca1b78df5" - integrity sha512-DR/c+pvFc52nLimLROYjnXPtolawm+uWDxr4FjuLDLUn+ktWnSN851KoHwHzzqq6rfCOjkzN8FLgDrSub6UDuA== - dependencies: - "@jest/types" "^27.2.5" - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^17.0.1" +prettier@2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" + integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== -pretty-format@^27.4.6: - version "27.4.6" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.4.6.tgz#1b784d2f53c68db31797b2348fa39b49e31846b7" - integrity sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g== +pretty-format@^28.0.0: + version "28.1.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.1.tgz#f731530394e0f7fcd95aba6b43c50e02d86b95cb" + integrity sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw== dependencies: + "@jest/schemas" "^28.0.2" ansi-regex "^5.0.1" ansi-styles "^5.0.0" - react-is "^17.0.1" + react-is "^18.0.0" -pretty-format@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" - integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== +pretty-format@^29.0.0, pretty-format@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.0.1.tgz#2f8077114cdac92a59b464292972a106410c7ad0" + integrity sha512-iTHy3QZMzuL484mSTYbQIM1AHhEQsH8mXWS2/vd2yFBYnG3EBqGiMONo28PlPgrW7P/8s/1ISv+y7WH306l8cw== dependencies: - ansi-regex "^5.0.1" + "@jest/schemas" "^29.0.0" ansi-styles "^5.0.0" - react-is "^17.0.1" + react-is "^18.0.0" -pretty-format@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.0.tgz#8f5836c6a0dfdb834730577ec18029052191af55" - integrity sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q== +pretty-format@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.2.1.tgz#86e7748fe8bbc96a6a4e04fa99172630907a9611" + integrity sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA== dependencies: - "@jest/schemas" "^28.0.2" - ansi-regex "^5.0.1" + "@jest/schemas" "^29.0.0" ansi-styles "^5.0.0" react-is "^18.0.0" @@ -8933,6 +9515,11 @@ process-warning@^1.0.0: resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-1.0.0.tgz#980a0b25dc38cd6034181be4b7726d89066b4616" integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== +process-warning@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-2.0.0.tgz#341dbeaac985b90a04ebcd844d50097c7737b2ee" + integrity sha512-+MmoAXoUX+VTHAlwns0h+kFUWFs/3FZy+ZuchkgjyOu3oioLAo2LB5aCfKPh2+P9O18i3m43tUEv3YqttSy0Ww== + progress@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" @@ -8993,10 +9580,10 @@ proto-list@~1.2.1: resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= -protocols@^1.1.0, protocols@^1.4.0: - version "1.4.8" - resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.8.tgz#48eea2d8f58d9644a4a32caae5d5db290a075ce8" - integrity sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg== +protocols@^2.0.0, protocols@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" + integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== proxy-addr@^2.0.7, proxy-addr@~2.0.7: version "2.0.7" @@ -9020,7 +9607,7 @@ proxy-agent@5.0.0: proxy-from-env "^1.0.0" socks-proxy-agent "^5.0.0" -proxy-from-env@^1.0.0: +proxy-from-env@^1.0.0, proxy-from-env@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== @@ -9033,17 +9620,17 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -punycode@^2.1.0, punycode@^2.1.1: +punycode@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -pupa@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" - integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== +pupa@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-3.1.0.tgz#f15610274376bbcc70c9a3aa8b505ea23f41c579" + integrity sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug== dependencies: - escape-goat "^2.0.0" + escape-goat "^4.0.0" q@^1.5.1: version "1.5.1" @@ -9055,7 +9642,7 @@ qlobber@^5.0.0: resolved "https://registry.yarnpkg.com/qlobber/-/qlobber-5.0.3.tgz#24728d6ba5382d502c7e09f6860b95a9c71615cd" integrity sha512-wW4GTZPePyh0RgOsM18oDyOUlXfurVRgoNyJfS+y7VWPyd0GYhQp5T2tycZFZjonH+hngxIfklGJhTP/ghidgQ== -qs@6.10.3, qs@^6.10.3: +qs@6.10.3: version "6.10.3" resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== @@ -9072,23 +9659,13 @@ qs@6.9.3: resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.3.tgz#bfadcd296c2d549f1dffa560619132c977f5008e" integrity sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw== -qs@^6.9.4: - version "6.10.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.1.tgz#4931482fa8d647a5aab799c5271d2133b981fb6a" - integrity sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg== +qs@^6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== dependencies: side-channel "^1.0.4" -query-string@^6.13.8: - version "6.14.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a" - integrity sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw== - dependencies: - decode-uri-component "^0.2.0" - filter-obj "^1.1.0" - split-on-first "^1.0.0" - strict-uri-encode "^2.0.0" - queue-microtask@^1.1.2, queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -9134,7 +9711,7 @@ raw-body@2.5.1, raw-body@^2.2.0: iconv-lite "0.4.24" unpipe "1.0.0" -rc@^1.2.8: +rc@1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -9144,21 +9721,11 @@ rc@^1.2.8: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - react-is@^18.0.0: version "18.0.0" resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.0.0.tgz#026f6c4a27dbe33bf4a35655b9e1327c4e55e3f5" integrity sha512-yUcBYdBBbo3QiPsgYDcfQcIkGZHfxOaoE6HLSnr1sPzMhdyxusbfKOSUbSd/ocGi32dxcj366PsTj+5oggeKKw== -read-cmd-shim@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz#4a50a71d6f0965364938e9038476f7eede3928d9" - integrity sha512-HJpV9bQpkl6KwjxlJcBoqu9Ba0PQg8TqSNIOrulGt54a0uup0HtevreFHzYzkm0lpnleRdNBzXznKrgxglEHQw== - read-cmd-shim@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-3.0.0.tgz#62b8c638225c61e6cc607f8f4b779f3b8238f155" @@ -9172,27 +9739,7 @@ read-package-json-fast@^2.0.2, read-package-json-fast@^2.0.3: json-parse-even-better-errors "^2.3.0" npm-normalize-package-bin "^1.0.1" -read-package-json@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-3.0.1.tgz#c7108f0b9390257b08c21e3004d2404c806744b9" - integrity sha512-aLcPqxovhJTVJcsnROuuzQvv6oziQx4zd3JvG0vGCL5MjTONUc4uJ90zCBC6R7W7oUKBNoR/F8pkyfVwlbxqng== - dependencies: - glob "^7.1.1" - json-parse-even-better-errors "^2.3.0" - normalize-package-data "^3.0.0" - npm-normalize-package-bin "^1.0.0" - -read-package-json@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-4.1.1.tgz#153be72fce801578c1c86b8ef2b21188df1b9eea" - integrity sha512-P82sbZJ3ldDrWCOSKxJT0r/CXMWR0OR3KRh55SgKo3p91GSIEEC32v3lSHAvO/UcH3/IoL7uqhOFBduAnwdldw== - dependencies: - glob "^7.1.1" - json-parse-even-better-errors "^2.3.0" - normalize-package-data "^3.0.0" - npm-normalize-package-bin "^1.0.0" - -read-package-json@^5.0.0: +read-package-json@^5.0.0, read-package-json@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-5.0.1.tgz#1ed685d95ce258954596b13e2e0e76c7d0ab4c26" integrity sha512-MALHuNgYWdGW3gKzuNMuYtcSSZbGQm94fAp16xt8VsYTLBjUSc55bLMKe6gzpWue0Tfi6CBgwCSdDAqutGDhMg== @@ -9238,7 +9785,7 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" -read@1, read@~1.0.1: +read@1, read@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" integrity sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ= @@ -9255,7 +9802,7 @@ readable-stream@1.1.x: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.4.0, readable-stream@^3.6.0: +readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -9264,7 +9811,7 @@ readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stre string_decoder "^1.1.1" util-deprecate "^1.0.1" -readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@~2.3.6: +readable-stream@^2.2.2, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -9277,6 +9824,13 @@ readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@~2.3.6: string_decoder "~1.1.1" util-deprecate "~1.0.1" +readable-stream@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.0.0.tgz#da7105d03430a28ef4080785a43e6a45d4cdc4d1" + integrity sha512-Mf7ilWBP6AV3tF3MjtBrHMH3roso7wIrpgzCwt9ybvqiJQVWIEBMnp/W+S//yvYSsUUi2cJIwD7q7m57l0AqZw== + dependencies: + abort-controller "^3.0.0" + readdir-scoped-modules@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" @@ -9294,6 +9848,11 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +real-require@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.2.0.tgz#209632dea1810be2ae063a6ac084fee7e33fba78" + integrity sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg== + rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" @@ -9327,51 +9886,52 @@ regexpp@^3.2.0: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -registry-auth-token@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" - integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== +registry-auth-token@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.0.1.tgz#5e6cd106e6c251135a046650c58476fc03e92833" + integrity sha512-UfxVOj8seK1yaIOiieV4FIP01vfBDLsY0H9sQzi9EbbUdJiuuBjJgLa1DpImXMNPnVkBD4eVxTEXcrZA6kfpJA== dependencies: - rc "^1.2.8" + "@pnpm/npm-conf" "^1.0.4" -registry-url@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" - integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== +registry-url@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-6.0.1.tgz#056d9343680f2f64400032b1e199faa692286c58" + integrity sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q== dependencies: - rc "^1.2.8" + rc "1.2.8" -release-it@15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/release-it/-/release-it-15.0.0.tgz#82be33b3d483b2832b6a43faf765fdb82af6bc2a" - integrity sha512-Dnio6p+1O88UdQZmPjdXqq+Nrrn5t0USZyOctTPK5M36kOOfQTdp8V1Wlagz9QYIYr93NwovEZ+f4wK0P/kHbw== +release-it@15.5.0: + version "15.5.0" + resolved "https://registry.yarnpkg.com/release-it/-/release-it-15.5.0.tgz#773c247d4fd5a5e5c8801b02bf1e7e9e536bee27" + integrity sha512-/pQo/PwEXAWRBgVGLE+3IQ3hUoeiDZMGAo/Egin1envCyLyjzrU7+0P2w4iZ1Xv5OxhC2AcaPaN5eY1ql47cBA== dependencies: "@iarna/toml" "2.2.5" - "@octokit/rest" "18.12.0" + "@octokit/rest" "19.0.4" async-retry "1.3.3" chalk "5.0.1" cosmiconfig "7.0.1" execa "6.1.0" form-data "4.0.0" - git-url-parse "11.6.0" - globby "13.1.1" - got "12.0.4" - inquirer "8.2.4" + git-url-parse "13.1.0" + globby "13.1.2" + got "12.5.1" + inquirer "9.1.2" is-ci "3.0.1" lodash "4.17.21" mime-types "2.1.35" new-github-release-url "2.0.0" + node-fetch "3.2.10" open "8.4.0" - ora "6.1.0" + ora "6.1.2" os-name "5.0.1" promise.allsettled "1.0.5" proxy-agent "5.0.0" semver "7.3.7" shelljs "0.8.5" - update-notifier "5.1.0" + update-notifier "6.0.2" url-join "5.0.0" wildcard-match "5.1.2" - yargs-parser "21.0.1" + yargs-parser "21.1.1" require-directory@^2.1.1: version "2.1.1" @@ -9434,13 +9994,6 @@ resolve@^1.22.0: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= - dependencies: - lowercase-keys "^1.0.0" - responselike@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" @@ -9448,6 +10001,13 @@ responselike@^2.0.0: dependencies: lowercase-keys "^2.0.0" +responselike@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" + integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== + dependencies: + lowercase-keys "^3.0.0" + restore-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" @@ -9508,19 +10068,26 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rxjs@7.5.5, rxjs@^7.5.5: +rxjs@7.5.7: + version "7.5.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.7.tgz#2ec0d57fdc89ece220d2e702730ae8f1e49def39" + integrity sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA== + dependencies: + tslib "^2.1.0" + +rxjs@^7.5.5: version "7.5.5" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f" integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw== dependencies: tslib "^2.1.0" -rxjs@^6.6.0: - version "6.6.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== +rxjs@^7.5.6: + version "7.5.6" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.6.tgz#0446577557862afd6903517ce7cae79ecb9662bc" + integrity sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw== dependencies: - tslib "^1.9.0" + tslib "^2.1.0" safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" @@ -9539,7 +10106,7 @@ safe-regex2@^2.0.0: dependencies: ret "~0.2.0" -safe-stable-stringify@^2.0.0, safe-stable-stringify@^2.3.0: +safe-stable-stringify@^2.0.0, safe-stable-stringify@^2.3.0, safe-stable-stringify@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz#ab67cbe1fe7d40603ca641c5e765cb942d04fc73" integrity sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg== @@ -9554,12 +10121,17 @@ secure-json-parse@^2.0.0, secure-json-parse@^2.4.0: resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.4.0.tgz#5aaeaaef85c7a417f76271a4f5b0cc3315ddca85" integrity sha512-Q5Z/97nbON5t/L/sH6mY2EacfjVGwrCcSi5D3btRO2GZ8pf1K1UN7Z9H5J57hjVU2Qzxr1xO+FmBhOvEkzCMmg== -semver-diff@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" - integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== +secure-json-parse@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.5.0.tgz#f929829df2adc7ccfb53703569894d051493a6ac" + integrity sha512-ZQruFgZnIWH+WyO9t5rWt4ZEGqCKPwhiw+YbzTwpmT9elgLrLcfuyUiSnwwjUiVy9r4VM3urtbNF1xmEh9IL2w== + +semver-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-4.0.0.tgz#3afcf5ed6d62259f5c72d0d5d50dffbdc9680df5" + integrity sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA== dependencies: - semver "^6.3.0" + semver "^7.3.5" semver-store@^0.3.0: version "0.3.0" @@ -9571,6 +10143,13 @@ semver-store@^0.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== +semver@7.3.4: + version "7.3.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" + integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== + dependencies: + lru-cache "^6.0.0" + semver@7.3.7, semver@^7.0.0, semver@^7.3.7: version "7.3.7" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" @@ -9578,18 +10157,25 @@ semver@7.3.7, semver@^7.0.0, semver@^7.3.7: dependencies: lru-cache "^6.0.0" -semver@7.x, semver@^7.1.1, semver@^7.1.3, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: +semver@7.x, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== dependencies: lru-cache "^6.0.0" -semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^7.3.8: + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + dependencies: + lru-cache "^6.0.0" + send@0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" @@ -9638,7 +10224,7 @@ serve-static@1.15.0: parseurl "~1.3.3" send "0.18.0" -set-blocking@^2.0.0, set-blocking@~2.0.0: +set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= @@ -9703,7 +10289,7 @@ side-channel@^1.0.3, side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: +signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.5" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.5.tgz#9e3e8cc0c75a99472b44321033a7702e7738252f" integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ== @@ -9817,6 +10403,13 @@ sonic-boom@^1.0.2: atomic-sleep "^1.0.0" flatstr "^1.0.12" +sonic-boom@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.2.0.tgz#ce9f2de7557e68be2e52c8df6d9b052e7d348143" + integrity sha512-SbbZ+Kqj/XIunvIAgUZRlqd6CGQYq71tRRbXR92Za8J/R3Yh4Av+TWENiSiEgnlwckYLyP0YZQWVfyNC0dzLaA== + dependencies: + atomic-sleep "^1.0.0" + sort-keys@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" @@ -9875,11 +10468,6 @@ spdx-license-ids@^3.0.0: resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz#0d9becccde7003d6c658d487dd48a32f0bf3014b" integrity sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA== -split-on-first@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" - integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== - split2@^3.0.0: version "3.2.2" resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" @@ -9887,6 +10475,11 @@ split2@^3.0.0: dependencies: readable-stream "^3.0.0" +split2@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.1.0.tgz#101907a24370f85bb782f08adaabe4e281ecf809" + integrity sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ== + split@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" @@ -9906,7 +10499,7 @@ ssri@^8.0.0, ssri@^8.0.1: dependencies: minipass "^3.1.1" -ssri@^9.0.0: +ssri@^9.0.0, ssri@^9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057" integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q== @@ -9930,15 +10523,10 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= -streamsearch@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" - integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= - -strict-uri-encode@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" - integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== string-argv@^0.3.1: version "0.3.1" @@ -9958,16 +10546,7 @@ string-similarity@^4.0.1: resolved "https://registry.yarnpkg.com/string-similarity/-/string-similarity-4.0.4.tgz#42d01ab0b34660ea8a018da8f56a3309bb8b2a5b" integrity sha512-/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ== -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.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@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, 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== @@ -9985,6 +10564,15 @@ string-width@^5.0.0: is-fullwidth-code-point "^4.0.0" strip-ansi "^7.0.1" +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + string.prototype.trimend@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" @@ -10020,13 +10608,6 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -10098,10 +10679,10 @@ subscriptions-transport-ws@0.11.0: symbol-observable "^1.0.4" ws "^5.2.0 || ^6.0.0 || ^7.0.0" -superagent@^7.1.3: - version "7.1.3" - resolved "https://registry.yarnpkg.com/superagent/-/superagent-7.1.3.tgz#783ff8330e7c2dad6ad8f0095edc772999273b6b" - integrity sha512-WA6et4nAvgBCS73lJvv1D0ssI5uk5Gh+TGN/kNe+B608EtcVs/yzfl+OLXTzDs7tOBDIpvgh/WUs1K2OK1zTeQ== +superagent@^8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/superagent/-/superagent-8.0.3.tgz#15c8ec5611a1f01386994cfeeda5aa138bcb7b17" + integrity sha512-oBC+aNsCjzzjmO5AOPBPFS+Z7HPzlx+DQr/aHwM08kI+R24gsDmAS1LMfza1fK+P+SKlTAoNZpOvooE/pRO1HA== dependencies: component-emitter "^1.3.0" cookiejar "^2.1.3" @@ -10110,18 +10691,17 @@ superagent@^7.1.3: form-data "^4.0.0" formidable "^2.0.1" methods "^1.1.2" - mime "^2.5.0" - qs "^6.10.3" - readable-stream "^3.6.0" - semver "^7.3.7" + mime "2.6.0" + qs "^6.11.0" + semver "^7.3.8" -supertest@6.2.3: - version "6.2.3" - resolved "https://registry.yarnpkg.com/supertest/-/supertest-6.2.3.tgz#291b220126e5faa654d12abe1ada3658757c8c67" - integrity sha512-3GSdMYTMItzsSYjnIcljxMVZKPW1J9kYHZY+7yLfD0wpPwww97GeImZC1oOk0S5+wYl2niJwuFusBJqwLqYM3g== +supertest@6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/supertest/-/supertest-6.3.1.tgz#a8ad362fc6f323c88730ac191ce30427dc869088" + integrity sha512-hRohNeIfk/cA48Cxpa/w48hktP6ZaRqXb0QV5rLvW0C7paRsBU3Q5zydzYrslOJtj/gd48qx540jKtcs6vG1fQ== dependencies: methods "^1.1.2" - superagent "^7.1.3" + superagent "^8.0.3" supports-color@^5.3.0: version "5.5.0" @@ -10130,7 +10710,7 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^7.0.0, supports-color@^7.1.0: +supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== @@ -10144,14 +10724,6 @@ supports-color@^8.0.0: dependencies: has-flag "^4.0.0" -supports-hyperlinks@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" - integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" @@ -10162,6 +10734,17 @@ symbol-observable@^1.0.2, symbol-observable@^1.0.4: resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== +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.0.2, tar@^6.1.0, tar@^6.1.11, tar@^6.1.2: version "6.1.11" resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" @@ -10179,14 +10762,6 @@ temp-dir@^1.0.0: resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0= -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== - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" - test-exclude@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" @@ -10220,10 +10795,12 @@ thenify-all@^1.0.0: dependencies: any-promise "^1.0.0" -throat@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" - integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== +thread-stream@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-2.2.0.tgz#310c03a253f729094ce5d4638ef5186dfa80a9e8" + integrity sha512-rUkv4/fnb4rqy/gGy7VuqK6wE1+1DOCOWy4RMeaV69ZHMP11tQKZvZSip1yTgrKCMZzEMcCL/bKfHvSfDHx+iQ== + dependencies: + real-require "^0.2.0" through2@^2.0.0: version "2.0.5" @@ -10255,6 +10832,11 @@ tiny-lru@^8.0.1: resolved "https://registry.yarnpkg.com/tiny-lru/-/tiny-lru-8.0.1.tgz#c1d77d806e68035aaa2253e253d212291240ece2" integrity sha512-eBIAYA0BzSjxBedCaO0CSjertD+u+IvNuFkyD7ESf+qjqHKBr5wFqvEYl91+ZQd7jjq2pO6/fBVwFgb6bxvorw== +tiny-lru@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/tiny-lru/-/tiny-lru-9.0.2.tgz#6714626d1961831da99472eb9f6d26b3ff999c39" + integrity sha512-SZwDlvflOPYiImKv2Rh/1uccO+r5JsEexLU1szFsVudzk17Sj250xl75/X3aY4vINS1ZulnCPqcndvW9R0y7Yg== + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -10262,6 +10844,13 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" +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" + tmpl@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" @@ -10272,11 +10861,6 @@ to-fast-properties@^2.0.0: resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== - to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -10294,13 +10878,6 @@ toidentifier@1.0.1: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== -tr46@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" - integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== - dependencies: - punycode "^2.1.1" - tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" @@ -10316,6 +10893,11 @@ trim-newlines@^3.0.0: resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== +ts-graphviz@^0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/ts-graphviz/-/ts-graphviz-0.16.0.tgz#7a6e6b5434854bc90ab861e70d5af0d6d20729a7" + integrity sha512-3fTPO+G6bSQNvMh/XQQzyiahVLMMj9kqYO99ivUraNJ3Wp05HZOOVtRhi6w9hq7+laP1MKHjLBtGWqTeb1fcpg== + ts-invariant@^0.4.0: version "0.4.4" resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.4.4.tgz#97a523518688f93aafad01b0e80eb803eb2abd86" @@ -10323,32 +10905,32 @@ ts-invariant@^0.4.0: dependencies: tslib "^1.9.3" -ts-jest@28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-28.0.3.tgz#d1c47f167e56eef3989bb51afaf7fc1c87a04c52" - integrity sha512-HzgbEDQ2KgVtDmpXToqAcKTyGHdHsG23i/iUjfxji92G5eT09S1m9UHZd7csF0Bfgh9txM4JzwHnv7r1waFPlw== +ts-jest@29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.0.3.tgz#63ea93c5401ab73595440733cefdba31fcf9cb77" + integrity sha512-Ibygvmuyq1qp/z3yTh9QTwVVAbFdDy/+4BtIQR2sp6baF2SJU/8CKK/hhnGIDY2L90Az2jIqTwZPnN2p+BweiQ== dependencies: bs-logger "0.x" fast-json-stable-stringify "2.x" - jest-util "^28.0.0" + jest-util "^29.0.0" json5 "^2.2.1" lodash.memoize "4.x" make-error "1.x" semver "7.x" - yargs-parser "^20.x" + yargs-parser "^21.0.1" -ts-morph@15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/ts-morph/-/ts-morph-15.0.0.tgz#927a85d22909b95fa81e399c94fea655d98be514" - integrity sha512-OZkg0TI1h6FVe8DZXyBo6p7NfCN9EZZkkA736f243KzQ3cypYWtaLc9eyNn/JH/fWYfQ4d6wIA4oM0vElRTGcQ== +ts-morph@16.0.0: + version "16.0.0" + resolved "https://registry.yarnpkg.com/ts-morph/-/ts-morph-16.0.0.tgz#35caca7c286dd70e09e5f72af47536bf3b6a27af" + integrity sha512-jGNF0GVpFj0orFw55LTsQxVYEUOCWBAbR5Ls7fTYE5pQsbW18ssTb/6UXx/GYAEjS+DQTp8VoTw0vqYMiaaQuw== dependencies: - "@ts-morph/common" "~0.15.0" - code-block-writer "^11.0.0" + "@ts-morph/common" "~0.17.0" + code-block-writer "^11.0.3" -ts-node@10.8.0: - version "10.8.0" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.8.0.tgz#3ceb5ac3e67ae8025c1950626aafbdecb55d82ce" - integrity sha512-/fNd5Qh+zTt8Vt1KbYZjRHCE9sI5i7nqfD/dzBBRDeVXZXS6kToW6R7tTU6Nd4XavFs0mAVCg29Q//ML7WsZYA== +ts-node@10.9.1, ts-node@^10.8.1: + version "10.9.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== dependencies: "@cspotcode/source-map-support" "^0.8.0" "@tsconfig/node10" "^1.0.7" @@ -10364,26 +10946,7 @@ ts-node@10.8.0: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -ts-node@^10.7.0: - version "10.7.0" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.7.0.tgz#35d503d0fab3e2baa672a0e94f4b40653c2463f5" - integrity sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A== - dependencies: - "@cspotcode/source-map-support" "0.7.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.0" - yn "3.1.1" - -tsconfig-paths@^3.14.1: +tsconfig-paths@^3.14.1, tsconfig-paths@^3.9.0: version "3.14.1" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== @@ -10393,21 +10956,21 @@ tsconfig-paths@^3.14.1: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@2.3.1, tslib@^2.1.0, tslib@~2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" - integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== - -tslib@2.4.0, tslib@^2.0.1, tslib@~2.4.0: +tslib@2.4.0, tslib@^2.0.1, tslib@^2.3.0, tslib@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== -tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: +tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.3: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslib@^2.1.0, tslib@~2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" + integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== + tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -10464,6 +11027,16 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== +type-fest@^1.0.1, type-fest@^1.0.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" + integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== + +type-fest@^2.13.0: + version "2.14.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.14.0.tgz#f990e19169517d689c98e16d128b231022b27e12" + integrity sha512-hQnTQkFjL5ik6HF2fTAM8ycbr94UbQXK364wF930VHb0dfBJ5JBP8qwrR8TaK9zwUEk7meruo2JAUDMwvuxd/w== + type-fest@^2.5.1: version "2.12.2" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.12.2.tgz#80a53614e6b9b475eb9077472fb7498dc7aa51d0" @@ -10489,10 +11062,15 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@4.7.2: - version "4.7.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.2.tgz#1f9aa2ceb9af87cca227813b4310fff0b51593c4" - integrity sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A== +typescript@4.8.4: + version "4.8.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.4.tgz#c464abca159669597be5f96b8943500b238e60e6" + integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ== + +"typescript@^3 || ^4": + version "4.8.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.2.tgz#e3b33d5ccfb5914e4eeab6699cf208adee3fd790" + integrity sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw== typescript@^4.6.4: version "4.6.4" @@ -10533,12 +11111,12 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" -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== +unique-string@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-3.0.0.tgz#84a1c377aff5fd7a8bc6b55d8244b2bd90d75b9a" + integrity sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ== dependencies: - crypto-random-string "^2.0.0" + crypto-random-string "^4.0.0" universal-user-agent@^6.0.0: version "6.0.0" @@ -10565,25 +11143,25 @@ upath@^2.0.1: resolved "https://registry.yarnpkg.com/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b" integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w== -update-notifier@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" - integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw== - dependencies: - boxen "^5.0.0" - chalk "^4.1.0" - configstore "^5.0.1" - has-yarn "^2.1.0" - import-lazy "^2.1.0" - is-ci "^2.0.0" +update-notifier@6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-6.0.2.tgz#a6990253dfe6d5a02bd04fbb6a61543f55026b60" + integrity sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og== + dependencies: + boxen "^7.0.0" + chalk "^5.0.1" + configstore "^6.0.0" + has-yarn "^3.0.0" + import-lazy "^4.0.0" + is-ci "^3.0.1" is-installed-globally "^0.4.0" - is-npm "^5.0.0" - is-yarn-global "^0.3.0" - latest-version "^5.1.0" - pupa "^2.1.1" - semver "^7.3.4" - semver-diff "^3.1.1" - xdg-basedir "^4.0.0" + is-npm "^6.0.0" + is-yarn-global "^0.4.0" + latest-version "^7.0.0" + pupa "^3.1.0" + semver "^7.3.7" + semver-diff "^4.0.0" + xdg-basedir "^5.1.0" uri-js@^4.2.2: version "4.4.1" @@ -10597,13 +11175,6 @@ url-join@5.0.0: resolved "https://registry.yarnpkg.com/url-join/-/url-join-5.0.0.tgz#c2f1e5cbd95fa91082a93b58a1f42fecb4bdbcf1" integrity sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA== -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= - dependencies: - prepend-http "^2.0.0" - util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -10614,32 +11185,32 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@8.3.2, uuid@^8.0.0, uuid@^8.3.2: +uuid@8.3.2, uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -v8-compile-cache-lib@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz#0582bcb1c74f3a2ee46487ceecf372e46bce53e8" - integrity sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA== +uuid@9.0.0, uuid@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" + integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== 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" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== -v8-compile-cache@^2.0.3: +v8-compile-cache@2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== -v8-to-istanbul@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.0.0.tgz#be0dae58719fc53cb97e5c7ac1d7e6d4f5b19511" - integrity sha512-HcvgY/xaRm7isYmyx+lFKA4uQmfUbN0J4M0nNItvzTvH/iQ9kW5j/t4YSR+Ge323/lrgDAWJoF46tzGQHwBHFw== +v8-to-istanbul@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz#b6f994b0b5d4ef255e17a0d17dc444a9f5132fa4" + integrity sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w== dependencies: - "@jridgewell/trace-mapping" "^0.3.7" + "@jridgewell/trace-mapping" "^0.3.12" "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" @@ -10693,7 +11264,7 @@ walk-up-path@^1.0.0: resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-1.0.0.tgz#d4745e893dd5fd0dbb58dd0a4c6a33d9c9fec53e" integrity sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg== -walker@^1.0.7: +walker@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== @@ -10717,11 +11288,6 @@ webidl-conversions@^3.0.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= -webidl-conversions@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" - integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== - whatwg-mimetype@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" @@ -10735,15 +11301,6 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" -whatwg-url@^8.4.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" - integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== - dependencies: - lodash "^4.7.0" - tr46 "^2.1.0" - webidl-conversions "^6.1.0" - which-boxed-primitive@^1.0.1, which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -10784,19 +11341,19 @@ which@^2.0.1, which@^2.0.2: dependencies: isexe "^2.0.0" -wide-align@^1.1.0, wide-align@^1.1.5: +wide-align@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== dependencies: string-width "^1.0.2 || 2 || 3 || 4" -widest-line@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" - integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== +widest-line@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-4.0.1.tgz#a0fc673aaba1ea6f0a0d35b3c2795c9a9cc2ebf2" + integrity sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig== dependencies: - string-width "^4.0.0" + string-width "^5.0.1" wildcard-match@5.1.2: version "5.1.2" @@ -10838,6 +11395,15 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.0.1.tgz#2101e861777fec527d0ea90c57c6b03aac56a5b3" + integrity sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -10903,10 +11469,10 @@ write-pkg@^4.0.0: type-fest "^0.4.1" write-json-file "^3.2.0" -ws@8.7.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.7.0.tgz#eaf9d874b433aa00c0e0d8752532444875db3957" - integrity sha512-c2gsP0PRwcLFzUiA8Mkr37/MI7ilIlHQxaEAtd0uNMbVMoy8puJyafRlm0bV9MbGSabUPeLrRRaqIBcFcA2Pqg== +ws@8.10.0: + version "8.10.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.10.0.tgz#00a28c09dfb76eae4eb45c3b565f771d6951aa51" + integrity sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw== "ws@^5.2.0 || ^6.0.0 || ^7.0.0": version "7.5.5" @@ -10918,15 +11484,15 @@ ws@^8.0.0, ws@^8.2.2: resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== -ws@^8.4.2: - version "8.4.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.4.2.tgz#18e749868d8439f2268368829042894b6907aa0b" - integrity sha512-Kbk4Nxyq7/ZWqr/tarI9yIt/+iNNFOjBXEWgTb4ydaNHBNGgvf2QHbS9fdfsndfjFlFwEd4Al+mw83YkaD10ZA== +ws@^8.9.0: + version "8.9.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.9.0.tgz#2a994bb67144be1b53fe2d23c53c028adeb7f45e" + integrity sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg== -xdg-basedir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" - integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== +xdg-basedir@^5.0.1, xdg-basedir@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-5.1.0.tgz#1efba19425e73be1bc6f2a6ceb52a3d2c884c0c9" + integrity sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ== xregexp@2.0.0: version "2.0.0" @@ -10976,12 +11542,17 @@ yargs-parser@20.2.4: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== -yargs-parser@21.0.1, yargs-parser@^21.0.0: +yargs-parser@21.0.1, yargs-parser@^21.0.0, yargs-parser@^21.0.1: version "21.0.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== -yargs-parser@^20.2.2, yargs-parser@^20.2.3, yargs-parser@^20.x: +yargs-parser@21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs-parser@^20.2.2, yargs-parser@^20.2.3: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== @@ -11025,6 +11596,19 @@ yargs@^17.3.1: y18n "^5.0.5" yargs-parser "^21.0.0" +yargs@^17.4.0: + version "17.5.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e" + integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.0.0" + yn@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"