From 7f42bbcf9627989e2cea810fa0dcfbdb705e3d8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonathan=20C=C3=A9lio?= Date: Tue, 11 Aug 2020 11:49:15 -0300 Subject: [PATCH 1/7] fix: returns customer in admin gql --- e2e/graphql/admin-api.graphql.ts | 4 + e2e/graphql/admin-api.graphql.types.ts | 6 +- e2e/review-store.spec.ts | 16 +++ .../shop/review-store.resolver.test.ts | 24 ++++- .../resolvers/shop/review-store.resolver.ts | 18 +++- src/api/schema/admin.ts | 1 + src/entities/review-store.entity.ts | 5 +- src/helpers/review.service.ts | 24 +++-- src/services/review-store.service.test.ts | 99 +++++++++---------- src/services/review-store.service.ts | 36 ++----- src/test-helpers/contexts.ts | 7 ++ src/types/generated-admin-schema.ts | 1 + 12 files changed, 142 insertions(+), 99 deletions(-) diff --git a/e2e/graphql/admin-api.graphql.ts b/e2e/graphql/admin-api.graphql.ts index 920f76d..d5299af 100644 --- a/e2e/graphql/admin-api.graphql.ts +++ b/e2e/graphql/admin-api.graphql.ts @@ -8,6 +8,10 @@ export const ADMIN_REVIEW_STORE_FRAGMENT = gql` state nps nextStates + customer { + id + firstName + } } `; diff --git a/e2e/graphql/admin-api.graphql.types.ts b/e2e/graphql/admin-api.graphql.types.ts index 33be80f..718c9f9 100644 --- a/e2e/graphql/admin-api.graphql.types.ts +++ b/e2e/graphql/admin-api.graphql.types.ts @@ -3,7 +3,11 @@ import * as Types from '../../src/types/generated-admin-schema'; export type AdminReviewStoreFragment = { __typename?: 'ReviewStore' } & Pick< Types.ReviewStore, 'id' | 'title' | 'description' | 'state' | 'nps' | 'nextStates' ->; +> & { + customer?: Types.Maybe< + { __typename?: 'Customer' } & Pick + >; + }; export type CustomerListQueryVariables = Types.Exact<{ [key: string]: never }>; diff --git a/e2e/review-store.spec.ts b/e2e/review-store.spec.ts index 0f7582e..dcc220a 100644 --- a/e2e/review-store.spec.ts +++ b/e2e/review-store.spec.ts @@ -168,6 +168,10 @@ describe('Review Store E2E', () => { id: 'T_1', nextStates: ['Authorized', 'Denied', 'Updated'], state: 'Created', + customer: { + id: 'T_2', + firstName: 'Trevor' + }, ...exampleCreteReviewStore } ] @@ -188,6 +192,10 @@ describe('Review Store E2E', () => { id: 'T_1', nextStates: ['Authorized', 'Denied', 'Updated'], state: 'Created', + customer: { + id: 'T_2', + firstName: 'Trevor' + }, ...exampleCreteReviewStore } }); @@ -207,6 +215,10 @@ describe('Review Store E2E', () => { id: 'T_1', state: 'Authorized', nextStates: ['Updated', 'Denied'], + customer: { + id: 'T_2', + firstName: 'Trevor' + }, ...exampleCreteReviewStore } }); @@ -266,6 +278,10 @@ describe('Review Store E2E', () => { ).resolves.toEqual({ reviewStore: { id: 'T_1', + customer: { + id: 'T_2', + firstName: 'Trevor' + }, nextStates: ['Authorized', 'Denied'], state: 'Updated', ...exampleCreteReviewStore diff --git a/src/api/resolvers/shop/review-store.resolver.test.ts b/src/api/resolvers/shop/review-store.resolver.test.ts index 927218c..9f539e5 100644 --- a/src/api/resolvers/shop/review-store.resolver.test.ts +++ b/src/api/resolvers/shop/review-store.resolver.test.ts @@ -5,7 +5,8 @@ import { IllegalOperationError } from '@vendure/core'; import { shopCtx, exampleReviewStore, - examplesReviewStore + examplesReviewStore, + exampleCustomer } from '../../../test-helpers'; import { createMock } from '@golevelup/nestjs-testing'; @@ -34,7 +35,7 @@ describe('ReviewStoreShopResolver', () => { await expect(resolver).toBeDefined(); }); - describe('getNPSAvg', () => { + describe('avgReviewStore', () => { it('should get the NPS Average', async () => { await expect(resolver.avgReviewStore()).resolves.toBe(9); }); @@ -42,6 +43,9 @@ describe('ReviewStoreShopResolver', () => { describe('myReviewStore', () => { it('should return my review for store', async () => { + reviewStoreService.getCustomerOrThrow.mockImplementation( + async () => exampleCustomer + ); await expect(resolver.myReviewStore(shopCtx)).resolves.toBe( exampleReviewStore ); @@ -50,6 +54,9 @@ describe('ReviewStoreShopResolver', () => { describe('createReviewStore', () => { it('should create a review to store correctly', async () => { + reviewStoreService.getCustomerOrThrow.mockImplementation( + async () => exampleCustomer + ); reviewStoreService.checkIfCustomerIsValidToCreateReviewStore.mockImplementation( async () => true ); @@ -57,7 +64,10 @@ describe('ReviewStoreShopResolver', () => { resolver.createReviewStore(shopCtx, { input: exampleReviewStore }) ).resolves.toBe(exampleReviewStore); }); - it('should reject to create a review to store', async () => { + it('should try to create a review of an invalid user', async () => { + reviewStoreService.getCustomerOrThrow.mockImplementation( + async () => exampleCustomer + ); reviewStoreService.checkIfCustomerIsValidToCreateReviewStore.mockImplementation( async () => false ); @@ -68,6 +78,9 @@ describe('ReviewStoreShopResolver', () => { }); describe('updateReviewStore', () => { it('should update a review store correctly', async () => { + reviewStoreService.getCustomerOrThrow.mockImplementation( + async () => exampleCustomer + ); reviewStoreService.findCustomerReview.mockImplementation( async () => exampleReviewStore ); @@ -78,7 +91,10 @@ describe('ReviewStoreShopResolver', () => { resolver.updateReviewStore(shopCtx, { input: examplesReviewStore[1] }) ).resolves.toEqual(examplesReviewStore[1]); }); - it('should try to update a undefined customer review store and fail', async () => { + it('should try to update a undefined review store and fail', async () => { + reviewStoreService.getCustomerOrThrow.mockImplementation( + async () => exampleCustomer + ); reviewStoreService.findCustomerReview.mockImplementation( async () => undefined ); diff --git a/src/api/resolvers/shop/review-store.resolver.ts b/src/api/resolvers/shop/review-store.resolver.ts index fa6a06b..b6fac71 100644 --- a/src/api/resolvers/shop/review-store.resolver.ts +++ b/src/api/resolvers/shop/review-store.resolver.ts @@ -5,7 +5,9 @@ import { Ctx, RequestContext, Allow, - IllegalOperationError + IllegalOperationError, + UnauthorizedError, + Customer } from '@vendure/core'; import { ReviewStoreEntity } from '../../../entities/review-store.entity'; import { @@ -23,14 +25,18 @@ export class ReviewStoreShopResolver { @Ctx() ctx: RequestContext, @Args() args: MutationCreateReviewStoreArgs ): Promise { + const customer = await this.reviewStoreService.getCustomerOrThrow(ctx); if ( !(await this.reviewStoreService.checkIfCustomerIsValidToCreateReviewStore( - ctx + customer )) ) { throw new IllegalOperationError('cannot-create-review-store'); } - return await this.reviewStoreService.create(args.input); + return await this.reviewStoreService.create({ + ...args.input, + customer: customer + }); } @Mutation() @@ -39,8 +45,9 @@ export class ReviewStoreShopResolver { @Ctx() ctx: RequestContext, @Args() args: MutationUpdateReviewStoreArgs ): Promise { + const customer = await this.reviewStoreService.getCustomerOrThrow(ctx); const customerReview = await this.reviewStoreService.findCustomerReview( - ctx + customer ); if (!customerReview) { throw new IllegalOperationError('cannot-update-review-store'); @@ -61,6 +68,7 @@ export class ReviewStoreShopResolver { async myReviewStore( @Ctx() ctx: RequestContext ): Promise { - return await this.reviewStoreService.findCustomerReview(ctx); + const customer = await this.reviewStoreService.getCustomerOrThrow(ctx); + return await this.reviewStoreService.findCustomerReview(customer); } } diff --git a/src/api/schema/admin.ts b/src/api/schema/admin.ts index b1e222b..1404662 100644 --- a/src/api/schema/admin.ts +++ b/src/api/schema/admin.ts @@ -8,6 +8,7 @@ export const adminApiExtensions = gql` state: String! nps: Int! nextStates: [String!]! + customer: Customer } type ReviewStoreList implements PaginatedList { items: [ReviewStore!]! diff --git a/src/entities/review-store.entity.ts b/src/entities/review-store.entity.ts index f7efa5e..34bc743 100644 --- a/src/entities/review-store.entity.ts +++ b/src/entities/review-store.entity.ts @@ -1,5 +1,5 @@ import { Customer } from '@vendure/core'; -import { Column, OneToOne, Entity } from 'typeorm'; +import { Column, OneToOne, Entity, JoinColumn } from 'typeorm'; import { ReviewBaseEntity } from './review-base.entity'; import { DeepPartial } from '@vendure/core'; @@ -11,6 +11,7 @@ export class ReviewStoreEntity extends ReviewBaseEntity { @Column('int') nps: number; - @OneToOne((type) => Customer) + @OneToOne(() => Customer) + @JoinColumn() customer: Customer; } diff --git a/src/helpers/review.service.ts b/src/helpers/review.service.ts index 7cf5714..a60e91a 100644 --- a/src/helpers/review.service.ts +++ b/src/helpers/review.service.ts @@ -10,7 +10,8 @@ import { CustomerService, VendureEvent, DeepPartial, - patchEntity + patchEntity, + UnauthorizedError } from '@vendure/core'; import { ReviewState } from './review-state'; import { ListQueryOptions } from '@vendure/core/dist/common/types/common-types'; @@ -33,7 +34,8 @@ export class ReviewService< protected customerService: CustomerService, protected eventBus: EventBus, private entity: Type, - private event: Type + private event: Type, + private entityRelations: string[] ) { this.reviewStateMachine = new ReviewStateMachine(entity); } @@ -51,7 +53,7 @@ export class ReviewService< totalItems: number; }> { return await this.listQueryBuilder - .build(this.entity, options) + .build(this.entity, options, { relations: this.entityRelations }) .getManyAndCount() .then(([reviews, totalItems]) => { return { @@ -62,7 +64,9 @@ export class ReviewService< } async findById(id: ID): Promise { - return await getEntityOrThrow(this.connection, this.entity, id); + return await getEntityOrThrow(this.connection, this.entity, id, { + relations: this.entityRelations + }); } async update( @@ -97,10 +101,7 @@ export class ReviewService< return this.reviewStateMachine.getNextStates(review); } - /** Get Customer in the context of the request */ - protected async getCustomer( - ctx: RequestContext - ): Promise { + async getCustomer(ctx: RequestContext): Promise { const userId = ctx.activeUserId; if (!userId) { return; @@ -114,4 +115,11 @@ export class ReviewService< return customer; } + async getCustomerOrThrow(ctx: RequestContext): Promise { + const customer = await this.getCustomer(ctx); + if (!customer) { + throw new UnauthorizedError(); + } + return customer; + } } diff --git a/src/services/review-store.service.test.ts b/src/services/review-store.service.test.ts index 767b191..838557a 100644 --- a/src/services/review-store.service.test.ts +++ b/src/services/review-store.service.test.ts @@ -14,7 +14,8 @@ import { exampleReviewStore, exampleCustomer, adminCtx, - shopCtx + shopCtx, + failCtx } from '../test-helpers'; import { ReviewStoreEntity } from '../entities/review-store.entity'; import { ReviewStoreService } from './review-store.service'; @@ -113,37 +114,58 @@ describe('ReviewStoreService', () => { ]); }); }); - }); - describe('ReviewStoreService', () => { - describe('findCustomerReview', () => { - it('should find the review', async () => { + describe('getCustomer', () => { + it('should try to get an customer by the ctx and succeeds', async () => { customerService.findOneByUserId.mockImplementation( async () => exampleCustomer ); - connection - .getRepository(ReviewStoreEntity) - .findOne.mockImplementation(async () => exampleReviewStore); - await expect(resolver.findCustomerReview(shopCtx)).resolves.toBe( - exampleReviewStore + await expect(resolver.getCustomer(shopCtx)).resolves.toEqual( + exampleCustomer ); }); - it('should test a an undefined user and return an unauthorized error ', async () => { + it('should try to get an customer by the ctx and fail', async () => { customerService.findOneByUserId.mockImplementation( async () => undefined ); - await expect(resolver.findCustomerReview(adminCtx)).rejects.toThrow( - UnauthorizedError + await expect(resolver.getCustomer(shopCtx)).resolves.toEqual(undefined); + }); + it('should try to get an customer by an unauthorized ctx and fail', async () => { + customerService.findOneByUserId.mockImplementation( + async () => undefined + ); + await expect(resolver.getCustomer(failCtx)).resolves.toEqual(undefined); + }); + }); + describe('getCustomerOrThrow', () => { + it('should try to get an customer by the ctx and succeeds', async () => { + customerService.findOneByUserId.mockImplementation( + async () => exampleCustomer + ); + await expect(resolver.getCustomerOrThrow(shopCtx)).resolves.toEqual( + exampleCustomer ); }); - it('should test an empty user and return an unauthorized error', async () => { + it('should try to get an customer by the ctx and fail', async () => { customerService.findOneByUserId.mockImplementation( async () => undefined ); - await expect(resolver.findCustomerReview(shopCtx)).rejects.toThrow( + await expect(resolver.getCustomerOrThrow(shopCtx)).rejects.toThrow( UnauthorizedError ); }); }); + }); + describe('ReviewStoreService', () => { + describe('findCustomerReview', () => { + it('should find the review', async () => { + connection + .getRepository(ReviewStoreEntity) + .findOne.mockImplementation(async () => exampleReviewStore); + await expect( + resolver.findCustomerReview(exampleCustomer) + ).resolves.toBe(exampleReviewStore); + }); + }); describe('getNPSAvg', () => { it('should return the average', async () => { connection @@ -156,59 +178,34 @@ describe('ReviewStoreService', () => { }); }); describe('checkIfCustomerIsValidToCreateReviewStore', () => { - it('should return true', async () => { - customerService.findOneByUserId.mockImplementation( - async () => exampleCustomer - ); + it('should test an customer with a review and return false', async () => { connection .getRepository(ReviewStoreEntity) - .findOne.mockImplementation(async () => undefined); - connection.getRepository(Order).count.mockImplementation(async () => 1); - await expect( - resolver.checkIfCustomerIsValidToCreateReviewStore(shopCtx) - ).resolves.toBe(true); - }); - - it('should test a an undefined user and return false', async () => { - customerService.findOneByUserId.mockImplementation( - async () => undefined - ); - await expect( - resolver.checkIfCustomerIsValidToCreateReviewStore(adminCtx) - ).resolves.toBe(false); - }); - it('should test an empty user and return false', async () => { - customerService.findOneByUserId.mockImplementation( - async () => undefined - ); + .findOne.mockImplementation(async () => exampleReviewStore); await expect( - resolver.checkIfCustomerIsValidToCreateReviewStore(shopCtx) + resolver.checkIfCustomerIsValidToCreateReviewStore(exampleCustomer) ).resolves.toBe(false); }); - - it('should test an customer with review and return false', async () => { - customerService.findOneByUserId.mockImplementation( - async () => exampleCustomer - ); + it('should test an customer without review and orders and return false', async () => { connection .getRepository(ReviewStoreEntity) - .findOne.mockImplementation(async () => exampleReviewStore); + .findOne.mockImplementation(async () => undefined); + connection.getRepository(Order).count.mockImplementation(async () => 0); await expect( - resolver.checkIfCustomerIsValidToCreateReviewStore(shopCtx) + resolver.checkIfCustomerIsValidToCreateReviewStore(exampleCustomer) ).resolves.toBe(false); }); - - it('should test an customer without orders and return false', async () => { + it('should test an customer without review and with valid order and return true', async () => { customerService.findOneByUserId.mockImplementation( async () => exampleCustomer ); connection .getRepository(ReviewStoreEntity) .findOne.mockImplementation(async () => undefined); - connection.getRepository(Order).count.mockImplementation(async () => 0); + connection.getRepository(Order).count.mockImplementation(async () => 1); await expect( - resolver.checkIfCustomerIsValidToCreateReviewStore(shopCtx) - ).resolves.toBe(false); + resolver.checkIfCustomerIsValidToCreateReviewStore(exampleCustomer) + ).resolves.toBe(true); }); }); }); diff --git a/src/services/review-store.service.ts b/src/services/review-store.service.ts index 0f69a21..ad4481a 100644 --- a/src/services/review-store.service.ts +++ b/src/services/review-store.service.ts @@ -1,14 +1,13 @@ import { Injectable } from '@nestjs/common'; import { InjectConnection } from '@nestjs/typeorm'; -import { Connection, Not } from 'typeorm'; +import { Connection } from 'typeorm'; import { ReviewStoreEntity } from '../entities'; import { - RequestContext, EventBus, Order, - UnauthorizedError, CustomerService, - ListQueryBuilder + ListQueryBuilder, + Customer } from '@vendure/core'; import { ReviewService } from '../helpers'; import { ReviewStoreStateTransitionEvent } from '../events'; @@ -30,19 +29,14 @@ export class ReviewStoreService extends ReviewService< customerService, eventBus, ReviewStoreEntity, - ReviewStoreStateTransitionEvent + ReviewStoreStateTransitionEvent, + ['customer'] ); } async findCustomerReview( - ctx: RequestContext + customer: Customer ): Promise { - const customer = await this.getCustomer(ctx); - - if (!customer) { - throw new UnauthorizedError(); - } - return await this.connection .getRepository(ReviewStoreEntity) .findOne({ customer: customer }); @@ -58,24 +52,10 @@ export class ReviewStoreService extends ReviewService< return nps ? nps : 0; } - /** - * To create a review store the user must: - * - * - Be Logged - * - Have an account - * - Doesn't have an store review saved previously - * - Have at least one order placed - */ async checkIfCustomerIsValidToCreateReviewStore( - ctx: RequestContext + customer: Customer ): Promise { - const customer = await this.getCustomer(ctx); - - if (!customer) { - return false; - } - - const customerReview = await this.findCustomerReview(ctx); + const customerReview = await this.findCustomerReview(customer); if (customerReview) { return false; diff --git a/src/test-helpers/contexts.ts b/src/test-helpers/contexts.ts index 35c8962..3bbd51b 100644 --- a/src/test-helpers/contexts.ts +++ b/src/test-helpers/contexts.ts @@ -27,3 +27,10 @@ export const shopCtx = new RequestContext({ channel: chanel, languageCode: LanguageCode.en }); +export const failCtx = new RequestContext({ + apiType: 'shop', + isAuthorized: false, + authorizedAsOwnerOnly: false, + channel: chanel, + languageCode: LanguageCode.en +}); diff --git a/src/types/generated-admin-schema.ts b/src/types/generated-admin-schema.ts index 3c7d8f7..4427185 100644 --- a/src/types/generated-admin-schema.ts +++ b/src/types/generated-admin-schema.ts @@ -3133,6 +3133,7 @@ export type ReviewStore = Node & { state: Scalars['String']; nps: Scalars['Int']; nextStates: Array; + customer?: Maybe; }; export type ReviewStoreFilterParameter = { From cce5b7c8be3dfac72608d89c5857788a468256f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonathan=20C=C3=A9lio?= Date: Tue, 11 Aug 2020 13:53:44 -0300 Subject: [PATCH 2/7] build: add vendure ui kit in build --- gql-codegen.yml | 13 + package.json | 3 + src/ui/common/fragments.graphql.ts | 16 + src/ui/common/fragments.graphql.types.ts | 10 + src/ui/common/generated-admin-schema.ts | 3738 ++++++++++++++ .../review-store-list.graphql.ts | 14 + .../review-store-list.graphql.types.ts | 14 + tsconfig.json | 3 +- yarn.lock | 4573 ++++++++++++++++- 9 files changed, 8224 insertions(+), 160 deletions(-) create mode 100644 src/ui/common/fragments.graphql.ts create mode 100644 src/ui/common/fragments.graphql.types.ts create mode 100644 src/ui/common/generated-admin-schema.ts create mode 100644 src/ui/components/review-store-list/review-store-list.graphql.ts create mode 100644 src/ui/components/review-store-list/review-store-list.graphql.types.ts diff --git a/gql-codegen.yml b/gql-codegen.yml index 65de764..3ed4725 100644 --- a/gql-codegen.yml +++ b/gql-codegen.yml @@ -8,6 +8,19 @@ generates: schema: "http://localhost:3000/shop-api" plugins: - typescript + ./src/ui/common/generated-admin-schema.ts: + schema: "http://localhost:3000/admin-api" + plugins: + - typescript + ./src/ui: + schema: "http://localhost:3000/admin-api" + documents: "./**/*.graphql.ts" + preset: near-operation-file + presetConfig: + extension: .types.ts + baseTypesPath: "common/generated-admin-schema.ts" + plugins: + - typescript-operations ./e2e/graphql/shop-api.graphql.ts: schema: "http://localhost:3000/shop-api" documents: "./e2e/graphql/shop-api.graphql.ts" diff --git a/package.json b/package.json index 6ef55f4..ae118be 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,9 @@ "dev-server:run:server": "node -r ts-node/register dev-server/index.ts", "dev-server:run:worker": "node -r ts-node/register dev-server/index-worker.ts" }, + "dependencies": { + "@vendure/ui-devkit": "0.14.0" + }, "peerDependencies": { "@vendure/core": ">=0.14.0" }, diff --git a/src/ui/common/fragments.graphql.ts b/src/ui/common/fragments.graphql.ts new file mode 100644 index 0000000..ec2d33f --- /dev/null +++ b/src/ui/common/fragments.graphql.ts @@ -0,0 +1,16 @@ +import gql from 'graphql-tag'; + +export const REVIEW_STORE_FRAGMENT = gql` + fragment ReviewStore on ReviewStore { + id + title + description + state + nps + nextStates + customer { + id + firstName + } + } +`; diff --git a/src/ui/common/fragments.graphql.types.ts b/src/ui/common/fragments.graphql.types.ts new file mode 100644 index 0000000..8eb3486 --- /dev/null +++ b/src/ui/common/fragments.graphql.types.ts @@ -0,0 +1,10 @@ +import * as Types from './generated-admin-schema'; + +export type ReviewStoreFragment = { __typename?: 'ReviewStore' } & Pick< + Types.ReviewStore, + 'id' | 'title' | 'description' | 'state' | 'nps' | 'nextStates' +> & { + customer?: Types.Maybe< + { __typename?: 'Customer' } & Pick + >; + }; diff --git a/src/ui/common/generated-admin-schema.ts b/src/ui/common/generated-admin-schema.ts new file mode 100644 index 0000000..4427185 --- /dev/null +++ b/src/ui/common/generated-admin-schema.ts @@ -0,0 +1,3738 @@ +export type Maybe = T | null; +export type Exact = { + [K in keyof T]: T[K]; +}; +/** All built-in and custom scalars, mapped to their actual values */ +export type Scalars = { + ID: string; + String: string; + Boolean: boolean; + Int: number; + Float: number; + /** A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the `date-time` format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. */ + DateTime: any; + /** The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). */ + JSON: any; + /** The `Upload` scalar type represents a file upload. */ + Upload: any; +}; + +export type AddNoteToCustomerInput = { + id: Scalars['ID']; + note: Scalars['String']; + isPublic: Scalars['Boolean']; +}; + +export type AddNoteToOrderInput = { + id: Scalars['ID']; + note: Scalars['String']; + isPublic: Scalars['Boolean']; +}; + +export type Address = Node & { + __typename?: 'Address'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + fullName?: Maybe; + company?: Maybe; + streetLine1: Scalars['String']; + streetLine2?: Maybe; + city?: Maybe; + province?: Maybe; + postalCode?: Maybe; + country: Country; + phoneNumber?: Maybe; + defaultShippingAddress?: Maybe; + defaultBillingAddress?: Maybe; + customFields?: Maybe; +}; + +export type Adjustment = { + __typename?: 'Adjustment'; + adjustmentSource: Scalars['String']; + type: AdjustmentType; + description: Scalars['String']; + amount: Scalars['Int']; +}; + +export enum AdjustmentType { + Tax = 'TAX', + Promotion = 'PROMOTION', + Shipping = 'SHIPPING', + Refund = 'REFUND', + TaxRefund = 'TAX_REFUND', + PromotionRefund = 'PROMOTION_REFUND', + ShippingRefund = 'SHIPPING_REFUND' +} + +export type Administrator = Node & { + __typename?: 'Administrator'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + firstName: Scalars['String']; + lastName: Scalars['String']; + emailAddress: Scalars['String']; + user: User; +}; + +export type AdministratorFilterParameter = { + createdAt?: Maybe; + updatedAt?: Maybe; + firstName?: Maybe; + lastName?: Maybe; + emailAddress?: Maybe; +}; + +export type AdministratorList = PaginatedList & { + __typename?: 'AdministratorList'; + items: Array; + totalItems: Scalars['Int']; +}; + +export type AdministratorListOptions = { + skip?: Maybe; + take?: Maybe; + sort?: Maybe; + filter?: Maybe; +}; + +export type AdministratorSortParameter = { + id?: Maybe; + createdAt?: Maybe; + updatedAt?: Maybe; + firstName?: Maybe; + lastName?: Maybe; + emailAddress?: Maybe; +}; + +export type Asset = Node & { + __typename?: 'Asset'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + name: Scalars['String']; + type: AssetType; + fileSize: Scalars['Int']; + mimeType: Scalars['String']; + width: Scalars['Int']; + height: Scalars['Int']; + source: Scalars['String']; + preview: Scalars['String']; + focalPoint?: Maybe; +}; + +export type AssetFilterParameter = { + createdAt?: Maybe; + updatedAt?: Maybe; + name?: Maybe; + type?: Maybe; + fileSize?: Maybe; + mimeType?: Maybe; + width?: Maybe; + height?: Maybe; + source?: Maybe; + preview?: Maybe; +}; + +export type AssetList = PaginatedList & { + __typename?: 'AssetList'; + items: Array; + totalItems: Scalars['Int']; +}; + +export type AssetListOptions = { + skip?: Maybe; + take?: Maybe; + sort?: Maybe; + filter?: Maybe; +}; + +export type AssetSortParameter = { + id?: Maybe; + createdAt?: Maybe; + updatedAt?: Maybe; + name?: Maybe; + fileSize?: Maybe; + mimeType?: Maybe; + width?: Maybe; + height?: Maybe; + source?: Maybe; + preview?: Maybe; +}; + +export enum AssetType { + Image = 'IMAGE', + Video = 'VIDEO', + Binary = 'BINARY' +} + +export type AssignProductsToChannelInput = { + productIds: Array; + channelId: Scalars['ID']; + priceFactor?: Maybe; +}; + +export type AuthenticationInput = { + native?: Maybe; +}; + +export type AuthenticationMethod = Node & { + __typename?: 'AuthenticationMethod'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + strategy: Scalars['String']; +}; + +export type BooleanCustomFieldConfig = CustomField & { + __typename?: 'BooleanCustomFieldConfig'; + name: Scalars['String']; + type: Scalars['String']; + label?: Maybe>; + description?: Maybe>; + readonly?: Maybe; + internal?: Maybe; +}; + +export type BooleanOperators = { + eq?: Maybe; +}; + +export type Cancellation = Node & + StockMovement & { + __typename?: 'Cancellation'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + productVariant: ProductVariant; + type: StockMovementType; + quantity: Scalars['Int']; + orderLine: OrderLine; + }; + +export type CancelOrderInput = { + /** The id of the order to be cancelled */ + orderId: Scalars['ID']; + /** Optionally specify which OrderLines to cancel. If not provided, all OrderLines will be cancelled */ + lines?: Maybe>; + reason?: Maybe; +}; + +export type Channel = Node & { + __typename?: 'Channel'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + code: Scalars['String']; + token: Scalars['String']; + defaultTaxZone?: Maybe; + defaultShippingZone?: Maybe; + defaultLanguageCode: LanguageCode; + currencyCode: CurrencyCode; + pricesIncludeTax: Scalars['Boolean']; +}; + +export type Collection = Node & { + __typename?: 'Collection'; + isPrivate: Scalars['Boolean']; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + languageCode?: Maybe; + name: Scalars['String']; + slug: Scalars['String']; + breadcrumbs: Array; + position: Scalars['Int']; + description: Scalars['String']; + featuredAsset?: Maybe; + assets: Array; + parent?: Maybe; + children?: Maybe>; + filters: Array; + translations: Array; + productVariants: ProductVariantList; + customFields?: Maybe; +}; + +export type CollectionProductVariantsArgs = { + options?: Maybe; +}; + +export type CollectionBreadcrumb = { + __typename?: 'CollectionBreadcrumb'; + id: Scalars['ID']; + name: Scalars['String']; + slug: Scalars['String']; +}; + +export type CollectionFilterParameter = { + isPrivate?: Maybe; + createdAt?: Maybe; + updatedAt?: Maybe; + languageCode?: Maybe; + name?: Maybe; + slug?: Maybe; + position?: Maybe; + description?: Maybe; +}; + +export type CollectionList = PaginatedList & { + __typename?: 'CollectionList'; + items: Array; + totalItems: Scalars['Int']; +}; + +export type CollectionListOptions = { + skip?: Maybe; + take?: Maybe; + sort?: Maybe; + filter?: Maybe; +}; + +export type CollectionSortParameter = { + id?: Maybe; + createdAt?: Maybe; + updatedAt?: Maybe; + name?: Maybe; + slug?: Maybe; + position?: Maybe; + description?: Maybe; +}; + +export type CollectionTranslation = { + __typename?: 'CollectionTranslation'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + languageCode: LanguageCode; + name: Scalars['String']; + slug: Scalars['String']; + description: Scalars['String']; +}; + +export type ConfigArg = { + __typename?: 'ConfigArg'; + name: Scalars['String']; + type: Scalars['String']; + value: Scalars['String']; +}; + +export type ConfigArgDefinition = { + __typename?: 'ConfigArgDefinition'; + name: Scalars['String']; + type: Scalars['String']; + label?: Maybe; + description?: Maybe; + config?: Maybe; +}; + +export type ConfigArgInput = { + name: Scalars['String']; + type: Scalars['String']; + value: Scalars['String']; +}; + +export type ConfigurableOperation = { + __typename?: 'ConfigurableOperation'; + code: Scalars['String']; + args: Array; +}; + +export type ConfigurableOperationDefinition = { + __typename?: 'ConfigurableOperationDefinition'; + code: Scalars['String']; + args: Array; + description: Scalars['String']; +}; + +export type ConfigurableOperationInput = { + code: Scalars['String']; + arguments: Array; +}; + +export type Coordinate = { + __typename?: 'Coordinate'; + x: Scalars['Float']; + y: Scalars['Float']; +}; + +export type CoordinateInput = { + x: Scalars['Float']; + y: Scalars['Float']; +}; + +export type Country = Node & { + __typename?: 'Country'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + languageCode: LanguageCode; + code: Scalars['String']; + name: Scalars['String']; + enabled: Scalars['Boolean']; + translations: Array; +}; + +export type CountryFilterParameter = { + createdAt?: Maybe; + updatedAt?: Maybe; + languageCode?: Maybe; + code?: Maybe; + name?: Maybe; + enabled?: Maybe; +}; + +export type CountryList = PaginatedList & { + __typename?: 'CountryList'; + items: Array; + totalItems: Scalars['Int']; +}; + +export type CountryListOptions = { + skip?: Maybe; + take?: Maybe; + sort?: Maybe; + filter?: Maybe; +}; + +export type CountrySortParameter = { + id?: Maybe; + createdAt?: Maybe; + updatedAt?: Maybe; + code?: Maybe; + name?: Maybe; +}; + +export type CountryTranslation = { + __typename?: 'CountryTranslation'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + languageCode: LanguageCode; + name: Scalars['String']; +}; + +export type CountryTranslationInput = { + id?: Maybe; + languageCode: LanguageCode; + name?: Maybe; +}; + +export type CreateAddressInput = { + fullName?: Maybe; + company?: Maybe; + streetLine1: Scalars['String']; + streetLine2?: Maybe; + city?: Maybe; + province?: Maybe; + postalCode?: Maybe; + countryCode: Scalars['String']; + phoneNumber?: Maybe; + defaultShippingAddress?: Maybe; + defaultBillingAddress?: Maybe; + customFields?: Maybe; +}; + +export type CreateAdministratorInput = { + firstName: Scalars['String']; + lastName: Scalars['String']; + emailAddress: Scalars['String']; + password: Scalars['String']; + roleIds: Array; +}; + +export type CreateAssetInput = { + file: Scalars['Upload']; +}; + +export type CreateChannelInput = { + code: Scalars['String']; + token: Scalars['String']; + defaultLanguageCode: LanguageCode; + pricesIncludeTax: Scalars['Boolean']; + currencyCode: CurrencyCode; + defaultTaxZoneId: Scalars['ID']; + defaultShippingZoneId: Scalars['ID']; +}; + +export type CreateCollectionInput = { + isPrivate?: Maybe; + featuredAssetId?: Maybe; + assetIds?: Maybe>; + parentId?: Maybe; + filters: Array; + translations: Array; + customFields?: Maybe; +}; + +export type CreateCollectionTranslationInput = { + languageCode: LanguageCode; + name: Scalars['String']; + slug: Scalars['String']; + description: Scalars['String']; + customFields?: Maybe; +}; + +export type CreateCountryInput = { + code: Scalars['String']; + translations: Array; + enabled: Scalars['Boolean']; +}; + +export type CreateCustomerGroupInput = { + name: Scalars['String']; + customerIds?: Maybe>; +}; + +export type CreateCustomerInput = { + title?: Maybe; + firstName: Scalars['String']; + lastName: Scalars['String']; + phoneNumber?: Maybe; + emailAddress: Scalars['String']; + customFields?: Maybe; +}; + +export type CreateFacetInput = { + code: Scalars['String']; + isPrivate: Scalars['Boolean']; + translations: Array; + values?: Maybe>; + customFields?: Maybe; +}; + +export type CreateFacetValueInput = { + facetId: Scalars['ID']; + code: Scalars['String']; + translations: Array; + customFields?: Maybe; +}; + +export type CreateFacetValueWithFacetInput = { + code: Scalars['String']; + translations: Array; +}; + +export type CreateGroupOptionInput = { + code: Scalars['String']; + translations: Array; +}; + +export type CreateProductInput = { + featuredAssetId?: Maybe; + assetIds?: Maybe>; + facetValueIds?: Maybe>; + translations: Array; + customFields?: Maybe; +}; + +export type CreateProductOptionGroupInput = { + code: Scalars['String']; + translations: Array; + options: Array; + customFields?: Maybe; +}; + +export type CreateProductOptionInput = { + productOptionGroupId: Scalars['ID']; + code: Scalars['String']; + translations: Array; + customFields?: Maybe; +}; + +export type CreateProductVariantInput = { + productId: Scalars['ID']; + translations: Array; + facetValueIds?: Maybe>; + sku: Scalars['String']; + price?: Maybe; + taxCategoryId?: Maybe; + optionIds?: Maybe>; + featuredAssetId?: Maybe; + assetIds?: Maybe>; + stockOnHand?: Maybe; + trackInventory?: Maybe; + customFields?: Maybe; +}; + +export type CreateProductVariantOptionInput = { + optionGroupId: Scalars['ID']; + code: Scalars['String']; + translations: Array; +}; + +export type CreatePromotionInput = { + name: Scalars['String']; + enabled: Scalars['Boolean']; + startsAt?: Maybe; + endsAt?: Maybe; + couponCode?: Maybe; + perCustomerUsageLimit?: Maybe; + conditions: Array; + actions: Array; +}; + +export type CreateRoleInput = { + code: Scalars['String']; + description: Scalars['String']; + permissions: Array; + channelIds?: Maybe>; +}; + +export type CreateShippingMethodInput = { + code: Scalars['String']; + description: Scalars['String']; + checker: ConfigurableOperationInput; + calculator: ConfigurableOperationInput; + customFields?: Maybe; +}; + +export type CreateTaxCategoryInput = { + name: Scalars['String']; +}; + +export type CreateTaxRateInput = { + name: Scalars['String']; + enabled: Scalars['Boolean']; + value: Scalars['Float']; + categoryId: Scalars['ID']; + zoneId: Scalars['ID']; + customerGroupId?: Maybe; +}; + +export type CreateZoneInput = { + name: Scalars['String']; + memberIds?: Maybe>; +}; + +/** + * @description + * ISO 4217 currency code + * + * @docsCategory common + */ +export enum CurrencyCode { + /** United Arab Emirates dirham */ + Aed = 'AED', + /** Afghan afghani */ + Afn = 'AFN', + /** Albanian lek */ + All = 'ALL', + /** Armenian dram */ + Amd = 'AMD', + /** Netherlands Antillean guilder */ + Ang = 'ANG', + /** Angolan kwanza */ + Aoa = 'AOA', + /** Argentine peso */ + Ars = 'ARS', + /** Australian dollar */ + Aud = 'AUD', + /** Aruban florin */ + Awg = 'AWG', + /** Azerbaijani manat */ + Azn = 'AZN', + /** Bosnia and Herzegovina convertible mark */ + Bam = 'BAM', + /** Barbados dollar */ + Bbd = 'BBD', + /** Bangladeshi taka */ + Bdt = 'BDT', + /** Bulgarian lev */ + Bgn = 'BGN', + /** Bahraini dinar */ + Bhd = 'BHD', + /** Burundian franc */ + Bif = 'BIF', + /** Bermudian dollar */ + Bmd = 'BMD', + /** Brunei dollar */ + Bnd = 'BND', + /** Boliviano */ + Bob = 'BOB', + /** Brazilian real */ + Brl = 'BRL', + /** Bahamian dollar */ + Bsd = 'BSD', + /** Bhutanese ngultrum */ + Btn = 'BTN', + /** Botswana pula */ + Bwp = 'BWP', + /** Belarusian ruble */ + Byn = 'BYN', + /** Belize dollar */ + Bzd = 'BZD', + /** Canadian dollar */ + Cad = 'CAD', + /** Congolese franc */ + Cdf = 'CDF', + /** Swiss franc */ + Chf = 'CHF', + /** Chilean peso */ + Clp = 'CLP', + /** Renminbi (Chinese) yuan */ + Cny = 'CNY', + /** Colombian peso */ + Cop = 'COP', + /** Costa Rican colon */ + Crc = 'CRC', + /** Cuban convertible peso */ + Cuc = 'CUC', + /** Cuban peso */ + Cup = 'CUP', + /** Cape Verde escudo */ + Cve = 'CVE', + /** Czech koruna */ + Czk = 'CZK', + /** Djiboutian franc */ + Djf = 'DJF', + /** Danish krone */ + Dkk = 'DKK', + /** Dominican peso */ + Dop = 'DOP', + /** Algerian dinar */ + Dzd = 'DZD', + /** Egyptian pound */ + Egp = 'EGP', + /** Eritrean nakfa */ + Ern = 'ERN', + /** Ethiopian birr */ + Etb = 'ETB', + /** Euro */ + Eur = 'EUR', + /** Fiji dollar */ + Fjd = 'FJD', + /** Falkland Islands pound */ + Fkp = 'FKP', + /** Pound sterling */ + Gbp = 'GBP', + /** Georgian lari */ + Gel = 'GEL', + /** Ghanaian cedi */ + Ghs = 'GHS', + /** Gibraltar pound */ + Gip = 'GIP', + /** Gambian dalasi */ + Gmd = 'GMD', + /** Guinean franc */ + Gnf = 'GNF', + /** Guatemalan quetzal */ + Gtq = 'GTQ', + /** Guyanese dollar */ + Gyd = 'GYD', + /** Hong Kong dollar */ + Hkd = 'HKD', + /** Honduran lempira */ + Hnl = 'HNL', + /** Croatian kuna */ + Hrk = 'HRK', + /** Haitian gourde */ + Htg = 'HTG', + /** Hungarian forint */ + Huf = 'HUF', + /** Indonesian rupiah */ + Idr = 'IDR', + /** Israeli new shekel */ + Ils = 'ILS', + /** Indian rupee */ + Inr = 'INR', + /** Iraqi dinar */ + Iqd = 'IQD', + /** Iranian rial */ + Irr = 'IRR', + /** Icelandic króna */ + Isk = 'ISK', + /** Jamaican dollar */ + Jmd = 'JMD', + /** Jordanian dinar */ + Jod = 'JOD', + /** Japanese yen */ + Jpy = 'JPY', + /** Kenyan shilling */ + Kes = 'KES', + /** Kyrgyzstani som */ + Kgs = 'KGS', + /** Cambodian riel */ + Khr = 'KHR', + /** Comoro franc */ + Kmf = 'KMF', + /** North Korean won */ + Kpw = 'KPW', + /** South Korean won */ + Krw = 'KRW', + /** Kuwaiti dinar */ + Kwd = 'KWD', + /** Cayman Islands dollar */ + Kyd = 'KYD', + /** Kazakhstani tenge */ + Kzt = 'KZT', + /** Lao kip */ + Lak = 'LAK', + /** Lebanese pound */ + Lbp = 'LBP', + /** Sri Lankan rupee */ + Lkr = 'LKR', + /** Liberian dollar */ + Lrd = 'LRD', + /** Lesotho loti */ + Lsl = 'LSL', + /** Libyan dinar */ + Lyd = 'LYD', + /** Moroccan dirham */ + Mad = 'MAD', + /** Moldovan leu */ + Mdl = 'MDL', + /** Malagasy ariary */ + Mga = 'MGA', + /** Macedonian denar */ + Mkd = 'MKD', + /** Myanmar kyat */ + Mmk = 'MMK', + /** Mongolian tögrög */ + Mnt = 'MNT', + /** Macanese pataca */ + Mop = 'MOP', + /** Mauritanian ouguiya */ + Mru = 'MRU', + /** Mauritian rupee */ + Mur = 'MUR', + /** Maldivian rufiyaa */ + Mvr = 'MVR', + /** Malawian kwacha */ + Mwk = 'MWK', + /** Mexican peso */ + Mxn = 'MXN', + /** Malaysian ringgit */ + Myr = 'MYR', + /** Mozambican metical */ + Mzn = 'MZN', + /** Namibian dollar */ + Nad = 'NAD', + /** Nigerian naira */ + Ngn = 'NGN', + /** Nicaraguan córdoba */ + Nio = 'NIO', + /** Norwegian krone */ + Nok = 'NOK', + /** Nepalese rupee */ + Npr = 'NPR', + /** New Zealand dollar */ + Nzd = 'NZD', + /** Omani rial */ + Omr = 'OMR', + /** Panamanian balboa */ + Pab = 'PAB', + /** Peruvian sol */ + Pen = 'PEN', + /** Papua New Guinean kina */ + Pgk = 'PGK', + /** Philippine peso */ + Php = 'PHP', + /** Pakistani rupee */ + Pkr = 'PKR', + /** Polish złoty */ + Pln = 'PLN', + /** Paraguayan guaraní */ + Pyg = 'PYG', + /** Qatari riyal */ + Qar = 'QAR', + /** Romanian leu */ + Ron = 'RON', + /** Serbian dinar */ + Rsd = 'RSD', + /** Russian ruble */ + Rub = 'RUB', + /** Rwandan franc */ + Rwf = 'RWF', + /** Saudi riyal */ + Sar = 'SAR', + /** Solomon Islands dollar */ + Sbd = 'SBD', + /** Seychelles rupee */ + Scr = 'SCR', + /** Sudanese pound */ + Sdg = 'SDG', + /** Swedish krona/kronor */ + Sek = 'SEK', + /** Singapore dollar */ + Sgd = 'SGD', + /** Saint Helena pound */ + Shp = 'SHP', + /** Sierra Leonean leone */ + Sll = 'SLL', + /** Somali shilling */ + Sos = 'SOS', + /** Surinamese dollar */ + Srd = 'SRD', + /** South Sudanese pound */ + Ssp = 'SSP', + /** São Tomé and Príncipe dobra */ + Stn = 'STN', + /** Salvadoran colón */ + Svc = 'SVC', + /** Syrian pound */ + Syp = 'SYP', + /** Swazi lilangeni */ + Szl = 'SZL', + /** Thai baht */ + Thb = 'THB', + /** Tajikistani somoni */ + Tjs = 'TJS', + /** Turkmenistan manat */ + Tmt = 'TMT', + /** Tunisian dinar */ + Tnd = 'TND', + /** Tongan paʻanga */ + Top = 'TOP', + /** Turkish lira */ + Try = 'TRY', + /** Trinidad and Tobago dollar */ + Ttd = 'TTD', + /** New Taiwan dollar */ + Twd = 'TWD', + /** Tanzanian shilling */ + Tzs = 'TZS', + /** Ukrainian hryvnia */ + Uah = 'UAH', + /** Ugandan shilling */ + Ugx = 'UGX', + /** United States dollar */ + Usd = 'USD', + /** Uruguayan peso */ + Uyu = 'UYU', + /** Uzbekistan som */ + Uzs = 'UZS', + /** Venezuelan bolívar soberano */ + Ves = 'VES', + /** Vietnamese đồng */ + Vnd = 'VND', + /** Vanuatu vatu */ + Vuv = 'VUV', + /** Samoan tala */ + Wst = 'WST', + /** CFA franc BEAC */ + Xaf = 'XAF', + /** East Caribbean dollar */ + Xcd = 'XCD', + /** CFA franc BCEAO */ + Xof = 'XOF', + /** CFP franc (franc Pacifique) */ + Xpf = 'XPF', + /** Yemeni rial */ + Yer = 'YER', + /** South African rand */ + Zar = 'ZAR', + /** Zambian kwacha */ + Zmw = 'ZMW', + /** Zimbabwean dollar */ + Zwl = 'ZWL' +} + +export type CurrentUser = { + __typename?: 'CurrentUser'; + id: Scalars['ID']; + identifier: Scalars['String']; + channels: Array; +}; + +export type CurrentUserChannel = { + __typename?: 'CurrentUserChannel'; + id: Scalars['ID']; + token: Scalars['String']; + code: Scalars['String']; + permissions: Array; +}; + +export type Customer = Node & { + __typename?: 'Customer'; + groups: Array; + history: HistoryEntryList; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + title?: Maybe; + firstName: Scalars['String']; + lastName: Scalars['String']; + phoneNumber?: Maybe; + emailAddress: Scalars['String']; + addresses?: Maybe>; + orders: OrderList; + user?: Maybe; + customFields?: Maybe; +}; + +export type CustomerHistoryArgs = { + options?: Maybe; +}; + +export type CustomerOrdersArgs = { + options?: Maybe; +}; + +export type CustomerFilterParameter = { + createdAt?: Maybe; + updatedAt?: Maybe; + title?: Maybe; + firstName?: Maybe; + lastName?: Maybe; + phoneNumber?: Maybe; + emailAddress?: Maybe; +}; + +export type CustomerGroup = Node & { + __typename?: 'CustomerGroup'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + name: Scalars['String']; + customers: CustomerList; +}; + +export type CustomerGroupCustomersArgs = { + options?: Maybe; +}; + +export type CustomerGroupFilterParameter = { + createdAt?: Maybe; + updatedAt?: Maybe; + name?: Maybe; +}; + +export type CustomerGroupList = PaginatedList & { + __typename?: 'CustomerGroupList'; + items: Array; + totalItems: Scalars['Int']; +}; + +export type CustomerGroupListOptions = { + skip?: Maybe; + take?: Maybe; + sort?: Maybe; + filter?: Maybe; +}; + +export type CustomerGroupSortParameter = { + id?: Maybe; + createdAt?: Maybe; + updatedAt?: Maybe; + name?: Maybe; +}; + +export type CustomerList = PaginatedList & { + __typename?: 'CustomerList'; + items: Array; + totalItems: Scalars['Int']; +}; + +export type CustomerListOptions = { + skip?: Maybe; + take?: Maybe; + sort?: Maybe; + filter?: Maybe; +}; + +export type CustomerSortParameter = { + id?: Maybe; + createdAt?: Maybe; + updatedAt?: Maybe; + title?: Maybe; + firstName?: Maybe; + lastName?: Maybe; + phoneNumber?: Maybe; + emailAddress?: Maybe; +}; + +export type CustomField = { + name: Scalars['String']; + type: Scalars['String']; + label?: Maybe>; + description?: Maybe>; + readonly?: Maybe; + internal?: Maybe; +}; + +export type CustomFieldConfig = + | StringCustomFieldConfig + | LocaleStringCustomFieldConfig + | IntCustomFieldConfig + | FloatCustomFieldConfig + | BooleanCustomFieldConfig + | DateTimeCustomFieldConfig; + +export type CustomFields = { + __typename?: 'CustomFields'; + Address: Array; + Collection: Array; + Customer: Array; + Facet: Array; + FacetValue: Array; + GlobalSettings: Array; + Order: Array; + OrderLine: Array; + Product: Array; + ProductOption: Array; + ProductOptionGroup: Array; + ProductVariant: Array; + User: Array; + ShippingMethod: Array; +}; + +export type DateOperators = { + eq?: Maybe; + before?: Maybe; + after?: Maybe; + between?: Maybe; +}; + +export type DateRange = { + start: Scalars['DateTime']; + end: Scalars['DateTime']; +}; + +/** + * Expects the same validation formats as the `` HTML element. + * See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/datetime-local#Additional_attributes + */ +export type DateTimeCustomFieldConfig = CustomField & { + __typename?: 'DateTimeCustomFieldConfig'; + name: Scalars['String']; + type: Scalars['String']; + label?: Maybe>; + description?: Maybe>; + readonly?: Maybe; + internal?: Maybe; + min?: Maybe; + max?: Maybe; + step?: Maybe; +}; + +export type DeletionResponse = { + __typename?: 'DeletionResponse'; + result: DeletionResult; + message?: Maybe; +}; + +export enum DeletionResult { + /** The entity was successfully deleted */ + Deleted = 'DELETED', + /** Deletion did not take place, reason given in message */ + NotDeleted = 'NOT_DELETED' +} + +export type Facet = Node & { + __typename?: 'Facet'; + isPrivate: Scalars['Boolean']; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + languageCode: LanguageCode; + name: Scalars['String']; + code: Scalars['String']; + values: Array; + translations: Array; + customFields?: Maybe; +}; + +export type FacetFilterParameter = { + isPrivate?: Maybe; + createdAt?: Maybe; + updatedAt?: Maybe; + languageCode?: Maybe; + name?: Maybe; + code?: Maybe; +}; + +export type FacetList = PaginatedList & { + __typename?: 'FacetList'; + items: Array; + totalItems: Scalars['Int']; +}; + +export type FacetListOptions = { + skip?: Maybe; + take?: Maybe; + sort?: Maybe; + filter?: Maybe; +}; + +export type FacetSortParameter = { + id?: Maybe; + createdAt?: Maybe; + updatedAt?: Maybe; + name?: Maybe; + code?: Maybe; +}; + +export type FacetTranslation = { + __typename?: 'FacetTranslation'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + languageCode: LanguageCode; + name: Scalars['String']; +}; + +export type FacetTranslationInput = { + id?: Maybe; + languageCode: LanguageCode; + name?: Maybe; + customFields?: Maybe; +}; + +export type FacetValue = Node & { + __typename?: 'FacetValue'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + languageCode: LanguageCode; + facet: Facet; + name: Scalars['String']; + code: Scalars['String']; + translations: Array; + customFields?: Maybe; +}; + +/** + * Which FacetValues are present in the products returned + * by the search, and in what quantity. + */ +export type FacetValueResult = { + __typename?: 'FacetValueResult'; + facetValue: FacetValue; + count: Scalars['Int']; +}; + +export type FacetValueTranslation = { + __typename?: 'FacetValueTranslation'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + languageCode: LanguageCode; + name: Scalars['String']; +}; + +export type FacetValueTranslationInput = { + id?: Maybe; + languageCode: LanguageCode; + name?: Maybe; + customFields?: Maybe; +}; + +export type FloatCustomFieldConfig = CustomField & { + __typename?: 'FloatCustomFieldConfig'; + name: Scalars['String']; + type: Scalars['String']; + label?: Maybe>; + description?: Maybe>; + readonly?: Maybe; + internal?: Maybe; + min?: Maybe; + max?: Maybe; + step?: Maybe; +}; + +export type Fulfillment = Node & { + __typename?: 'Fulfillment'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + orderItems: Array; + method: Scalars['String']; + trackingCode?: Maybe; +}; + +export type FulfillOrderInput = { + lines: Array; + method: Scalars['String']; + trackingCode?: Maybe; +}; + +export type GlobalSettings = { + __typename?: 'GlobalSettings'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + availableLanguages: Array; + trackInventory: Scalars['Boolean']; + serverConfig: ServerConfig; + customFields?: Maybe; +}; + +export type HistoryEntry = Node & { + __typename?: 'HistoryEntry'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + isPublic: Scalars['Boolean']; + type: HistoryEntryType; + administrator?: Maybe; + data: Scalars['JSON']; +}; + +export type HistoryEntryFilterParameter = { + createdAt?: Maybe; + updatedAt?: Maybe; + isPublic?: Maybe; + type?: Maybe; +}; + +export type HistoryEntryList = PaginatedList & { + __typename?: 'HistoryEntryList'; + items: Array; + totalItems: Scalars['Int']; +}; + +export type HistoryEntryListOptions = { + skip?: Maybe; + take?: Maybe; + sort?: Maybe; + filter?: Maybe; +}; + +export type HistoryEntrySortParameter = { + id?: Maybe; + createdAt?: Maybe; + updatedAt?: Maybe; +}; + +export enum HistoryEntryType { + CustomerRegistered = 'CUSTOMER_REGISTERED', + CustomerVerified = 'CUSTOMER_VERIFIED', + CustomerDetailUpdated = 'CUSTOMER_DETAIL_UPDATED', + CustomerAddedToGroup = 'CUSTOMER_ADDED_TO_GROUP', + CustomerRemovedFromGroup = 'CUSTOMER_REMOVED_FROM_GROUP', + CustomerAddressCreated = 'CUSTOMER_ADDRESS_CREATED', + CustomerAddressUpdated = 'CUSTOMER_ADDRESS_UPDATED', + CustomerAddressDeleted = 'CUSTOMER_ADDRESS_DELETED', + CustomerPasswordUpdated = 'CUSTOMER_PASSWORD_UPDATED', + CustomerPasswordResetRequested = 'CUSTOMER_PASSWORD_RESET_REQUESTED', + CustomerPasswordResetVerified = 'CUSTOMER_PASSWORD_RESET_VERIFIED', + CustomerEmailUpdateRequested = 'CUSTOMER_EMAIL_UPDATE_REQUESTED', + CustomerEmailUpdateVerified = 'CUSTOMER_EMAIL_UPDATE_VERIFIED', + CustomerNote = 'CUSTOMER_NOTE', + OrderStateTransition = 'ORDER_STATE_TRANSITION', + OrderPaymentTransition = 'ORDER_PAYMENT_TRANSITION', + OrderFullfillment = 'ORDER_FULLFILLMENT', + OrderCancellation = 'ORDER_CANCELLATION', + OrderRefundTransition = 'ORDER_REFUND_TRANSITION', + OrderNote = 'ORDER_NOTE', + OrderCouponApplied = 'ORDER_COUPON_APPLIED', + OrderCouponRemoved = 'ORDER_COUPON_REMOVED' +} + +export type ImportInfo = { + __typename?: 'ImportInfo'; + errors?: Maybe>; + processed: Scalars['Int']; + imported: Scalars['Int']; +}; + +export type IntCustomFieldConfig = CustomField & { + __typename?: 'IntCustomFieldConfig'; + name: Scalars['String']; + type: Scalars['String']; + label?: Maybe>; + description?: Maybe>; + readonly?: Maybe; + internal?: Maybe; + min?: Maybe; + max?: Maybe; + step?: Maybe; +}; + +export type Job = Node & { + __typename?: 'Job'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + startedAt?: Maybe; + settledAt?: Maybe; + queueName: Scalars['String']; + state: JobState; + progress: Scalars['Float']; + data?: Maybe; + result?: Maybe; + error?: Maybe; + isSettled: Scalars['Boolean']; + duration: Scalars['Int']; +}; + +export type JobFilterParameter = { + createdAt?: Maybe; + startedAt?: Maybe; + settledAt?: Maybe; + queueName?: Maybe; + state?: Maybe; + progress?: Maybe; + isSettled?: Maybe; + duration?: Maybe; +}; + +export type JobList = PaginatedList & { + __typename?: 'JobList'; + items: Array; + totalItems: Scalars['Int']; +}; + +export type JobListOptions = { + skip?: Maybe; + take?: Maybe; + sort?: Maybe; + filter?: Maybe; +}; + +export type JobQueue = { + __typename?: 'JobQueue'; + name: Scalars['String']; + running: Scalars['Boolean']; +}; + +export type JobSortParameter = { + id?: Maybe; + createdAt?: Maybe; + startedAt?: Maybe; + settledAt?: Maybe; + queueName?: Maybe; + progress?: Maybe; + duration?: Maybe; +}; + +/** + * @description + * The state of a Job in the JobQueue + * + * @docsCategory common + */ +export enum JobState { + Pending = 'PENDING', + Running = 'RUNNING', + Completed = 'COMPLETED', + Retrying = 'RETRYING', + Failed = 'FAILED' +} + +/** + * @description + * Languages in the form of a ISO 639-1 language code with optional + * region or script modifier (e.g. de_AT). The selection available is based + * on the [Unicode CLDR summary list](https://unicode-org.github.io/cldr-staging/charts/37/summary/root.html) + * and includes the major spoken languages of the world and any widely-used variants. + * + * @docsCategory common + */ +export enum LanguageCode { + /** Afrikaans */ + Af = 'af', + /** Akan */ + Ak = 'ak', + /** Albanian */ + Sq = 'sq', + /** Amharic */ + Am = 'am', + /** Arabic */ + Ar = 'ar', + /** Armenian */ + Hy = 'hy', + /** Assamese */ + As = 'as', + /** Azerbaijani */ + Az = 'az', + /** Bambara */ + Bm = 'bm', + /** Bangla */ + Bn = 'bn', + /** Basque */ + Eu = 'eu', + /** Belarusian */ + Be = 'be', + /** Bosnian */ + Bs = 'bs', + /** Breton */ + Br = 'br', + /** Bulgarian */ + Bg = 'bg', + /** Burmese */ + My = 'my', + /** Catalan */ + Ca = 'ca', + /** Chechen */ + Ce = 'ce', + /** Chinese */ + Zh = 'zh', + /** Simplified Chinese */ + ZhHans = 'zh_Hans', + /** Traditional Chinese */ + ZhHant = 'zh_Hant', + /** Church Slavic */ + Cu = 'cu', + /** Cornish */ + Kw = 'kw', + /** Corsican */ + Co = 'co', + /** Croatian */ + Hr = 'hr', + /** Czech */ + Cs = 'cs', + /** Danish */ + Da = 'da', + /** Dutch */ + Nl = 'nl', + /** Flemish */ + NlBe = 'nl_BE', + /** Dzongkha */ + Dz = 'dz', + /** English */ + En = 'en', + /** Australian English */ + EnAu = 'en_AU', + /** Canadian English */ + EnCa = 'en_CA', + /** British English */ + EnGb = 'en_GB', + /** American English */ + EnUs = 'en_US', + /** Esperanto */ + Eo = 'eo', + /** Estonian */ + Et = 'et', + /** Ewe */ + Ee = 'ee', + /** Faroese */ + Fo = 'fo', + /** Finnish */ + Fi = 'fi', + /** French */ + Fr = 'fr', + /** Canadian French */ + FrCa = 'fr_CA', + /** Swiss French */ + FrCh = 'fr_CH', + /** Fulah */ + Ff = 'ff', + /** Galician */ + Gl = 'gl', + /** Ganda */ + Lg = 'lg', + /** Georgian */ + Ka = 'ka', + /** German */ + De = 'de', + /** Austrian German */ + DeAt = 'de_AT', + /** Swiss High German */ + DeCh = 'de_CH', + /** Greek */ + El = 'el', + /** Gujarati */ + Gu = 'gu', + /** Haitian Creole */ + Ht = 'ht', + /** Hausa */ + Ha = 'ha', + /** Hebrew */ + He = 'he', + /** Hindi */ + Hi = 'hi', + /** Hungarian */ + Hu = 'hu', + /** Icelandic */ + Is = 'is', + /** Igbo */ + Ig = 'ig', + /** Indonesian */ + Id = 'id', + /** Interlingua */ + Ia = 'ia', + /** Irish */ + Ga = 'ga', + /** Italian */ + It = 'it', + /** Japanese */ + Ja = 'ja', + /** Javanese */ + Jv = 'jv', + /** Kalaallisut */ + Kl = 'kl', + /** Kannada */ + Kn = 'kn', + /** Kashmiri */ + Ks = 'ks', + /** Kazakh */ + Kk = 'kk', + /** Khmer */ + Km = 'km', + /** Kikuyu */ + Ki = 'ki', + /** Kinyarwanda */ + Rw = 'rw', + /** Korean */ + Ko = 'ko', + /** Kurdish */ + Ku = 'ku', + /** Kyrgyz */ + Ky = 'ky', + /** Lao */ + Lo = 'lo', + /** Latin */ + La = 'la', + /** Latvian */ + Lv = 'lv', + /** Lingala */ + Ln = 'ln', + /** Lithuanian */ + Lt = 'lt', + /** Luba-Katanga */ + Lu = 'lu', + /** Luxembourgish */ + Lb = 'lb', + /** Macedonian */ + Mk = 'mk', + /** Malagasy */ + Mg = 'mg', + /** Malay */ + Ms = 'ms', + /** Malayalam */ + Ml = 'ml', + /** Maltese */ + Mt = 'mt', + /** Manx */ + Gv = 'gv', + /** Maori */ + Mi = 'mi', + /** Marathi */ + Mr = 'mr', + /** Mongolian */ + Mn = 'mn', + /** Nepali */ + Ne = 'ne', + /** North Ndebele */ + Nd = 'nd', + /** Northern Sami */ + Se = 'se', + /** Norwegian Bokmål */ + Nb = 'nb', + /** Norwegian Nynorsk */ + Nn = 'nn', + /** Nyanja */ + Ny = 'ny', + /** Odia */ + Or = 'or', + /** Oromo */ + Om = 'om', + /** Ossetic */ + Os = 'os', + /** Pashto */ + Ps = 'ps', + /** Persian */ + Fa = 'fa', + /** Dari */ + FaAf = 'fa_AF', + /** Polish */ + Pl = 'pl', + /** Portuguese */ + Pt = 'pt', + /** Brazilian Portuguese */ + PtBr = 'pt_BR', + /** European Portuguese */ + PtPt = 'pt_PT', + /** Punjabi */ + Pa = 'pa', + /** Quechua */ + Qu = 'qu', + /** Romanian */ + Ro = 'ro', + /** Moldavian */ + RoMd = 'ro_MD', + /** Romansh */ + Rm = 'rm', + /** Rundi */ + Rn = 'rn', + /** Russian */ + Ru = 'ru', + /** Samoan */ + Sm = 'sm', + /** Sango */ + Sg = 'sg', + /** Sanskrit */ + Sa = 'sa', + /** Scottish Gaelic */ + Gd = 'gd', + /** Serbian */ + Sr = 'sr', + /** Shona */ + Sn = 'sn', + /** Sichuan Yi */ + Ii = 'ii', + /** Sindhi */ + Sd = 'sd', + /** Sinhala */ + Si = 'si', + /** Slovak */ + Sk = 'sk', + /** Slovenian */ + Sl = 'sl', + /** Somali */ + So = 'so', + /** Southern Sotho */ + St = 'st', + /** Spanish */ + Es = 'es', + /** European Spanish */ + EsEs = 'es_ES', + /** Mexican Spanish */ + EsMx = 'es_MX', + /** Sundanese */ + Su = 'su', + /** Swahili */ + Sw = 'sw', + /** Congo Swahili */ + SwCd = 'sw_CD', + /** Swedish */ + Sv = 'sv', + /** Tajik */ + Tg = 'tg', + /** Tamil */ + Ta = 'ta', + /** Tatar */ + Tt = 'tt', + /** Telugu */ + Te = 'te', + /** Thai */ + Th = 'th', + /** Tibetan */ + Bo = 'bo', + /** Tigrinya */ + Ti = 'ti', + /** Tongan */ + To = 'to', + /** Turkish */ + Tr = 'tr', + /** Turkmen */ + Tk = 'tk', + /** Ukrainian */ + Uk = 'uk', + /** Urdu */ + Ur = 'ur', + /** Uyghur */ + Ug = 'ug', + /** Uzbek */ + Uz = 'uz', + /** Vietnamese */ + Vi = 'vi', + /** Volapük */ + Vo = 'vo', + /** Welsh */ + Cy = 'cy', + /** Western Frisian */ + Fy = 'fy', + /** Wolof */ + Wo = 'wo', + /** Xhosa */ + Xh = 'xh', + /** Yiddish */ + Yi = 'yi', + /** Yoruba */ + Yo = 'yo', + /** Zulu */ + Zu = 'zu' +} + +export type LocaleStringCustomFieldConfig = CustomField & { + __typename?: 'LocaleStringCustomFieldConfig'; + name: Scalars['String']; + type: Scalars['String']; + label?: Maybe>; + description?: Maybe>; + readonly?: Maybe; + internal?: Maybe; + pattern?: Maybe; +}; + +export type LocalizedString = { + __typename?: 'LocalizedString'; + languageCode: LanguageCode; + value: Scalars['String']; +}; + +export enum LogicalOperator { + And = 'AND', + Or = 'OR' +} + +export type LoginResult = { + __typename?: 'LoginResult'; + user: CurrentUser; +}; + +export type MoveCollectionInput = { + collectionId: Scalars['ID']; + parentId: Scalars['ID']; + index: Scalars['Int']; +}; + +export type Mutation = { + __typename?: 'Mutation'; + /** Create a new Administrator */ + createAdministrator: Administrator; + /** Update an existing Administrator */ + updateAdministrator: Administrator; + /** Delete an Administrator */ + deleteAdministrator: DeletionResponse; + /** Assign a Role to an Administrator */ + assignRoleToAdministrator: Administrator; + /** Create a new Asset */ + createAssets: Array; + /** Update an existing Asset */ + updateAsset: Asset; + /** Delete an Asset */ + deleteAsset: DeletionResponse; + /** Delete multiple Assets */ + deleteAssets: DeletionResponse; + /** + * Authenticates the user using the native authentication strategy. This mutation + * is an alias for `authenticate({ native: { ... }})` + */ + login: LoginResult; + /** Authenticates the user using a named authentication strategy */ + authenticate: LoginResult; + logout: Scalars['Boolean']; + /** Create a new Channel */ + createChannel: Channel; + /** Update an existing Channel */ + updateChannel: Channel; + /** Delete a Channel */ + deleteChannel: DeletionResponse; + /** Create a new Collection */ + createCollection: Collection; + /** Update an existing Collection */ + updateCollection: Collection; + /** Delete a Collection and all of its descendants */ + deleteCollection: DeletionResponse; + /** Move a Collection to a different parent or index */ + moveCollection: Collection; + /** Create a new Country */ + createCountry: Country; + /** Update an existing Country */ + updateCountry: Country; + /** Delete a Country */ + deleteCountry: DeletionResponse; + /** Create a new CustomerGroup */ + createCustomerGroup: CustomerGroup; + /** Update an existing CustomerGroup */ + updateCustomerGroup: CustomerGroup; + /** Delete a CustomerGroup */ + deleteCustomerGroup: DeletionResponse; + /** Add Customers to a CustomerGroup */ + addCustomersToGroup: CustomerGroup; + /** Remove Customers from a CustomerGroup */ + removeCustomersFromGroup: CustomerGroup; + /** Create a new Customer. If a password is provided, a new User will also be created an linked to the Customer. */ + createCustomer: Customer; + /** Update an existing Customer */ + updateCustomer: Customer; + /** Delete a Customer */ + deleteCustomer: DeletionResponse; + /** Create a new Address and associate it with the Customer specified by customerId */ + createCustomerAddress: Address; + /** Update an existing Address */ + updateCustomerAddress: Address; + /** Update an existing Address */ + deleteCustomerAddress: Scalars['Boolean']; + addNoteToCustomer: Customer; + updateCustomerNote: HistoryEntry; + deleteCustomerNote: DeletionResponse; + /** Create a new Facet */ + createFacet: Facet; + /** Update an existing Facet */ + updateFacet: Facet; + /** Delete an existing Facet */ + deleteFacet: DeletionResponse; + /** Create one or more FacetValues */ + createFacetValues: Array; + /** Update one or more FacetValues */ + updateFacetValues: Array; + /** Delete one or more FacetValues */ + deleteFacetValues: Array; + updateGlobalSettings: GlobalSettings; + importProducts?: Maybe; + /** Remove all settled jobs in the given queues olfer than the given date. Returns the number of jobs deleted. */ + removeSettledJobs: Scalars['Int']; + settlePayment: Payment; + fulfillOrder: Fulfillment; + cancelOrder: Order; + refundOrder: Refund; + settleRefund: Refund; + addNoteToOrder: Order; + updateOrderNote: HistoryEntry; + deleteOrderNote: DeletionResponse; + transitionOrderToState?: Maybe; + setOrderCustomFields?: Maybe; + /** Update an existing PaymentMethod */ + updatePaymentMethod: PaymentMethod; + /** Create a new ProductOptionGroup */ + createProductOptionGroup: ProductOptionGroup; + /** Update an existing ProductOptionGroup */ + updateProductOptionGroup: ProductOptionGroup; + /** Create a new ProductOption within a ProductOptionGroup */ + createProductOption: ProductOption; + /** Create a new ProductOption within a ProductOptionGroup */ + updateProductOption: ProductOption; + reindex: Job; + /** Create a new Product */ + createProduct: Product; + /** Update an existing Product */ + updateProduct: Product; + /** Delete a Product */ + deleteProduct: DeletionResponse; + /** Add an OptionGroup to a Product */ + addOptionGroupToProduct: Product; + /** Remove an OptionGroup from a Product */ + removeOptionGroupFromProduct: Product; + /** Create a set of ProductVariants based on the OptionGroups assigned to the given Product */ + createProductVariants: Array>; + /** Update existing ProductVariants */ + updateProductVariants: Array>; + /** Delete a ProductVariant */ + deleteProductVariant: DeletionResponse; + /** Assigns Products to the specified Channel */ + assignProductsToChannel: Array; + /** Removes Products from the specified Channel */ + removeProductsFromChannel: Array; + createPromotion: Promotion; + updatePromotion: Promotion; + deletePromotion: DeletionResponse; + /** Create a new Role */ + createRole: Role; + /** Update an existing Role */ + updateRole: Role; + /** Delete an existing Role */ + deleteRole: DeletionResponse; + /** Create a new ShippingMethod */ + createShippingMethod: ShippingMethod; + /** Update an existing ShippingMethod */ + updateShippingMethod: ShippingMethod; + /** Delete a ShippingMethod */ + deleteShippingMethod: DeletionResponse; + /** Create a new TaxCategory */ + createTaxCategory: TaxCategory; + /** Update an existing TaxCategory */ + updateTaxCategory: TaxCategory; + /** Deletes a TaxCategory */ + deleteTaxCategory: DeletionResponse; + /** Create a new TaxRate */ + createTaxRate: TaxRate; + /** Update an existing TaxRate */ + updateTaxRate: TaxRate; + /** Delete a TaxRate */ + deleteTaxRate: DeletionResponse; + /** Create a new Zone */ + createZone: Zone; + /** Update an existing Zone */ + updateZone: Zone; + /** Delete a Zone */ + deleteZone: DeletionResponse; + /** Add members to a Zone */ + addMembersToZone: Zone; + /** Remove members from a Zone */ + removeMembersFromZone: Zone; + transitionReviewStoreToState?: Maybe; +}; + +export type MutationCreateAdministratorArgs = { + input: CreateAdministratorInput; +}; + +export type MutationUpdateAdministratorArgs = { + input: UpdateAdministratorInput; +}; + +export type MutationDeleteAdministratorArgs = { + id: Scalars['ID']; +}; + +export type MutationAssignRoleToAdministratorArgs = { + administratorId: Scalars['ID']; + roleId: Scalars['ID']; +}; + +export type MutationCreateAssetsArgs = { + input: Array; +}; + +export type MutationUpdateAssetArgs = { + input: UpdateAssetInput; +}; + +export type MutationDeleteAssetArgs = { + id: Scalars['ID']; + force?: Maybe; +}; + +export type MutationDeleteAssetsArgs = { + ids: Array; + force?: Maybe; +}; + +export type MutationLoginArgs = { + username: Scalars['String']; + password: Scalars['String']; + rememberMe?: Maybe; +}; + +export type MutationAuthenticateArgs = { + input: AuthenticationInput; + rememberMe?: Maybe; +}; + +export type MutationCreateChannelArgs = { + input: CreateChannelInput; +}; + +export type MutationUpdateChannelArgs = { + input: UpdateChannelInput; +}; + +export type MutationDeleteChannelArgs = { + id: Scalars['ID']; +}; + +export type MutationCreateCollectionArgs = { + input: CreateCollectionInput; +}; + +export type MutationUpdateCollectionArgs = { + input: UpdateCollectionInput; +}; + +export type MutationDeleteCollectionArgs = { + id: Scalars['ID']; +}; + +export type MutationMoveCollectionArgs = { + input: MoveCollectionInput; +}; + +export type MutationCreateCountryArgs = { + input: CreateCountryInput; +}; + +export type MutationUpdateCountryArgs = { + input: UpdateCountryInput; +}; + +export type MutationDeleteCountryArgs = { + id: Scalars['ID']; +}; + +export type MutationCreateCustomerGroupArgs = { + input: CreateCustomerGroupInput; +}; + +export type MutationUpdateCustomerGroupArgs = { + input: UpdateCustomerGroupInput; +}; + +export type MutationDeleteCustomerGroupArgs = { + id: Scalars['ID']; +}; + +export type MutationAddCustomersToGroupArgs = { + customerGroupId: Scalars['ID']; + customerIds: Array; +}; + +export type MutationRemoveCustomersFromGroupArgs = { + customerGroupId: Scalars['ID']; + customerIds: Array; +}; + +export type MutationCreateCustomerArgs = { + input: CreateCustomerInput; + password?: Maybe; +}; + +export type MutationUpdateCustomerArgs = { + input: UpdateCustomerInput; +}; + +export type MutationDeleteCustomerArgs = { + id: Scalars['ID']; +}; + +export type MutationCreateCustomerAddressArgs = { + customerId: Scalars['ID']; + input: CreateAddressInput; +}; + +export type MutationUpdateCustomerAddressArgs = { + input: UpdateAddressInput; +}; + +export type MutationDeleteCustomerAddressArgs = { + id: Scalars['ID']; +}; + +export type MutationAddNoteToCustomerArgs = { + input: AddNoteToCustomerInput; +}; + +export type MutationUpdateCustomerNoteArgs = { + input: UpdateCustomerNoteInput; +}; + +export type MutationDeleteCustomerNoteArgs = { + id: Scalars['ID']; +}; + +export type MutationCreateFacetArgs = { + input: CreateFacetInput; +}; + +export type MutationUpdateFacetArgs = { + input: UpdateFacetInput; +}; + +export type MutationDeleteFacetArgs = { + id: Scalars['ID']; + force?: Maybe; +}; + +export type MutationCreateFacetValuesArgs = { + input: Array; +}; + +export type MutationUpdateFacetValuesArgs = { + input: Array; +}; + +export type MutationDeleteFacetValuesArgs = { + ids: Array; + force?: Maybe; +}; + +export type MutationUpdateGlobalSettingsArgs = { + input: UpdateGlobalSettingsInput; +}; + +export type MutationImportProductsArgs = { + csvFile: Scalars['Upload']; +}; + +export type MutationRemoveSettledJobsArgs = { + queueNames?: Maybe>; + olderThan?: Maybe; +}; + +export type MutationSettlePaymentArgs = { + id: Scalars['ID']; +}; + +export type MutationFulfillOrderArgs = { + input: FulfillOrderInput; +}; + +export type MutationCancelOrderArgs = { + input: CancelOrderInput; +}; + +export type MutationRefundOrderArgs = { + input: RefundOrderInput; +}; + +export type MutationSettleRefundArgs = { + input: SettleRefundInput; +}; + +export type MutationAddNoteToOrderArgs = { + input: AddNoteToOrderInput; +}; + +export type MutationUpdateOrderNoteArgs = { + input: UpdateOrderNoteInput; +}; + +export type MutationDeleteOrderNoteArgs = { + id: Scalars['ID']; +}; + +export type MutationTransitionOrderToStateArgs = { + id: Scalars['ID']; + state: Scalars['String']; +}; + +export type MutationSetOrderCustomFieldsArgs = { + input: UpdateOrderInput; +}; + +export type MutationUpdatePaymentMethodArgs = { + input: UpdatePaymentMethodInput; +}; + +export type MutationCreateProductOptionGroupArgs = { + input: CreateProductOptionGroupInput; +}; + +export type MutationUpdateProductOptionGroupArgs = { + input: UpdateProductOptionGroupInput; +}; + +export type MutationCreateProductOptionArgs = { + input: CreateProductOptionInput; +}; + +export type MutationUpdateProductOptionArgs = { + input: UpdateProductOptionInput; +}; + +export type MutationCreateProductArgs = { + input: CreateProductInput; +}; + +export type MutationUpdateProductArgs = { + input: UpdateProductInput; +}; + +export type MutationDeleteProductArgs = { + id: Scalars['ID']; +}; + +export type MutationAddOptionGroupToProductArgs = { + productId: Scalars['ID']; + optionGroupId: Scalars['ID']; +}; + +export type MutationRemoveOptionGroupFromProductArgs = { + productId: Scalars['ID']; + optionGroupId: Scalars['ID']; +}; + +export type MutationCreateProductVariantsArgs = { + input: Array; +}; + +export type MutationUpdateProductVariantsArgs = { + input: Array; +}; + +export type MutationDeleteProductVariantArgs = { + id: Scalars['ID']; +}; + +export type MutationAssignProductsToChannelArgs = { + input: AssignProductsToChannelInput; +}; + +export type MutationRemoveProductsFromChannelArgs = { + input: RemoveProductsFromChannelInput; +}; + +export type MutationCreatePromotionArgs = { + input: CreatePromotionInput; +}; + +export type MutationUpdatePromotionArgs = { + input: UpdatePromotionInput; +}; + +export type MutationDeletePromotionArgs = { + id: Scalars['ID']; +}; + +export type MutationCreateRoleArgs = { + input: CreateRoleInput; +}; + +export type MutationUpdateRoleArgs = { + input: UpdateRoleInput; +}; + +export type MutationDeleteRoleArgs = { + id: Scalars['ID']; +}; + +export type MutationCreateShippingMethodArgs = { + input: CreateShippingMethodInput; +}; + +export type MutationUpdateShippingMethodArgs = { + input: UpdateShippingMethodInput; +}; + +export type MutationDeleteShippingMethodArgs = { + id: Scalars['ID']; +}; + +export type MutationCreateTaxCategoryArgs = { + input: CreateTaxCategoryInput; +}; + +export type MutationUpdateTaxCategoryArgs = { + input: UpdateTaxCategoryInput; +}; + +export type MutationDeleteTaxCategoryArgs = { + id: Scalars['ID']; +}; + +export type MutationCreateTaxRateArgs = { + input: CreateTaxRateInput; +}; + +export type MutationUpdateTaxRateArgs = { + input: UpdateTaxRateInput; +}; + +export type MutationDeleteTaxRateArgs = { + id: Scalars['ID']; +}; + +export type MutationCreateZoneArgs = { + input: CreateZoneInput; +}; + +export type MutationUpdateZoneArgs = { + input: UpdateZoneInput; +}; + +export type MutationDeleteZoneArgs = { + id: Scalars['ID']; +}; + +export type MutationAddMembersToZoneArgs = { + zoneId: Scalars['ID']; + memberIds: Array; +}; + +export type MutationRemoveMembersFromZoneArgs = { + zoneId: Scalars['ID']; + memberIds: Array; +}; + +export type MutationTransitionReviewStoreToStateArgs = { + id: Scalars['ID']; + state: Scalars['String']; +}; + +export type NativeAuthInput = { + username: Scalars['String']; + password: Scalars['String']; +}; + +export type Node = { + id: Scalars['ID']; +}; + +export type NumberOperators = { + eq?: Maybe; + lt?: Maybe; + lte?: Maybe; + gt?: Maybe; + gte?: Maybe; + between?: Maybe; +}; + +export type NumberRange = { + start: Scalars['Float']; + end: Scalars['Float']; +}; + +export type Order = Node & { + __typename?: 'Order'; + nextStates: Array; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + /** A unique code for the Order */ + code: Scalars['String']; + state: Scalars['String']; + /** An order is active as long as the payment process has not been completed */ + active: Scalars['Boolean']; + customer?: Maybe; + shippingAddress?: Maybe; + billingAddress?: Maybe; + lines: Array; + /** Order-level adjustments to the order total, such as discounts from promotions */ + adjustments: Array; + couponCodes: Array; + /** Promotions applied to the order. Only gets populated after the payment process has completed. */ + promotions: Array; + payments?: Maybe>; + fulfillments?: Maybe>; + subTotalBeforeTax: Scalars['Int']; + /** The subTotal is the total of the OrderLines, before order-level promotions and shipping has been applied. */ + subTotal: Scalars['Int']; + currencyCode: CurrencyCode; + shipping: Scalars['Int']; + shippingWithTax: Scalars['Int']; + shippingMethod?: Maybe; + totalBeforeTax: Scalars['Int']; + total: Scalars['Int']; + history: HistoryEntryList; + customFields?: Maybe; +}; + +export type OrderHistoryArgs = { + options?: Maybe; +}; + +export type OrderAddress = { + __typename?: 'OrderAddress'; + fullName?: Maybe; + company?: Maybe; + streetLine1?: Maybe; + streetLine2?: Maybe; + city?: Maybe; + province?: Maybe; + postalCode?: Maybe; + country?: Maybe; + countryCode?: Maybe; + phoneNumber?: Maybe; +}; + +export type OrderFilterParameter = { + createdAt?: Maybe; + updatedAt?: Maybe; + code?: Maybe; + state?: Maybe; + active?: Maybe; + subTotalBeforeTax?: Maybe; + subTotal?: Maybe; + currencyCode?: Maybe; + shipping?: Maybe; + shippingWithTax?: Maybe; + totalBeforeTax?: Maybe; + total?: Maybe; +}; + +export type OrderItem = Node & { + __typename?: 'OrderItem'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + cancelled: Scalars['Boolean']; + unitPrice: Scalars['Int']; + unitPriceWithTax: Scalars['Int']; + unitPriceIncludesTax: Scalars['Boolean']; + taxRate: Scalars['Float']; + adjustments: Array; + fulfillment?: Maybe; + refundId?: Maybe; +}; + +export type OrderLine = Node & { + __typename?: 'OrderLine'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + productVariant: ProductVariant; + featuredAsset?: Maybe; + unitPrice: Scalars['Int']; + unitPriceWithTax: Scalars['Int']; + quantity: Scalars['Int']; + items: Array; + totalPrice: Scalars['Int']; + adjustments: Array; + order: Order; + customFields?: Maybe; +}; + +export type OrderLineInput = { + orderLineId: Scalars['ID']; + quantity: Scalars['Int']; +}; + +export type OrderList = PaginatedList & { + __typename?: 'OrderList'; + items: Array; + totalItems: Scalars['Int']; +}; + +export type OrderListOptions = { + skip?: Maybe; + take?: Maybe; + sort?: Maybe; + filter?: Maybe; +}; + +export type OrderProcessState = { + __typename?: 'OrderProcessState'; + name: Scalars['String']; + to: Array; +}; + +export type OrderSortParameter = { + id?: Maybe; + createdAt?: Maybe; + updatedAt?: Maybe; + code?: Maybe; + state?: Maybe; + subTotalBeforeTax?: Maybe; + subTotal?: Maybe; + shipping?: Maybe; + shippingWithTax?: Maybe; + totalBeforeTax?: Maybe; + total?: Maybe; +}; + +export type PaginatedList = { + items: Array; + totalItems: Scalars['Int']; +}; + +export type Payment = Node & { + __typename?: 'Payment'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + method: Scalars['String']; + amount: Scalars['Int']; + state: Scalars['String']; + transactionId?: Maybe; + errorMessage?: Maybe; + refunds: Array; + metadata?: Maybe; +}; + +export type PaymentMethod = Node & { + __typename?: 'PaymentMethod'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + code: Scalars['String']; + enabled: Scalars['Boolean']; + configArgs: Array; +}; + +export type PaymentMethodFilterParameter = { + createdAt?: Maybe; + updatedAt?: Maybe; + code?: Maybe; + enabled?: Maybe; +}; + +export type PaymentMethodList = PaginatedList & { + __typename?: 'PaymentMethodList'; + items: Array; + totalItems: Scalars['Int']; +}; + +export type PaymentMethodListOptions = { + skip?: Maybe; + take?: Maybe; + sort?: Maybe; + filter?: Maybe; +}; + +export type PaymentMethodSortParameter = { + id?: Maybe; + createdAt?: Maybe; + updatedAt?: Maybe; + code?: Maybe; +}; + +/** + * " + * @description + * Permissions for administrators and customers. Used to control access to + * GraphQL resolvers via the {@link Allow} decorator. + * + * @docsCategory common + */ +export enum Permission { + /** The Authenticated role means simply that the user is logged in */ + Authenticated = 'Authenticated', + /** SuperAdmin can perform the most sensitive tasks */ + SuperAdmin = 'SuperAdmin', + /** Owner means the user owns this entity, e.g. a Customer's own Order */ + Owner = 'Owner', + /** Public means any unauthenticated user may perform the operation */ + Public = 'Public', + CreateCatalog = 'CreateCatalog', + ReadCatalog = 'ReadCatalog', + UpdateCatalog = 'UpdateCatalog', + DeleteCatalog = 'DeleteCatalog', + CreateCustomer = 'CreateCustomer', + ReadCustomer = 'ReadCustomer', + UpdateCustomer = 'UpdateCustomer', + DeleteCustomer = 'DeleteCustomer', + CreateAdministrator = 'CreateAdministrator', + ReadAdministrator = 'ReadAdministrator', + UpdateAdministrator = 'UpdateAdministrator', + DeleteAdministrator = 'DeleteAdministrator', + CreateOrder = 'CreateOrder', + ReadOrder = 'ReadOrder', + UpdateOrder = 'UpdateOrder', + DeleteOrder = 'DeleteOrder', + CreatePromotion = 'CreatePromotion', + ReadPromotion = 'ReadPromotion', + UpdatePromotion = 'UpdatePromotion', + DeletePromotion = 'DeletePromotion', + CreateSettings = 'CreateSettings', + ReadSettings = 'ReadSettings', + UpdateSettings = 'UpdateSettings', + DeleteSettings = 'DeleteSettings' +} + +/** The price range where the result has more than one price */ +export type PriceRange = { + __typename?: 'PriceRange'; + min: Scalars['Int']; + max: Scalars['Int']; +}; + +export type Product = Node & { + __typename?: 'Product'; + enabled: Scalars['Boolean']; + channels: Array; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + languageCode: LanguageCode; + name: Scalars['String']; + slug: Scalars['String']; + description: Scalars['String']; + featuredAsset?: Maybe; + assets: Array; + variants: Array; + optionGroups: Array; + facetValues: Array; + translations: Array; + collections: Array; + customFields?: Maybe; +}; + +export type ProductFilterParameter = { + enabled?: Maybe; + createdAt?: Maybe; + updatedAt?: Maybe; + languageCode?: Maybe; + name?: Maybe; + slug?: Maybe; + description?: Maybe; +}; + +export type ProductList = PaginatedList & { + __typename?: 'ProductList'; + items: Array; + totalItems: Scalars['Int']; +}; + +export type ProductListOptions = { + skip?: Maybe; + take?: Maybe; + sort?: Maybe; + filter?: Maybe; +}; + +export type ProductOption = Node & { + __typename?: 'ProductOption'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + languageCode: LanguageCode; + code: Scalars['String']; + name: Scalars['String']; + groupId: Scalars['ID']; + group: ProductOptionGroup; + translations: Array; + customFields?: Maybe; +}; + +export type ProductOptionGroup = Node & { + __typename?: 'ProductOptionGroup'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + languageCode: LanguageCode; + code: Scalars['String']; + name: Scalars['String']; + options: Array; + translations: Array; + customFields?: Maybe; +}; + +export type ProductOptionGroupTranslation = { + __typename?: 'ProductOptionGroupTranslation'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + languageCode: LanguageCode; + name: Scalars['String']; +}; + +export type ProductOptionGroupTranslationInput = { + id?: Maybe; + languageCode: LanguageCode; + name?: Maybe; + customFields?: Maybe; +}; + +export type ProductOptionTranslation = { + __typename?: 'ProductOptionTranslation'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + languageCode: LanguageCode; + name: Scalars['String']; +}; + +export type ProductOptionTranslationInput = { + id?: Maybe; + languageCode: LanguageCode; + name?: Maybe; + customFields?: Maybe; +}; + +export type ProductSortParameter = { + id?: Maybe; + createdAt?: Maybe; + updatedAt?: Maybe; + name?: Maybe; + slug?: Maybe; + description?: Maybe; +}; + +export type ProductTranslation = { + __typename?: 'ProductTranslation'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + languageCode: LanguageCode; + name: Scalars['String']; + slug: Scalars['String']; + description: Scalars['String']; +}; + +export type ProductTranslationInput = { + id?: Maybe; + languageCode: LanguageCode; + name?: Maybe; + slug?: Maybe; + description?: Maybe; + customFields?: Maybe; +}; + +export type ProductVariant = Node & { + __typename?: 'ProductVariant'; + enabled: Scalars['Boolean']; + stockOnHand: Scalars['Int']; + trackInventory: Scalars['Boolean']; + stockMovements: StockMovementList; + id: Scalars['ID']; + product: Product; + productId: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + languageCode: LanguageCode; + sku: Scalars['String']; + name: Scalars['String']; + featuredAsset?: Maybe; + assets: Array; + price: Scalars['Int']; + currencyCode: CurrencyCode; + priceIncludesTax: Scalars['Boolean']; + priceWithTax: Scalars['Int']; + taxRateApplied: TaxRate; + taxCategory: TaxCategory; + options: Array; + facetValues: Array; + translations: Array; + customFields?: Maybe; +}; + +export type ProductVariantStockMovementsArgs = { + options?: Maybe; +}; + +export type ProductVariantFilterParameter = { + enabled?: Maybe; + stockOnHand?: Maybe; + trackInventory?: Maybe; + createdAt?: Maybe; + updatedAt?: Maybe; + languageCode?: Maybe; + sku?: Maybe; + name?: Maybe; + price?: Maybe; + currencyCode?: Maybe; + priceIncludesTax?: Maybe; + priceWithTax?: Maybe; +}; + +export type ProductVariantList = PaginatedList & { + __typename?: 'ProductVariantList'; + items: Array; + totalItems: Scalars['Int']; +}; + +export type ProductVariantListOptions = { + skip?: Maybe; + take?: Maybe; + sort?: Maybe; + filter?: Maybe; +}; + +export type ProductVariantSortParameter = { + stockOnHand?: Maybe; + id?: Maybe; + productId?: Maybe; + createdAt?: Maybe; + updatedAt?: Maybe; + sku?: Maybe; + name?: Maybe; + price?: Maybe; + priceWithTax?: Maybe; +}; + +export type ProductVariantTranslation = { + __typename?: 'ProductVariantTranslation'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + languageCode: LanguageCode; + name: Scalars['String']; +}; + +export type ProductVariantTranslationInput = { + id?: Maybe; + languageCode: LanguageCode; + name?: Maybe; + customFields?: Maybe; +}; + +export type Promotion = Node & { + __typename?: 'Promotion'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + startsAt?: Maybe; + endsAt?: Maybe; + couponCode?: Maybe; + perCustomerUsageLimit?: Maybe; + name: Scalars['String']; + enabled: Scalars['Boolean']; + conditions: Array; + actions: Array; +}; + +export type PromotionFilterParameter = { + createdAt?: Maybe; + updatedAt?: Maybe; + startsAt?: Maybe; + endsAt?: Maybe; + couponCode?: Maybe; + perCustomerUsageLimit?: Maybe; + name?: Maybe; + enabled?: Maybe; +}; + +export type PromotionList = PaginatedList & { + __typename?: 'PromotionList'; + items: Array; + totalItems: Scalars['Int']; +}; + +export type PromotionListOptions = { + skip?: Maybe; + take?: Maybe; + sort?: Maybe; + filter?: Maybe; +}; + +export type PromotionSortParameter = { + id?: Maybe; + createdAt?: Maybe; + updatedAt?: Maybe; + startsAt?: Maybe; + endsAt?: Maybe; + couponCode?: Maybe; + perCustomerUsageLimit?: Maybe; + name?: Maybe; +}; + +export type Query = { + __typename?: 'Query'; + administrators: AdministratorList; + administrator?: Maybe; + /** Get a list of Assets */ + assets: AssetList; + /** Get a single Asset by id */ + asset?: Maybe; + me?: Maybe; + channels: Array; + channel?: Maybe; + activeChannel: Channel; + collections: CollectionList; + /** Get a Collection either by id or slug. If neither id nor slug is speicified, an error will result. */ + collection?: Maybe; + collectionFilters: Array; + countries: CountryList; + country?: Maybe; + customerGroups: CustomerGroupList; + customerGroup?: Maybe; + customers: CustomerList; + customer?: Maybe; + facets: FacetList; + facet?: Maybe; + globalSettings: GlobalSettings; + job?: Maybe; + jobs: JobList; + jobsById: Array; + jobQueues: Array; + order?: Maybe; + orders: OrderList; + paymentMethods: PaymentMethodList; + paymentMethod?: Maybe; + productOptionGroups: Array; + productOptionGroup?: Maybe; + search: SearchResponse; + products: ProductList; + /** Get a Product either by id or slug. If neither id nor slug is speicified, an error will result. */ + product?: Maybe; + promotion?: Maybe; + promotions: PromotionList; + promotionConditions: Array; + promotionActions: Array; + roles: RoleList; + role?: Maybe; + shippingMethods: ShippingMethodList; + shippingMethod?: Maybe; + shippingEligibilityCheckers: Array; + shippingCalculators: Array; + testShippingMethod: TestShippingMethodResult; + testEligibleShippingMethods: Array; + taxCategories: Array; + taxCategory?: Maybe; + taxRates: TaxRateList; + taxRate?: Maybe; + zones: Array; + zone?: Maybe; + /** Get the average of review store */ + avgReviewStore?: Maybe; + /** Get the review store */ + reviewStore?: Maybe; + /** Get the list of reviews store */ + reviewsStore: ReviewStoreList; +}; + +export type QueryAdministratorsArgs = { + options?: Maybe; +}; + +export type QueryAdministratorArgs = { + id: Scalars['ID']; +}; + +export type QueryAssetsArgs = { + options?: Maybe; +}; + +export type QueryAssetArgs = { + id: Scalars['ID']; +}; + +export type QueryChannelArgs = { + id: Scalars['ID']; +}; + +export type QueryCollectionsArgs = { + options?: Maybe; +}; + +export type QueryCollectionArgs = { + id?: Maybe; + slug?: Maybe; +}; + +export type QueryCountriesArgs = { + options?: Maybe; +}; + +export type QueryCountryArgs = { + id: Scalars['ID']; +}; + +export type QueryCustomerGroupsArgs = { + options?: Maybe; +}; + +export type QueryCustomerGroupArgs = { + id: Scalars['ID']; +}; + +export type QueryCustomersArgs = { + options?: Maybe; +}; + +export type QueryCustomerArgs = { + id: Scalars['ID']; +}; + +export type QueryFacetsArgs = { + options?: Maybe; +}; + +export type QueryFacetArgs = { + id: Scalars['ID']; +}; + +export type QueryJobArgs = { + jobId: Scalars['ID']; +}; + +export type QueryJobsArgs = { + options?: Maybe; +}; + +export type QueryJobsByIdArgs = { + jobIds: Array; +}; + +export type QueryOrderArgs = { + id: Scalars['ID']; +}; + +export type QueryOrdersArgs = { + options?: Maybe; +}; + +export type QueryPaymentMethodsArgs = { + options?: Maybe; +}; + +export type QueryPaymentMethodArgs = { + id: Scalars['ID']; +}; + +export type QueryProductOptionGroupsArgs = { + filterTerm?: Maybe; +}; + +export type QueryProductOptionGroupArgs = { + id: Scalars['ID']; +}; + +export type QuerySearchArgs = { + input: SearchInput; +}; + +export type QueryProductsArgs = { + options?: Maybe; +}; + +export type QueryProductArgs = { + id?: Maybe; + slug?: Maybe; +}; + +export type QueryPromotionArgs = { + id: Scalars['ID']; +}; + +export type QueryPromotionsArgs = { + options?: Maybe; +}; + +export type QueryRolesArgs = { + options?: Maybe; +}; + +export type QueryRoleArgs = { + id: Scalars['ID']; +}; + +export type QueryShippingMethodsArgs = { + options?: Maybe; +}; + +export type QueryShippingMethodArgs = { + id: Scalars['ID']; +}; + +export type QueryTestShippingMethodArgs = { + input: TestShippingMethodInput; +}; + +export type QueryTestEligibleShippingMethodsArgs = { + input: TestEligibleShippingMethodsInput; +}; + +export type QueryTaxCategoryArgs = { + id: Scalars['ID']; +}; + +export type QueryTaxRatesArgs = { + options?: Maybe; +}; + +export type QueryTaxRateArgs = { + id: Scalars['ID']; +}; + +export type QueryZoneArgs = { + id: Scalars['ID']; +}; + +export type QueryReviewStoreArgs = { + id: Scalars['ID']; +}; + +export type QueryReviewsStoreArgs = { + options?: Maybe; +}; + +export type Refund = Node & { + __typename?: 'Refund'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + items: Scalars['Int']; + shipping: Scalars['Int']; + adjustment: Scalars['Int']; + total: Scalars['Int']; + method?: Maybe; + state: Scalars['String']; + transactionId?: Maybe; + reason?: Maybe; + orderItems: Array; + paymentId: Scalars['ID']; + metadata?: Maybe; +}; + +export type RefundOrderInput = { + lines: Array; + shipping: Scalars['Int']; + adjustment: Scalars['Int']; + paymentId: Scalars['ID']; + reason?: Maybe; +}; + +export type RemoveProductsFromChannelInput = { + productIds: Array; + channelId: Scalars['ID']; +}; + +export type Return = Node & + StockMovement & { + __typename?: 'Return'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + productVariant: ProductVariant; + type: StockMovementType; + quantity: Scalars['Int']; + orderItem: OrderItem; + }; + +export type ReviewStore = Node & { + __typename?: 'ReviewStore'; + id: Scalars['ID']; + title: Scalars['String']; + description: Scalars['String']; + state: Scalars['String']; + nps: Scalars['Int']; + nextStates: Array; + customer?: Maybe; +}; + +export type ReviewStoreFilterParameter = { + title?: Maybe; + description?: Maybe; + state?: Maybe; + nps?: Maybe; +}; + +export type ReviewStoreList = PaginatedList & { + __typename?: 'ReviewStoreList'; + items: Array; + totalItems: Scalars['Int']; +}; + +export type ReviewStoreListOptions = { + skip?: Maybe; + take?: Maybe; + sort?: Maybe; + filter?: Maybe; +}; + +export type ReviewStoreSortParameter = { + id?: Maybe; + title?: Maybe; + description?: Maybe; + state?: Maybe; + nps?: Maybe; +}; + +export type Role = Node & { + __typename?: 'Role'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + code: Scalars['String']; + description: Scalars['String']; + permissions: Array; + channels: Array; +}; + +export type RoleFilterParameter = { + createdAt?: Maybe; + updatedAt?: Maybe; + code?: Maybe; + description?: Maybe; +}; + +export type RoleList = PaginatedList & { + __typename?: 'RoleList'; + items: Array; + totalItems: Scalars['Int']; +}; + +export type RoleListOptions = { + skip?: Maybe; + take?: Maybe; + sort?: Maybe; + filter?: Maybe; +}; + +export type RoleSortParameter = { + id?: Maybe; + createdAt?: Maybe; + updatedAt?: Maybe; + code?: Maybe; + description?: Maybe; +}; + +export type Sale = Node & + StockMovement & { + __typename?: 'Sale'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + productVariant: ProductVariant; + type: StockMovementType; + quantity: Scalars['Int']; + orderLine: OrderLine; + }; + +export type SearchInput = { + term?: Maybe; + facetValueIds?: Maybe>; + facetValueOperator?: Maybe; + collectionId?: Maybe; + groupByProduct?: Maybe; + take?: Maybe; + skip?: Maybe; + sort?: Maybe; +}; + +export type SearchReindexResponse = { + __typename?: 'SearchReindexResponse'; + success: Scalars['Boolean']; +}; + +export type SearchResponse = { + __typename?: 'SearchResponse'; + items: Array; + totalItems: Scalars['Int']; + facetValues: Array; +}; + +export type SearchResult = { + __typename?: 'SearchResult'; + enabled: Scalars['Boolean']; + /** An array of ids of the Collections in which this result appears */ + channelIds: Array; + sku: Scalars['String']; + slug: Scalars['String']; + productId: Scalars['ID']; + productName: Scalars['String']; + /** @deprecated Use `productAsset.preview` instead */ + productPreview: Scalars['String']; + productAsset?: Maybe; + productVariantId: Scalars['ID']; + productVariantName: Scalars['String']; + /** @deprecated Use `productVariantAsset.preview` instead */ + productVariantPreview: Scalars['String']; + productVariantAsset?: Maybe; + price: SearchResultPrice; + priceWithTax: SearchResultPrice; + currencyCode: CurrencyCode; + description: Scalars['String']; + facetIds: Array; + facetValueIds: Array; + /** An array of ids of the Collections in which this result appears */ + collectionIds: Array; + /** A relevence score for the result. Differs between database implementations */ + score: Scalars['Float']; +}; + +export type SearchResultAsset = { + __typename?: 'SearchResultAsset'; + id: Scalars['ID']; + preview: Scalars['String']; + focalPoint?: Maybe; +}; + +/** The price of a search result product, either as a range or as a single price */ +export type SearchResultPrice = PriceRange | SinglePrice; + +export type SearchResultSortParameter = { + name?: Maybe; + price?: Maybe; +}; + +export type ServerConfig = { + __typename?: 'ServerConfig'; + orderProcess: Array; + customFieldConfig: CustomFields; +}; + +export type SettleRefundInput = { + id: Scalars['ID']; + transactionId: Scalars['String']; +}; + +export type ShippingMethod = Node & { + __typename?: 'ShippingMethod'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + code: Scalars['String']; + description: Scalars['String']; + checker: ConfigurableOperation; + calculator: ConfigurableOperation; + customFields?: Maybe; +}; + +export type ShippingMethodFilterParameter = { + createdAt?: Maybe; + updatedAt?: Maybe; + code?: Maybe; + description?: Maybe; +}; + +export type ShippingMethodList = PaginatedList & { + __typename?: 'ShippingMethodList'; + items: Array; + totalItems: Scalars['Int']; +}; + +export type ShippingMethodListOptions = { + skip?: Maybe; + take?: Maybe; + sort?: Maybe; + filter?: Maybe; +}; + +export type ShippingMethodQuote = { + __typename?: 'ShippingMethodQuote'; + id: Scalars['ID']; + price: Scalars['Int']; + priceWithTax: Scalars['Int']; + description: Scalars['String']; + metadata?: Maybe; +}; + +export type ShippingMethodSortParameter = { + id?: Maybe; + createdAt?: Maybe; + updatedAt?: Maybe; + code?: Maybe; + description?: Maybe; +}; + +/** The price value where the result has a single price */ +export type SinglePrice = { + __typename?: 'SinglePrice'; + value: Scalars['Int']; +}; + +export enum SortOrder { + Asc = 'ASC', + Desc = 'DESC' +} + +export type StockAdjustment = Node & + StockMovement & { + __typename?: 'StockAdjustment'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + productVariant: ProductVariant; + type: StockMovementType; + quantity: Scalars['Int']; + }; + +export type StockMovement = { + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + productVariant: ProductVariant; + type: StockMovementType; + quantity: Scalars['Int']; +}; + +export type StockMovementItem = StockAdjustment | Sale | Cancellation | Return; + +export type StockMovementList = { + __typename?: 'StockMovementList'; + items: Array; + totalItems: Scalars['Int']; +}; + +export type StockMovementListOptions = { + type?: Maybe; + skip?: Maybe; + take?: Maybe; +}; + +export enum StockMovementType { + Adjustment = 'ADJUSTMENT', + Sale = 'SALE', + Cancellation = 'CANCELLATION', + Return = 'RETURN' +} + +export type StringCustomFieldConfig = CustomField & { + __typename?: 'StringCustomFieldConfig'; + name: Scalars['String']; + type: Scalars['String']; + length?: Maybe; + label?: Maybe>; + description?: Maybe>; + readonly?: Maybe; + internal?: Maybe; + pattern?: Maybe; + options?: Maybe>; +}; + +export type StringFieldOption = { + __typename?: 'StringFieldOption'; + value: Scalars['String']; + label?: Maybe>; +}; + +export type StringOperators = { + eq?: Maybe; + contains?: Maybe; +}; + +export type TaxCategory = Node & { + __typename?: 'TaxCategory'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + name: Scalars['String']; +}; + +export type TaxRate = Node & { + __typename?: 'TaxRate'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + name: Scalars['String']; + enabled: Scalars['Boolean']; + value: Scalars['Float']; + category: TaxCategory; + zone: Zone; + customerGroup?: Maybe; +}; + +export type TaxRateFilterParameter = { + createdAt?: Maybe; + updatedAt?: Maybe; + name?: Maybe; + enabled?: Maybe; + value?: Maybe; +}; + +export type TaxRateList = PaginatedList & { + __typename?: 'TaxRateList'; + items: Array; + totalItems: Scalars['Int']; +}; + +export type TaxRateListOptions = { + skip?: Maybe; + take?: Maybe; + sort?: Maybe; + filter?: Maybe; +}; + +export type TaxRateSortParameter = { + id?: Maybe; + createdAt?: Maybe; + updatedAt?: Maybe; + name?: Maybe; + value?: Maybe; +}; + +export type TestEligibleShippingMethodsInput = { + shippingAddress: CreateAddressInput; + lines: Array; +}; + +export type TestShippingMethodInput = { + checker: ConfigurableOperationInput; + calculator: ConfigurableOperationInput; + shippingAddress: CreateAddressInput; + lines: Array; +}; + +export type TestShippingMethodOrderLineInput = { + productVariantId: Scalars['ID']; + quantity: Scalars['Int']; +}; + +export type TestShippingMethodQuote = { + __typename?: 'TestShippingMethodQuote'; + price: Scalars['Int']; + priceWithTax: Scalars['Int']; + description: Scalars['String']; + metadata?: Maybe; +}; + +export type TestShippingMethodResult = { + __typename?: 'TestShippingMethodResult'; + eligible: Scalars['Boolean']; + quote?: Maybe; +}; + +export type UpdateAddressInput = { + id: Scalars['ID']; + fullName?: Maybe; + company?: Maybe; + streetLine1?: Maybe; + streetLine2?: Maybe; + city?: Maybe; + province?: Maybe; + postalCode?: Maybe; + countryCode?: Maybe; + phoneNumber?: Maybe; + defaultShippingAddress?: Maybe; + defaultBillingAddress?: Maybe; + customFields?: Maybe; +}; + +export type UpdateAdministratorInput = { + id: Scalars['ID']; + firstName?: Maybe; + lastName?: Maybe; + emailAddress?: Maybe; + password?: Maybe; + roleIds?: Maybe>; +}; + +export type UpdateAssetInput = { + id: Scalars['ID']; + name?: Maybe; + focalPoint?: Maybe; +}; + +export type UpdateChannelInput = { + id: Scalars['ID']; + code?: Maybe; + token?: Maybe; + defaultLanguageCode?: Maybe; + pricesIncludeTax?: Maybe; + currencyCode?: Maybe; + defaultTaxZoneId?: Maybe; + defaultShippingZoneId?: Maybe; +}; + +export type UpdateCollectionInput = { + id: Scalars['ID']; + isPrivate?: Maybe; + featuredAssetId?: Maybe; + parentId?: Maybe; + assetIds?: Maybe>; + filters?: Maybe>; + translations?: Maybe>; + customFields?: Maybe; +}; + +export type UpdateCollectionTranslationInput = { + id?: Maybe; + languageCode: LanguageCode; + name?: Maybe; + slug?: Maybe; + description?: Maybe; + customFields?: Maybe; +}; + +export type UpdateCountryInput = { + id: Scalars['ID']; + code?: Maybe; + translations?: Maybe>; + enabled?: Maybe; +}; + +export type UpdateCustomerGroupInput = { + id: Scalars['ID']; + name?: Maybe; +}; + +export type UpdateCustomerInput = { + id: Scalars['ID']; + title?: Maybe; + firstName?: Maybe; + lastName?: Maybe; + phoneNumber?: Maybe; + emailAddress?: Maybe; + customFields?: Maybe; +}; + +export type UpdateCustomerNoteInput = { + noteId: Scalars['ID']; + note: Scalars['String']; +}; + +export type UpdateFacetInput = { + id: Scalars['ID']; + isPrivate?: Maybe; + code?: Maybe; + translations?: Maybe>; + customFields?: Maybe; +}; + +export type UpdateFacetValueInput = { + id: Scalars['ID']; + code?: Maybe; + translations?: Maybe>; + customFields?: Maybe; +}; + +export type UpdateGlobalSettingsInput = { + availableLanguages?: Maybe>; + trackInventory?: Maybe; + customFields?: Maybe; +}; + +export type UpdateOrderInput = { + id: Scalars['ID']; + customFields?: Maybe; +}; + +export type UpdateOrderNoteInput = { + noteId: Scalars['ID']; + note?: Maybe; + isPublic?: Maybe; +}; + +export type UpdatePaymentMethodInput = { + id: Scalars['ID']; + code?: Maybe; + enabled?: Maybe; + configArgs?: Maybe>; +}; + +export type UpdateProductInput = { + id: Scalars['ID']; + enabled?: Maybe; + featuredAssetId?: Maybe; + assetIds?: Maybe>; + facetValueIds?: Maybe>; + translations?: Maybe>; + customFields?: Maybe; +}; + +export type UpdateProductOptionGroupInput = { + id: Scalars['ID']; + code?: Maybe; + translations?: Maybe>; + customFields?: Maybe; +}; + +export type UpdateProductOptionInput = { + id: Scalars['ID']; + code?: Maybe; + translations?: Maybe>; + customFields?: Maybe; +}; + +export type UpdateProductVariantInput = { + id: Scalars['ID']; + enabled?: Maybe; + translations?: Maybe>; + facetValueIds?: Maybe>; + sku?: Maybe; + taxCategoryId?: Maybe; + price?: Maybe; + featuredAssetId?: Maybe; + assetIds?: Maybe>; + stockOnHand?: Maybe; + trackInventory?: Maybe; + customFields?: Maybe; +}; + +export type UpdatePromotionInput = { + id: Scalars['ID']; + name?: Maybe; + enabled?: Maybe; + startsAt?: Maybe; + endsAt?: Maybe; + couponCode?: Maybe; + perCustomerUsageLimit?: Maybe; + conditions?: Maybe>; + actions?: Maybe>; +}; + +export type UpdateRoleInput = { + id: Scalars['ID']; + code?: Maybe; + description?: Maybe; + permissions?: Maybe>; + channelIds?: Maybe>; +}; + +export type UpdateShippingMethodInput = { + id: Scalars['ID']; + code?: Maybe; + description?: Maybe; + checker?: Maybe; + calculator?: Maybe; + customFields?: Maybe; +}; + +export type UpdateTaxCategoryInput = { + id: Scalars['ID']; + name?: Maybe; +}; + +export type UpdateTaxRateInput = { + id: Scalars['ID']; + name?: Maybe; + value?: Maybe; + enabled?: Maybe; + categoryId?: Maybe; + zoneId?: Maybe; + customerGroupId?: Maybe; +}; + +export type UpdateZoneInput = { + id: Scalars['ID']; + name?: Maybe; +}; + +export type User = Node & { + __typename?: 'User'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + identifier: Scalars['String']; + verified: Scalars['Boolean']; + roles: Array; + lastLogin?: Maybe; + authenticationMethods: Array; + customFields?: Maybe; +}; + +export type Zone = Node & { + __typename?: 'Zone'; + id: Scalars['ID']; + createdAt: Scalars['DateTime']; + updatedAt: Scalars['DateTime']; + name: Scalars['String']; + members: Array; +}; diff --git a/src/ui/components/review-store-list/review-store-list.graphql.ts b/src/ui/components/review-store-list/review-store-list.graphql.ts new file mode 100644 index 0000000..89f247c --- /dev/null +++ b/src/ui/components/review-store-list/review-store-list.graphql.ts @@ -0,0 +1,14 @@ +import gql from 'graphql-tag'; +import { REVIEW_STORE_FRAGMENT } from '../../common/fragments.graphql'; + +export const GET_REVIEW_STORE_LIST = gql` + query GetPackageList($options: ReviewStoreListOptions!) { + reviewsStore(options: $options) { + items { + ...ReviewStore + } + totalItems + } + } + ${REVIEW_STORE_FRAGMENT} +`; diff --git a/src/ui/components/review-store-list/review-store-list.graphql.types.ts b/src/ui/components/review-store-list/review-store-list.graphql.types.ts new file mode 100644 index 0000000..26d638a --- /dev/null +++ b/src/ui/components/review-store-list/review-store-list.graphql.types.ts @@ -0,0 +1,14 @@ +import * as Types from '../../common/generated-admin-schema'; + +import { ReviewStoreFragment } from '../../common/fragments.graphql.types'; + +export type GetPackageListQueryVariables = Types.Exact<{ + options: Types.ReviewStoreListOptions; +}>; + +export type GetPackageListQuery = { __typename?: 'Query' } & { + reviewsStore: { __typename?: 'ReviewStoreList' } & Pick< + Types.ReviewStoreList, + 'totalItems' + > & { items: Array<{ __typename?: 'ReviewStore' } & ReviewStoreFragment> }; +}; diff --git a/tsconfig.json b/tsconfig.json index a0195c1..9ce5e26 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -19,7 +19,8 @@ "removeComments": true, "sourceMap": true, "outDir": "./lib", - "noImplicitAny": false + "noImplicitAny": false, + "baseUrl": "./" }, "files": [ "./src/index.ts" diff --git a/yarn.lock b/yarn.lock index efd929f..54f73d9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,236 @@ # yarn lockfile v1 +"@angular-devkit/architect@0.900.7": + version "0.900.7" + resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.900.7.tgz#11884bc3c3be8618a62c8e80d61c3410ab954719" + integrity sha512-hfiTVYc72kzbXrzK4tea6jnTDnSKpE1D+vEptBXN2tdXEVNEAQI5Qm5L1zVDtt16UdqoUTUypIgUc9jcNH1mUQ== + dependencies: + "@angular-devkit/core" "9.0.7" + rxjs "6.5.3" + +"@angular-devkit/architect@0.901.12": + version "0.901.12" + resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.901.12.tgz#e0f78b7282f851d27af6802dc7a261022421b2d5" + integrity sha512-gLlsxa+3JPV1m1gRvRMujOs4xKox6I5BkYmOD1zfu+dB6y3LuBAvHfXA6FaTDVOMBrmSlWnE4PmOmB6xd7wxMA== + dependencies: + "@angular-devkit/core" "9.1.12" + rxjs "6.5.4" + +"@angular-devkit/build-angular@~0.900.5": + version "0.900.7" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-0.900.7.tgz#5d15d6fb1f96e3a1c3e7df786ef02ddad3ee7cb0" + integrity sha512-Yv2y3OEaYEd0fE0pKvtqBpmkQYs9xJws7thHnJYCwIfYO55RfolYsXkJgAXke/4NPLrD3EsIDqoPxF7l+uw2/Q== + dependencies: + "@angular-devkit/architect" "0.900.7" + "@angular-devkit/build-optimizer" "0.900.7" + "@angular-devkit/build-webpack" "0.900.7" + "@angular-devkit/core" "9.0.7" + "@babel/core" "7.7.7" + "@babel/generator" "7.7.7" + "@babel/preset-env" "7.7.7" + "@ngtools/webpack" "9.0.7" + ajv "6.10.2" + autoprefixer "9.7.1" + babel-loader "8.0.6" + browserslist "^4.9.1" + cacache "13.0.1" + caniuse-lite "^1.0.30001032" + circular-dependency-plugin "5.2.0" + copy-webpack-plugin "5.1.1" + core-js "3.6.4" + coverage-istanbul-loader "2.0.3" + cssnano "4.1.10" + file-loader "4.2.0" + find-cache-dir "3.0.0" + glob "7.1.5" + jest-worker "24.9.0" + karma-source-map-support "1.4.0" + less "3.10.3" + less-loader "5.0.0" + license-webpack-plugin "2.1.3" + loader-utils "1.2.3" + magic-string "0.25.4" + mini-css-extract-plugin "0.8.0" + minimatch "3.0.4" + open "7.0.0" + parse5 "4.0.0" + postcss "7.0.21" + postcss-import "12.0.1" + postcss-loader "3.0.0" + raw-loader "3.1.0" + regenerator-runtime "0.13.3" + rimraf "3.0.0" + rollup "1.25.2" + rxjs "6.5.3" + sass "1.23.3" + sass-loader "8.0.0" + semver "6.3.0" + source-map "0.7.3" + source-map-loader "0.2.4" + source-map-support "0.5.16" + speed-measure-webpack-plugin "1.3.1" + style-loader "1.0.0" + stylus "0.54.7" + stylus-loader "3.0.2" + terser "4.5.1" + terser-webpack-plugin "2.3.3" + tree-kill "1.2.2" + webpack "4.41.2" + webpack-dev-middleware "3.7.2" + webpack-dev-server "3.9.0" + webpack-merge "4.2.2" + webpack-sources "1.4.3" + webpack-subresource-integrity "1.3.4" + worker-plugin "3.2.0" + +"@angular-devkit/build-optimizer@0.900.7": + version "0.900.7" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-optimizer/-/build-optimizer-0.900.7.tgz#cda2cd1034ee03ef02a09426f50dec920e56cf59" + integrity sha512-gxin2oPNMN+PYo82At2JP1Q+uxnvwyDFWA1Wl+Ufuc5zHGhjKqxdQjkdMF7OT0ihtmkllN+t/NTB7rcx/Sx9Wg== + dependencies: + loader-utils "1.2.3" + source-map "0.7.3" + tslib "1.10.0" + typescript "3.6.4" + webpack-sources "1.4.3" + +"@angular-devkit/build-webpack@0.900.7": + version "0.900.7" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.900.7.tgz#78ba1abe1fe3face8ed88e82a151c6d57daf0a4b" + integrity sha512-Nwwqjo1ZpHFLavN+nXOmuBgGjhoMBZGelDCvHtiQlQ9N6i7k9cKnP7eU5pY7jbalBguS+gWg5wJIGnbqk1K9Rg== + dependencies: + "@angular-devkit/architect" "0.900.7" + "@angular-devkit/core" "9.0.7" + rxjs "6.5.3" + +"@angular-devkit/core@9.0.7": + version "9.0.7" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-9.0.7.tgz#97e452ad88d36391d621748487c5bab655edfe84" + integrity sha512-tMrz36sM1xrwvFf9Qm59GwALscVlMP7rQBjtd0fIR/QbsiOAIX4AQbV+vN6Vtwnzo5NIRZY1IXJUhesWms+h5w== + dependencies: + ajv "6.10.2" + fast-json-stable-stringify "2.0.0" + magic-string "0.25.4" + rxjs "6.5.3" + source-map "0.7.3" + +"@angular-devkit/core@9.1.12": + version "9.1.12" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-9.1.12.tgz#7cebce51918fe7f3462d8c58c9fbd5a3e2c3b3e7" + integrity sha512-D/GnBeSlmdgGn7EhuE32HuPuRAjvUuxi7Q6WywBI8PSsXKAGnrypghBwMATNnOA24//CgbW2533Y9VWHaeXdeA== + dependencies: + ajv "6.12.3" + fast-json-stable-stringify "2.1.0" + magic-string "0.25.7" + rxjs "6.5.4" + source-map "0.7.3" + +"@angular-devkit/schematics@9.1.12": + version "9.1.12" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-9.1.12.tgz#bbf457f1b35941fddeeb1ee77336dd04ca60b8ba" + integrity sha512-+GYnUzmIy1/QpYitCC8mI7jcrViGHTtOKvvDPEFjU2nggjNEQaMmsHcdIsjrqggEc23ZZyebNAIewT8CMkJyrQ== + dependencies: + "@angular-devkit/core" "9.1.12" + ora "4.0.3" + rxjs "6.5.4" + +"@angular/animations@9.1.7": + version "9.1.7" + resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-9.1.7.tgz#09bf7c84c234d8b6ecaa101024a3b3e69ab198cd" + integrity sha512-1wW8ndGMLDuE2LpTN2RNRz1Dt7JgVBeVmOPMgzoA7g1uuvm+jESTrGG7W3BzLzG0BE2TeXt0fY90o4iU+S2Rmg== + +"@angular/cdk@9.2.3": + version "9.2.3" + resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-9.2.3.tgz#e0f7d4eaeca429346e15bd258966fbb5a5f4ed0b" + integrity sha512-tQr/yt8GNGsZ/DTT+PMq7XdRmL56hwVCyf8F12JQAawutSLfTfMb+S1lpN7L/0Pb/L5JBuCfG2HmXK7vHo02gw== + optionalDependencies: + parse5 "^5.0.0" + +"@angular/cli@^9.0.5": + version "9.1.12" + resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-9.1.12.tgz#c6e41c80c387200766fc52a6b42fde869dcc0cef" + integrity sha512-B0yOab5WbD84bIRRUKOPAJnpka8Qj+CRt61wJfjsqpd/Rj7pD/3ubmdCNoBH7Xa6UlOb0tdYqRPsqfK7uEL0sw== + dependencies: + "@angular-devkit/architect" "0.901.12" + "@angular-devkit/core" "9.1.12" + "@angular-devkit/schematics" "9.1.12" + "@schematics/angular" "9.1.12" + "@schematics/update" "0.901.12" + "@yarnpkg/lockfile" "1.1.0" + ansi-colors "4.1.1" + debug "4.1.1" + ini "1.3.5" + inquirer "7.1.0" + npm-package-arg "8.0.1" + npm-pick-manifest "6.0.0" + open "7.0.3" + pacote "9.5.12" + read-package-tree "5.3.1" + rimraf "3.0.2" + semver "7.1.3" + symbol-observable "1.2.0" + universal-analytics "0.4.20" + uuid "7.0.2" + +"@angular/common@9.1.7": + version "9.1.7" + resolved "https://registry.yarnpkg.com/@angular/common/-/common-9.1.7.tgz#79ebbe3c08ced0070314beb10bbccfb8927dfe62" + integrity sha512-04ef+J8bnOnjYbdRsm82IdIaaLFZ6QWh4SLtjnYhgCjEe4Stf59g+zRNPMauMFDQYDCp3foPo0djk1CPfEd8AQ== + +"@angular/compiler-cli@^9.0.6": + version "9.1.12" + resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-9.1.12.tgz#37ba1a8b483ab1382414d0a13a35a1fd2020abd1" + integrity sha512-bbqJ+fbY+aQejSYuHUjE1qYJCXkZBM5Hru9eN7m/j376u83MQ5jWdC290uYx+ipsXcPTa/YRZ44jpL+5cCzIrg== + dependencies: + canonical-path "1.0.0" + chokidar "^3.0.0" + convert-source-map "^1.5.1" + dependency-graph "^0.7.2" + fs-extra "4.0.2" + magic-string "^0.25.0" + minimist "^1.2.0" + reflect-metadata "^0.1.2" + semver "^6.3.0" + source-map "^0.6.1" + sourcemap-codec "^1.4.8" + yargs "15.3.0" + +"@angular/compiler@^9.0.6": + version "9.1.12" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-9.1.12.tgz#3066a637bfe09642dd5c4a4dd029e7a771988311" + integrity sha512-suefk0OFkaJpUUKnV+phbL4T8fmVGHvzkereY5eqybQlumOez8NPL1PJcygAylh/E6OIAYm8SWookYwM6ZY9dg== + +"@angular/core@9.1.7": + version "9.1.7" + resolved "https://registry.yarnpkg.com/@angular/core/-/core-9.1.7.tgz#0465c26d9101389602e3ff9e502f83f3655e9fe1" + integrity sha512-uJSZ+rdGL47gc3A+Fal1XwJYB4WWpYJrNifvoQ2nOs+X5Qu+j0HN6GXPJb4kixoNzjYCGxmLoirdT3xhNZFcfQ== + +"@angular/forms@9.1.7": + version "9.1.7" + resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-9.1.7.tgz#cdefbc7c7093fd37b417975f18b875a798cbd2d9" + integrity sha512-/bRs5hSFDUjOrq2vw11HoS25oEu7KYVxPbQiEjeBHJo82yDmSO+1cVukh6ulDi7iv1sJwSzikDtE9+xDx1ocfQ== + +"@angular/language-service@9.1.7": + version "9.1.7" + resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-9.1.7.tgz#d8d62872b8a7df61e2d0e4f546680f0a5450f6c9" + integrity sha512-p4WOZFCn6H5qgII9MbPjSu/AErt0rXpsXlMHC9KJl+JgfPI3YwQuX1dLdt3xTJlxuv8/fY9UbgmPJUqR/txRCg== + +"@angular/platform-browser-dynamic@9.1.7": + version "9.1.7" + resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-9.1.7.tgz#cf20e8f9ba3512ca906d7f21cf0926f0222a95ad" + integrity sha512-DyUDGxp4kF4majcm9COVzu/9wzmgnfj+d6GUEjYkbqSH9QP05LonJ6wHMNxNMN6qMfawdCxDe0TnNDRPmHUj9w== + +"@angular/platform-browser@9.1.7": + version "9.1.7" + resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-9.1.7.tgz#47e473660c772f80245bcf872aa7e3df9e875a70" + integrity sha512-zwNCnn4Ozax80YrkFcLoQ/7bVR7jPk7+QT++Nf9MmQwsaqa0Ve1IYa6Hg9Y1Kf4wquI9TdxMN17TPKmX8iNIaA== + +"@angular/router@9.1.7": + version "9.1.7" + resolved "https://registry.yarnpkg.com/@angular/router/-/router-9.1.7.tgz#ce9af75cec470f69122f2217bd5bdcfac7b74201" + integrity sha512-ycrkhkCbfOMCe9PngFjnyk8nH5jt0Kyb2NPtjmaGOtSCuZBZ0kOU0rQGmQnj3d2PiT0Yir59S8eEAf3Fh0iDuw== + "@apollo/federation@^0.13.2": version "0.13.2" resolved "https://registry.yarnpkg.com/@apollo/federation/-/federation-0.13.2.tgz#a9f842abd1619fe5cd732c56cfbc45dab0ae784a" @@ -75,13 +305,33 @@ resolved "https://registry.yarnpkg.com/@ardatan/aggregate-error/-/aggregate-error-0.0.1.tgz#1403ac5de10d8ca689fc1f65844c27179ae1d44f" integrity sha512-UQ9BequOTIavs0pTHLMwQwKQF8tTV1oezY/H2O9chA+JNPFZSua55xpU5dPSjAU9/jLJ1VwU+HJuTVN8u7S6Fg== -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.5.5": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== dependencies: "@babel/highlight" "^7.10.4" +"@babel/core@7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.7.tgz#ee155d2e12300bcc0cff6a8ad46f2af5063803e9" + integrity sha512-jlSjuj/7z138NLZALxVgrx13AOtqip42ATZP7+kYl53GvDV6+4dCek1mVUo8z8c8Xnw/mx2q3d9HWh3griuesQ== + dependencies: + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.7.7" + "@babel/helpers" "^7.7.4" + "@babel/parser" "^7.7.7" + "@babel/template" "^7.7.4" + "@babel/traverse" "^7.7.4" + "@babel/types" "^7.7.4" + convert-source-map "^1.7.0" + debug "^4.1.0" + json5 "^2.1.0" + lodash "^4.17.13" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + "@babel/core@^7.0.0", "@babel/core@^7.1.0", "@babel/core@^7.7.5": version "7.11.1" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.1.tgz#2c55b604e73a40dc21b0e52650b11c65cf276643" @@ -104,7 +354,17 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.11.0", "@babel/generator@^7.5.0": +"@babel/generator@7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.7.tgz#859ac733c44c74148e1a72980a64ec84b85f4f45" + integrity sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ== + dependencies: + "@babel/types" "^7.7.4" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" + +"@babel/generator@^7.11.0", "@babel/generator@^7.5.0", "@babel/generator@^7.7.7": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.0.tgz#4b90c78d8c12825024568cbe83ee6c9af193585c" integrity sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ== @@ -120,6 +380,14 @@ dependencies: "@babel/types" "^7.10.4" +"@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3" + integrity sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.10.4" + "@babel/types" "^7.10.4" + "@babel/helper-builder-react-jsx-experimental@^7.10.4": version "7.10.5" resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.5.tgz#f35e956a19955ff08c1258e44a515a6d6248646b" @@ -149,6 +417,15 @@ "@babel/helper-replace-supers" "^7.10.4" "@babel/helper-split-export-declaration" "^7.10.4" +"@babel/helper-create-regexp-features-plugin@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz#fdd60d88524659a0b6959c0579925e425714f3b8" + integrity sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-regex" "^7.10.4" + regexpu-core "^4.7.0" + "@babel/helper-define-map@^7.10.4": version "7.10.5" resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz#b53c10db78a640800152692b13393147acb9bb30" @@ -158,6 +435,14 @@ "@babel/types" "^7.10.5" lodash "^4.17.19" +"@babel/helper-explode-assignable-expression@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz#40a1cd917bff1288f699a94a75b37a1a2dbd8c7c" + integrity sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A== + dependencies: + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" + "@babel/helper-function-name@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" @@ -174,6 +459,13 @@ dependencies: "@babel/types" "^7.10.4" +"@babel/helper-hoist-variables@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e" + integrity sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA== + dependencies: + "@babel/types" "^7.10.4" + "@babel/helper-member-expression-to-functions@^7.10.4", "@babel/helper-member-expression-to-functions@^7.10.5": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz#ae69c83d84ee82f4b42f96e2a09410935a8f26df" @@ -181,14 +473,14 @@ dependencies: "@babel/types" "^7.11.0" -"@babel/helper-module-imports@^7.10.4": +"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.7.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620" integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw== dependencies: "@babel/types" "^7.10.4" -"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.11.0": +"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.10.5", "@babel/helper-module-transforms@^7.11.0": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz#b16f250229e47211abdd84b34b64737c2ab2d359" integrity sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg== @@ -213,6 +505,24 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== +"@babel/helper-regex@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.5.tgz#32dfbb79899073c415557053a19bd055aae50ae0" + integrity sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg== + dependencies: + lodash "^4.17.19" + +"@babel/helper-remap-async-to-generator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz#fce8bea4e9690bbe923056ded21e54b4e8b68ed5" + integrity sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-wrap-function" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" + "@babel/helper-replace-supers@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz#d585cd9388ea06e6031e4cd44b6713cbead9e6cf" @@ -250,7 +560,17 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== -"@babel/helpers@^7.10.4": +"@babel/helper-wrap-function@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz#8a6f701eab0ff39f765b5a1cfef409990e624b87" + integrity sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug== + dependencies: + "@babel/helper-function-name" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helpers@^7.10.4", "@babel/helpers@^7.7.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.4.tgz#2abeb0d721aff7c0a97376b9e1f6f65d7a475044" integrity sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA== @@ -273,7 +593,7 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.1.tgz#d91a387990b21e5d20047b336bb19b0553f02ff5" integrity sha512-u9QMIRdKVF7hfEkb3nu2LgZDIzCQPv+yHD9Eg6ruoJLjkrQ9fFz4IBSlF/9XwoNri9+2F1IY+dYuOfZrXq8t3w== -"@babel/parser@^7.0.0": +"@babel/parser@^7.0.0", "@babel/parser@^7.7.7": version "7.11.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.3.tgz#9e1eae46738bcd08e23e867bab43e7b95299a8f9" integrity sha512-REo8xv7+sDxkKvoxEywIdsNFiZLybwdI7hcT5uEPyQrSMB4YQ973BfC9OOrD/81MaIjh6UxdulIQXkjmiH3PcA== @@ -283,6 +603,15 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.2.tgz#0882ab8a455df3065ea2dcb4c753b2460a24bead" integrity sha512-Vuj/+7vLo6l1Vi7uuO+1ngCDNeVmNbTngcJFKCR/oEtz8tKz0CJxZEGmPt9KcIloZhOZ3Zit6xbpXT2MDlS9Vw== +"@babel/plugin-proposal-async-generator-functions@^7.7.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz#3491cabf2f7c179ab820606cec27fed15e0e8558" + integrity sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-remap-async-to-generator" "^7.10.4" + "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/plugin-proposal-class-properties@^7.0.0": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz#a33bf632da390a59c7a8c570045d1115cd778807" @@ -291,7 +620,23 @@ "@babel/helper-create-class-features-plugin" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.0.0": +"@babel/plugin-proposal-dynamic-import@^7.7.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz#ba57a26cb98b37741e9d5bca1b8b0ddf8291f17e" + integrity sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + +"@babel/plugin-proposal-json-strings@^7.7.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz#593e59c63528160233bd321b1aebe0820c2341db" + integrity sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.0" + +"@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.7.7": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz#bd81f95a1f746760ea43b6c2d3d62b11790ad0af" integrity sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA== @@ -300,7 +645,23 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.0" "@babel/plugin-transform-parameters" "^7.10.4" -"@babel/plugin-syntax-async-generators@^7.8.4": +"@babel/plugin-proposal-optional-catch-binding@^7.7.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz#31c938309d24a78a49d68fdabffaa863758554dd" + integrity sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + +"@babel/plugin-proposal-unicode-property-regex@^7.7.7": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz#4483cda53041ce3413b7fe2f00022665ddfaa75d" + integrity sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-async-generators@^7.7.4", "@babel/plugin-syntax-async-generators@^7.8.0", "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== @@ -321,6 +682,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" +"@babel/plugin-syntax-dynamic-import@^7.7.4", "@babel/plugin-syntax-dynamic-import@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + "@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.4.tgz#53351dd7ae01995e567d04ce42af1a6e0ba846a6" @@ -335,7 +703,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-json-strings@^7.8.3": +"@babel/plugin-syntax-json-strings@^7.7.4", "@babel/plugin-syntax-json-strings@^7.8.0", "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== @@ -370,14 +738,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": +"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.7.4", "@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": +"@babel/plugin-syntax-optional-catch-binding@^7.7.4", "@babel/plugin-syntax-optional-catch-binding@^7.8.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== @@ -391,28 +759,44 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-transform-arrow-functions@^7.0.0": +"@babel/plugin-syntax-top-level-await@^7.7.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz#4bbeb8917b54fcf768364e0a81f560e33a3ef57d" + integrity sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-arrow-functions@^7.0.0", "@babel/plugin-transform-arrow-functions@^7.7.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz#e22960d77e697c74f41c501d44d73dbf8a6a64cd" integrity sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-block-scoped-functions@^7.0.0": +"@babel/plugin-transform-async-to-generator@^7.7.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz#41a5017e49eb6f3cda9392a51eef29405b245a37" + integrity sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ== + dependencies: + "@babel/helper-module-imports" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-remap-async-to-generator" "^7.10.4" + +"@babel/plugin-transform-block-scoped-functions@^7.0.0", "@babel/plugin-transform-block-scoped-functions@^7.7.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz#1afa595744f75e43a91af73b0d998ecfe4ebc2e8" integrity sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-block-scoping@^7.0.0": +"@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.7.4": version "7.11.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz#5b7efe98852bef8d652c0b28144cd93a9e4b5215" integrity sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-classes@^7.0.0": +"@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.7.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz#405136af2b3e218bc4a1926228bc917ab1a0adc7" integrity sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA== @@ -426,20 +810,43 @@ "@babel/helper-split-export-declaration" "^7.10.4" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.0.0": +"@babel/plugin-transform-computed-properties@^7.0.0", "@babel/plugin-transform-computed-properties@^7.7.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz#9ded83a816e82ded28d52d4b4ecbdd810cdfc0eb" integrity sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-destructuring@^7.0.0": +"@babel/plugin-transform-destructuring@^7.0.0", "@babel/plugin-transform-destructuring@^7.7.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz#70ddd2b3d1bea83d01509e9bb25ddb3a74fc85e5" integrity sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" +"@babel/plugin-transform-dotall-regex@^7.7.7": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz#469c2062105c1eb6a040eaf4fac4b488078395ee" + integrity sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-duplicate-keys@^7.7.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz#697e50c9fee14380fe843d1f306b295617431e47" + integrity sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-exponentiation-operator@^7.7.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz#5ae338c57f8cf4001bdb35607ae66b92d665af2e" + integrity sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-transform-flow-strip-types@^7.0.0": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.10.4.tgz#c497957f09e86e3df7296271e9eb642876bf7788" @@ -448,14 +855,14 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-flow" "^7.10.4" -"@babel/plugin-transform-for-of@^7.0.0": +"@babel/plugin-transform-for-of@^7.0.0", "@babel/plugin-transform-for-of@^7.7.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz#c08892e8819d3a5db29031b115af511dbbfebae9" integrity sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-function-name@^7.0.0": +"@babel/plugin-transform-function-name@^7.0.0", "@babel/plugin-transform-function-name@^7.7.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz#6a467880e0fc9638514ba369111811ddbe2644b7" integrity sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg== @@ -463,21 +870,30 @@ "@babel/helper-function-name" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-literals@^7.0.0": +"@babel/plugin-transform-literals@^7.0.0", "@babel/plugin-transform-literals@^7.7.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz#9f42ba0841100a135f22712d0e391c462f571f3c" integrity sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-member-expression-literals@^7.0.0": +"@babel/plugin-transform-member-expression-literals@^7.0.0", "@babel/plugin-transform-member-expression-literals@^7.7.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz#b1ec44fcf195afcb8db2c62cd8e551c881baf8b7" integrity sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-modules-commonjs@^7.0.0": +"@babel/plugin-transform-modules-amd@^7.7.5": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz#1b9cddaf05d9e88b3aad339cb3e445c4f020a9b1" + integrity sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw== + dependencies: + "@babel/helper-module-transforms" "^7.10.5" + "@babel/helper-plugin-utils" "^7.10.4" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.7.5": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz#66667c3eeda1ebf7896d41f1f16b17105a2fbca0" integrity sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w== @@ -487,7 +903,39 @@ "@babel/helper-simple-access" "^7.10.4" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-object-super@^7.0.0": +"@babel/plugin-transform-modules-systemjs@^7.7.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz#6270099c854066681bae9e05f87e1b9cadbe8c85" + integrity sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw== + dependencies: + "@babel/helper-hoist-variables" "^7.10.4" + "@babel/helper-module-transforms" "^7.10.5" + "@babel/helper-plugin-utils" "^7.10.4" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-umd@^7.7.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz#9a8481fe81b824654b3a0b65da3df89f3d21839e" + integrity sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA== + dependencies: + "@babel/helper-module-transforms" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.7.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz#78b4d978810b6f3bcf03f9e318f2fc0ed41aecb6" + integrity sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.10.4" + +"@babel/plugin-transform-new-target@^7.7.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz#9097d753cb7b024cb7381a3b2e52e9513a9c6888" + integrity sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-object-super@^7.0.0", "@babel/plugin-transform-object-super@^7.7.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz#d7146c4d139433e7a6526f888c667e314a093894" integrity sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ== @@ -495,7 +943,7 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/helper-replace-supers" "^7.10.4" -"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.10.4": +"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.10.4", "@babel/plugin-transform-parameters@^7.7.7": version "7.10.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz#59d339d58d0b1950435f4043e74e2510005e2c4a" integrity sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw== @@ -503,7 +951,7 @@ "@babel/helper-get-function-arity" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-property-literals@^7.0.0": +"@babel/plugin-transform-property-literals@^7.0.0", "@babel/plugin-transform-property-literals@^7.7.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz#f6fe54b6590352298785b83edd815d214c42e3c0" integrity sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g== @@ -527,14 +975,28 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-jsx" "^7.10.4" -"@babel/plugin-transform-shorthand-properties@^7.0.0": +"@babel/plugin-transform-regenerator@^7.7.5": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz#2015e59d839074e76838de2159db421966fd8b63" + integrity sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw== + dependencies: + regenerator-transform "^0.14.2" + +"@babel/plugin-transform-reserved-words@^7.7.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz#8f2682bcdcef9ed327e1b0861585d7013f8a54dd" + integrity sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-shorthand-properties@^7.0.0", "@babel/plugin-transform-shorthand-properties@^7.7.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz#9fd25ec5cdd555bb7f473e5e6ee1c971eede4dd6" integrity sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-spread@^7.0.0": +"@babel/plugin-transform-spread@^7.0.0", "@babel/plugin-transform-spread@^7.7.4": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz#fa84d300f5e4f57752fe41a6d1b3c554f13f17cc" integrity sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw== @@ -542,7 +1004,15 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" -"@babel/plugin-transform-template-literals@^7.0.0": +"@babel/plugin-transform-sticky-regex@^7.7.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz#8f3889ee8657581130a29d9cc91d7c73b7c4a28d" + integrity sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-regex" "^7.10.4" + +"@babel/plugin-transform-template-literals@^7.0.0", "@babel/plugin-transform-template-literals@^7.7.4": version "7.10.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz#78bc5d626a6642db3312d9d0f001f5e7639fde8c" integrity sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw== @@ -550,14 +1020,86 @@ "@babel/helper-annotate-as-pure" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.10.1", "@babel/runtime@^7.9.6": +"@babel/plugin-transform-typeof-symbol@^7.7.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz#9509f1a7eec31c4edbffe137c16cc33ff0bc5bfc" + integrity sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-unicode-regex@^7.7.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz#e56d71f9282fac6db09c82742055576d5e6d80a8" + integrity sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/preset-env@7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.7.tgz#c294167b91e53e7e36d820e943ece8d0c7fe46ac" + integrity sha512-pCu0hrSSDVI7kCVUOdcMNQEbOPJ52E+LrQ14sN8uL2ALfSqePZQlKrOy+tM4uhEdYlCHi4imr8Zz2cZe9oSdIg== + dependencies: + "@babel/helper-module-imports" "^7.7.4" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-async-generator-functions" "^7.7.4" + "@babel/plugin-proposal-dynamic-import" "^7.7.4" + "@babel/plugin-proposal-json-strings" "^7.7.4" + "@babel/plugin-proposal-object-rest-spread" "^7.7.7" + "@babel/plugin-proposal-optional-catch-binding" "^7.7.4" + "@babel/plugin-proposal-unicode-property-regex" "^7.7.7" + "@babel/plugin-syntax-async-generators" "^7.7.4" + "@babel/plugin-syntax-dynamic-import" "^7.7.4" + "@babel/plugin-syntax-json-strings" "^7.7.4" + "@babel/plugin-syntax-object-rest-spread" "^7.7.4" + "@babel/plugin-syntax-optional-catch-binding" "^7.7.4" + "@babel/plugin-syntax-top-level-await" "^7.7.4" + "@babel/plugin-transform-arrow-functions" "^7.7.4" + "@babel/plugin-transform-async-to-generator" "^7.7.4" + "@babel/plugin-transform-block-scoped-functions" "^7.7.4" + "@babel/plugin-transform-block-scoping" "^7.7.4" + "@babel/plugin-transform-classes" "^7.7.4" + "@babel/plugin-transform-computed-properties" "^7.7.4" + "@babel/plugin-transform-destructuring" "^7.7.4" + "@babel/plugin-transform-dotall-regex" "^7.7.7" + "@babel/plugin-transform-duplicate-keys" "^7.7.4" + "@babel/plugin-transform-exponentiation-operator" "^7.7.4" + "@babel/plugin-transform-for-of" "^7.7.4" + "@babel/plugin-transform-function-name" "^7.7.4" + "@babel/plugin-transform-literals" "^7.7.4" + "@babel/plugin-transform-member-expression-literals" "^7.7.4" + "@babel/plugin-transform-modules-amd" "^7.7.5" + "@babel/plugin-transform-modules-commonjs" "^7.7.5" + "@babel/plugin-transform-modules-systemjs" "^7.7.4" + "@babel/plugin-transform-modules-umd" "^7.7.4" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.7.4" + "@babel/plugin-transform-new-target" "^7.7.4" + "@babel/plugin-transform-object-super" "^7.7.4" + "@babel/plugin-transform-parameters" "^7.7.7" + "@babel/plugin-transform-property-literals" "^7.7.4" + "@babel/plugin-transform-regenerator" "^7.7.5" + "@babel/plugin-transform-reserved-words" "^7.7.4" + "@babel/plugin-transform-shorthand-properties" "^7.7.4" + "@babel/plugin-transform-spread" "^7.7.4" + "@babel/plugin-transform-sticky-regex" "^7.7.4" + "@babel/plugin-transform-template-literals" "^7.7.4" + "@babel/plugin-transform-typeof-symbol" "^7.7.4" + "@babel/plugin-transform-unicode-regex" "^7.7.4" + "@babel/types" "^7.7.4" + browserslist "^4.6.0" + core-js-compat "^3.6.0" + invariant "^2.2.2" + js-levenshtein "^1.1.3" + semver "^5.5.0" + +"@babel/runtime@^7.0.0", "@babel/runtime@^7.10.1", "@babel/runtime@^7.5.4", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.6": version "7.11.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.10.4", "@babel/template@^7.3.3": +"@babel/template@^7.10.4", "@babel/template@^7.3.3", "@babel/template@^7.7.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== @@ -566,7 +1108,7 @@ "@babel/parser" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/traverse@7.11.0", "@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.11.0": +"@babel/traverse@7.11.0", "@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.11.0", "@babel/traverse@^7.7.4": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.0.tgz#9b996ce1b98f53f7c3e4175115605d56ed07dd24" integrity sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg== @@ -581,7 +1123,7 @@ globals "^11.1.0" lodash "^4.17.19" -"@babel/types@7.11.0", "@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3": +"@babel/types@7.11.0", "@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.7.4": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.0.tgz#2ae6bf1ba9ae8c3c43824e5861269871b206e90d" integrity sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA== @@ -595,6 +1137,49 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== +"@biesbjerg/ngx-translate-extract-marker@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@biesbjerg/ngx-translate-extract-marker/-/ngx-translate-extract-marker-1.0.0.tgz#3c50b5305fb2ffe4826c1473e25e6f746bb31916" + integrity sha512-GlCBQKmFE+b+qfIO0aGvuRc4LJVSfK27K2QQFXZLP55/w28iiq/q2CnBS8ya+4l+hapm7U3QPtFoZu9lmbUuew== + dependencies: + tslib "^1.9.0" + +"@clr/angular@^3.0.0": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@clr/angular/-/angular-3.1.5.tgz#3ec2988437019c66e927239d5acf15de61c7ad81" + integrity sha512-LaNvTJ7m3I38q2EMf+gsMRAW/n7/pF9AvTsmc0onWmT8nYuMRIpylqOfo80QpLrR1s9GHVGUqSVAPjiMlkShBg== + +"@clr/city@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@clr/city/-/city-1.1.0.tgz#4a444cd12c626d66ffadab27e9d09bb3c8eca352" + integrity sha512-R+C4uywmXoTD01LINOt3O0cBRviQdbAVNxdVvOyuO3+rM9bvFroF7UZY0R1ue/xvKXlqJrEkNKZQODeKjzaAhA== + +"@clr/core@^3.0.0": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@clr/core/-/core-3.1.5.tgz#5533f7d429dfc7f3292cd24628dfb88e318b3667" + integrity sha512-jNImbBx4jo0tvDT7lowbCcOK3xhcs7gXuLiIUaYJ/yJgteywVYaZMxs1PcZGk97uMJupoG8U1YF5z3h5wHNhEQ== + dependencies: + css-vars-ponyfill "^2.1.2" + lit-element "^2.2.1" + lit-html "^1.1.2" + ramda "^0.26.1" + tslib "^1.10.0" + optionalDependencies: + "@clr/city" "^1.0.0" + "@webcomponents/custom-elements" "^1.3.1" + "@webcomponents/shadycss" "^1.9.3" + "@webcomponents/webcomponentsjs" "^2.4.0" + +"@clr/icons@^3.0.0": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@clr/icons/-/icons-3.1.5.tgz#6706fefbd16bf90ab441b2a078ad651b98b282a6" + integrity sha512-uWOOSPnI1nVItE8q6zf9IzkCjsqlFgOkUcDJWHdU71TIKe/ZLwoIbNAj7iz5phsAI6ehW3JRVioLGHH26/ZiyQ== + +"@clr/ui@^3.0.0": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@clr/ui/-/ui-3.1.5.tgz#196e47b7f634a9839b9f5c76b0d70f37a0f5b7bb" + integrity sha512-0XLdHQT7+bSCfK/4+i5SOq/6ZlzDyqc+hyqmXUx7RCncm4PNf/LUj4oOxEJDBVG6uU4dG3AJHIemmlBFqIIz/w== + "@cnakazawa/watch@^1.0.3": version "1.0.4" resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" @@ -1441,6 +2026,35 @@ dependencies: uuid "7.0.2" +"@ng-select/ng-select@^3.7.2": + version "3.7.3" + resolved "https://registry.yarnpkg.com/@ng-select/ng-select/-/ng-select-3.7.3.tgz#317fbf94211fb2044f6ab233795cf1cbab4b44a3" + integrity sha512-Duw5t0b9Jup/tVEoDHLm+UhGv5RnwQ7pQorCAQc4LZR35oOZFjec8FrEGGtgVAGtwaQAYyd7PSMk3nEsWPg6AQ== + dependencies: + tslib "^1.9.0" + +"@ngtools/webpack@9.0.7": + version "9.0.7" + resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-9.0.7.tgz#2d9397544afcf503530eafc764c64d40a99fa070" + integrity sha512-MvoMaErkjESefoIrbt8F2RpKDr9KavwvH4v3hwSAKooVNFdFKNsjJ7m3gCQehumEfsYFq2mrEK2sTW4/CpFlMQ== + dependencies: + "@angular-devkit/core" "9.0.7" + enhanced-resolve "4.1.1" + rxjs "6.5.3" + webpack-sources "1.4.3" + +"@ngx-translate/core@^12.1.2": + version "12.1.2" + resolved "https://registry.yarnpkg.com/@ngx-translate/core/-/core-12.1.2.tgz#0c6f24249953a79cfc2d581b2cd1b5d6d338d9db" + integrity sha512-ZudJsqIxTKlLmPoqK8gJY3UpMGujR0Xm7HfXL6AR79yGRS23QqpjAhMfx4v5qUCcHMmQ9/78bW8QJLfp31c7vQ== + +"@ngx-translate/http-loader@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@ngx-translate/http-loader/-/http-loader-4.0.0.tgz#8a555248ad4b7d513460fcec9da25b0447962f1d" + integrity sha512-x8LumqydWD7eX9yQTAVeoCM9gFUIGVTUjZqbxdAUavAA3qVnk9wCQux7iHLPXpydl8vyQmLoPQR+fFU+DUDOMA== + dependencies: + tslib "^1.9.0" + "@nodelib/fs.scandir@2.1.3": version "2.1.3" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" @@ -1635,6 +2249,29 @@ dependencies: any-observable "^0.3.0" +"@schematics/angular@9.1.12": + version "9.1.12" + resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-9.1.12.tgz#608e25dbd517d867002781f695336b51f05417a2" + integrity sha512-r4+aPAGhstsKFMwW/kOen1ACnzuLpz+vMxEpndXOqqVXLkAMsuAbQUFYjIlMy6fH4zdhpI90EJZ1PbOrAXvKxA== + dependencies: + "@angular-devkit/core" "9.1.12" + "@angular-devkit/schematics" "9.1.12" + +"@schematics/update@0.901.12": + version "0.901.12" + resolved "https://registry.yarnpkg.com/@schematics/update/-/update-0.901.12.tgz#7e410ac7a163b71e30d8cc56d7959adf9225078c" + integrity sha512-SxGVYLTHhBC0rSF0OWSWPuJUB1Jhfqkl3o5bBgCC9//DutWiN6WoCCBTrCxR7F5vR2iiD7WqOe9CuvWYfvV8oQ== + dependencies: + "@angular-devkit/core" "9.1.12" + "@angular-devkit/schematics" "9.1.12" + "@yarnpkg/lockfile" "1.1.0" + ini "1.3.5" + npm-package-arg "^8.0.0" + pacote "9.5.12" + rxjs "6.5.4" + semver "7.1.3" + semver-intersect "1.4.0" + "@semantic-release/commit-analyzer@^8.0.0": version "8.0.1" resolved "https://registry.yarnpkg.com/@semantic-release/commit-analyzer/-/commit-analyzer-8.0.1.tgz#5d2a37cd5a3312da0e3ac05b1ca348bf60b90bca" @@ -1828,6 +2465,11 @@ resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== +"@types/estree@*": + version "0.0.45" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.45.tgz#e9387572998e5ecdac221950dab3e8c3b16af884" + integrity sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g== + "@types/express-serve-static-core@*": version "4.17.9" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.9.tgz#2d7b34dcfd25ec663c25c85d76608f8b249667f1" @@ -1870,6 +2512,14 @@ dependencies: "@types/node" "*" +"@types/glob@^7.1.1": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" + integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + "@types/graceful-fs@^4.1.2": version "4.1.3" resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.3.tgz#039af35fe26bec35003e8d86d2ee9c586354348f" @@ -1939,7 +2589,7 @@ resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-3.12.5.tgz#136d5e6a57a931e1cce6f9d8126aa98a9c92a6bb" integrity sha512-JCcp6J0GV66Y4ZMDAQCXot4xprYB+Zfd3meK9+INSJeVZwJmHAW30BBEEkPzXswMXuiyReUGOP3GxrADc9wPww== -"@types/json-schema@^7.0.3": +"@types/json-schema@^7.0.3", "@types/json-schema@^7.0.4": version "7.0.5" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.5.tgz#dcce4430e64b443ba8945f0290fb564ad5bac6dd" integrity sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ== @@ -1991,7 +2641,7 @@ resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.3.tgz#c893b73721db73699943bfc3653b1deb7faa4a3a" integrity sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q== -"@types/minimatch@^3.0.3": +"@types/minimatch@*", "@types/minimatch@^3.0.3": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== @@ -2016,7 +2666,7 @@ "@types/node" "*" form-data "^3.0.0" -"@types/node@*", "@types/node@>= 8": +"@types/node@*", "@types/node@>= 8", "@types/node@>=6": version "14.0.27" resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.27.tgz#a151873af5a5e851b51b3b065c9e63390a9e0eb1" integrity sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g== @@ -2041,6 +2691,11 @@ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.0.2.tgz#5bb52ee68d0f8efa9cc0099920e56be6cc4e37f3" integrity sha512-IkVfat549ggtkZUthUzEX49562eGikhSYeVGX97SkMFn+sTZrgRewXjQ4tPKFPCykZHkX1Zfd9OoELGqKU2jJA== +"@types/q@^1.5.1": + version "1.5.4" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" + integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== + "@types/qs@*": version "6.9.4" resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.4.tgz#a59e851c1ba16c0513ea123830dd639a0a15cb6a" @@ -2064,11 +2719,25 @@ "@types/express-serve-static-core" "*" "@types/mime" "*" +"@types/source-list-map@*": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" + integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== + "@types/stack-utils@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== +"@types/webpack-sources@^0.1.5": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-0.1.8.tgz#078d75410435993ec8a0a2855e88706f3f751f81" + integrity sha512-JHB2/xZlXOjzjBB6fMOpH1eQAfsrpqVVIbneE0Rok16WXwFaznaI5vfg75U5WgGJm7V9W1c4xeRQDjX/zwvghA== + dependencies: + "@types/node" "*" + "@types/source-list-map" "*" + source-map "^0.6.1" + "@types/websocket@1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@types/websocket/-/websocket-1.0.1.tgz#039272c196c2c0e4868a0d8a1a27bbb86e9e9138" @@ -2102,6 +2771,11 @@ dependencies: "@types/yargs-parser" "*" +"@types/zen-observable@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.0.tgz#8b63ab7f1aa5321248aad5ac890a485656dcea4d" + integrity sha512-te5lMAWii1uEJ4FwLjzdlbw3+n0FZNOvFXHxQDKeT0dilh7HOzdMzV2TrJVUzq8ep7J4Na8OUYPRLSQkJHAlrg== + "@typescript-eslint/eslint-plugin@3.6.1": version "3.6.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.6.1.tgz#5ced8fd2087fbb83a76973dea4a0d39d9cb4a642" @@ -2162,6 +2836,57 @@ dependencies: eslint-visitor-keys "^1.1.0" +"@vendure/admin-ui@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@vendure/admin-ui/-/admin-ui-0.14.0.tgz#022e81bee69fb81985d4cdd3c27079918a20ee05" + integrity sha512-Gjs2eeiqN8dGdpTty03yDp+2XcZrSJHOhMJVD8xVw3xXfOvL1vHfnreq2nC1Auz8a6GEuOd/Qgf9zoG5N0VNBQ== + dependencies: + "@angular/animations" "9.1.7" + "@angular/cdk" "9.2.3" + "@angular/common" "9.1.7" + "@angular/core" "9.1.7" + "@angular/forms" "9.1.7" + "@angular/language-service" "9.1.7" + "@angular/platform-browser" "9.1.7" + "@angular/platform-browser-dynamic" "9.1.7" + "@angular/router" "9.1.7" + "@biesbjerg/ngx-translate-extract-marker" "^1.0.0" + "@clr/angular" "^3.0.0" + "@clr/core" "^3.0.0" + "@clr/icons" "^3.0.0" + "@clr/ui" "^3.0.0" + "@ng-select/ng-select" "^3.7.2" + "@ngx-translate/core" "^12.1.2" + "@ngx-translate/http-loader" "^4.0.0" + "@vendure/common" "^0.14.0" + "@webcomponents/custom-elements" "^1.2.4" + apollo-angular "^1.8.0" + apollo-cache-inmemory "^1.6.5" + apollo-client "^2.6.8" + apollo-link "^1.2.13" + apollo-link-context "^1.0.19" + apollo-upload-client "^12.1.0" + core-js "^3.1.3" + dayjs "^1.8.20" + graphql "^14.6.0" + graphql-tag "^2.10.3" + messageformat "2.3.0" + ngx-pagination "^5.0.0" + ngx-translate-messageformat-compiler "^4.6.0" + prosemirror-commands "^1.0.0" + prosemirror-dropcursor "^1.0.0" + prosemirror-gapcursor "^1.0.0" + prosemirror-history "^1.0.0" + prosemirror-inputrules "^1.0.0" + prosemirror-keymap "^1.0.0" + prosemirror-menu "^1.0.0" + prosemirror-schema-basic "^1.1.2" + prosemirror-schema-list "^1.0.0" + prosemirror-state "^1.0.0" + rxjs "^6.5.4" + tslib "^1.10.0" + zone.js "~0.10.2" + "@vendure/common@^0.14.0": version "0.14.0" resolved "https://registry.yarnpkg.com/@vendure/common/-/common-0.14.0.tgz#9c1c515ed93577c1a82a20f00ee3975d625d61a3" @@ -2242,6 +2967,192 @@ node-fetch "^2.6.0" sql.js "1.1.0" +"@vendure/ui-devkit@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@vendure/ui-devkit/-/ui-devkit-0.14.0.tgz#f827902aada23612009c44c848477b7e59ee9222" + integrity sha512-aI9YxBa7UP1Lv8yVy5wiJZ02xieHeruFoDQ+amu8DZxzkJ63IpCht+obppqmOirDswbFh21e73k/ADwe97R7bw== + dependencies: + "@angular-devkit/build-angular" "~0.900.5" + "@angular/cli" "^9.0.5" + "@angular/compiler" "^9.0.6" + "@angular/compiler-cli" "^9.0.6" + "@vendure/admin-ui" "^0.14.0" + "@vendure/common" "^0.14.0" + chalk "^3.0.0" + chokidar "^3.3.1" + fs-extra "^9.0.0" + glob "^7.1.6" + rxjs "^6.5.4" + +"@webassemblyjs/ast@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" + integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ== + dependencies: + "@webassemblyjs/helper-module-context" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/wast-parser" "1.8.5" + +"@webassemblyjs/floating-point-hex-parser@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721" + integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ== + +"@webassemblyjs/helper-api-error@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7" + integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA== + +"@webassemblyjs/helper-buffer@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204" + integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q== + +"@webassemblyjs/helper-code-frame@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e" + integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ== + dependencies: + "@webassemblyjs/wast-printer" "1.8.5" + +"@webassemblyjs/helper-fsm@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452" + integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow== + +"@webassemblyjs/helper-module-context@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245" + integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g== + dependencies: + "@webassemblyjs/ast" "1.8.5" + mamacro "^0.0.3" + +"@webassemblyjs/helper-wasm-bytecode@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61" + integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ== + +"@webassemblyjs/helper-wasm-section@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf" + integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-buffer" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/wasm-gen" "1.8.5" + +"@webassemblyjs/ieee754@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e" + integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10" + integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc" + integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw== + +"@webassemblyjs/wasm-edit@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a" + integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-buffer" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/helper-wasm-section" "1.8.5" + "@webassemblyjs/wasm-gen" "1.8.5" + "@webassemblyjs/wasm-opt" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + "@webassemblyjs/wast-printer" "1.8.5" + +"@webassemblyjs/wasm-gen@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc" + integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/ieee754" "1.8.5" + "@webassemblyjs/leb128" "1.8.5" + "@webassemblyjs/utf8" "1.8.5" + +"@webassemblyjs/wasm-opt@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264" + integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-buffer" "1.8.5" + "@webassemblyjs/wasm-gen" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + +"@webassemblyjs/wasm-parser@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d" + integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-api-error" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/ieee754" "1.8.5" + "@webassemblyjs/leb128" "1.8.5" + "@webassemblyjs/utf8" "1.8.5" + +"@webassemblyjs/wast-parser@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c" + integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/floating-point-hex-parser" "1.8.5" + "@webassemblyjs/helper-api-error" "1.8.5" + "@webassemblyjs/helper-code-frame" "1.8.5" + "@webassemblyjs/helper-fsm" "1.8.5" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc" + integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/wast-parser" "1.8.5" + "@xtuc/long" "4.2.2" + +"@webcomponents/custom-elements@^1.2.4", "@webcomponents/custom-elements@^1.3.1": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@webcomponents/custom-elements/-/custom-elements-1.4.2.tgz#a6fe80325c2b09e88e988c712144bc667c565499" + integrity sha512-bLw2XH9+2NBwmn7BI6WA2oIo2eOfBpl+GjAqkF/qnkZ8kq3HY5tKYTxtKowWALAferTp3wKD8W6FSn5OyK+rtQ== + +"@webcomponents/shadycss@^1.9.3": + version "1.10.1" + resolved "https://registry.yarnpkg.com/@webcomponents/shadycss/-/shadycss-1.10.1.tgz#6f377b313c96a93a690f25206b32a20eada4b2a9" + integrity sha512-XEVDA7oH6o4Au9apyRDucjcIzvP44Ur4sqTMGRKCcE6sCAeKiOkRE03TCYNJAFkzckMWWT8Xx3IxG3iwjAcsRQ== + +"@webcomponents/webcomponentsjs@^2.4.0": + version "2.4.4" + resolved "https://registry.yarnpkg.com/@webcomponents/webcomponentsjs/-/webcomponentsjs-2.4.4.tgz#14b7e78da47f8f0071ff96c35335b871534179bc" + integrity sha512-UWXZYbaDLLfhm+xONXTiDciyhOSwKRrZieGQHFMSMGSxY4mbjZ5uYzOKgnuX0luYFvjJw32G3r0sCwQZPJIR4Q== + +"@wry/context@^0.4.0": + version "0.4.4" + resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.4.4.tgz#e50f5fa1d6cfaabf2977d1fda5ae91717f8815f8" + integrity sha512-LrKVLove/zw6h2Md/KZyWxIkFM6AoyKp71OqpH9Hiip1csjPVoD3tPxlbQUNxEnHENks3UGgNpSBCAfq9KWuag== + dependencies: + "@types/node" ">=6" + tslib "^1.9.3" + "@wry/equality@^0.1.2": version "0.1.11" resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.1.11.tgz#35cb156e4a96695aa81a9ecc4d03787bc17f1790" @@ -2249,6 +3160,21 @@ dependencies: tslib "^1.9.3" +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +"@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== + JSONStream@^1.0.4, JSONStream@^1.3.4, JSONStream@^1.3.5: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" @@ -2267,7 +3193,7 @@ abbrev@1, abbrev@~1.1.1: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== -accepts@^1.3.5, accepts@~1.3.7: +accepts@^1.3.5, accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: version "1.3.7" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== @@ -2293,7 +3219,12 @@ acorn-walk@^7.1.1: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== -acorn@^7.1.1, acorn@^7.3.1: +acorn@^6.2.1: + version "6.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" + integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== + +acorn@^7.1.0, acorn@^7.1.1, acorn@^7.3.1: version "7.4.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c" integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w== @@ -2353,7 +3284,27 @@ aggregate-error@3.0.1, aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" -ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3: +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@6.10.2: + version "6.10.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" + integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@6.12.3, ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.12.3: version "6.12.3" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== @@ -2363,6 +3314,11 @@ ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +alphanum-sort@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= + ansi-align@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" @@ -2370,11 +3326,16 @@ ansi-align@^2.0.0: dependencies: string-width "^2.0.0" -ansi-colors@^4.1.1: +ansi-colors@4.1.1, ansi-colors@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== +ansi-colors@^3.0.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== + ansi-escapes@4.3.1, ansi-escapes@^4.2.1, ansi-escapes@^4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" @@ -2387,6 +3348,11 @@ ansi-escapes@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== +ansi-html@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= + ansi-regex@^2.0.0, ansi-regex@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -2463,6 +3429,14 @@ anymatch@^3.0.3, anymatch@~3.1.1: normalize-path "^3.0.0" picomatch "^2.0.4" +apollo-angular@^1.8.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/apollo-angular/-/apollo-angular-1.10.0.tgz#da95875d3065da53624fcbe4b8aa273e5ace18ac" + integrity sha512-VPSNk8Li5KRDhZ3GSJPEYg1r57KySND2m1XWgkLNYmQExzNDs/Su9EeWThwOqjZ7x9JbGjpvWiQeUQaCs96PjA== + dependencies: + semver "^7.0.0" + tslib "^2.0.0" + apollo-cache-control@^0.11.1: version "0.11.1" resolved "https://registry.yarnpkg.com/apollo-cache-control/-/apollo-cache-control-0.11.1.tgz#3bce0924ae7322a8b9f7ca1e2fb036d1fc9f1df5" @@ -2471,6 +3445,39 @@ apollo-cache-control@^0.11.1: apollo-server-env "^2.4.5" apollo-server-plugin-base "^0.9.1" +apollo-cache-inmemory@^1.6.5: + version "1.6.6" + resolved "https://registry.yarnpkg.com/apollo-cache-inmemory/-/apollo-cache-inmemory-1.6.6.tgz#56d1f2a463a6b9db32e9fa990af16d2a008206fd" + integrity sha512-L8pToTW/+Xru2FFAhkZ1OA9q4V4nuvfoPecBM34DecAugUZEBhI2Hmpgnzq2hTKZ60LAMrlqiASm0aqAY6F8/A== + dependencies: + apollo-cache "^1.3.5" + apollo-utilities "^1.3.4" + optimism "^0.10.0" + ts-invariant "^0.4.0" + tslib "^1.10.0" + +apollo-cache@1.3.5, apollo-cache@^1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/apollo-cache/-/apollo-cache-1.3.5.tgz#9dbebfc8dbe8fe7f97ba568a224bca2c5d81f461" + integrity sha512-1XoDy8kJnyWY/i/+gLTEbYLnoiVtS8y7ikBr/IfmML4Qb+CM7dEEbIUOjnY716WqmZ/UpXIxTfJsY7rMcqiCXA== + dependencies: + apollo-utilities "^1.3.4" + tslib "^1.10.0" + +apollo-client@^2.6.8: + version "2.6.10" + resolved "https://registry.yarnpkg.com/apollo-client/-/apollo-client-2.6.10.tgz#86637047b51d940c8eaa771a4ce1b02df16bea6a" + integrity sha512-jiPlMTN6/5CjZpJOkGeUV0mb4zxx33uXWdj/xQCfAMkuNAC3HN7CvYDyMHHEzmcQ5GV12LszWoQ/VlxET24CtA== + dependencies: + "@types/zen-observable" "^0.8.0" + apollo-cache "1.3.5" + apollo-link "^1.0.0" + apollo-utilities "1.3.4" + symbol-observable "^1.0.2" + ts-invariant "^0.4.0" + tslib "^1.10.0" + zen-observable "^0.8.0" + apollo-datasource@^0.7.2: version "0.7.2" resolved "https://registry.yarnpkg.com/apollo-datasource/-/apollo-datasource-0.7.2.tgz#1662ee93453a9b89af6f73ce561bde46b41ebf31" @@ -2534,7 +3541,24 @@ apollo-graphql@^0.5.0: apollo-env "^0.6.5" lodash.sortby "^4.7.0" -apollo-link@^1.2.14, apollo-link@^1.2.3: +apollo-link-context@^1.0.19: + version "1.0.20" + resolved "https://registry.yarnpkg.com/apollo-link-context/-/apollo-link-context-1.0.20.tgz#1939ac5dc65d6dff0c855ee53521150053c24676" + integrity sha512-MLLPYvhzNb8AglNsk2NcL9AvhO/Vc9hn2ZZuegbhRHGet3oGr0YH9s30NS9+ieoM0sGT11p7oZ6oAILM/kiRBA== + dependencies: + apollo-link "^1.2.14" + tslib "^1.9.3" + +apollo-link-http-common@^0.2.14: + version "0.2.16" + resolved "https://registry.yarnpkg.com/apollo-link-http-common/-/apollo-link-http-common-0.2.16.tgz#756749dafc732792c8ca0923f9a40564b7c59ecc" + integrity sha512-2tIhOIrnaF4UbQHf7kjeQA/EmSorB7+HyJIIrUjJOKBgnXwuexi8aMecRlqTIDWcyVXCeqLhUnztMa6bOH/jTg== + dependencies: + apollo-link "^1.2.14" + ts-invariant "^0.4.0" + tslib "^1.9.3" + +apollo-link@^1.0.0, apollo-link@^1.2.12, apollo-link@^1.2.13, apollo-link@^1.2.14, apollo-link@^1.2.3: version "1.2.14" resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.14.tgz#3feda4b47f9ebba7f4160bef8b977ba725b684d9" integrity sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg== @@ -2647,7 +3671,17 @@ apollo-tracing@^0.11.1: apollo-server-env "^2.4.5" apollo-server-plugin-base "^0.9.1" -apollo-utilities@^1.0.1, apollo-utilities@^1.3.0: +apollo-upload-client@^12.1.0: + version "12.1.0" + resolved "https://registry.yarnpkg.com/apollo-upload-client/-/apollo-upload-client-12.1.0.tgz#7af32196feb1a72e4c4953887bb7c50eee7e06e0" + integrity sha512-pAWYDMU9aFZnPvj0g7+FPRCHcslBPwUpnFxSUWiPDJAGYPXzE5C5DKcvRSQMMyQ09akqU6wZsyVk8zhL7GFC8Q== + dependencies: + "@babel/runtime" "^7.5.4" + apollo-link "^1.2.12" + apollo-link-http-common "^0.2.14" + extract-files "^5.0.1" + +apollo-utilities@1.3.4, apollo-utilities@^1.0.1, apollo-utilities@^1.3.0, apollo-utilities@^1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.3.4.tgz#6129e438e8be201b6c55b0f13ce49d2c7175c9cf" integrity sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig== @@ -2742,16 +3776,33 @@ array-flatten@1.1.1: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= +array-flatten@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + array-ify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= -array-union@^2.1.0: +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + dependencies: + array-uniq "^1.0.1" + +array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" @@ -2781,6 +3832,15 @@ asap@^2.0.0, asap@~2.0.3: resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= +asn1.js@^4.0.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + asn1@~0.2.3: version "0.2.4" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" @@ -2793,6 +3853,14 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= +assert@^1.1.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + dependencies: + object-assign "^4.1.1" + util "0.10.3" + assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" @@ -2803,6 +3871,11 @@ astral-regex@^1.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + async-limiter@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" @@ -2815,6 +3888,13 @@ async-retry@^1.2.1: dependencies: retry "0.12.0" +async@^2.5.0, async@^2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -2835,6 +3915,19 @@ auto-bind@~4.0.0: resolved "https://registry.yarnpkg.com/auto-bind/-/auto-bind-4.0.0.tgz#e3589fc6c2da8f7ca43ba9f84fa52a744fc997fb" integrity sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ== +autoprefixer@9.7.1: + version "9.7.1" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.1.tgz#9ffc44c55f5ca89253d9bb7186cefb01ef57747f" + integrity sha512-w3b5y1PXWlhYulevrTJ0lizkQ5CyqfeU6BIRDbuhsMupstHQOeb1Ur80tcB1zxSu7AwyY/qCQ7Vvqklh31ZBFw== + dependencies: + browserslist "^4.7.2" + caniuse-lite "^1.0.30001006" + chalk "^2.4.2" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^7.0.21" + postcss-value-parser "^4.0.2" + aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" @@ -2866,6 +3959,16 @@ babel-jest@^26.2.2: graceful-fs "^4.2.4" slash "^3.0.0" +babel-loader@8.0.6: + version "8.0.6" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz#e33bdb6f362b03f4bb141a0c21ab87c501b70dfb" + integrity sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw== + dependencies: + find-cache-dir "^2.0.0" + loader-utils "^1.0.2" + mkdirp "^0.5.1" + pify "^4.0.1" + babel-plugin-dynamic-import-node@^2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" @@ -2985,6 +4088,11 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= + bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" @@ -3005,6 +4113,11 @@ before-after-hook@^2.1.0: resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635" integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A== +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + bignumber.js@9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.0.tgz#805880f84a329b5eac6e7cb6f8274b6d82bdf075" @@ -3022,16 +4135,38 @@ bin-links@^1.1.2, bin-links@^1.1.8: npm-normalize-package-bin "^1.0.0" write-file-atomic "^2.3.0" +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + binary-extensions@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5, bluebird@^3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: + version "4.11.9" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" + integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== + +bn.js@^5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0" + integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA== + body-parser@1.19.0, body-parser@^1.18.3, body-parser@^1.19.0: version "1.19.0" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" @@ -3048,6 +4183,23 @@ body-parser@1.19.0, body-parser@^1.18.3, body-parser@^1.19.0: raw-body "2.4.0" type-is "~1.6.17" +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= + dependencies: + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + bottleneck@^2.18.1: version "2.19.5" resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.19.5.tgz#5df0b90f59fd47656ebe63c78a98419205cadd91" @@ -3074,7 +4226,7 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^2.3.1: +braces@^2.3.1, braces@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== @@ -3097,11 +4249,87 @@ braces@^3.0.1, braces@~3.0.2: dependencies: fill-range "^7.0.1" +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + browser-process-hrtime@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.3" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +browserslist@^4.0.0, browserslist@^4.6.0, browserslist@^4.7.2, browserslist@^4.8.5, browserslist@^4.9.1: + version "4.14.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.0.tgz#2908951abfe4ec98737b72f34c3bcedc8d43b000" + integrity sha512-pUsXKAF2lVwhmtpeA3LJrZ76jXuusrNyhduuQs7CDFf9foT4Y38aQOserd2lMe5DSSrjf3fx34oHwryuvxAUgQ== + dependencies: + caniuse-lite "^1.0.30001111" + electron-to-chromium "^1.3.523" + escalade "^3.0.2" + node-releases "^1.1.60" + bs-logger@0.x: version "0.2.6" resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" @@ -3126,6 +4354,25 @@ buffer-from@1.x, buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@^4.3.0: + version "4.9.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + buffer@^5.1.0: version "5.6.0" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" @@ -3134,6 +4381,11 @@ buffer@^5.1.0: base64-js "^1.0.2" ieee754 "^1.1.4" +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + builtins@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" @@ -3164,11 +4416,40 @@ byte-size@^5.0.1: resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-5.0.1.tgz#4b651039a5ecd96767e71a3d7ed380e48bed4191" integrity sha512-/XuKeqWocKsYa/cBY1YbSJSWWqTi4cFgr9S6OyM7PBaPbr9zvNGwWP33vt0uqGhwDdN+y3yhbXVILEUpnwEWGw== +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + bytes@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== +cacache@13.0.1, cacache@^13.0.1: + version "13.0.1" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-13.0.1.tgz#a8000c21697089082f85287a1aec6e382024a71c" + integrity sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w== + dependencies: + chownr "^1.1.2" + figgy-pudding "^3.5.1" + fs-minipass "^2.0.0" + glob "^7.1.4" + graceful-fs "^4.2.2" + infer-owner "^1.0.4" + lru-cache "^5.1.1" + minipass "^3.0.0" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.2" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + p-map "^3.0.0" + promise-inflight "^1.0.1" + rimraf "^2.7.1" + ssri "^7.0.0" + unique-filename "^1.1.1" + cacache@^12.0.0, cacache@^12.0.2, cacache@^12.0.3: version "12.0.4" resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" @@ -3235,6 +4516,25 @@ call-limit@^1.1.1: resolved "https://registry.yarnpkg.com/call-limit/-/call-limit-1.1.1.tgz#ef15f2670db3f1992557e2d965abc459e6e358d4" integrity sha512-5twvci5b9eRBw2wCfPtN0GmlR2/gadZqyFpPhOK6CvMFoFgA+USnZ6Jpu1lhG9h85pQ3Ouil3PfXWRD4EUaRiQ== +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -3281,6 +4581,26 @@ camelcase@^6.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.0.0.tgz#5259f7c30e35e278f1bdc2a4d91230b37cad981e" integrity sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w== +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001006, caniuse-lite@^1.0.30001032, caniuse-lite@^1.0.30001111: + version "1.0.30001113" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001113.tgz#22016ab55b5a8b04fa00ca342d9ee1b98df48065" + integrity sha512-qMvjHiKH21zzM/VDZr6oosO6Ri3U0V2tC015jRXjOecwQCJtsU5zklTNTk31jQbIOP8gha0h1ccM/g0ECP+4BA== + +canonical-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/canonical-path/-/canonical-path-1.0.0.tgz#fcb470c23958def85081856be7a86e904f180d1d" + integrity sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg== + capture-exit@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" @@ -3387,6 +4707,40 @@ chokidar@3.4.1: optionalDependencies: fsevents "~2.1.2" +"chokidar@>=2.0.0 <4.0.0", chokidar@^3.0.0, chokidar@^3.3.1, chokidar@^3.4.1: + version "3.4.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d" + integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.4.0" + optionalDependencies: + fsevents "~2.1.2" + +chokidar@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + chownr@^1.1.1, chownr@^1.1.2, chownr@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" @@ -3397,6 +4751,13 @@ chownr@^2.0.0: resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== +chrome-trace-event@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" + integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== + dependencies: + tslib "^1.9.0" + ci-info@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" @@ -3414,6 +4775,19 @@ cidr-regex@^2.0.10: dependencies: ip-regex "^2.1.0" +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +circular-dependency-plugin@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz#e09dbc2dd3e2928442403e2d45b41cea06bc0a93" + integrity sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw== + class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -3480,6 +4854,11 @@ cli-highlight@^2.0.0: parse5-htmlparser2-tree-adapter "^5.1.1" yargs "^15.0.0" +cli-spinners@^2.2.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.4.0.tgz#c6256db216b878cfba4720e719cec7cf72685d7f" + integrity sha512-sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA== + cli-table3@^0.5.0, cli-table3@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" @@ -3505,6 +4884,11 @@ cli-truncate@^0.2.1: slice-ansi "0.0.4" string-width "^1.0.1" +cli-width@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" + integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== + cli-width@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" @@ -3519,6 +4903,15 @@ cliui@^3.2.0: strip-ansi "^3.0.1" wrap-ansi "^2.0.0" +cliui@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" + integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" + cliui@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" @@ -3537,11 +4930,25 @@ cliui@^6.0.0: strip-ansi "^6.0.0" wrap-ansi "^6.2.0" +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + clone@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= +clone@^2.1.1, clone@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= + cmd-shim@^3.0.0, cmd-shim@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-3.0.3.tgz#2c35238d3df37d98ecdd7d5f6b8dc6b21cadc7cb" @@ -3555,6 +4962,15 @@ co@^4.6.0: resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + code-block-writer@^10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-10.1.0.tgz#54fc410ebef2af836d9c2314ac40af7d7b37eee9" @@ -3589,7 +5005,7 @@ collection-visit@^1.0.0: map-visit "^1.0.0" object-visit "^1.0.0" -color-convert@^1.9.0: +color-convert@^1.9.0, color-convert@^1.9.1: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== @@ -3608,11 +5024,27 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -color-name@~1.1.4: +color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-string@^1.5.2: + version "1.5.3" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" + integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" + integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== + dependencies: + color-convert "^1.9.1" + color-string "^1.5.2" + colors@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" @@ -3638,7 +5070,7 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@^2.20.3: +commander@^2.20.0, commander@^2.20.3: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -3660,6 +5092,11 @@ common-tags@1.8.0: resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + compare-func@^1.3.1: version "1.3.4" resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-1.3.4.tgz#6b07c4c5e8341119baf44578085bda0f4a823516" @@ -3678,6 +5115,26 @@ component-emitter@^1.2.1: resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -3728,11 +5185,21 @@ configstore@^3.0.0: write-file-atomic "^2.0.0" xdg-basedir "^3.0.0" +connect-history-api-fallback@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + consola@^2.3.0: version "2.15.0" resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.0.tgz#40fc4eefa4d2f8ef2e2806147f056ea207fcc0e9" integrity sha512-vlcSGgdYS26mPf7qNi+dCisbhiyDnrN1zaRbw3CSuc2wGOMEGGPsp46PdRG5gqXwgtJfjxDkxRNAgRPr1B77vQ== +console-browserify@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== + console-control-strings@^1.0.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" @@ -3747,6 +5214,11 @@ constant-case@3.0.3: tslib "^1.10.0" upper-case "^2.0.1" +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + content-disposition@0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" @@ -3813,7 +5285,7 @@ conventional-commits-parser@^3.0.0, conventional-commits-parser@^3.0.7: through2 "^3.0.0" trim-off-newlines "^1.0.0" -convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: +convert-source-map@^1.4.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== @@ -3873,12 +5345,43 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= +copy-webpack-plugin@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.1.1.tgz#5481a03dea1123d88a988c6ff8b78247214f0b88" + integrity sha512-P15M5ZC8dyCjQHWwd4Ia/dm0SgVvZJMYeykVIVYXbGyqO4dWB5oyPHp9i7wjwo5LhtlhKbiBCdS2NvM07Wlybg== + dependencies: + cacache "^12.0.3" + find-cache-dir "^2.1.0" + glob-parent "^3.1.0" + globby "^7.1.1" + is-glob "^4.0.1" + loader-utils "^1.2.3" + minimatch "^3.0.4" + normalize-path "^3.0.0" + p-limit "^2.2.1" + schema-utils "^1.0.0" + serialize-javascript "^2.1.2" + webpack-log "^2.0.0" + +core-js-compat@^3.6.0: + version "3.6.5" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c" + integrity sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng== + dependencies: + browserslist "^4.8.5" + semver "7.0.0" + +core-js@3.6.4: + version "3.6.4" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.4.tgz#440a83536b458114b9cb2ac1580ba377dc470647" + integrity sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw== + core-js@^2.4.1: version "2.6.11" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== -core-js@^3.0.1, core-js@^3.4.0, core-js@^3.6.1: +core-js@^3.0.1, core-js@^3.1.3, core-js@^3.4.0, core-js@^3.6.1: version "3.6.5" resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== @@ -3918,6 +5421,35 @@ cosmiconfig@7.0.0: path-type "^4.0.0" yaml "^1.10.0" +cosmiconfig@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +coverage-istanbul-loader@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/coverage-istanbul-loader/-/coverage-istanbul-loader-2.0.3.tgz#87d42f03fa0fd3fa8743ec76945d9d67f105722a" + integrity sha512-LiGRvyIuzVYs3M1ZYK1tF0HekjH0DJ8zFdUwAZq378EJzqOgToyb1690dp3TAUlP6Y+82uu42LRjuROVeJ54CA== + dependencies: + convert-source-map "^1.7.0" + istanbul-lib-instrument "^4.0.0" + loader-utils "^1.2.3" + merge-source-map "^1.1.0" + schema-utils "^2.6.1" + +create-ecdh@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== + dependencies: + bn.js "^4.1.0" + elliptic "^6.5.3" + create-error-class@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" @@ -3925,6 +5457,34 @@ create-error-class@^3.0.0: dependencies: capture-stack-trace "^1.0.0" +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +crelt@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/crelt/-/crelt-1.0.4.tgz#9a05d7829aedf79538f2b26f7de319cf45a25b47" + integrity sha512-l1cwMUOssGLEj5zgbut4lxJq95ZabOXVZnDybNqQRUtXh1lvUK7e7kJNm8SfvTQzYpE3AVJhIVUJKf382lMA7A== + cross-fetch@3.0.5: version "3.0.5" resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.0.5.tgz#2739d2981892e7ab488a7ad03b92df2816e03f4c" @@ -3961,6 +5521,23 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2: shebang-command "^2.0.0" which "^2.0.1" +crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + crypto-random-string@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" @@ -3971,41 +5548,192 @@ crypto-random-string@^2.0.0: resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== -cssfilter@0.0.10: - version "0.0.10" - resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae" - integrity sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4= - -cssom@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" - integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== +css-color-names@0.0.4, css-color-names@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== +css-declaration-sorter@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" + integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== + dependencies: + postcss "^7.0.1" + timsort "^0.3.0" -cssstyle@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== +css-parse@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/css-parse/-/css-parse-2.0.0.tgz#a468ee667c16d81ccf05c58c38d2a97c780dbfd4" + integrity sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q= dependencies: - cssom "~0.3.6" + css "^2.0.0" -csv-parse@^4.6.5: - version "4.11.1" - resolved "https://registry.yarnpkg.com/csv-parse/-/csv-parse-4.11.1.tgz#3935a7862d7e431020a25538905dec0153fa75bd" - integrity sha512-cH2BG5Gd0u4G8qVI/jGXJSP2+El7Vy91/ZD3ehKALAWids1aIKOPhZ1ZVJzUrs2zTn6aGumVPBlbHsI91kI83A== +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= +css-select@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== dependencies: - array-find-index "^1.0.1" + boolbase "^1.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" -cyclist@^1.0.1: +css-tree@1.0.0-alpha.37: + version "1.0.0-alpha.37" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" + integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== + dependencies: + mdn-data "2.0.4" + source-map "^0.6.1" + +css-tree@1.0.0-alpha.39: + version "1.0.0-alpha.39" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.39.tgz#2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb" + integrity sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA== + dependencies: + mdn-data "2.0.6" + source-map "^0.6.1" + +css-vars-ponyfill@^2.1.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/css-vars-ponyfill/-/css-vars-ponyfill-2.3.2.tgz#688c990d33d7d4651a2a8dd3a99d8e7458f6e20e" + integrity sha512-XkZfj0ROhem0Zdv44+LF15COsYmxnqL7Wd/gvwuWAauYoALbt2x94b6dIKF9fB6SIyOMYEQngA82t9RnC6b/aw== + +css-what@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.3.0.tgz#10fec696a9ece2e591ac772d759aacabac38cd39" + integrity sha512-pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg== + +css@^2.0.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" + integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== + dependencies: + inherits "^2.0.3" + source-map "^0.6.1" + source-map-resolve "^0.5.2" + urix "^0.1.0" + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssfilter@0.0.10: + version "0.0.10" + resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae" + integrity sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4= + +cssnano-preset-default@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" + integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== + dependencies: + css-declaration-sorter "^4.0.1" + cssnano-util-raw-cache "^4.0.1" + postcss "^7.0.0" + postcss-calc "^7.0.1" + postcss-colormin "^4.0.3" + postcss-convert-values "^4.0.1" + postcss-discard-comments "^4.0.2" + postcss-discard-duplicates "^4.0.2" + postcss-discard-empty "^4.0.1" + postcss-discard-overridden "^4.0.1" + postcss-merge-longhand "^4.0.11" + postcss-merge-rules "^4.0.3" + postcss-minify-font-values "^4.0.2" + postcss-minify-gradients "^4.0.2" + postcss-minify-params "^4.0.2" + postcss-minify-selectors "^4.0.2" + postcss-normalize-charset "^4.0.1" + postcss-normalize-display-values "^4.0.2" + postcss-normalize-positions "^4.0.2" + postcss-normalize-repeat-style "^4.0.2" + postcss-normalize-string "^4.0.2" + postcss-normalize-timing-functions "^4.0.2" + postcss-normalize-unicode "^4.0.1" + postcss-normalize-url "^4.0.1" + postcss-normalize-whitespace "^4.0.2" + postcss-ordered-values "^4.1.2" + postcss-reduce-initial "^4.0.3" + postcss-reduce-transforms "^4.0.2" + postcss-svgo "^4.0.2" + postcss-unique-selectors "^4.0.1" + +cssnano-util-get-arguments@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" + integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= + +cssnano-util-get-match@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" + integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= + +cssnano-util-raw-cache@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" + integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== + dependencies: + postcss "^7.0.0" + +cssnano-util-same-parent@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" + integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== + +cssnano@4.1.10: + version "4.1.10" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" + integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== + dependencies: + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.7" + is-resolvable "^1.0.0" + postcss "^7.0.0" + +csso@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.0.3.tgz#0d9985dc852c7cc2b2cacfbbe1079014d1a8e903" + integrity sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ== + dependencies: + css-tree "1.0.0-alpha.39" + +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +csv-parse@^4.6.5: + version "4.11.1" + resolved "https://registry.yarnpkg.com/csv-parse/-/csv-parse-4.11.1.tgz#3935a7862d7e431020a25538905dec0153fa75bd" + integrity sha512-cH2BG5Gd0u4G8qVI/jGXJSP2+El7Vy91/ZD3ehKALAWids1aIKOPhZ1ZVJzUrs2zTn6aGumVPBlbHsI91kI83A== + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= + dependencies: + array-find-index "^1.0.1" + +cyclist@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= @@ -4054,6 +5782,11 @@ dateformat@^3.0.0: resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== +dayjs@^1.8.20: + version "1.8.33" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.8.33.tgz#18bc4a2b6c1c6f4d67b4c4f2536c0b97e5b766f7" + integrity sha512-881TDLZCdpJFKbraWRHcUG8zfMLLX400ENf9rFZDuWc5zYMss6xifo2PhlDX0ftOmR2NRmaIY47bAa4gKQfXqw== + de-indent@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" @@ -4071,21 +5804,21 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0: dependencies: ms "2.0.0" -debug@3.1.0, debug@=3.1.0: +debug@3.1.0, debug@=3.1.0, debug@~3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== dependencies: ms "2.0.0" -debug@3.2.6, debug@^3.1.0, debug@^3.2.6: +debug@3.2.6, debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== dependencies: ms "^2.1.1" -debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: +debug@4, debug@4.1.1, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== @@ -4127,6 +5860,18 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= +deep-equal@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" @@ -4142,6 +5887,14 @@ deepmerge@4.2.2, deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== +default-gateway@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" + integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== + dependencies: + execa "^1.0.0" + ip-regex "^2.1.0" + defaults@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" @@ -4178,6 +5931,19 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" +del@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" + integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== + dependencies: + "@types/glob" "^7.1.1" + globby "^6.1.0" + is-path-cwd "^2.0.0" + is-path-in-cwd "^2.0.0" + p-map "^2.0.0" + pify "^4.0.1" + rimraf "^2.6.3" + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -4203,6 +5969,11 @@ dependency-graph@0.9.0, dependency-graph@^0.9.0: resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.9.0.tgz#11aed7e203bc8b00f48356d92db27b265c445318" integrity sha512-9YLIBURXj4DJMFALxXw9K3Y3rwb5Fk0X5/8ipCzaN84+gKxoHK43tVKRNakCQbiEx07E8Uwhuq21BpUagFhZ8w== +dependency-graph@^0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.7.2.tgz#91db9de6eb72699209d88aea4c1fd5221cac1c49" + integrity sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ== + deprecate@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/deprecate/-/deprecate-1.1.1.tgz#4632e981fc815eeaf00be945a40359c0f8bf9913" @@ -4218,6 +5989,14 @@ deprecation@^2.0.0, deprecation@^2.3.1: resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== +des.js@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + destroy@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" @@ -4248,6 +6027,11 @@ detect-newline@^3.0.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== +detect-node@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" + integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== + detect-port@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.3.0.tgz#d9c40e9accadd4df5cac6a782aefd014d573d1f1" @@ -4294,6 +6078,22 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dir-glob@^2.0.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" + integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== + dependencies: + path-type "^3.0.0" + dir-glob@^3.0.0, dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -4301,6 +6101,26 @@ dir-glob@^3.0.0, dir-glob@^3.0.1: dependencies: path-type "^4.0.0" +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= + +dns-packet@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" + integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= + dependencies: + buffer-indexof "^1.0.0" + doctrine@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" @@ -4308,6 +6128,29 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +domelementtype@1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" + integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== + domexception@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" @@ -4315,6 +6158,14 @@ domexception@^2.0.1: dependencies: webidl-conversions "^5.0.0" +domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + dot-case@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.3.tgz#21d3b52efaaba2ea5fda875bb1aa8124521cf4aa" @@ -4337,6 +6188,13 @@ dot-prop@^4.1.0: dependencies: is-obj "^1.0.0" +dot-prop@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" + integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== + dependencies: + is-obj "^2.0.0" + dotenv@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-5.0.1.tgz#a5317459bd3d79ab88cff6e44057a6a3fbb1fcef" @@ -4399,11 +6257,29 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= +electron-to-chromium@^1.3.523: + version "1.3.529" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.529.tgz#a7eed559bc848a7c8d95026be7d8929e3f9af169" + integrity sha512-n3sriLldqNyjBlosbnPftjCY+m1dVOY307I1Y0HaHAqDGe3hRvK7ksJwWd+qs599ybR4jobCo1+7zXM9GyNMSA== + elegant-spinner@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4= +elliptic@^6.5.3: + version "6.5.3" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" + integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + emittery@^0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.1.tgz#c02375a927a40948c0345cc903072597f5270451" @@ -4419,6 +6295,16 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -4438,6 +6324,24 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" +enhanced-resolve@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz#2937e2b8066cd0fe7ce0990a98f0d71a35189f66" + integrity sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + +enhanced-resolve@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" + integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + enquirer@^2.3.5: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" @@ -4445,6 +6349,11 @@ enquirer@^2.3.5: dependencies: ansi-colors "^4.1.1" +entities@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" + integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== + env-ci@^5.0.0: version "5.0.2" resolved "https://registry.yarnpkg.com/env-ci/-/env-ci-5.0.2.tgz#48b6687f8af8cdf5e31b8fcf2987553d085249d9" @@ -4463,7 +6372,7 @@ err-code@^1.0.0: resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" integrity sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA= -errno@~0.1.7: +errno@^0.1.1, errno@^0.1.3, errno@~0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== @@ -4551,6 +6460,11 @@ es6-weak-map@^2.0.2: es6-iterator "^2.0.3" es6-symbol "^3.1.1" +escalade@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.0.2.tgz#6a580d70edb87880f22b4c91d0d56078df6962c4" + integrity sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ== + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -4592,6 +6506,14 @@ eslint-plugin-prettier@3.1.4: dependencies: prettier-linter-helpers "^1.0.0" +eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + eslint-scope@^5.0.0, eslint-scope@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.0.tgz#d0f971dfe59c69e0cada684b23d49dbf82600ce5" @@ -4720,6 +6642,26 @@ eventemitter3@^4.0.0: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== +events@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" + integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== + +eventsource@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" + integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== + dependencies: + original "^1.0.0" + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + exec-sh@^0.3.2: version "0.3.4" resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" @@ -4882,6 +6824,11 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" +extract-files@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-5.0.1.tgz#c9492a8410be643e260a376f0151361993d5f659" + integrity sha512-qRW6y9eKF0VbCyOoOEtFhzJ3uykAw8GKwQVXyAIqwocyEWW4m+v+evec34RwtUkkxxHh7NKBLJ6AnXM8W4dH5w== + extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" @@ -4897,6 +6844,11 @@ faker@^4.1.0: resolved "https://registry.yarnpkg.com/faker/-/faker-4.1.0.tgz#1e45bbbecc6774b3c195fad2835109c6d748cc3f" integrity sha1-HkW7vsxndLPBlfrSg1EJxtdIzD8= +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= + fast-deep-equal@^3.1.1: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -4931,7 +6883,12 @@ fast-glob@^3.1.1, fast-glob@^3.2.2: micromatch "^4.0.2" picomatch "^2.2.1" -fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: +fast-json-stable-stringify@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= + +fast-json-stable-stringify@2.1.0, fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== @@ -4953,6 +6910,20 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" +faye-websocket@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= + dependencies: + websocket-driver ">=0.5.1" + +faye-websocket@~0.11.1: + version "0.11.3" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" + integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== + dependencies: + websocket-driver ">=0.5.1" + fb-watchman@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" @@ -5018,6 +6989,19 @@ file-entry-cache@^5.0.1: dependencies: flat-cache "^2.0.1" +file-loader@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-4.2.0.tgz#5fb124d2369d7075d70a9a5abecd12e60a95215e" + integrity sha512-+xZnaK5R8kBJrHK0/6HRlrKNamvVS5rjyuju+rnyxRGuwUJwpAMsVzUl5dz6rK8brkzjV6JpcFNjp6NqV0g1OQ== + dependencies: + loader-utils "^1.2.3" + schema-utils "^2.0.0" + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" @@ -5048,6 +7032,33 @@ finalhandler@~1.1.2: statuses "~1.5.0" unpipe "~1.0.0" +find-cache-dir@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.0.0.tgz#cd4b7dd97b7185b7e17dbfe2d6e4115ee3eeb8fc" + integrity sha512-t7ulV1fmbxh5G9l/492O1p5+EBbr3uwpt6odhFTMc+nWyhmbloe+ja9BZ8pIBtqFWhOmCWVjx+pTW4zDkFoclw== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.0" + pkg-dir "^4.1.0" + +find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-cache-dir@^3.2.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" + integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + find-npm-prefix@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/find-npm-prefix/-/find-npm-prefix-1.0.2.tgz#8d8ce2c78b3b4b9e66c8acc6a37c231eb841cfdf" @@ -5182,6 +7193,15 @@ fs-capacitor@^2.0.4: resolved "https://registry.yarnpkg.com/fs-capacitor/-/fs-capacitor-2.0.4.tgz#5a22e72d40ae5078b4fe64fe4d08c0d3fc88ad3c" integrity sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA== +fs-extra@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.2.tgz#f91704c53d1b461f893452b0c307d9997647ab6b" + integrity sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s= + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs-extra@9.0.1, fs-extra@^9.0.0: version "9.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc" @@ -5239,6 +7259,14 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= +fsevents@^1.2.7: + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + fsevents@^2.1.2, fsevents@~2.1.2: version "2.1.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" @@ -5374,6 +7402,14 @@ git-raw-commits@^2.0.0: split2 "^2.0.0" through2 "^3.0.0" +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0: version "5.1.1" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" @@ -5381,7 +7417,19 @@ glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0: dependencies: is-glob "^4.0.1" -glob@7.1.6, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: +glob@7.1.5: + version "7.1.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.5.tgz#6714c69bee20f3c3e64c4dd905553e532b40cdc0" + integrity sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ== + 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.1.6, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -5436,6 +7484,29 @@ globby@11.0.1, globby@^11.0.0: merge2 "^1.3.0" slash "^3.0.0" +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globby@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680" + integrity sha1-+yzP+UAfhgCUXfral0QMypcrhoA= + dependencies: + array-union "^1.0.1" + dir-glob "^2.0.0" + glob "^7.1.2" + ignore "^3.3.5" + pify "^3.0.0" + slash "^1.0.0" + got@^6.7.1: version "6.7.1" resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" @@ -5509,7 +7580,7 @@ graphql-subscriptions@^1.0.0: dependencies: iterall "^1.2.1" -graphql-tag@2.11.0, graphql-tag@^2.10.0, graphql-tag@^2.10.1, graphql-tag@^2.11.0, graphql-tag@^2.9.2: +graphql-tag@2.11.0, graphql-tag@^2.10.0, graphql-tag@^2.10.1, graphql-tag@^2.10.3, graphql-tag@^2.11.0, graphql-tag@^2.9.2: version "2.11.0" resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.11.0.tgz#1deb53a01c46a7eb401d6cb59dec86fa1cccbffd" integrity sha512-VmsD5pJqWJnQZMUeRwrDhfgoyqcfwEkvtpANqcoUG8/tOLkwNgU9mzub/Mc78OJMhHjx7gfAMTxzdG43VGg3bA== @@ -5558,7 +7629,7 @@ graphql@14.6.0: dependencies: iterall "^1.2.2" -graphql@^14.5.3, graphql@^14.5.8: +graphql@^14.5.3, graphql@^14.5.8, graphql@^14.6.0: version "14.7.0" resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.7.0.tgz#7fa79a80a69be4a31c27dda824dc04dac2035a72" integrity sha512-l0xWZpoPKpppFzMfvVyFmp9vLN7w/ZZJPefUicMCepfJeQ8sMcztloGYY9DfjVPo6tIUDzU5Hw3MUbIjj9AVVA== @@ -5570,6 +7641,11 @@ growly@^1.3.0: resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + handlebars@^4.1.1, handlebars@^4.7.6: version "4.7.6" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.6.tgz#d4c05c1baf90e9945f77aa68a7a219aa4a7df74e" @@ -5658,23 +7734,54 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has@^1.0.3: +has@^1.0.0, has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + he@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== + highlight.js@^9.6.0: version "9.18.3" resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.3.tgz#a1a0a2028d5e3149e2380f8a865ee8516703d634" integrity sha512-zBZAmhSupHIl5sITeMqIJnYCDfAEc3Gdkqj65wC1lpI468MMQeeQkhcIAvk+RylAkxrCcI9xy9piHiXeQ1BdzQ== +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + hook-std@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/hook-std/-/hook-std-2.0.0.tgz#ff9aafdebb6a989a354f729bb6445cf4a3a7077c" @@ -5685,13 +7792,38 @@ hosted-git-info@^2.1.4, hosted-git-info@^2.7.1, hosted-git-info@^2.8.8: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== -hosted-git-info@^3.0.0: +hosted-git-info@^3.0.0, hosted-git-info@^3.0.2: version "3.0.5" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.5.tgz#bea87905ef7317442e8df3087faa3c842397df03" integrity sha512-i4dpK6xj9BIpVOTboXIlKG9+8HMKggcrMX7WA24xZtKwX0TPelq/rbaS5rCKeNX8sJXZJGdSxpnEGtta+wismQ== dependencies: lru-cache "^6.0.0" +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= + +html-comment-regex@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" + integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== + html-encoding-sniffer@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" @@ -5699,6 +7831,11 @@ html-encoding-sniffer@^2.0.1: dependencies: whatwg-encoding "^1.0.5" +html-entities@^1.2.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44" + integrity sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA== + html-escaper@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" @@ -5714,6 +7851,11 @@ http-cache-semantics@^4.0.3: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= + http-errors@1.7.2: version "1.7.2" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" @@ -5736,6 +7878,16 @@ http-errors@^1.7.3: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + http-errors@~1.7.2: version "1.7.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" @@ -5747,6 +7899,11 @@ http-errors@~1.7.2: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" +http-parser-js@>=0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.2.tgz#da2e31d237b393aae72ace43882dd7e270a8ff77" + integrity sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ== + http-proxy-agent@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" @@ -5772,6 +7929,16 @@ http-proxy-agent@^4.0.0, http-proxy-agent@^4.0.1: agent-base "6" debug "4" +http-proxy-middleware@0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" + integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== + dependencies: + http-proxy "^1.17.0" + is-glob "^4.0.0" + lodash "^4.17.11" + micromatch "^3.1.10" + http-proxy-middleware@^1.0.3: version "1.0.5" resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-1.0.5.tgz#4c6e25d95a411e3d750bc79ccf66290675176dc2" @@ -5783,7 +7950,7 @@ http-proxy-middleware@^1.0.3: lodash "^4.17.19" micromatch "^4.0.2" -http-proxy@^1.18.1: +http-proxy@^1.17.0, http-proxy@^1.18.1: version "1.18.1" resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== @@ -5801,6 +7968,11 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + https-proxy-agent@^2.2.3: version "2.2.4" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b" @@ -5918,6 +8090,11 @@ ignore-walk@3.0.3, ignore-walk@^3.0.1: dependencies: minimatch "^3.0.4" +ignore@^3.3.5: + version "3.3.10" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" + integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== + ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" @@ -5935,11 +8112,31 @@ image-size@^0.8.3: dependencies: queue "6.0.1" +image-size@~0.5.0: + version "0.5.5" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" + integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= + immutable@~3.7.6: version "3.7.6" resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.7.6.tgz#13b4d3cb12befa15482a26fe1b2ebae640071e4b" integrity sha1-E7TTyxK++hVIKib+Gy665kAHHks= +import-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" + integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= + dependencies: + import-from "^2.1.0" + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" @@ -5955,11 +8152,26 @@ import-from@3.0.0, import-from@^3.0.0: dependencies: resolve-from "^5.0.0" +import-from@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" + integrity sha1-M1238qev/VOqpHHUuAId7ja387E= + dependencies: + resolve-from "^3.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-local@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + import-local@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" @@ -5983,6 +8195,11 @@ indent-string@^3.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= + infer-owner@^1.0.3, infer-owner@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" @@ -6001,12 +8218,17 @@ inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, i resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: +ini@1.3.5, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== @@ -6025,6 +8247,25 @@ init-package-json@^1.10.3: validate-npm-package-license "^3.0.1" validate-npm-package-name "^3.0.0" +inquirer@7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.1.0.tgz#1298a01859883e17c7264b82870ae1034f92dd29" + integrity sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg== + dependencies: + ansi-escapes "^4.2.1" + chalk "^3.0.0" + cli-cursor "^3.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.15" + mute-stream "0.0.8" + run-async "^2.4.0" + rxjs "^6.5.3" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + inquirer@7.3.3: version "7.3.3" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" @@ -6044,6 +8285,14 @@ inquirer@7.3.3: strip-ansi "^6.0.0" through "^2.3.6" +internal-ip@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" + integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== + dependencies: + default-gateway "^4.2.0" + ipaddr.js "^1.9.0" + intl-messageformat-parser@1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz#b43d45a97468cadbe44331d74bb1e8dea44fc075" @@ -6064,26 +8313,48 @@ into-stream@^5.0.0: from2 "^2.3.0" p-is-promise "^3.0.0" +invariant@^2.2.2: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= +invert-kv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== + ip-regex@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= -ip@1.1.5: +ip@1.1.5, ip@^1.1.0, ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= -ipaddr.js@1.9.1: +ipaddr.js@1.9.1, ipaddr.js@^1.9.0: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= + +is-absolute-url@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" + integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== + is-absolute@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" @@ -6106,11 +8377,28 @@ is-accessor-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" +is-arguments@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" + integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" @@ -6149,6 +8437,18 @@ is-cidr@^3.0.0: dependencies: cidr-regex "^2.0.10" +is-color-stop@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -6186,6 +8486,11 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-data-descriptor "^1.0.0" kind-of "^6.0.2" +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + is-docker@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156" @@ -6203,7 +8508,7 @@ is-extendable@^1.0.1: dependencies: is-plain-object "^2.0.4" -is-extglob@^2.1.1: +is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= @@ -6237,6 +8542,13 @@ is-glob@4.0.1, is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + is-installed-globally@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" @@ -6245,6 +8557,11 @@ is-installed-globally@^0.1.0: global-dirs "^0.1.0" is-path-inside "^1.0.0" +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + is-lambda@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" @@ -6277,6 +8594,11 @@ is-obj@^1.0.0: resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + is-observable@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" @@ -6284,6 +8606,18 @@ is-observable@^1.1.0: dependencies: symbol-observable "^1.1.0" +is-path-cwd@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-in-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" + integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== + dependencies: + is-path-inside "^2.1.0" + is-path-inside@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" @@ -6291,7 +8625,14 @@ is-path-inside@^1.0.0: dependencies: path-is-inside "^1.0.1" -is-plain-obj@^1.1.0: +is-path-inside@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" + integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== + dependencies: + path-is-inside "^1.0.2" + +is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= @@ -6323,7 +8664,7 @@ is-redirect@^1.0.0: resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= -is-regex@^1.1.0: +is-regex@^1.0.4, is-regex@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== @@ -6337,6 +8678,11 @@ is-relative@^1.0.0: dependencies: is-unc-path "^1.0.0" +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + is-retry-allowed@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" @@ -6352,6 +8698,13 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== +is-svg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" + integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== + dependencies: + html-comment-regex "^1.1.0" + is-symbol@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" @@ -6388,7 +8741,12 @@ is-windows@^1.0.1, is-windows@^1.0.2: resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== -is-wsl@^2.2.0: +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + +is-wsl@^2.1.0, is-wsl@^2.1.1, is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== @@ -6409,7 +8767,7 @@ isarray@0.0.1: resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= -isarray@1.0.0, isarray@~1.0.0: +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= @@ -6883,6 +9241,22 @@ jest-watcher@^26.2.0: jest-util "^26.2.0" string-length "^4.0.1" +jest-worker@24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" + integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== + dependencies: + merge-stream "^2.0.0" + supports-color "^6.1.0" + +jest-worker@^25.1.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.5.0.tgz#2611d071b79cea0f43ee57a3d118593ac1547db1" + integrity sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw== + dependencies: + merge-stream "^2.0.0" + supports-color "^7.0.0" + jest-worker@^26.2.1: version "26.2.1" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.2.1.tgz#5d630ab93f666b53f911615bc13e662b382bd513" @@ -6901,6 +9275,11 @@ jest@26.1.0: import-local "^3.0.2" jest-cli "^26.1.0" +js-levenshtein@^1.1.3: + version "1.1.6" + resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" + integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== + "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -6964,6 +9343,11 @@ jsesc@^2.5.1: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + json-parse-better-errors@^1.0.0, json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -7009,6 +9393,11 @@ json-to-pretty-yaml@1.2.2: remedial "^1.0.7" remove-trailing-spaces "^1.0.6" +json3@^3.3.2: + version "3.3.3" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" + integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== + json5@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/json5/-/json5-2.0.0.tgz#b61abf97aa178c4b5853a66cc8eecafd03045d78" @@ -7016,13 +9405,20 @@ json5@2.0.0: dependencies: minimist "^1.2.0" -json5@2.x, json5@^2.1.2: +json5@2.x, json5@^2.1.0, json5@^2.1.2: version "2.1.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== dependencies: minimist "^1.2.5" +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -7092,6 +9488,13 @@ jws@^3.2.2: jwa "^1.4.1" safe-buffer "^5.0.1" +karma-source-map-support@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz#58526ceccf7e8730e56effd97a4de8d712ac0d6b" + integrity sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A== + dependencies: + source-map-support "^0.5.5" + keygrip@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.0.3.tgz#399d709f0aed2bab0a059e0cdd3a5023a053e1dc" @@ -7104,6 +9507,11 @@ keygrip@~1.1.0: dependencies: tsscmp "1.0.6" +killable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" + integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== + kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -7152,6 +9560,38 @@ lcid@^1.0.0: dependencies: invert-kv "^1.0.0" +lcid@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== + dependencies: + invert-kv "^2.0.0" + +less-loader@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-5.0.0.tgz#498dde3a6c6c4f887458ee9ed3f086a12ad1b466" + integrity sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg== + dependencies: + clone "^2.1.1" + loader-utils "^1.1.0" + pify "^4.0.1" + +less@3.10.3: + version "3.10.3" + resolved "https://registry.yarnpkg.com/less/-/less-3.10.3.tgz#417a0975d5eeecc52cff4bcfa3c09d35781e6792" + integrity sha512-vz32vqfgmoxF1h3K4J+yKCtajH0PWmjkIFgbs5d78E/c/e+UQTnI+lWK+1eQRE95PXM2mC3rJlLSSP9VQHnaow== + dependencies: + clone "^2.1.2" + optionalDependencies: + errno "^0.1.1" + graceful-fs "^4.1.2" + image-size "~0.5.0" + mime "^1.4.1" + mkdirp "^0.5.0" + promise "^7.1.1" + request "^2.83.0" + source-map "~0.6.0" + leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" @@ -7307,6 +9747,14 @@ libnpx@^10.2.4: y18n "^4.0.0" yargs "^14.2.3" +license-webpack-plugin@2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-2.1.3.tgz#656fa6a8b2e711ee35c27ac8e1659a87240ef7f3" + integrity sha512-vTSY5r9HOq4sxR2BIxdIXWKI+9n3b+DoQkhKHedB3TdSxTfXUDRxKXdAj5iejR+qNXprXsxvEu9W+zOhgGIkAw== + dependencies: + "@types/webpack-sources" "^0.1.5" + webpack-sources "^1.2.0" + lines-and-columns@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" @@ -7356,6 +9804,18 @@ listr@0.14.3, listr@^0.14.3: p-map "^2.0.0" rxjs "^6.3.3" +lit-element@^2.2.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-2.3.1.tgz#73343b978fa1e73d60526c6bb6ad60f53a16c343" + integrity sha512-tOcUAmeO3BzwiQ7FGWdsshNvC0HVHcTFYw/TLIImmKwXYoV0E7zCBASa8IJ7DiP4cen/Yoj454gS0qqTnIGsFA== + dependencies: + lit-html "^1.1.1" + +lit-html@^1.1.1, lit-html@^1.1.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-1.2.1.tgz#1fb933dc1e2ddc095f60b8086277d4fcd9d62cc8" + integrity sha512-GSJHHXMGLZDzTRq59IUfL9FCdAlGfqNp/dEa7k7aBaaWD+JKaCjsAk9KYm2V12ItonVaYx2dprN66Zdm1AuBTQ== + load-json-file@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" @@ -7376,6 +9836,29 @@ load-json-file@^4.0.0: pify "^3.0.0" strip-bom "^3.0.0" +loader-runner@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== + +loader-utils@1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" + integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== + dependencies: + big.js "^5.2.2" + emojis-list "^2.0.0" + json5 "^1.0.1" + +loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -7488,7 +9971,7 @@ lodash.isstring@^4.0.1: resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= -lodash.memoize@4.x: +lodash.memoize@4.x, lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= @@ -7528,7 +10011,7 @@ lodash.union@~4.6.0: resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg= -lodash.uniq@~4.5.0: +lodash.uniq@^4.5.0, lodash.uniq@~4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= @@ -7553,7 +10036,7 @@ lodash@4.17.15: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== -lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.4, lodash@~4.17.15: +lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.4, lodash@~4.17.15: version "4.17.19" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== @@ -7572,6 +10055,13 @@ log-symbols@^1.0.2: dependencies: chalk "^1.0.0" +log-symbols@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" + integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== + dependencies: + chalk "^2.4.2" + log-update@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" @@ -7588,7 +10078,7 @@ loglevel-debug@^0.0.1: dependencies: loglevel "^1.4.0" -loglevel@^1.4.0, loglevel@^1.6.1, loglevel@^1.6.7: +loglevel@^1.4.0, loglevel@^1.6.1, loglevel@^1.6.4, loglevel@^1.6.7: version "1.6.8" resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171" integrity sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA== @@ -7659,6 +10149,20 @@ macos-release@^2.2.0: resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.4.1.tgz#64033d0ec6a5e6375155a74b1a1eba8e509820ac" integrity sha512-H/QHeBIN1fIGJX517pvK8IEK53yQOW7YcEI55oYtgjDdoCQQz7eJS94qt5kNrscReEyuD/JcdFCm2XBEcGOITg== +magic-string@0.25.4: + version "0.25.4" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.4.tgz#325b8a0a79fc423db109b77fd5a19183b7ba5143" + integrity sha512-oycWO9nEVAP2RVPbIoDoA4Y7LFIJ3xRYov93gAyJhZkET1tNuB0u7uWkZS2LpBWTJUWnmau/To8ECWRC+jKNfw== + dependencies: + sourcemap-codec "^1.4.4" + +magic-string@0.25.7, magic-string@^0.25.0: + version "0.25.7" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" + integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== + dependencies: + sourcemap-codec "^1.4.4" + make-dir@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" @@ -7666,7 +10170,15 @@ make-dir@^1.0.0: dependencies: pify "^3.0.0" -make-dir@^3.0.0: +make-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.0, make-dir@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== @@ -7716,6 +10228,13 @@ make-fetch-happen@^7.1.1: socks-proxy-agent "^4.0.0" ssri "^7.0.1" +make-plural@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-4.3.0.tgz#f23de08efdb0cac2e0c9ba9f315b0dff6b4c2735" + integrity sha512-xTYd4JVHpSCW+aqDof6w/MebaMVNTVYBZhbB/vi513xXdiPT92JMVCo0Jq8W2UZnzYRFeVbQiQ+I25l13JuKvA== + optionalDependencies: + minimist "^1.2.0" + makeerror@1.0.x: version "1.0.11" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" @@ -7723,6 +10242,18 @@ makeerror@1.0.x: dependencies: tmpl "1.0.x" +mamacro@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" + integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== + +map-age-cleaner@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + map-cache@^0.2.0, map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -7767,6 +10298,25 @@ marked@^1.0.0: resolved "https://registry.yarnpkg.com/marked/-/marked-1.1.1.tgz#e5d61b69842210d5df57b05856e0c91572703e6a" integrity sha512-mJzT8D2yPxoPh7h0UXkB+dBj4FykPJ2OIfxAWeIHrvoHDkFxukV/29QxoFQoPM6RLEwhIFdJpmKBlqVM3s2ZIw== +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + +mdn-data@2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.6.tgz#852dc60fcaa5daa2e8cf6c9189c440ed3e042978" + integrity sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA== + meant@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/meant/-/meant-1.0.2.tgz#5d0c78310a3d8ae1408a16be0fe0bd42a969f560" @@ -7784,6 +10334,15 @@ mem@^1.1.0: dependencies: mimic-fn "^1.0.0" +mem@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" + integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^2.0.0" + p-is-promise "^2.0.0" + memoizee@^0.4.14: version "0.4.14" resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.14.tgz#07a00f204699f9a95c2d9e77218271c7cd610d57" @@ -7798,6 +10357,22 @@ memoizee@^0.4.14: next-tick "1" timers-ext "^0.1.5" +memory-fs@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + meow@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4" @@ -7846,6 +10421,13 @@ merge-graphql-schemas@1.7.6: "@graphql-toolkit/schema-merging" "0.9.0" tslib "1.10.0" +merge-source-map@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" + integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== + dependencies: + source-map "^0.6.1" + merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -7856,12 +10438,31 @@ merge2@^1.3.0: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== +messageformat-formatters@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/messageformat-formatters/-/messageformat-formatters-2.0.1.tgz#0492c1402a48775f751c9b17c0354e92be012b08" + integrity sha512-E/lQRXhtHwGuiQjI7qxkLp8AHbMD5r2217XNe/SREbBlSawe0lOqsFb7rflZJmlQFSULNLIqlcjjsCPlB3m3Mg== + +messageformat-parser@^4.1.2: + version "4.1.3" + resolved "https://registry.yarnpkg.com/messageformat-parser/-/messageformat-parser-4.1.3.tgz#b824787f57fcda7d50769f5b63e8d4fda68f5b9e" + integrity sha512-2fU3XDCanRqeOCkn7R5zW5VQHWf+T3hH65SzuqRvjatBK7r4uyFa5mEX+k6F9Bd04LVM5G4/BHBTUJsOdW7uyg== + +messageformat@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/messageformat/-/messageformat-2.3.0.tgz#de263c49029d5eae65d7ee25e0754f57f425ad91" + integrity sha512-uTzvsv0lTeQxYI2y1NPa1lItL5VRI8Gb93Y2K2ue5gBPyrbJxfDi/EYWxh2PKv5yO42AJeeqblS9MJSh/IEk4w== + dependencies: + make-plural "^4.3.0" + messageformat-formatters "^2.0.1" + messageformat-parser "^4.1.2" + methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= -micromatch@^3.1.4: +micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== @@ -7888,24 +10489,32 @@ micromatch@^4.0.2: braces "^3.0.1" picomatch "^2.0.5" -mime-db@1.44.0: +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.44.0, "mime-db@>= 1.43.0 < 2": version "1.44.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== -mime-types@^2.1.12, mime-types@^2.1.21, mime-types@~2.1.19, mime-types@~2.1.24: +mime-types@^2.1.12, mime-types@^2.1.21, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: version "2.1.27" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== dependencies: mime-db "1.44.0" -mime@1.6.0: +mime@1.6.0, mime@^1.4.1: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.4.3: +mime@^2.4.3, mime@^2.4.4: version "2.4.6" resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA== @@ -7915,7 +10524,7 @@ mimic-fn@^1.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== -mimic-fn@^2.1.0: +mimic-fn@^2.0.0, mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== @@ -7925,6 +10534,26 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== +mini-css-extract-plugin@0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.0.tgz#81d41ec4fe58c713a96ad7c723cdb2d0bd4d70e1" + integrity sha512-MNpRGbNA52q6U92i0qbVpQNsgk7LExy41MdAlG84FeytfDOtRIf/mCHdEgG8rpTKOaNKiqUnZdlptF469hxqOw== + dependencies: + loader-utils "^1.1.0" + normalize-url "1.9.1" + schema-utils "^1.0.0" + webpack-sources "^1.1.0" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + minimatch@3.0.4, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" @@ -8052,7 +10681,7 @@ mkdirp@1.0.4, mkdirp@1.x, mkdirp@^1.0.3: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@~0.5.0: +mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@~0.5.0, mkdirp@~0.5.1, mkdirp@~0.5.x: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -8105,6 +10734,19 @@ multer@1.4.2: type-is "^1.6.4" xtend "^4.0.0" +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= + +multicast-dns@^6.0.1: + version "6.2.3" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + multimatch@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-4.0.0.tgz#8c3c0f6e3e8449ada0af3dd29efb491a375191b3" @@ -8140,7 +10782,7 @@ mz@^2.4.0: object-assign "^4.0.1" thenify-all "^1.0.0" -nan@^2.14.0: +nan@^2.12.1, nan@^2.14.0: version "2.14.1" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== @@ -8191,7 +10833,7 @@ negotiator@0.6.2: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== -neo-async@^2.6.0: +neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== @@ -8211,6 +10853,18 @@ next-tick@~1.0.0: resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= +ngx-pagination@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ngx-pagination/-/ngx-pagination-5.0.0.tgz#a4b4c150a70aef17ccd825e4543e174a974bbd14" + integrity sha512-Ur0pTWRe2ZXoJ8impEzo0IZKxY5aEcQfSmL5uBqW1rHI2J6nfzgZAHsSLagKHFGchXq0PkRlDVVMcIaNxYJwvQ== + +ngx-translate-messageformat-compiler@^4.6.0: + version "4.8.0" + resolved "https://registry.yarnpkg.com/ngx-translate-messageformat-compiler/-/ngx-translate-messageformat-compiler-4.8.0.tgz#557e39c33293865658669e99d1d748ab4a335298" + integrity sha512-A1Zg2sC0uCc1r8siT1M2DFcLhgjX6aEIu2g5NGnPh51KGtGqQqXHiXx2qCxz1U9sKMlYrvCZzfxzJ2kaCTtw+A== + dependencies: + tslib "^1.10.0" + nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -8258,6 +10912,11 @@ node-fetch@^1.0.1: encoding "^0.1.11" is-stream "^1.0.1" +node-forge@0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" + integrity sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ== + node-gyp@^5.0.2, node-gyp@^5.1.0: version "5.1.1" resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.1.1.tgz#eb915f7b631c937d282e33aed44cb7a025f62a3e" @@ -8280,6 +10939,35 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= +node-libs-browser@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.1" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.11.0" + vm-browserify "^1.0.1" + node-modules-regexp@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" @@ -8313,6 +11001,11 @@ node-pre-gyp@0.14.0: semver "^5.3.0" tar "^4.4.2" +node-releases@^1.1.60: + version "1.1.60" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.60.tgz#6948bdfce8286f0b5d0e5a88e8384e954dfe7084" + integrity sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA== + nopt@^4.0.1, nopt@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" @@ -8343,6 +11036,26 @@ normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + +normalize-url@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= + dependencies: + object-assign "^4.0.1" + prepend-http "^1.0.0" + query-string "^4.1.0" + sort-keys "^1.0.0" + +normalize-url@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + normalize-url@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-5.1.0.tgz#04b8f1b34ea49ff713fc20b2218eba41fb9974a3" @@ -8375,6 +11088,13 @@ npm-install-checks@^3.0.2: dependencies: semver "^2.3.0 || 3.x || 4 || 5" +npm-install-checks@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-4.0.0.tgz#a37facc763a2fde0497ef2c6d0ac7c3fbe00d7b4" + integrity sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w== + dependencies: + semver "^7.1.1" + npm-lifecycle@^3.0.0, npm-lifecycle@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-3.1.5.tgz#9882d3642b8c82c815782a12e6a1bfeed0026309" @@ -8399,6 +11119,15 @@ 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.1, npm-package-arg@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.0.1.tgz#9d76f8d7667b2373ffda60bb801a27ef71e3e270" + integrity sha512-/h5Fm6a/exByzFSTm7jAyHbgOqErl9qSNJDQF32Si/ZzgwT2TERVxRxn3Jurw1wflgyVVAxnFR4fRHPM7y1ClQ== + dependencies: + hosted-git-info "^3.0.2" + semver "^7.0.0" + validate-npm-package-name "^3.0.0" + "npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0", npm-package-arg@^6.0.0, npm-package-arg@^6.1.0, npm-package-arg@^6.1.1: version "6.1.1" resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.1.tgz#02168cb0a49a2b75bf988a28698de7b529df5cb7" @@ -8418,6 +11147,15 @@ npm-packlist@^1.1.12, npm-packlist@^1.1.6, npm-packlist@^1.4.8: npm-bundled "^1.0.1" npm-normalize-package-bin "^1.0.1" +npm-pick-manifest@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-6.0.0.tgz#bfde7abe95f2670aed1629a3c18245ccb3cc2eb8" + integrity sha512-PdJpXMvjqt4nftNEDpCgjBUF8yI3Q3MyuAmVB9nemnnCg32F4BPL/JFBfdj8DubgHCYUFQhtLWmBPvdsFtjWMg== + dependencies: + npm-install-checks "^4.0.0" + npm-package-arg "^8.0.0" + semver "^7.0.0" + npm-pick-manifest@^3.0.0, npm-pick-manifest@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz#f4d9e5fd4be2153e5f4e5f9b7be8dc419a99abb7" @@ -8599,11 +11337,23 @@ npmlog@^4.0.2, npmlog@^4.1.2, npmlog@~4.1.2: gauge "~2.7.3" set-blocking "~2.0.0" +nth-check@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + nullthrows@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1" integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw== +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= + 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" @@ -8643,6 +11393,14 @@ object-inspect@^1.7.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== +object-is@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" + integrity sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" @@ -8685,6 +11443,21 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" +object.values@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" + integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + has "^1.0.3" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + 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" @@ -8718,6 +11491,21 @@ onetime@^5.1.0: dependencies: mimic-fn "^2.1.0" +open@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/open/-/open-7.0.0.tgz#7e52999b14eb73f90f0f0807fe93897c4ae73ec9" + integrity sha512-K6EKzYqnwQzk+/dzJAQSBORub3xlBTxMz+ntpZpH/LyCa1o6KjXhuN+2npAaI9jaSmU3R1Q8NWf4KUWcyytGsQ== + dependencies: + is-wsl "^2.1.0" + +open@7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/open/-/open-7.0.3.tgz#db551a1af9c7ab4c7af664139930826138531c48" + integrity sha512-sP2ru2v0P290WFfv49Ap8MF6PkzGNnGlAwHweB4WR4mr5d2d0woiCluUeJ218w7/+PmoBy9JmYgD5A4mLcWOFA== + dependencies: + is-docker "^2.0.0" + is-wsl "^2.1.1" + opencollective-postinstall@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" @@ -8728,6 +11516,20 @@ opener@^1.5.1: resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed" integrity sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA== +opn@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" + integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== + dependencies: + is-wsl "^1.1.0" + +optimism@^0.10.0: + version "0.10.3" + resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.10.3.tgz#163268fdc741dea2fb50f300bedda80356445fd7" + integrity sha512-9A5pqGoQk49H6Vhjb9kPgAeeECfUDF6aIICbMDL23kDLStBn1MWk3YvcZ4xWF9CsSf6XEgvRLkXy4xof/56vVw== + dependencies: + "@wry/context" "^0.4.0" + optional@0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/optional/-/optional-0.1.4.tgz#cdb1a9bedc737d2025f690ceeb50e049444fd5b3" @@ -8757,10 +11559,41 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= +ora@4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/ora/-/ora-4.0.3.tgz#752a1b7b4be4825546a7a3d59256fa523b6b6d05" + integrity sha512-fnDebVFyz309A73cqCipVL1fBZewq4vwgSHfxh43vVy31mbyoQ8sCH3Oeaog/owYOs/lLlGVPCISQonTneg6Pg== + dependencies: + chalk "^3.0.0" + cli-cursor "^3.1.0" + cli-spinners "^2.2.0" + is-interactive "^1.0.0" + log-symbols "^3.0.0" + mute-stream "0.0.8" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +orderedmap@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/orderedmap/-/orderedmap-1.1.1.tgz#c618e77611b3b21d0fe3edc92586265e0059c789" + integrity sha512-3Ux8um0zXbVacKUkcytc0u3HgC0b0bBLT+I60r2J/En72cI0nZffqrA7Xtf2Hqs27j1g82llR5Mhbd0Z1XW4AQ== + +original@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" + integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== + dependencies: + url-parse "^1.4.3" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= os-locale@^2.0.0: version "2.1.0" @@ -8771,6 +11604,15 @@ os-locale@^2.0.0: lcid "^1.0.0" mem "^1.1.0" +os-locale@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" + integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== + dependencies: + execa "^1.0.0" + lcid "^2.0.0" + mem "^4.0.0" + os-name@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801" @@ -8792,6 +11634,11 @@ osenv@^0.1.4, osenv@^0.1.5: os-homedir "^1.0.0" os-tmpdir "^1.0.0" +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + p-each-series@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.1.0.tgz#961c8dd3f195ea96c747e636b262b800a6b1af48" @@ -8809,6 +11656,11 @@ p-finally@^1.0.0: resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= +p-is-promise@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + p-is-promise@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-3.0.0.tgz#58e78c7dfe2e163cf2a04ff869e7c1dba64a5971" @@ -8828,7 +11680,7 @@ p-limit@^1.1.0: dependencies: p-try "^1.0.0" -p-limit@^2.0.0, p-limit@^2.2.0: +p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.1, p-limit@^2.2.2: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== @@ -8873,6 +11725,13 @@ p-reduce@^2.0.0: resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-2.1.0.tgz#09408da49507c6c274faa31f28df334bc712b64a" integrity sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw== +p-retry@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" + integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== + dependencies: + retry "^0.12.0" + p-retry@^4.0.0: version "4.2.0" resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.2.0.tgz#ea9066c6b44f23cab4cd42f6147cdbbc6604da5d" @@ -8901,7 +11760,7 @@ package-json@^4.0.0: registry-url "^3.0.3" semver "^5.1.0" -pacote@^9.1.0, pacote@^9.5.12, pacote@^9.5.3: +pacote@9.5.12, pacote@^9.1.0, pacote@^9.5.12, pacote@^9.5.3: version "9.5.12" resolved "https://registry.yarnpkg.com/pacote/-/pacote-9.5.12.tgz#1e11dd7a8d736bcc36b375a9804d41bb0377bf66" integrity sha512-BUIj/4kKbwWg4RtnBncXPJd15piFSVNpTzY0rysSr3VnMowTYgkGKcaHrbReepAkjTr8lH2CVWRi58Spg2CicQ== @@ -8937,6 +11796,11 @@ pacote@^9.1.0, pacote@^9.5.12, pacote@^9.5.3: unique-filename "^1.1.1" which "^1.3.1" +pako@~1.0.5: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + parallel-transform@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" @@ -8966,6 +11830,18 @@ parent-require@^1.0.0: resolved "https://registry.yarnpkg.com/parent-require/-/parent-require-1.0.0.tgz#746a167638083a860b0eef6732cb27ed46c32977" integrity sha1-dGoWdjgIOoYLDu9nMssn7UbDKXc= +parse-asn1@^5.0.0, parse-asn1@^5.1.5: + version "5.1.5" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" + integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + parse-filepath@1.0.2, parse-filepath@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" @@ -9007,12 +11883,17 @@ parse5-htmlparser2-tree-adapter@^5.1.1: dependencies: parse5 "^5.1.1" -parse5@5.1.1, parse5@^5.1.1: +parse5@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" + integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== + +parse5@5.1.1, parse5@^5.0.0, parse5@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== -parseurl@^1.3.2, parseurl@~1.3.3: +parseurl@^1.3.2, parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== @@ -9030,6 +11911,16 @@ pascalcase@^0.1.1: resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -9106,6 +11997,17 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +pbkdf2@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" + integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" @@ -9116,7 +12018,7 @@ picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.0.7, picomatch@^2.2.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== -pify@^2.0.0: +pify@^2.0.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= @@ -9126,6 +12028,23 @@ pify@^3.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + pirates@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" @@ -9141,7 +12060,14 @@ pkg-conf@^2.1.0: find-up "^2.0.0" load-json-file "^4.0.0" -pkg-dir@^4.2.0: +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkg-dir@^4.1.0, pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== @@ -9155,11 +12081,341 @@ please-upgrade-node@^3.2.0: dependencies: semver-compare "^1.0.0" +portfinder@^1.0.25: + version "1.0.28" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" + integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== + dependencies: + async "^2.6.2" + debug "^3.1.1" + mkdirp "^0.5.5" + posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= +postcss-calc@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.3.tgz#d65cca92a3c52bf27ad37a5f732e0587b74f1623" + integrity sha512-IB/EAEmZhIMEIhG7Ov4x+l47UaXOS1n2f4FBUk/aKllQhtSCxWhTzn0nJgkqN7fo/jcWySvWTSB6Syk9L+31bA== + dependencies: + postcss "^7.0.27" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.2" + +postcss-colormin@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" + integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== + dependencies: + browserslist "^4.0.0" + color "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-convert-values@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" + integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-discard-comments@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" + integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== + dependencies: + postcss "^7.0.0" + +postcss-discard-duplicates@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" + integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== + dependencies: + postcss "^7.0.0" + +postcss-discard-empty@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" + integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== + dependencies: + postcss "^7.0.0" + +postcss-discard-overridden@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" + integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== + dependencies: + postcss "^7.0.0" + +postcss-import@12.0.1: + version "12.0.1" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-12.0.1.tgz#cf8c7ab0b5ccab5649024536e565f841928b7153" + integrity sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw== + dependencies: + postcss "^7.0.1" + postcss-value-parser "^3.2.3" + read-cache "^1.0.0" + resolve "^1.1.7" + +postcss-load-config@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003" + integrity sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q== + dependencies: + cosmiconfig "^5.0.0" + import-cwd "^2.0.0" + +postcss-loader@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" + integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== + dependencies: + loader-utils "^1.1.0" + postcss "^7.0.0" + postcss-load-config "^2.0.0" + schema-utils "^1.0.0" + +postcss-merge-longhand@^4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" + integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== + dependencies: + css-color-names "0.0.4" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + stylehacks "^4.0.0" + +postcss-merge-rules@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" + integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + cssnano-util-same-parent "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + vendors "^1.0.0" + +postcss-minify-font-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" + integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-gradients@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" + integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + is-color-stop "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-params@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" + integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== + dependencies: + alphanum-sort "^1.0.0" + browserslist "^4.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + uniqs "^2.0.0" + +postcss-minify-selectors@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" + integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== + dependencies: + alphanum-sort "^1.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +postcss-normalize-charset@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" + integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== + dependencies: + postcss "^7.0.0" + +postcss-normalize-display-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" + integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-positions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" + integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== + dependencies: + cssnano-util-get-arguments "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-repeat-style@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" + integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-string@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" + integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== + dependencies: + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-timing-functions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" + integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-unicode@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" + integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-url@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" + integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-whitespace@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" + integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-ordered-values@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" + integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== + dependencies: + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-reduce-initial@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" + integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + +postcss-reduce-transforms@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" + integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== + dependencies: + cssnano-util-get-match "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-selector-parser@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" + integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== + dependencies: + dot-prop "^5.2.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" + integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== + dependencies: + cssesc "^3.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-svgo@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" + integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== + dependencies: + is-svg "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" + +postcss-unique-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" + integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== + dependencies: + alphanum-sort "^1.0.0" + postcss "^7.0.0" + uniqs "^2.0.0" + +postcss-value-parser@^3.0.0, postcss-value-parser@^3.2.3: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss-value-parser@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" + integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== + +postcss@7.0.21: + version "7.0.21" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.21.tgz#06bb07824c19c2021c5d056d5b10c35b989f7e17" + integrity sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.21, postcss@^7.0.27: + version "7.0.32" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" + integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -9170,7 +12426,7 @@ 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@^1.0.1: +prepend-http@^1.0.0, prepend-http@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= @@ -9222,6 +12478,11 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + progress@^2.0.0, progress@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" @@ -9262,6 +12523,115 @@ promzard@^0.3.0: dependencies: read "1" +prosemirror-commands@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/prosemirror-commands/-/prosemirror-commands-1.1.4.tgz#991563e67623acab4f8c510fad1570f8b4693780" + integrity sha512-kj4Qi+8h3EpJtZuuEDwZ9h2/QNGWDsIX/CzjmClxi9GhxWyBUMVUvIFk0mgdqHyX20lLeGmOpc0TLA5aPzgpWg== + dependencies: + prosemirror-model "^1.0.0" + prosemirror-state "^1.0.0" + prosemirror-transform "^1.0.0" + +prosemirror-dropcursor@^1.0.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/prosemirror-dropcursor/-/prosemirror-dropcursor-1.3.2.tgz#28738c4ed7102e814d7a8a26d70018523fc7cd6d" + integrity sha512-4c94OUGyobGnwcQI70OXyMhE/9T4aTgjU+CHxkd5c7D+jH/J0mKM/lk+jneFVKt7+E4/M0D9HzRPifu8U28Thw== + dependencies: + prosemirror-state "^1.0.0" + prosemirror-transform "^1.1.0" + prosemirror-view "^1.1.0" + +prosemirror-gapcursor@^1.0.0: + version "1.1.5" + resolved "https://registry.yarnpkg.com/prosemirror-gapcursor/-/prosemirror-gapcursor-1.1.5.tgz#0c37fd6cbb1d7c46358c2e7397f8da9a8b5c6246" + integrity sha512-SjbUZq5pgsBDuV3hu8GqgIpZR5eZvGLM+gPQTqjVVYSMUCfKW3EGXTEYaLHEl1bGduwqNC95O3bZflgtAb4L6w== + dependencies: + prosemirror-keymap "^1.0.0" + prosemirror-model "^1.0.0" + prosemirror-state "^1.0.0" + prosemirror-view "^1.0.0" + +prosemirror-history@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/prosemirror-history/-/prosemirror-history-1.1.3.tgz#4f76a1e71db4ef7cdf0e13dec6d8da2aeaecd489" + integrity sha512-zGDotijea+vnfnyyUGyiy1wfOQhf0B/b6zYcCouBV8yo6JmrE9X23M5q7Nf/nATywEZbgRLG70R4DmfSTC+gfg== + dependencies: + prosemirror-state "^1.2.2" + prosemirror-transform "^1.0.0" + rope-sequence "^1.3.0" + +prosemirror-inputrules@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prosemirror-inputrules/-/prosemirror-inputrules-1.1.2.tgz#487e46c763e1212a4577397aba7706139084f012" + integrity sha512-Ja5Z3BWestlHYGvtSGqyvxMeB8QEuBjlHM8YnKtLGUXMDp965qdDV4goV8lJb17kIWHk7e7JNj6Catuoa3302g== + dependencies: + prosemirror-state "^1.0.0" + prosemirror-transform "^1.0.0" + +prosemirror-keymap@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/prosemirror-keymap/-/prosemirror-keymap-1.1.4.tgz#8b481bf8389a5ac40d38dbd67ec3da2c7eac6a6d" + integrity sha512-Al8cVUOnDFL4gcI5IDlG6xbZ0aOD/i3B17VT+1JbHWDguCgt/lBHVTHUBcKvvbSg6+q/W4Nj1Fu6bwZSca3xjg== + dependencies: + prosemirror-state "^1.0.0" + w3c-keyname "^2.2.0" + +prosemirror-menu@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/prosemirror-menu/-/prosemirror-menu-1.1.4.tgz#a845ae0e14ce1f92dd39d7f23caa6063265cd98c" + integrity sha512-2ROsji/X9ciDnVSRvSTqFygI34GEdHfQSsK4zBKjPxSEroeiHHcdRMS1ofNIf2zM0Vpp5/YqfpxynElymQkqzg== + dependencies: + crelt "^1.0.0" + prosemirror-commands "^1.0.0" + prosemirror-history "^1.0.0" + prosemirror-state "^1.0.0" + +prosemirror-model@^1.0.0, prosemirror-model@^1.1.0, prosemirror-model@^1.2.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.11.0.tgz#dc36cdb3ad6442b9f6325c7d89170c624f9dc520" + integrity sha512-GqoAz/mIYjdv8gVYJ8mWFKpHoTxn/lXq4tXJ6bTVxs+rem2LzMYXrNVXfucGtfsgqsJlRIgng/ByG9j7Q8XDrg== + dependencies: + orderedmap "^1.1.0" + +prosemirror-schema-basic@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prosemirror-schema-basic/-/prosemirror-schema-basic-1.1.2.tgz#4bde5c339c845e0d08ec8fe473064e372ca51ae3" + integrity sha512-G4q8WflNsR1Q33QAV4MQO0xWrHLOJ+BQcKswGXMy626wlQj6c/1n1v4eC9ns+h2y1r/fJHZEgSZnsNhm9lbrDw== + dependencies: + prosemirror-model "^1.2.0" + +prosemirror-schema-list@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/prosemirror-schema-list/-/prosemirror-schema-list-1.1.4.tgz#471f9caf2d2bed93641d2e490434c0d2d4330df1" + integrity sha512-pNTuZflacFOBlxrTcWSdWhjoB8BaucwfJVp/gJNxztOwaN3wQiC65axclXyplf6TKgXD/EkWfS/QAov3/Znadw== + dependencies: + prosemirror-model "^1.0.0" + prosemirror-transform "^1.0.0" + +prosemirror-state@^1.0.0, prosemirror-state@^1.2.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.3.3.tgz#b2862866b14dec2b3ae1ab18229f2bd337651a2c" + integrity sha512-PLXh2VJsIgvlgSTH6I2Yg6vk1CzPDp21DFreVpQtDMY2S6WaMmrQgDTLRcsrD8X38v8Yc873H7+ogdGzyIPn+w== + dependencies: + prosemirror-model "^1.0.0" + prosemirror-transform "^1.0.0" + +prosemirror-transform@^1.0.0, prosemirror-transform@^1.1.0: + version "1.2.8" + resolved "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.2.8.tgz#4b86544fa43637fe381549fb7b019f4fb71fe65c" + integrity sha512-hKqceqv9ZmMQXNQkhFjr0KFGPvkhygaWND+uIM0GxRpALrKfxP97SsgHTBs3OpJhDmh5N+mB4D/CksB291Eavg== + dependencies: + prosemirror-model "^1.0.0" + +prosemirror-view@^1.0.0, prosemirror-view@^1.1.0: + version "1.15.2" + resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.15.2.tgz#3f07881d11f18c033467591bbaec26b569bbc22c" + integrity sha512-0wftmMDVD8VXj2HZgv6Rg//+tgJC0lpV9LkYlCiAkDLKsf4yW3Ozs5td1ZXqsyoqvX0ga/k5g2EyLbqOMmC1+w== + dependencies: + prosemirror-model "^1.1.0" + prosemirror-state "^1.0.0" + prosemirror-transform "^1.1.0" + proto-list@~1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" @@ -9297,6 +12667,18 @@ psl@^1.1.28: resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + pump@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" @@ -9322,12 +12704,22 @@ pumpify@^1.3.3: inherits "^2.0.3" pump "^2.0.0" +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^1.2.4: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -q@^1.5.1: +q@^1.1.2, q@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= @@ -9347,6 +12739,14 @@ qs@~6.5.2: resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== +query-string@^4.1.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= + dependencies: + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + query-string@^6.8.2: version "6.13.1" resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.13.1.tgz#d913ccfce3b4b3a713989fe6d39466d92e71ccad" @@ -9356,6 +12756,21 @@ query-string@^6.8.2: split-on-first "^1.0.0" strict-uri-encode "^2.0.0" +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +querystringify@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" + integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== + queue@6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/queue/-/queue-6.0.1.tgz#abd5a5b0376912f070a25729e0b6a7d565683791" @@ -9378,7 +12793,27 @@ qw@~1.0.1: resolved "https://registry.yarnpkg.com/qw/-/qw-1.0.1.tgz#efbfdc740f9ad054304426acb183412cc8b996d4" integrity sha1-77/cdA+a0FQwRCassYNBLMi5ltQ= -range-parser@~1.2.1: +ramda@^0.26.1: + version "0.26.1" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06" + integrity sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ== + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== @@ -9393,6 +12828,14 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" +raw-loader@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-3.1.0.tgz#5e9d399a5a222cc0de18f42c3bc5e49677532b3f" + integrity sha512-lzUVMuJ06HF4rYveaz9Tv0WRlUMxJ0Y1hgSkkgg+50iEdaI0TthyEDe08KIHb0XsF6rn8WYTqPCaGTZg3sX+qA== + dependencies: + loader-utils "^1.1.0" + schema-utils "^2.0.1" + rc@^1.0.1, rc@^1.1.6, rc@^1.2.7, rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" @@ -9408,6 +12851,13 @@ react-is@^16.12.0, react-is@^16.8.4: resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + integrity sha1-5mTvMRYRZsl1HNvo28+GtftY93Q= + dependencies: + pify "^2.3.0" + read-cmd-shim@^1.0.1, read-cmd-shim@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.5.tgz#87e43eba50098ba5a32d0ceb583ab8e43b961c16" @@ -9441,7 +12891,7 @@ read-installed@~4.0.3: optionalDependencies: graceful-fs "^4.1.2" -read-package-tree@^5.3.1: +read-package-tree@5.3.1, read-package-tree@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.3.1.tgz#a32cb64c7f31eb8a6f31ef06f9cedf74068fe636" integrity sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw== @@ -9519,7 +12969,7 @@ read@1, read@~1.0.1, read@~1.0.7: dependencies: mute-stream "~0.0.4" -"readable-stream@1 || 2", readable-stream@2.3.7, readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.6, readable-stream@~2.3.6: +"readable-stream@1 || 2", readable-stream@2.3.7, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, 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== @@ -9542,7 +12992,7 @@ readable-stream@1.1.x, readable-stream@~1.1.10: isarray "0.0.1" string_decoder "~0.10.x" -"readable-stream@2 || 3", readable-stream@^3.6.0: +"readable-stream@2 || 3", readable-stream@^3.0.6, 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== @@ -9561,6 +13011,15 @@ readdir-scoped-modules@^1.0.0, readdir-scoped-modules@^1.1.0: graceful-fs "^4.1.2" once "^1.3.0" +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + readdirp@~3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.3.0.tgz#984458d13a1e42e2e9f5841b129e162f369aff17" @@ -9598,11 +13057,28 @@ redeyed@~2.1.0: dependencies: esprima "~4.0.0" -reflect-metadata@^0.1.12, reflect-metadata@^0.1.13: +reflect-metadata@^0.1.12, reflect-metadata@^0.1.13, reflect-metadata@^0.1.2: version "0.1.13" resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== +regenerate-unicode-properties@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" + integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== + dependencies: + regenerate "^1.4.0" + +regenerate@^1.4.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.1.tgz#cad92ad8e6b591773485fbe05a485caf4f457e6f" + integrity sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A== + +regenerator-runtime@0.13.3: + version "0.13.3" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" + integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== + regenerator-runtime@0.13.5: version "0.13.5" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" @@ -9613,6 +13089,13 @@ regenerator-runtime@^0.13.4: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== +regenerator-transform@^0.14.2: + version "0.14.5" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" + integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== + dependencies: + "@babel/runtime" "^7.8.4" + regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" @@ -9621,11 +13104,31 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" +regexp.prototype.flags@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" + integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + regexpp@^3.0.0, regexpp@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== +regexpu-core@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" + integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.2.0" + regjsgen "^0.5.1" + regjsparser "^0.6.4" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.2.0" + registry-auth-token@^3.0.1: version "3.4.0" resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" @@ -9648,6 +13151,18 @@ registry-url@^3.0.3: dependencies: rc "^1.0.1" +regjsgen@^0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" + integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== + +regjsparser@^0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" + integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== + dependencies: + jsesc "~0.5.0" + relay-compiler@10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/relay-compiler/-/relay-compiler-10.0.0.tgz#04d50d8ec53e3f683bc379b756cf0542a76105af" @@ -9724,7 +13239,7 @@ request-promise-native@^1.0.8: stealthy-require "^1.1.1" tough-cookie "^2.3.3" -request@2.88.2, request@^2.88.0, request@^2.88.2: +request@2.88.2, request@^2.83.0, request@^2.88.0, request@^2.88.2: version "2.88.2" resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== @@ -9770,6 +13285,13 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= + dependencies: + resolve-from "^3.0.0" + resolve-cwd@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" @@ -9782,6 +13304,11 @@ resolve-from@5.0.0, resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -9799,7 +13326,7 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.10.0, resolve@^1.17.0, resolve@^1.3.2: +resolve@^1.1.7, resolve@^1.10.0, resolve@^1.17.0, resolve@^1.3.2: version "1.17.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== @@ -9842,6 +13369,16 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= + rimraf@2.6.3: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" @@ -9849,6 +13386,13 @@ rimraf@2.6.3: dependencies: glob "^7.1.3" +rimraf@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.0.tgz#614176d4b3010b75e5c390eb0ee96f6dc0cebb9b" + integrity sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg== + dependencies: + glob "^7.1.3" + rimraf@3.0.2, rimraf@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -9863,6 +13407,28 @@ rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3, rimra dependencies: glob "^7.1.3" +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rollup@1.25.2: + version "1.25.2" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.25.2.tgz#739f508bd8f7ece52bb6c1fcda83466af82b7f6d" + integrity sha512-+7z6Wab/L45QCPcfpuTZKwKiB0tynj05s/+s2U3F2Bi7rOLPr9UcjUwO7/xpjlPNXA/hwnth6jBExFRGyf3tMg== + dependencies: + "@types/estree" "*" + "@types/node" "*" + acorn "^7.1.0" + +rope-sequence@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/rope-sequence/-/rope-sequence-1.3.2.tgz#a19e02d72991ca71feb6b5f8a91154e48e3c098b" + integrity sha512-ku6MFrwEVSVmXLvy3dYph3LAMNS0890K7fabn+0YIRQ2T96T9F4gkFf0vf0WW0JUraNWwGRtInEpH7yO4tbQZg== + rsvp@^4.8.4: version "4.8.5" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" @@ -9885,7 +13451,21 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" -rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.5.2, rxjs@^6.6.0: +rxjs@6.5.3: + version "6.5.3" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.3.tgz#510e26317f4db91a7eb1de77d9dd9ba0a4899a3a" + integrity sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA== + dependencies: + tslib "^1.9.0" + +rxjs@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c" + integrity sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q== + dependencies: + tslib "^1.9.0" + +rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.5.2, rxjs@^6.5.3, rxjs@^6.5.4, rxjs@^6.6.0: version "6.6.2" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.2.tgz#8096a7ac03f2cc4fe5860ef6e572810d9e01c0d2" integrity sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg== @@ -9902,7 +13482,7 @@ safe-buffer@5.2.0: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -9914,7 +13494,7 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@^2.1.2, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -9934,7 +13514,25 @@ sane@^4.0.3: minimist "^1.1.1" walker "~1.0.5" -sax@>=0.6.0, sax@^1.2.4: +sass-loader@8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-8.0.0.tgz#e7b07a3e357f965e6b03dd45b016b0a9746af797" + integrity sha512-+qeMu563PN7rPdit2+n5uuYVR0SSVwm0JsOUsaJXzgYcClWSlmX0iHDnmeOobPkf5kUglVot3QS6SyLyaQoJ4w== + dependencies: + clone-deep "^4.0.1" + loader-utils "^1.2.3" + neo-async "^2.6.1" + schema-utils "^2.1.0" + semver "^6.3.0" + +sass@1.23.3: + version "1.23.3" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.23.3.tgz#f07503b9e8d2bcf06ef69e8beea5d085589b1620" + integrity sha512-1DKRZxJMOh4Bme16AbWTyYeJAjTlrvw2+fWshHHaepeJfGq2soFZTnt0YhWit+bohtDu4LdyPoEj6VFD4APHog== + dependencies: + chokidar ">=2.0.0 <4.0.0" + +sax@>=0.6.0, sax@^1.2.4, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== @@ -9946,11 +13544,41 @@ saxes@^5.0.0: dependencies: xmlchars "^2.2.0" +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +schema-utils@^2.0.0, schema-utils@^2.0.1, schema-utils@^2.1.0, schema-utils@^2.6.1, schema-utils@^2.6.4: + version "2.7.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" + integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== + dependencies: + "@types/json-schema" "^7.0.4" + ajv "^6.12.2" + ajv-keywords "^3.4.1" + scuid@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/scuid/-/scuid-1.1.0.tgz#d3f9f920956e737a60f72d0e4ad280bf324d5dab" integrity sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg== +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + +selfsigned@^1.10.7: + version "1.10.7" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.7.tgz#da5819fd049d5574f28e88a9bcc6dbc6e6f3906b" + integrity sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA== + dependencies: + node-forge "0.9.0" + semantic-release@17.1.1: version "17.1.1" resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-17.1.1.tgz#d9775968e841b2b7c5020559e4481aea8520ca75" @@ -10004,26 +13632,43 @@ semver-diff@^3.1.1: dependencies: semver "^6.3.0" +semver-intersect@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/semver-intersect/-/semver-intersect-1.4.0.tgz#bdd9c06bedcdd2fedb8cd352c3c43ee8c61321f3" + integrity sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ== + dependencies: + semver "^5.0.0" + semver-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== -"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.0, semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@7.3.2, semver@7.x, semver@^7.1.2, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2: - version "7.3.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" - integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== - -semver@^6.0.0, semver@^6.3.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.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +semver@7.1.3: + version "7.1.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.1.3.tgz#e4345ce73071c53f336445cfc19efb1c311df2a6" + integrity sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA== + +semver@7.3.2, semver@7.x, semver@^7.0.0, semver@^7.1.1, semver@^7.1.2, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + send@0.17.1: version "0.17.1" resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" @@ -10043,6 +13688,31 @@ send@0.17.1: range-parser "~1.2.1" statuses "~1.5.0" +serialize-javascript@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" + integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== + +serialize-javascript@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-3.1.0.tgz#8bf3a9170712664ef2561b44b691eafe399214ea" + integrity sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg== + dependencies: + randombytes "^2.1.0" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + serve-static@1.14.1: version "1.14.1" resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" @@ -10068,11 +13738,16 @@ set-value@^2.0.0, set-value@^2.0.1: is-plain-object "^2.0.3" split-string "^3.0.1" -setimmediate@^1.0.5: +setimmediate@^1.0.4, setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + setprototypeof@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" @@ -10083,7 +13758,7 @@ setprototypeof@1.2.0: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== -sha.js@^2.4.11: +sha.js@^2.4.0, sha.js@^2.4.11, sha.js@^2.4.8: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== @@ -10098,6 +13773,13 @@ sha@^3.0.0: dependencies: graceful-fs "^4.1.2" +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -10146,11 +13828,23 @@ signedsource@^1.0.0: resolved "https://registry.yarnpkg.com/signedsource/-/signedsource-1.0.0.tgz#1ddace4981798f93bd833973803d80d52e93ad6a" integrity sha1-HdrOSYF5j5O9gzlzgD2A1S6TrWo= +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + dependencies: + is-arrayish "^0.3.1" + sisteransi@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -10210,6 +13904,26 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" +sockjs-client@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" + integrity sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g== + dependencies: + debug "^3.2.5" + eventsource "^1.0.7" + faye-websocket "~0.11.1" + inherits "^2.0.3" + json3 "^3.3.2" + url-parse "^1.4.3" + +sockjs@0.3.19: + version "0.3.19" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" + integrity sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw== + dependencies: + faye-websocket "^0.10.0" + uuid "^3.0.1" + socks-proxy-agent@^4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386" @@ -10226,6 +13940,13 @@ socks@~2.3.2: ip "1.1.5" smart-buffer "^4.1.0" +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= + dependencies: + is-plain-obj "^1.0.0" + sorted-object@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/sorted-object/-/sorted-object-2.0.1.tgz#7d631f4bd3a798a24af1dffcfbfe83337a5df5fc" @@ -10239,7 +13960,20 @@ sorted-union-stream@~2.1.3: from2 "^1.3.0" stream-iterate "^1.1.0" -source-map-resolve@^0.5.0: +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-loader@0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-0.2.4.tgz#c18b0dc6e23bf66f6792437557c569a11e072271" + integrity sha512-OU6UJUty+i2JDpTItnizPrlpOIBLmQbWMuBg9q5bVtnHACqw1tn9nNwqJLbv0/00JjnJb/Ee5g5WS5vrRv7zIQ== + dependencies: + async "^2.5.0" + loader-utils "^1.1.0" + +source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: version "0.5.3" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== @@ -10250,7 +13984,15 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.5.17, source-map-support@^0.5.6: +source-map-support@0.5.16: + version "0.5.16" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" + integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-support@^0.5.17, source-map-support@^0.5.5, source-map-support@^0.5.6, source-map-support@~0.5.12: version "0.5.19" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== @@ -10263,20 +14005,25 @@ source-map-url@^0.4.0: resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= +source-map@0.7.3, source-map@^0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + source-map@^0.5.0, source-map@^0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== +sourcemap-codec@^1.4.4, sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== spawn-command@^0.0.2-1: version "0.0.2-1" @@ -10314,6 +14061,36 @@ spdx-license-ids@^3.0.0: resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +speed-measure-webpack-plugin@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.1.tgz#69840a5cdc08b4638697dac7db037f595d7f36a0" + integrity sha512-qVIkJvbtS9j/UeZumbdfz0vg+QfG/zxonAjzefZrqzkr7xOncLVXkeGbTpzd1gjCBM4PmVNkWlkeTVhgskAGSQ== + dependencies: + chalk "^2.0.1" + 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" @@ -10392,6 +14169,11 @@ ssri@^7.0.0, ssri@^7.0.1: figgy-pudding "^3.5.1" minipass "^3.1.1" +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + stack-utils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.2.tgz#5cf48b4557becb4638d0bc4f21d23f5d19586593" @@ -10407,7 +14189,7 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -"statuses@>= 1.5.0 < 2", statuses@~1.5.0: +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= @@ -10417,6 +14199,14 @@ stealthy-require@^1.1.1: resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + stream-combiner2@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" @@ -10440,6 +14230,17 @@ stream-events@^1.0.5: dependencies: stubs "^3.0.0" +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + stream-iterate@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/stream-iterate/-/stream-iterate-1.2.0.tgz#2bd7c77296c1702a46488b8ad41f79865eecd4e1" @@ -10458,6 +14259,11 @@ streamsearch@0.1.2: resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + 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" @@ -10527,7 +14333,7 @@ string.prototype.trimstart@^1.0.1: define-properties "^1.1.3" es-abstract "^1.17.5" -string_decoder@^1.1.1: +string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== @@ -10626,6 +14432,46 @@ stubs@^3.0.0: resolved "https://registry.yarnpkg.com/stubs/-/stubs-3.0.0.tgz#e8d2ba1fa9c90570303c030b6900f7d5f89abe5b" integrity sha1-6NK6H6nJBXAwPAMLaQD31fiavls= +style-loader@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.0.0.tgz#1d5296f9165e8e2c85d24eee0b7caf9ec8ca1f82" + integrity sha512-B0dOCFwv7/eY31a5PCieNwMgMhVGFe9w+rh7s/Bx8kfFkrth9zfTZquoYvdw8URgiqxObQKcpW51Ugz1HjfdZw== + dependencies: + loader-utils "^1.2.3" + schema-utils "^2.0.1" + +stylehacks@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" + integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +stylus-loader@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-3.0.2.tgz#27a706420b05a38e038e7cacb153578d450513c6" + integrity sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA== + dependencies: + loader-utils "^1.0.2" + lodash.clonedeep "^4.5.0" + when "~3.6.x" + +stylus@0.54.7: + version "0.54.7" + resolved "https://registry.yarnpkg.com/stylus/-/stylus-0.54.7.tgz#c6ce4793965ee538bcebe50f31537bfc04d88cd2" + integrity sha512-Yw3WMTzVwevT6ZTrLCYNHAFmanMxdylelL3hkWNgPMeTCpMwpV3nXjpOHuBXtFv7aiO2xRuQS6OoAdgkNcSNug== + dependencies: + css-parse "~2.0.0" + debug "~3.1.0" + glob "^7.1.3" + mkdirp "~0.5.x" + safer-buffer "^2.1.2" + sax "~1.2.4" + semver "^6.0.0" + source-map "^0.7.3" + subscriptions-transport-ws@0.9.17, subscriptions-transport-ws@^0.9.11, subscriptions-transport-ws@^0.9.16: version "0.9.17" resolved "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.17.tgz#e30e40f0caae0d2781903c01a8cb51b6e2682098" @@ -10671,7 +14517,26 @@ supports-hyperlinks@^2.0.0, supports-hyperlinks@^2.1.0: has-flag "^4.0.0" supports-color "^7.0.0" -symbol-observable@^1.0.4, symbol-observable@^1.1.0: +svgo@^1.0.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.37" + csso "^4.0.2" + js-yaml "^3.13.1" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + +symbol-observable@1.2.0, symbol-observable@^1.0.2, symbol-observable@^1.0.4, symbol-observable@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== @@ -10691,6 +14556,11 @@ table@^5.2.3: slice-ansi "^2.1.0" string-width "^3.0.0" +tapable@^1.0.0, tapable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + tar@^4.4.10, tar@^4.4.12, tar@^4.4.13, tar@^4.4.2: version "4.4.13" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" @@ -10765,6 +14635,54 @@ terminal-link@^2.0.0: ansi-escapes "^4.2.1" supports-hyperlinks "^2.0.0" +terser-webpack-plugin@2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.3.3.tgz#b89043168bd414153bab86f4362ac23d537b78b0" + integrity sha512-gWHkaGzGYjmDoYxksFZynWTzvXOAjQ5dd7xuTMYlv4zpWlLSb6v0QLSZjELzP5dMs1ox30O1BIPs9dgqlMHuLQ== + dependencies: + cacache "^13.0.1" + find-cache-dir "^3.2.0" + jest-worker "^25.1.0" + p-limit "^2.2.2" + schema-utils "^2.6.4" + serialize-javascript "^2.1.2" + source-map "^0.6.1" + terser "^4.4.3" + webpack-sources "^1.4.3" + +terser-webpack-plugin@^1.4.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz#2c63544347324baafa9a56baaddf1634c8abfc2f" + integrity sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA== + dependencies: + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^3.1.0" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + +terser@4.5.1: + version "4.5.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.5.1.tgz#63b52d6b6ce344aa6fedcd0ee06a695799eb50bd" + integrity sha512-lH9zLIbX8PRBEFCTvfHGCy0s9HEKnNso1Dx9swSopF3VUnFLB8DpQ61tHxoofovNC/sG0spajJM3EIIRSTByiQ== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +terser@^4.1.2, terser@^4.4.3: + version "4.8.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" + integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + test-exclude@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" @@ -10824,11 +14742,23 @@ through@2, "through@>=2.2.7 <3", through@^2.3.6: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + timed-out@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= +timers-browserify@^2.0.4: + version "2.0.11" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" + integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== + dependencies: + setimmediate "^1.0.4" + timers-ext@^0.1.5, timers-ext@^0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" @@ -10837,6 +14767,11 @@ timers-ext@^0.1.5, timers-ext@^0.1.7: es5-ext "~0.10.46" next-tick "1" +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + tiny-relative-date@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz#fa08aad501ed730f31cc043181d995c39a935e07" @@ -10854,6 +14789,11 @@ tmpl@1.0.x: resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" @@ -10925,7 +14865,7 @@ traverse@~0.6.6: resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= -tree-kill@^1.2.2: +tree-kill@1.2.2, tree-kill@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== @@ -11030,6 +14970,11 @@ tsutils@^3.17.1: dependencies: tslib "^1.8.1" +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -11137,6 +15082,11 @@ typeorm@0.2.24: yargonaut "^1.1.2" yargs "^13.2.1" +typescript@3.6.4: + version "3.6.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.6.4.tgz#b18752bb3792bc1a0281335f7f6ebf1bbfc5b91d" + integrity sha512-unoCll1+l+YK4i4F8f22TaNVPRHcD9PA3yCuZ8g5e0qGqlVlJ/8FSateOLLSagn+Yg5+ZwuPkL8LFUc0Jcvksg== + typescript@3.8.3: version "3.8.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061" @@ -11172,6 +15122,29 @@ unc-path-regex@^0.1.2: resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== + +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== + dependencies: + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" + +unicode-match-property-value-ecmascript@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" + integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== + +unicode-property-aliases-ecmascript@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" + integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== + union-value@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" @@ -11182,6 +15155,16 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^2.0.1" +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= + unique-filename@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" @@ -11210,6 +15193,15 @@ unique-string@^2.0.0: dependencies: crypto-random-string "^2.0.0" +universal-analytics@0.4.20: + version "0.4.20" + resolved "https://registry.yarnpkg.com/universal-analytics/-/universal-analytics-0.4.20.tgz#d6b64e5312bf74f7c368e3024a922135dbf24b03" + integrity sha512-gE91dtMvNkjO+kWsPstHRtSwHXz0l2axqptGYp5ceg4MsuurloM0PU3pdOfpb5zBXUvyjT4PwhWK2m39uczZuw== + dependencies: + debug "^3.0.0" + request "^2.88.0" + uuid "^3.0.0" + universal-user-agent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-5.0.0.tgz#a3182aa758069bf0e79952570ca757de3579c1d9" @@ -11244,6 +15236,11 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= + unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" @@ -11257,6 +15254,11 @@ unzip-response@^2.0.1: resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= +upath@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + update-notifier@^2.2.0, update-notifier@^2.3.0, update-notifier@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" @@ -11304,6 +15306,22 @@ url-parse-lax@^1.0.0: dependencies: prepend-http "^1.0.1" +url-parse@^1.4.3: + version "1.4.7" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" + integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + urlgrey@0.4.4: version "0.4.4" resolved "https://registry.yarnpkg.com/urlgrey/-/urlgrey-0.4.4.tgz#892fe95960805e85519f1cd4389f2cb4cbb7652f" @@ -11331,7 +15349,7 @@ util-promisify@^2.1.0: dependencies: object.getownpropertydescriptors "^2.0.3" -util.promisify@^1.0.0: +util.promisify@^1.0.0, util.promisify@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== @@ -11341,6 +15359,20 @@ util.promisify@^1.0.0: has-symbols "^1.0.1" object.getownpropertydescriptors "^2.1.0" +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + dependencies: + inherits "2.0.1" + +util@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" @@ -11351,7 +15383,7 @@ uuid@7.0.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.2.tgz#7ff5c203467e91f5e0d85cfcbaaf7d2ebbca9be6" integrity sha512-vy9V/+pKG+5ZTYKf+VcphF5Oc6EFiu3W8Nv3P3zIh0EqVI80ZxOzuPfe9EHjkFNvf8+xuTHVeei4Drydlx4zjw== -uuid@^3.1.0, uuid@^3.3.2, uuid@^3.3.3: +uuid@^3.0.0, uuid@^3.0.1, uuid@^3.1.0, uuid@^3.3.2, uuid@^3.3.3: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== @@ -11400,6 +15432,11 @@ vary@^1, vary@~1.1.2: resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= +vendors@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== + verror@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" @@ -11409,6 +15446,11 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" +vm-browserify@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== + vue-template-compiler@^2.6.11: version "2.6.11" resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.11.tgz#c04704ef8f498b153130018993e56309d4698080" @@ -11424,6 +15466,11 @@ w3c-hr-time@^1.0.2: dependencies: browser-process-hrtime "^1.0.0" +w3c-keyname@^2.2.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-2.2.4.tgz#4ade6916f6290224cdbd1db8ac49eab03d0eef6b" + integrity sha512-tOhfEwEzFLJzf6d1ZPkYfGj+FWhIpBux9ppoP3rlclw3Z0BZv3N7b7030Z1kYth+6rDuAsXUFr+d0VE6Ed1ikw== + w3c-xmlserializer@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" @@ -11438,7 +15485,32 @@ walker@^1.0.7, walker@~1.0.5: dependencies: makeerror "1.0.x" -wcwidth@^1.0.0: +watchpack-chokidar2@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" + integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA== + dependencies: + chokidar "^2.1.8" + +watchpack@^1.6.0: + version "1.7.4" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.4.tgz#6e9da53b3c80bb2d6508188f5b200410866cd30b" + integrity sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg== + dependencies: + graceful-fs "^4.1.2" + neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.1" + watchpack-chokidar2 "^2.0.0" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +wcwidth@^1.0.0, wcwidth@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= @@ -11455,6 +15527,129 @@ webidl-conversions@^6.1.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== +webpack-dev-middleware@3.7.2, webpack-dev-middleware@^3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" + integrity sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw== + dependencies: + memory-fs "^0.4.1" + mime "^2.4.4" + mkdirp "^0.5.1" + range-parser "^1.2.1" + webpack-log "^2.0.0" + +webpack-dev-server@3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.9.0.tgz#27c3b5d0f6b6677c4304465ac817623c8b27b89c" + integrity sha512-E6uQ4kRrTX9URN9s/lIbqTAztwEPdvzVrcmHE8EQ9YnuT9J8Es5Wrd8n9BKg1a0oZ5EgEke/EQFgUsp18dSTBw== + dependencies: + ansi-html "0.0.7" + bonjour "^3.5.0" + chokidar "^2.1.8" + compression "^1.7.4" + connect-history-api-fallback "^1.6.0" + debug "^4.1.1" + del "^4.1.1" + express "^4.17.1" + html-entities "^1.2.1" + http-proxy-middleware "0.19.1" + import-local "^2.0.0" + internal-ip "^4.3.0" + ip "^1.1.5" + is-absolute-url "^3.0.3" + killable "^1.0.1" + loglevel "^1.6.4" + opn "^5.5.0" + p-retry "^3.0.1" + portfinder "^1.0.25" + schema-utils "^1.0.0" + selfsigned "^1.10.7" + semver "^6.3.0" + serve-index "^1.9.1" + sockjs "0.3.19" + sockjs-client "1.4.0" + spdy "^4.0.1" + strip-ansi "^3.0.1" + supports-color "^6.1.0" + url "^0.11.0" + webpack-dev-middleware "^3.7.2" + webpack-log "^2.0.0" + ws "^6.2.1" + yargs "12.0.5" + +webpack-log@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" + integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== + dependencies: + ansi-colors "^3.0.0" + uuid "^3.3.2" + +webpack-merge@4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" + integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== + dependencies: + lodash "^4.17.15" + +webpack-sources@1.4.3, webpack-sources@^1.1.0, webpack-sources@^1.2.0, webpack-sources@^1.3.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack-subresource-integrity@1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/webpack-subresource-integrity/-/webpack-subresource-integrity-1.3.4.tgz#4554e0c622d6787f880eba009cdb73139c107bad" + integrity sha512-6XbGYzjh30cGQT/NsC+9IAkJP8IL7/t47sbwR5DLSsamiD56Rwv4/+hsgEHsviPvrEFZ0JRAQtCRN3UsR2Pw9g== + dependencies: + webpack-sources "^1.3.0" + +webpack@4.41.2: + version "4.41.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.2.tgz#c34ec76daa3a8468c9b61a50336d8e3303dce74e" + integrity sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-module-context" "1.8.5" + "@webassemblyjs/wasm-edit" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + acorn "^6.2.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.1.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.1" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.1" + watchpack "^1.6.0" + webpack-sources "^1.4.1" + +websocket-driver@>=0.5.1: + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + websocket@1.0.31: version "1.0.31" resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.31.tgz#e5d0f16c3340ed87670e489ecae6144c79358730" @@ -11492,6 +15687,11 @@ whatwg-url@^8.0.0: tr46 "^2.0.2" webidl-conversions "^5.0.0" +when@~3.6.x: + version "3.6.4" + resolved "https://registry.yarnpkg.com/when/-/when-3.6.4.tgz#473b517ec159e2b85005497a13983f095412e34e" + integrity sha1-RztRfsFZ4rhQBUl6E5g/CVQS404= + which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" @@ -11554,6 +15754,13 @@ worker-farm@^1.6.0, worker-farm@^1.7.0: dependencies: errno "~0.1.7" +worker-plugin@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/worker-plugin/-/worker-plugin-3.2.0.tgz#ddae9f161b76fcbaacf8f54ecd037844584e43e7" + integrity sha512-W5nRkw7+HlbsEt3qRP6MczwDDISjiRj2GYt9+bpe8A2La00TmJdwzG5bpdMXhRt1qcWmwAvl1TiKaHRa+XDS9Q== + dependencies: + loader-utils "^1.1.0" + wrap-ansi@7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -11635,7 +15842,7 @@ ws@^5.2.0: dependencies: async-limiter "~1.0.0" -ws@^6.0.0: +ws@^6.0.0, ws@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== @@ -11693,7 +15900,7 @@ y18n@^3.2.1: resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= -y18n@^4.0.0: +"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== @@ -11737,7 +15944,7 @@ yargonaut@^1.1.2: figlet "^1.1.1" parent-require "^1.0.0" -yargs-parser@18.x, yargs-parser@^18.1.2, yargs-parser@^18.1.3: +yargs-parser@18.x, yargs-parser@^18.1.0, yargs-parser@^18.1.2, yargs-parser@^18.1.3: version "18.1.3" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== @@ -11752,6 +15959,14 @@ yargs-parser@^10.0.0: dependencies: camelcase "^4.1.0" +yargs-parser@^11.1.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" + integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + yargs-parser@^13.1.2: version "13.1.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" @@ -11775,6 +15990,41 @@ yargs-parser@^7.0.0: dependencies: camelcase "^4.1.0" +yargs@12.0.5: + version "12.0.5" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" + integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== + dependencies: + cliui "^4.0.0" + decamelize "^1.2.0" + find-up "^3.0.0" + get-caller-file "^1.0.1" + os-locale "^3.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1 || ^4.0.0" + yargs-parser "^11.1.1" + +yargs@15.3.0: + version "15.3.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.0.tgz#403af6edc75b3ae04bf66c94202228ba119f0976" + integrity sha512-g/QCnmjgOl1YJjGsnUg2SatC7NUYEiLXJqxNOQU9qSpjzGtGXda9b+OKccr1kLTy8BN9yqEyqfq5lxlwdc13TA== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.0" + yargs@15.4.1, yargs@^15.0.0, yargs@^15.0.1, yargs@^15.3.1: version "15.4.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" @@ -11861,3 +16111,8 @@ zen-observable@^0.8.0: version "0.8.15" resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== + +zone.js@~0.10.2: + version "0.10.3" + resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.10.3.tgz#3e5e4da03c607c9dcd92e37dd35687a14a140c16" + integrity sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg== From b783725e7239c4dd31d6d013cdfed57e224d3193 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonathan=20C=C3=A9lio?= Date: Wed, 12 Aug 2020 14:43:23 -0300 Subject: [PATCH 3/7] feat: review product --- dev-server/config.ts | 9 +- e2e/config/config.ts | 4 +- e2e/graphql/admin-api.graphql.types.ts | 5 +- src/api/resolvers/admin/index.ts | 1 + .../admin/review-product.resolver.spec.ts | 73 +++++++++ .../admin/review-product.resolver.ts | 53 +++++++ ....test.ts => review-store.resolver.spec.ts} | 2 +- src/api/resolvers/shop/index.ts | 2 + ...view-product-shop-product.resolver.spec.ts | 46 ++++++ .../review-product-shop-product.resolver.ts | 32 ++++ .../shop/review-product.resolver.spec.ts | 89 +++++++++++ .../resolvers/shop/review-product.resolver.ts | 57 +++++++ ....test.ts => review-store.resolver.spec.ts} | 14 +- .../resolvers/shop/review-store.resolver.ts | 11 +- src/api/schema/index.ts | 2 - src/api/schemas/index.ts | 4 + .../schemas/review-product.admin.schema.ts | 31 ++++ src/api/schemas/review-product.shop.schema.ts | 36 +++++ .../review-store.admin.schema.ts} | 6 +- .../review-store.shop.schema.ts} | 12 +- src/entities/index.ts | 1 + src/entities/review-product.entity.spec.ts | 14 ++ src/entities/review-product.entity.ts | 19 +++ src/events/index.ts | 3 +- ...iew-product-state-transition.event.spec.ts | 19 +++ .../review-product-state-transition.event.ts | 6 + src/events/review-state-transition.event.ts | 19 +++ .../review-store-state-transition.event.ts | 6 + .../review-store-transition.event.spec.ts | 4 +- src/events/review-store-transition.event.ts | 17 --- src/helpers/review.service.ts | 19 ++- src/plugins/index.ts | 1 + src/plugins/review-product.plugin.ts | 27 ++++ src/plugins/review-store.plugin.ts | 9 +- src/services/index.ts | 1 + src/services/review-product.service.spec.ts | 144 ++++++++++++++++++ src/services/review-product.service.ts | 134 ++++++++++++++++ src/test-helpers/entities.ts | 45 +++++- src/types/generated-admin-schema.ts | 60 +++++++- src/types/generated-shop-schema.ts | 100 ++++++++++++ src/ui/common/fragments.graphql.types.ts | 5 +- src/ui/common/generated-admin-schema.ts | 60 +++++++- 42 files changed, 1149 insertions(+), 53 deletions(-) create mode 100644 src/api/resolvers/admin/review-product.resolver.spec.ts create mode 100644 src/api/resolvers/admin/review-product.resolver.ts rename src/api/resolvers/admin/{review-store.resolver.test.ts => review-store.resolver.spec.ts} (98%) create mode 100644 src/api/resolvers/shop/review-product-shop-product.resolver.spec.ts create mode 100644 src/api/resolvers/shop/review-product-shop-product.resolver.ts create mode 100644 src/api/resolvers/shop/review-product.resolver.spec.ts create mode 100644 src/api/resolvers/shop/review-product.resolver.ts rename src/api/resolvers/shop/{review-store.resolver.test.ts => review-store.resolver.spec.ts} (90%) delete mode 100644 src/api/schema/index.ts create mode 100644 src/api/schemas/index.ts create mode 100644 src/api/schemas/review-product.admin.schema.ts create mode 100644 src/api/schemas/review-product.shop.schema.ts rename src/api/{schema/admin.ts => schemas/review-store.admin.schema.ts} (90%) rename src/api/{schema/shop.ts => schemas/review-store.shop.schema.ts} (69%) create mode 100644 src/entities/review-product.entity.spec.ts create mode 100644 src/entities/review-product.entity.ts create mode 100644 src/events/review-product-state-transition.event.spec.ts create mode 100644 src/events/review-product-state-transition.event.ts create mode 100644 src/events/review-state-transition.event.ts create mode 100644 src/events/review-store-state-transition.event.ts delete mode 100644 src/events/review-store-transition.event.ts create mode 100644 src/plugins/review-product.plugin.ts create mode 100644 src/services/review-product.service.spec.ts create mode 100644 src/services/review-product.service.ts diff --git a/dev-server/config.ts b/dev-server/config.ts index 3945452..e7e8737 100644 --- a/dev-server/config.ts +++ b/dev-server/config.ts @@ -4,7 +4,7 @@ import { DefaultSearchPlugin, VendureConfig } from '@vendure/core'; -import { ReviewsStorePlugin } from '../src'; +import { ReviewsStorePlugin, ReviewsProductPlugin } from '../src'; const PORT = Number(process.env.PORT) || 3000; @@ -45,7 +45,12 @@ export const config: VendureConfig = { paymentOptions: { paymentMethodHandlers: [examplePaymentHandler] }, - plugins: [DefaultJobQueuePlugin, DefaultSearchPlugin, ReviewsStorePlugin] + plugins: [ + DefaultJobQueuePlugin, + DefaultSearchPlugin, + ReviewsStorePlugin, + ReviewsProductPlugin + ] }; export default config; diff --git a/e2e/config/config.ts b/e2e/config/config.ts index ddb0151..24078a4 100644 --- a/e2e/config/config.ts +++ b/e2e/config/config.ts @@ -2,7 +2,7 @@ import { mergeConfig } from '@vendure/core'; import { testConfig as defaultTestConfig } from '@vendure/testing'; import path from 'path'; import { E2EInjectOrderPlugin } from './inject-order'; -import { ReviewsStorePlugin } from '../../src'; +import { ReviewsStorePlugin, ReviewsProductPlugin } from '../../src'; /** * We use a relatively long timeout on the initial beforeAll() function of the @@ -27,5 +27,5 @@ export const testConfig = mergeConfig(defaultTestConfig, { importExportOptions: { importAssetsDir: path.join(__dirname, '..', 'fixtures/assets') }, - plugins: [ReviewsStorePlugin, E2EInjectOrderPlugin] + plugins: [ReviewsStorePlugin, ReviewsProductPlugin, E2EInjectOrderPlugin] }); diff --git a/e2e/graphql/admin-api.graphql.types.ts b/e2e/graphql/admin-api.graphql.types.ts index 718c9f9..d9f5e11 100644 --- a/e2e/graphql/admin-api.graphql.types.ts +++ b/e2e/graphql/admin-api.graphql.types.ts @@ -4,8 +4,9 @@ export type AdminReviewStoreFragment = { __typename?: 'ReviewStore' } & Pick< Types.ReviewStore, 'id' | 'title' | 'description' | 'state' | 'nps' | 'nextStates' > & { - customer?: Types.Maybe< - { __typename?: 'Customer' } & Pick + customer: { __typename?: 'Customer' } & Pick< + Types.Customer, + 'id' | 'firstName' >; }; diff --git a/src/api/resolvers/admin/index.ts b/src/api/resolvers/admin/index.ts index 0b2c72d..9c550bd 100644 --- a/src/api/resolvers/admin/index.ts +++ b/src/api/resolvers/admin/index.ts @@ -1 +1,2 @@ +export * from './review-product.resolver'; export * from './review-store.resolver'; diff --git a/src/api/resolvers/admin/review-product.resolver.spec.ts b/src/api/resolvers/admin/review-product.resolver.spec.ts new file mode 100644 index 0000000..a94ab75 --- /dev/null +++ b/src/api/resolvers/admin/review-product.resolver.spec.ts @@ -0,0 +1,73 @@ +import { ReviewProductAdminResolver } from './review-product.resolver'; +import { TestingModule, Test } from '@nestjs/testing'; +import { ReviewProductService } from '../../../services/review-product.service'; +import { + exampleReviewProduct, + examplesReviewProduct, + adminCtx +} from '../../../test-helpers'; +import { createMock } from '@golevelup/nestjs-testing'; + +describe('ReviewProductAdminResolver', () => { + let resolver: ReviewProductAdminResolver; + + beforeAll(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [ + ReviewProductAdminResolver, + { + provide: ReviewProductService, + useValue: createMock({ + findById: async () => exampleReviewProduct, + findAll: async () => ({ + items: examplesReviewProduct, + totalItems: 3 + }), + transitionToState: async () => exampleReviewProduct, + getNextReviewStates: () => ['Created'] + }) + } + ] + }).compile(); + resolver = module.get( + ReviewProductAdminResolver + ); + }); + + it('should be defined', () => { + expect(resolver).toBeDefined(); + }); + + describe('reviewProduct', () => { + it('should get a review properly', async () => { + await expect(resolver.reviewProduct({ id: '1' })).resolves.toBe( + exampleReviewProduct + ); + }); + }); + describe('reviewsProduct', () => { + it('should get a review list properly', async () => { + await expect(resolver.reviewsProduct({})).resolves.toEqual({ + items: examplesReviewProduct, + totalItems: 3 + }); + }); + }); + describe('transitionReviewProductToState', () => { + it('should change state properly', async () => { + await expect( + resolver.transitionReviewProductToState(adminCtx, { + id: '1', + state: 'Created' + }) + ).resolves.toBe(exampleReviewProduct); + }); + }); + describe('nextStates', () => { + it('should get the next states', async () => { + await expect(resolver.nextStates(exampleReviewProduct)).resolves.toEqual([ + 'Created' + ]); + }); + }); +}); diff --git a/src/api/resolvers/admin/review-product.resolver.ts b/src/api/resolvers/admin/review-product.resolver.ts new file mode 100644 index 0000000..6990b92 --- /dev/null +++ b/src/api/resolvers/admin/review-product.resolver.ts @@ -0,0 +1,53 @@ +import { + Query, + Mutation, + ResolveField, + Args, + Parent, + Resolver +} from '@nestjs/graphql'; +import { ReviewProductService } from '../../../services/review-product.service'; +import { Permission, Ctx, RequestContext, Allow } from '@vendure/core'; +import { ReviewState } from '../../../helpers'; +import { ReviewProductEntity } from '../../../entities'; +import { + MutationTransitionReviewProductToStateArgs, + QueryReviewProductArgs, + QueryReviewsProductArgs +} from '../../../types/generated-admin-schema'; + +@Resolver('ReviewProduct') +export class ReviewProductAdminResolver { + constructor(private reviewProductService: ReviewProductService) {} + + @ResolveField('nextStates') + async nextStates(@Parent() reviewProduct: ReviewProductEntity) { + return this.reviewProductService.getNextReviewStates(reviewProduct); + } + + @Query() + @Allow(Permission.ReadOrder) + async reviewProduct(@Args() { id }: QueryReviewProductArgs) { + return this.reviewProductService.findById(id); + } + + @Query() + @Allow(Permission.ReadOrder) + async reviewsProduct(@Args() { options }: QueryReviewsProductArgs) { + return this.reviewProductService.findAll(options || undefined); + } + + @Mutation() + @Allow(Permission.UpdateOrder) + async transitionReviewProductToState( + @Ctx() ctx: RequestContext, + @Args() args: MutationTransitionReviewProductToStateArgs + ) { + const review = await this.reviewProductService.findById(args.id); + return this.reviewProductService.transitionToState( + ctx, + review, + args.state as ReviewState + ); + } +} diff --git a/src/api/resolvers/admin/review-store.resolver.test.ts b/src/api/resolvers/admin/review-store.resolver.spec.ts similarity index 98% rename from src/api/resolvers/admin/review-store.resolver.test.ts rename to src/api/resolvers/admin/review-store.resolver.spec.ts index 0030fdf..d6ff39b 100644 --- a/src/api/resolvers/admin/review-store.resolver.test.ts +++ b/src/api/resolvers/admin/review-store.resolver.spec.ts @@ -44,7 +44,7 @@ describe('ReviewStoreAdminResolver', () => { ); }); }); - describe('reviewStore', () => { + describe('reviewsStore', () => { it('should get a review list properly', async () => { await expect(resolver.reviewsStore({})).resolves.toEqual({ items: examplesReviewStore, diff --git a/src/api/resolvers/shop/index.ts b/src/api/resolvers/shop/index.ts index 0b2c72d..3a07d22 100644 --- a/src/api/resolvers/shop/index.ts +++ b/src/api/resolvers/shop/index.ts @@ -1 +1,3 @@ +export * from './review-product-shop-product.resolver'; export * from './review-store.resolver'; +export * from './review-product.resolver'; diff --git a/src/api/resolvers/shop/review-product-shop-product.resolver.spec.ts b/src/api/resolvers/shop/review-product-shop-product.resolver.spec.ts new file mode 100644 index 0000000..e146286 --- /dev/null +++ b/src/api/resolvers/shop/review-product-shop-product.resolver.spec.ts @@ -0,0 +1,46 @@ +import { ReviewProductShopProductResolver } from './review-product-shop-product.resolver'; +import { TestingModule, Test } from '@nestjs/testing'; +import { ReviewProductService } from '../../../services/review-product.service'; +import { examplesReviewProduct, exampleProduct } from '../../../test-helpers'; +import { createMock } from '@golevelup/nestjs-testing'; + +describe('ReviewProductShopProductResolver', () => { + let resolver: ReviewProductShopProductResolver; + + const reviewProductService = createMock({ + getAvgStars: async () => 4, + findAll: async () => ({ items: examplesReviewProduct, totalItems: 3 }) + }); + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [ + ReviewProductShopProductResolver, + { + provide: ReviewProductService, + useValue: reviewProductService + } + ] + }).compile(); + resolver = module.get( + ReviewProductShopProductResolver + ); + }); + + it('should be defined', async () => { + await expect(resolver).toBeDefined(); + }); + + describe('avgReviewProduct', () => { + it('should get the stars Average', async () => { + await expect(resolver.reviewAvg()).resolves.toBe(4); + }); + }); + describe('reviews', () => { + it('should get the reviews of the product', async () => { + await expect(resolver.reviews({}, exampleProduct)).resolves.toEqual({ + items: examplesReviewProduct, + totalItems: 3 + }); + }); + }); +}); diff --git a/src/api/resolvers/shop/review-product-shop-product.resolver.ts b/src/api/resolvers/shop/review-product-shop-product.resolver.ts new file mode 100644 index 0000000..bd7b759 --- /dev/null +++ b/src/api/resolvers/shop/review-product-shop-product.resolver.ts @@ -0,0 +1,32 @@ +import { Resolver, ResolveField, Args, Parent } from '@nestjs/graphql'; +import { ReviewProductService } from '../../../services/review-product.service'; +import { Product, Ctx, RequestContext } from '@vendure/core'; +import { ProductReviewsArgs } from './../../../types/generated-shop-schema'; + +@Resolver('Product') +export class ReviewProductShopProductResolver { + constructor(private reviewProductService: ReviewProductService) {} + @ResolveField('reviewAvg') + async reviewAvg() { + return this.reviewProductService.getAvgStars(); + } + + @ResolveField('reviews') + async reviews( + @Args() { options }: ProductReviewsArgs, + @Parent() product: Product + ) { + return this.reviewProductService.findAll(options || undefined, { + where: { product: product, state: 'Authorized' } + }); + } + + @ResolveField('canReview') + async canReview(@Ctx() ctx: RequestContext, @Parent() product: Product) { + const customer = await this.reviewProductService.getCustomerOrThrow(ctx); + return this.reviewProductService.checkIfCustomerIsValidToCreateReviewProduct( + customer, + product + ); + } +} diff --git a/src/api/resolvers/shop/review-product.resolver.spec.ts b/src/api/resolvers/shop/review-product.resolver.spec.ts new file mode 100644 index 0000000..f334842 --- /dev/null +++ b/src/api/resolvers/shop/review-product.resolver.spec.ts @@ -0,0 +1,89 @@ +import { ReviewProductShopResolver } from './review-product.resolver'; +import { TestingModule, Test } from '@nestjs/testing'; +import { ReviewProductService } from '../../../services/review-product.service'; +import { IllegalOperationError } from '@vendure/core'; +import { + shopCtx, + exampleReviewProduct, + examplesReviewProduct, + exampleCustomer, + exampleProduct +} from '../../../test-helpers'; +import { createMock } from '@golevelup/nestjs-testing'; + +describe('ReviewProductShopResolver', () => { + let resolver: ReviewProductShopResolver; + + const reviewProductService = createMock({ + create: async () => exampleReviewProduct, + findAll: async () => ({ + items: examplesReviewProduct, + totalItems: 3 + }) + }); + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [ + ReviewProductShopResolver, + { + provide: ReviewProductService, + useValue: reviewProductService + } + ] + }).compile(); + resolver = module.get(ReviewProductShopResolver); + }); + + it('should be defined', async () => { + await expect(resolver).toBeDefined(); + }); + + describe('createReviewProduct', () => { + it('should create a review to product correctly', async () => { + reviewProductService.getCustomerOrThrow.mockImplementation( + async () => exampleCustomer + ); + reviewProductService.getProductOrThrow.mockImplementation( + async () => exampleProduct + ); + reviewProductService.checkIfCustomerIsValidToCreateReviewProduct.mockImplementation( + async () => true + ); + await expect( + resolver.createReviewProduct(shopCtx, { input: exampleReviewProduct }) + ).resolves.toBe(exampleReviewProduct); + }); + it('should try to create a review of an invalid user', async () => { + reviewProductService.getCustomerOrThrow.mockImplementation( + async () => exampleCustomer + ); + reviewProductService.getProductOrThrow.mockImplementation( + async () => exampleProduct + ); + reviewProductService.checkIfCustomerIsValidToCreateReviewProduct.mockImplementation( + async () => false + ); + await expect( + resolver.createReviewProduct(shopCtx, { input: exampleReviewProduct }) + ).rejects.toThrow(IllegalOperationError); + }); + }); + describe('updateReviewProduct', () => { + it('should update a review product correctly', async () => { + reviewProductService.getCustomerOrThrow.mockImplementation( + async () => exampleCustomer + ); + reviewProductService.findById.mockImplementation( + async () => exampleReviewProduct + ); + reviewProductService.update.mockImplementation( + async () => examplesReviewProduct[1] + ); + await expect( + resolver.updateReviewProduct(shopCtx, { + input: examplesReviewProduct[1] + }) + ).resolves.toEqual(examplesReviewProduct[1]); + }); + }); +}); diff --git a/src/api/resolvers/shop/review-product.resolver.ts b/src/api/resolvers/shop/review-product.resolver.ts new file mode 100644 index 0000000..d8005d8 --- /dev/null +++ b/src/api/resolvers/shop/review-product.resolver.ts @@ -0,0 +1,57 @@ +import { Resolver, Mutation, Args } from '@nestjs/graphql'; +import { ReviewProductService } from '../../../services/review-product.service'; +import { + IllegalOperationError, + Allow, + Ctx, + RequestContext, + Permission +} from '@vendure/core'; +import { ReviewProductEntity } from '../../../entities'; +import { + MutationCreateReviewProductArgs, + MutationUpdateReviewProductArgs +} from './../../../types/generated-shop-schema'; + +@Resolver('ReviewProduct') +export class ReviewProductShopResolver { + constructor(private reviewProductService: ReviewProductService) {} + @Mutation() + @Allow(Permission.Owner) + async createReviewProduct( + @Ctx() ctx: RequestContext, + @Args() { input: { productId, ...input } }: MutationCreateReviewProductArgs + ): Promise { + const customer = await this.reviewProductService.getCustomerOrThrow(ctx); + const product = await this.reviewProductService.getProductOrThrow( + productId + ); + if ( + !(await this.reviewProductService.checkIfCustomerIsValidToCreateReviewProduct( + customer, + product + )) + ) { + throw new IllegalOperationError('cannot-create-review-product'); + } + + return this.reviewProductService.create({ + ...input, + customer: customer, + product: product + }); + } + + @Mutation() + @Allow(Permission.Owner) + async updateReviewProduct( + @Ctx() ctx: RequestContext, + @Args() { input }: MutationUpdateReviewProductArgs + ): Promise { + const customer = await this.reviewProductService.getCustomerOrThrow(ctx); + await this.reviewProductService.findById(input.id, { + where: { customer: customer } + }); + return await this.reviewProductService.update(ctx, input); + } +} diff --git a/src/api/resolvers/shop/review-store.resolver.test.ts b/src/api/resolvers/shop/review-store.resolver.spec.ts similarity index 90% rename from src/api/resolvers/shop/review-store.resolver.test.ts rename to src/api/resolvers/shop/review-store.resolver.spec.ts index 9f539e5..3d414b7 100644 --- a/src/api/resolvers/shop/review-store.resolver.test.ts +++ b/src/api/resolvers/shop/review-store.resolver.spec.ts @@ -16,7 +16,11 @@ describe('ReviewStoreShopResolver', () => { const reviewStoreService = createMock({ getNPSAvg: async () => 9, findCustomerReview: async () => exampleReviewStore, - create: async () => exampleReviewStore + create: async () => exampleReviewStore, + findAll: async () => ({ + items: examplesReviewStore, + totalItems: 3 + }) }); beforeEach(async () => { const module: TestingModule = await Test.createTestingModule({ @@ -40,6 +44,14 @@ describe('ReviewStoreShopResolver', () => { await expect(resolver.avgReviewStore()).resolves.toBe(9); }); }); + describe('reviewsStore', () => { + it('should get a review list properly', async () => { + await expect(resolver.reviewsStore({})).resolves.toEqual({ + items: examplesReviewStore, + totalItems: 3 + }); + }); + }); describe('myReviewStore', () => { it('should return my review for store', async () => { diff --git a/src/api/resolvers/shop/review-store.resolver.ts b/src/api/resolvers/shop/review-store.resolver.ts index b6fac71..7c3a22f 100644 --- a/src/api/resolvers/shop/review-store.resolver.ts +++ b/src/api/resolvers/shop/review-store.resolver.ts @@ -5,9 +5,7 @@ import { Ctx, RequestContext, Allow, - IllegalOperationError, - UnauthorizedError, - Customer + IllegalOperationError } from '@vendure/core'; import { ReviewStoreEntity } from '../../../entities/review-store.entity'; import { @@ -71,4 +69,11 @@ export class ReviewStoreShopResolver { const customer = await this.reviewStoreService.getCustomerOrThrow(ctx); return await this.reviewStoreService.findCustomerReview(customer); } + + @Query() + async reviewsStore(@Args() { options }: any) { + return this.reviewStoreService.findAll(options || undefined, { + where: { state: 'Authorized' } + }); + } } diff --git a/src/api/schema/index.ts b/src/api/schema/index.ts deleted file mode 100644 index 89d2791..0000000 --- a/src/api/schema/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './admin'; -export * from './shop'; diff --git a/src/api/schemas/index.ts b/src/api/schemas/index.ts new file mode 100644 index 0000000..96a919f --- /dev/null +++ b/src/api/schemas/index.ts @@ -0,0 +1,4 @@ +export * from './review-store.admin.schema'; +export * from './review-store.shop.schema'; +export * from './review-product.admin.schema'; +export * from './review-product.shop.schema'; diff --git a/src/api/schemas/review-product.admin.schema.ts b/src/api/schemas/review-product.admin.schema.ts new file mode 100644 index 0000000..8dea03a --- /dev/null +++ b/src/api/schemas/review-product.admin.schema.ts @@ -0,0 +1,31 @@ +import gql from 'graphql-tag'; + +export const reviewProductAdminApiExtension = gql` + type ReviewProduct implements Node { + id: ID! + title: String! + description: String! + state: String! + stars: Int! + nextStates: [String!]! + customer: Customer! + product: Product! + } + type ReviewProductList implements PaginatedList { + items: [ReviewProduct!]! + totalItems: Int! + } + + extend type Mutation { + transitionReviewProductToState(id: ID!, state: String!): ReviewProduct + } + extend type Query { + "Get the review product" + reviewProduct(id: ID!): ReviewProduct + + "Get the list of reviews product" + reviewsProduct(options: ReviewProductListOptions): ReviewProductList! + } + + input ReviewProductListOptions +`; diff --git a/src/api/schemas/review-product.shop.schema.ts b/src/api/schemas/review-product.shop.schema.ts new file mode 100644 index 0000000..51ffc72 --- /dev/null +++ b/src/api/schemas/review-product.shop.schema.ts @@ -0,0 +1,36 @@ +import gql from 'graphql-tag'; + +export const reviewProductShopApiExtension = gql` + type ReviewProduct implements Node { + id: ID! + title: String! + description: String! + stars: Int! + } + input CreateReviewProductInput { + productId: ID! + title: String! + description: String! + stars: Int! + } + input UpdateReviewProductInput { + id: ID! + title: String + description: String + stars: Int + } + type ReviewProductList implements PaginatedList { + items: [ReviewProduct!]! + totalItems: Int! + } + extend type Product { + reviewAvg: Int! + reviews(options: ReviewProductListOptions): ReviewProductList! + canReview: Boolean + } + extend type Mutation { + createReviewProduct(input: CreateReviewProductInput!): ReviewProduct + updateReviewProduct(input: UpdateReviewProductInput!): ReviewProduct + } + input ReviewProductListOptions +`; diff --git a/src/api/schema/admin.ts b/src/api/schemas/review-store.admin.schema.ts similarity index 90% rename from src/api/schema/admin.ts rename to src/api/schemas/review-store.admin.schema.ts index 1404662..152c750 100644 --- a/src/api/schema/admin.ts +++ b/src/api/schemas/review-store.admin.schema.ts @@ -1,6 +1,6 @@ import gql from 'graphql-tag'; -export const adminApiExtensions = gql` +export const reviewStoreAdminApiExtension = gql` type ReviewStore implements Node { id: ID! title: String! @@ -8,13 +8,12 @@ export const adminApiExtensions = gql` state: String! nps: Int! nextStates: [String!]! - customer: Customer + customer: Customer! } type ReviewStoreList implements PaginatedList { items: [ReviewStore!]! totalItems: Int! } - extend type Mutation { transitionReviewStoreToState(id: ID!, state: String!): ReviewStore } @@ -28,6 +27,5 @@ export const adminApiExtensions = gql` "Get the list of reviews store" reviewsStore(options: ReviewStoreListOptions): ReviewStoreList! } - input ReviewStoreListOptions `; diff --git a/src/api/schema/shop.ts b/src/api/schemas/review-store.shop.schema.ts similarity index 69% rename from src/api/schema/shop.ts rename to src/api/schemas/review-store.shop.schema.ts index f75b6b4..0a2c7ba 100644 --- a/src/api/schema/shop.ts +++ b/src/api/schemas/review-store.shop.schema.ts @@ -1,6 +1,6 @@ import gql from 'graphql-tag'; -export const shopApiExtensions = gql` +export const reviewStoreShopApiExtension = gql` type ReviewStore implements Node { id: ID! title: String! @@ -17,6 +17,12 @@ export const shopApiExtensions = gql` description: String nps: Int } + + type ReviewStoreList implements PaginatedList { + items: [ReviewStore!]! + totalItems: Int! + } + extend type Mutation { createReviewStore(input: CreateReviewStoreInput!): ReviewStore updateReviewStore(input: UpdateReviewStoreInput): ReviewStore @@ -27,5 +33,9 @@ export const shopApiExtensions = gql` "Get the review store of the current customer" myReviewStore: ReviewStore + + "Get the list of reviews store" + reviewsStore(options: ReviewStoreListOptions): ReviewStoreList! } + input ReviewStoreListOptions `; diff --git a/src/entities/index.ts b/src/entities/index.ts index 15c350a..27a1a75 100644 --- a/src/entities/index.ts +++ b/src/entities/index.ts @@ -1 +1,2 @@ export * from './review-store.entity'; +export * from './review-product.entity'; diff --git a/src/entities/review-product.entity.spec.ts b/src/entities/review-product.entity.spec.ts new file mode 100644 index 0000000..4e620e2 --- /dev/null +++ b/src/entities/review-product.entity.spec.ts @@ -0,0 +1,14 @@ +import { exampleReviewProduct } from '../test-helpers'; + +describe('ReviewProductEntity', () => { + it('should make a review product with basic info', () => { + const reviewProduct = exampleReviewProduct; + expect(reviewProduct).toBeTruthy(); + expect(reviewProduct.title).toBe('Review 1'); + expect(reviewProduct.description).toBe('Good product'); + expect(reviewProduct.state).toBe('Created'); + expect(reviewProduct.stars).toBe(5); + expect(reviewProduct.customer.firstName).toBe('Jony'); + expect(reviewProduct.product.name).toBe('Laptop'); + }); +}); diff --git a/src/entities/review-product.entity.ts b/src/entities/review-product.entity.ts new file mode 100644 index 0000000..769aa8b --- /dev/null +++ b/src/entities/review-product.entity.ts @@ -0,0 +1,19 @@ +import { Customer, Product } from '@vendure/core'; +import { Column, Entity, ManyToOne } from 'typeorm'; +import { ReviewBaseEntity } from './review-base.entity'; +import { DeepPartial } from '@vendure/core'; + +@Entity() +export class ReviewProductEntity extends ReviewBaseEntity { + constructor(input?: DeepPartial) { + super(input); + } + @Column('int') + stars: number; + + @ManyToOne(() => Customer) + customer: Customer; + + @ManyToOne(() => Product) + product: Product; +} diff --git a/src/events/index.ts b/src/events/index.ts index c5ba64c..feac402 100644 --- a/src/events/index.ts +++ b/src/events/index.ts @@ -1 +1,2 @@ -export * from './review-store-transition.event'; +export * from './review-store-state-transition.event'; +export * from './review-product-state-transition.event'; diff --git a/src/events/review-product-state-transition.event.spec.ts b/src/events/review-product-state-transition.event.spec.ts new file mode 100644 index 0000000..5103382 --- /dev/null +++ b/src/events/review-product-state-transition.event.spec.ts @@ -0,0 +1,19 @@ +import { ReviewProductStateTransitionEvent } from './review-product-state-transition.event'; +import { adminCtx, exampleReviewProduct } from '../test-helpers'; + +describe('ReviewProductStateTransitionEvent', () => { + it('should create a event correctly', () => { + const event = new ReviewProductStateTransitionEvent( + 'Created', + 'Authorized', + adminCtx, + exampleReviewProduct + ); + + expect(event).toBeTruthy(); + expect(event.fromState).toBe('Created'); + expect(event.toState).toBe('Authorized'); + expect(event.review).toEqual(exampleReviewProduct); + expect(event.ctx).toEqual(adminCtx); + }); +}); diff --git a/src/events/review-product-state-transition.event.ts b/src/events/review-product-state-transition.event.ts new file mode 100644 index 0000000..7f1f1a5 --- /dev/null +++ b/src/events/review-product-state-transition.event.ts @@ -0,0 +1,6 @@ +import { ReviewStateTransitionEvent } from './review-state-transition.event'; +import { ReviewProductEntity } from 'src/entities'; + +export class ReviewProductStateTransitionEvent extends ReviewStateTransitionEvent< + ReviewProductEntity +> {} diff --git a/src/events/review-state-transition.event.ts b/src/events/review-state-transition.event.ts new file mode 100644 index 0000000..040be37 --- /dev/null +++ b/src/events/review-state-transition.event.ts @@ -0,0 +1,19 @@ +import { VendureEvent, RequestContext } from '@vendure/core'; +import { ReviewState } from '../helpers/review-state'; +import { ReviewBaseEntity } from '../entities/review-base.entity'; + +/** + * This event is fired whenever a `Review` transitions from one `ReviewState` to another + */ +export abstract class ReviewStateTransitionEvent< + Et extends ReviewBaseEntity +> extends VendureEvent { + constructor( + public fromState: ReviewState, + public toState: ReviewState, + public ctx: RequestContext, + public review: Et + ) { + super(); + } +} diff --git a/src/events/review-store-state-transition.event.ts b/src/events/review-store-state-transition.event.ts new file mode 100644 index 0000000..f2e2931 --- /dev/null +++ b/src/events/review-store-state-transition.event.ts @@ -0,0 +1,6 @@ +import { ReviewStateTransitionEvent } from './review-state-transition.event'; +import { ReviewStoreEntity } from 'src/entities'; + +export class ReviewStoreStateTransitionEvent extends ReviewStateTransitionEvent< + ReviewStoreEntity +> {} diff --git a/src/events/review-store-transition.event.spec.ts b/src/events/review-store-transition.event.spec.ts index 08c4132..606e34f 100644 --- a/src/events/review-store-transition.event.spec.ts +++ b/src/events/review-store-transition.event.spec.ts @@ -1,4 +1,4 @@ -import { ReviewStoreStateTransitionEvent } from './review-store-transition.event'; +import { ReviewStoreStateTransitionEvent } from './review-store-state-transition.event'; import { adminCtx, exampleReviewStore } from '../test-helpers'; describe('ReviewStoreStateTransitionEvent', () => { @@ -13,7 +13,7 @@ describe('ReviewStoreStateTransitionEvent', () => { expect(event).toBeTruthy(); expect(event.fromState).toBe('Created'); expect(event.toState).toBe('Authorized'); - expect(event.reviewStore).toEqual(exampleReviewStore); + expect(event.review).toEqual(exampleReviewStore); expect(event.ctx).toEqual(adminCtx); }); }); diff --git a/src/events/review-store-transition.event.ts b/src/events/review-store-transition.event.ts deleted file mode 100644 index a9a0b9d..0000000 --- a/src/events/review-store-transition.event.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { VendureEvent, RequestContext } from '@vendure/core'; -import { ReviewState } from '../helpers/review-state'; -import { ReviewStoreEntity } from '../entities/review-store.entity'; - -/** - * This event is fired whenever a `ReviewStore` transitions from one `ReviewState` to another - */ -export class ReviewStoreStateTransitionEvent extends VendureEvent { - constructor( - public fromState: ReviewState, - public toState: ReviewState, - public ctx: RequestContext, - public reviewStore: ReviewStoreEntity - ) { - super(); - } -} diff --git a/src/helpers/review.service.ts b/src/helpers/review.service.ts index a60e91a..9c1d663 100644 --- a/src/helpers/review.service.ts +++ b/src/helpers/review.service.ts @@ -8,11 +8,13 @@ import { getEntityOrThrow, Customer, CustomerService, - VendureEvent, DeepPartial, patchEntity, - UnauthorizedError + UnauthorizedError, + ExtendedListQueryOptions } from '@vendure/core'; +import { FindOneOptions } from 'typeorm'; +import { ReviewStateTransitionEvent } from '../events/review-state-transition.event'; import { ReviewState } from './review-state'; import { ListQueryOptions } from '@vendure/core/dist/common/types/common-types'; import { ReviewBaseEntity } from '../entities/review-base.entity'; @@ -25,7 +27,7 @@ import { ReviewStateMachine } from './review-state-machine'; */ export class ReviewService< Et extends ReviewBaseEntity, - Ev extends VendureEvent + Ev extends ReviewStateTransitionEvent > { reviewStateMachine: ReviewStateMachine; constructor( @@ -47,13 +49,17 @@ export class ReviewService< } async findAll( - options?: ListQueryOptions + options?: ListQueryOptions, + extendedOptions?: ExtendedListQueryOptions ): Promise<{ items: Et[]; totalItems: number; }> { return await this.listQueryBuilder - .build(this.entity, options, { relations: this.entityRelations }) + .build(this.entity, options, { + ...extendedOptions, + relations: this.entityRelations + }) .getManyAndCount() .then(([reviews, totalItems]) => { return { @@ -63,8 +69,9 @@ export class ReviewService< }); } - async findById(id: ID): Promise { + async findById(id: ID, options?: FindOneOptions): Promise { return await getEntityOrThrow(this.connection, this.entity, id, { + ...options, relations: this.entityRelations }); } diff --git a/src/plugins/index.ts b/src/plugins/index.ts index 87a4fe4..bfd2403 100644 --- a/src/plugins/index.ts +++ b/src/plugins/index.ts @@ -1 +1,2 @@ export * from './review-store.plugin'; +export * from './review-product.plugin'; diff --git a/src/plugins/review-product.plugin.ts b/src/plugins/review-product.plugin.ts new file mode 100644 index 0000000..21c175a --- /dev/null +++ b/src/plugins/review-product.plugin.ts @@ -0,0 +1,27 @@ +import { PluginCommonModule, VendurePlugin } from '@vendure/core'; +import { ReviewProductEntity } from '../entities'; +import { ReviewProductService } from '../services'; +import { + ReviewProductAdminResolver, + ReviewProductShopResolver, + ReviewProductShopProductResolver +} from '../api/resolvers'; +import { + reviewProductAdminApiExtension, + reviewProductShopApiExtension +} from '../api/schemas'; + +@VendurePlugin({ + imports: [PluginCommonModule], + entities: [ReviewProductEntity], + providers: [ReviewProductService], + adminApiExtensions: { + schema: reviewProductAdminApiExtension, + resolvers: [ReviewProductAdminResolver] + }, + shopApiExtensions: { + schema: reviewProductShopApiExtension, + resolvers: [ReviewProductShopResolver, ReviewProductShopProductResolver] + } +}) +export class ReviewsProductPlugin {} diff --git a/src/plugins/review-store.plugin.ts b/src/plugins/review-store.plugin.ts index 9ec5dbe..295ff0a 100644 --- a/src/plugins/review-store.plugin.ts +++ b/src/plugins/review-store.plugin.ts @@ -5,18 +5,21 @@ import { ReviewStoreAdminResolver, ReviewStoreShopResolver } from '../api/resolvers'; -import { adminApiExtensions, shopApiExtensions } from '../api/schema'; +import { + reviewStoreAdminApiExtension, + reviewStoreShopApiExtension +} from '../api/schemas'; @VendurePlugin({ imports: [PluginCommonModule], entities: [ReviewStoreEntity], providers: [ReviewStoreService], adminApiExtensions: { - schema: adminApiExtensions, + schema: reviewStoreAdminApiExtension, resolvers: [ReviewStoreAdminResolver] }, shopApiExtensions: { - schema: shopApiExtensions, + schema: reviewStoreShopApiExtension, resolvers: [ReviewStoreShopResolver] } }) diff --git a/src/services/index.ts b/src/services/index.ts index 2a1531e..4935503 100644 --- a/src/services/index.ts +++ b/src/services/index.ts @@ -1 +1,2 @@ export * from './review-store.service'; +export * from './review-product.service'; diff --git a/src/services/review-product.service.spec.ts b/src/services/review-product.service.spec.ts new file mode 100644 index 0000000..d6d3476 --- /dev/null +++ b/src/services/review-product.service.spec.ts @@ -0,0 +1,144 @@ +import { + exampleProduct, + exampleCustomer, + examplesReviewProduct +} from './../test-helpers/entities'; +import { createMock } from '@golevelup/nestjs-testing'; +import { Connection } from 'typeorm'; +import { TestingModule, Test } from '@nestjs/testing'; +import { getConnectionToken } from '@nestjs/typeorm'; +import { + ListQueryBuilder, + CustomerService, + EventBus, + Product, + OrderLine +} from '@vendure/core'; +import { ReviewProductEntity } from '../entities/review-product.entity'; +import { ReviewProductService } from './review-product.service'; + +describe('ReviewProductService', () => { + let resolver: ReviewProductService; + + const connection = createMock(); + const listQueryBuilder = createMock(); + const customerService = createMock(); + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [ + ReviewProductService, + EventBus, + { provide: ListQueryBuilder, useValue: listQueryBuilder }, + { provide: CustomerService, useValue: customerService }, + { + provide: getConnectionToken(), + useValue: connection + } + ] + }).compile(); + resolver = module.get(ReviewProductService); + }); + + it('should be defined', () => { + expect(resolver).toBeDefined(); + }); + describe('getAvgStars', () => { + it('should return the average', async () => { + connection + .getRepository(ReviewProductEntity) + .createQueryBuilder('review_product') + .select('AVG(stars)', 'starasync s') + .where('state = :state', { state: 'Authorized' }) + .getRawOne.mockImplementation(async () => ({ stars: 5 })); + await expect(resolver.getAvgStars()).resolves.toBe(5); + }); + }); + describe('getProductOrThrow', () => { + it('should get product by id', async () => { + connection + .getRepository(Product) + .findOneOrFail.mockImplementation(async () => exampleProduct); + await expect(resolver.getProductOrThrow('1')).resolves.toBe( + exampleProduct + ); + }); + }); + describe('checkIfCustomerIsValidToCreateReviewProduct', () => { + it('should try to check if customer is valid to create review product and succeeds', async () => { + connection + .getRepository(Product) + .findOneOrFail.mockImplementation(async () => exampleProduct); + connection + .getRepository(ReviewProductEntity) + .count.mockImplementationOnce(async () => 0); + connection + .getRepository(OrderLine) + .count.mockImplementationOnce(async () => 1); + await expect( + resolver.checkIfCustomerIsValidToCreateReviewProduct( + exampleCustomer, + exampleProduct + ) + ).resolves.toBe(true); + }); + + it('should try to check if customer is valid to create review product in a product that he already reviewed and fail', async () => { + connection + .getRepository(Product) + .findOneOrFail.mockImplementation(async () => exampleProduct); + connection + .getRepository(ReviewProductEntity) + .count.mockImplementationOnce(async () => 1); + await expect( + resolver.checkIfCustomerIsValidToCreateReviewProduct( + exampleCustomer, + exampleProduct + ) + ).resolves.toBe(false); + }); + + it("should try to check if customer is valid to create review product in a product that he didn't bought and fail", async () => { + connection + .getRepository(Product) + .findOneOrFail.mockImplementation(async () => exampleProduct); + connection + .getRepository(ReviewProductEntity) + .count.mockImplementationOnce(async () => 0); + connection + .getRepository(OrderLine) + .count.mockImplementationOnce(async () => 0); + await expect( + resolver.checkIfCustomerIsValidToCreateReviewProduct( + exampleCustomer, + exampleProduct + ) + ).resolves.toBe(false); + }); + }); + + describe('availableProductsToReview', () => { + it('should get available products to review', async () => { + connection + .getRepository(ReviewProductEntity) + .find.mockImplementationOnce(async () => []); + listQueryBuilder + .build(OrderLine, {}, {}) + .select('productVariant') + .distinct(true) + .getMany.mockImplementationOnce(async () => [ + new OrderLine({ productVariant: { productId: '1' } }), + new OrderLine({ productVariant: { productId: '2' } }) + ]); + listQueryBuilder + .build(Product, {}, {}) + .getManyAndCount.mockImplementationOnce(async () => [ + examplesReviewProduct, + 3 + ]); + await expect( + resolver.availableProductsToReview(exampleCustomer, {}) + ).resolves.toEqual({ items: examplesReviewProduct, totalItems: 3 }); + }); + }); +}); diff --git a/src/services/review-product.service.ts b/src/services/review-product.service.ts new file mode 100644 index 0000000..f5309de --- /dev/null +++ b/src/services/review-product.service.ts @@ -0,0 +1,134 @@ +import { Injectable } from '@nestjs/common'; +import { InjectConnection } from '@nestjs/typeorm'; +import { Connection, In } from 'typeorm'; +import { ReviewProductEntity } from '../entities'; +import { + EventBus, + CustomerService, + ListQueryBuilder, + OrderLine, + Customer, + Product, + ID +} from '@vendure/core'; +import { ReviewService } from '../helpers'; +import { ReviewProductStateTransitionEvent } from '../events'; +import { ListQueryOptions } from '@vendure/core/dist/common/types/common-types'; + +@Injectable() +export class ReviewProductService extends ReviewService< + ReviewProductEntity, + ReviewProductStateTransitionEvent +> { + constructor( + @InjectConnection() connection: Connection, + listQueryBuilder: ListQueryBuilder, + customerService: CustomerService, + eventBus: EventBus + ) { + super( + connection, + listQueryBuilder, + customerService, + eventBus, + ReviewProductEntity, + ReviewProductStateTransitionEvent, + ['customer', 'product'] + ); + } + + async getAvgStars(): Promise { + const { stars } = await this.connection + .getRepository(ReviewProductEntity) + .createQueryBuilder('review_product') + .select('AVG(stars)', 'stars') + .where('state = :state', { state: 'Authorized' }) + .getRawOne(); + return stars ? stars : 0; + } + + async getProductOrThrow(id: ID): Promise { + return this.connection.getRepository(Product).findOneOrFail(id); + } + + async checkIfCustomerIsValidToCreateReviewProduct( + customer: Customer, + product: Product + ): Promise { + const countReviewProduct = await this.connection + .getRepository(ReviewProductEntity) + .count({ + where: { + customer: customer, + product: product + } + }); + if (countReviewProduct > 0) { + return false; + } + + const countProductBoughtByCustomer = await this.connection + .getRepository(OrderLine) + .count({ + relations: ['order', 'productVariant'], + where: { + order: { + customer: customer, + active: false + }, + productVariant: { + productId: product.id + } + } + }); + return countProductBoughtByCustomer > 0; + } + + async availableProductsToReview( + customer: Customer, + options?: ListQueryOptions + ) { + const customerReviews = await this.connection + .getRepository(ReviewProductEntity) + .find({ + select: ['id', 'product'], + where: { + customer: customer + } + }); + + const orderLinesWithDistinctProductVariants = await this.listQueryBuilder + .build( + OrderLine, + {}, + { + relations: ['order', 'productVariant'], + where: { order: { customer: customer, active: false } } + } + ) + .select('productVariant') + .distinct(true) + .getMany(); + + const availableProductsToReviewIds = orderLinesWithDistinctProductVariants.reduce( + (value, line) => value.add(line.productVariant.productId), + new Set() + ); + + customerReviews.map((r) => + availableProductsToReviewIds.delete(r.product.id) + ); + + return await this.listQueryBuilder + .build(Product, options, { + where: { id: In([...availableProductsToReviewIds]) } + }) + .getManyAndCount() + .then(([products, totalItems]) => { + return { + items: products, + totalItems + }; + }); + } +} diff --git a/src/test-helpers/entities.ts b/src/test-helpers/entities.ts index f4cd885..5cdc360 100644 --- a/src/test-helpers/entities.ts +++ b/src/test-helpers/entities.ts @@ -1,9 +1,50 @@ -import { ReviewStoreEntity } from '../entities'; -import { Customer } from '@vendure/core'; +import { ReviewStoreEntity, ReviewProductEntity } from '../entities'; +import { Customer, Product } from '@vendure/core'; export const exampleCustomer = new Customer({ firstName: 'Jony' }); + +export const exampleProduct = new Product({ + name: 'Laptop' +}); + +export const exampleReviewProduct = new ReviewProductEntity({ + id: 1, + title: 'Review 1', + description: 'Good product', + state: 'Created', + stars: 5, + customer: exampleCustomer, + product: exampleProduct +}); + +export const examplesReviewProduct = [ + exampleReviewProduct, + new ReviewProductEntity({ + id: 2, + title: 'Review 2', + description: 'Good', + state: 'Created', + stars: 4, + customer: new Customer({ + firstName: 'Tony' + }), + product: exampleProduct + }), + new ReviewProductEntity({ + id: 3, + title: 'Review 3', + description: 'Bad', + state: 'Created', + stars: 3, + customer: new Customer({ + firstName: 'Any' + }), + product: exampleProduct + }) +]; + export const exampleReviewStore = new ReviewStoreEntity({ id: 1, title: 'Review 1', diff --git a/src/types/generated-admin-schema.ts b/src/types/generated-admin-schema.ts index 4427185..88df5c3 100644 --- a/src/types/generated-admin-schema.ts +++ b/src/types/generated-admin-schema.ts @@ -1937,6 +1937,7 @@ export type Mutation = { /** Remove members from a Zone */ removeMembersFromZone: Zone; transitionReviewStoreToState?: Maybe; + transitionReviewProductToState?: Maybe; }; export type MutationCreateAdministratorArgs = { @@ -2314,6 +2315,11 @@ export type MutationTransitionReviewStoreToStateArgs = { state: Scalars['String']; }; +export type MutationTransitionReviewProductToStateArgs = { + id: Scalars['ID']; + state: Scalars['String']; +}; + export type NativeAuthInput = { username: Scalars['String']; password: Scalars['String']; @@ -2914,6 +2920,10 @@ export type Query = { reviewStore?: Maybe; /** Get the list of reviews store */ reviewsStore: ReviewStoreList; + /** Get the review product */ + reviewProduct?: Maybe; + /** Get the list of reviews product */ + reviewsProduct: ReviewProductList; }; export type QueryAdministratorsArgs = { @@ -3082,6 +3092,14 @@ export type QueryReviewsStoreArgs = { options?: Maybe; }; +export type QueryReviewProductArgs = { + id: Scalars['ID']; +}; + +export type QueryReviewsProductArgs = { + options?: Maybe; +}; + export type Refund = Node & { __typename?: 'Refund'; id: Scalars['ID']; @@ -3125,6 +3143,46 @@ export type Return = Node & orderItem: OrderItem; }; +export type ReviewProduct = Node & { + __typename?: 'ReviewProduct'; + id: Scalars['ID']; + title: Scalars['String']; + description: Scalars['String']; + state: Scalars['String']; + stars: Scalars['Int']; + nextStates: Array; + customer: Customer; + product: Product; +}; + +export type ReviewProductFilterParameter = { + title?: Maybe; + description?: Maybe; + state?: Maybe; + stars?: Maybe; +}; + +export type ReviewProductList = PaginatedList & { + __typename?: 'ReviewProductList'; + items: Array; + totalItems: Scalars['Int']; +}; + +export type ReviewProductListOptions = { + skip?: Maybe; + take?: Maybe; + sort?: Maybe; + filter?: Maybe; +}; + +export type ReviewProductSortParameter = { + id?: Maybe; + title?: Maybe; + description?: Maybe; + state?: Maybe; + stars?: Maybe; +}; + export type ReviewStore = Node & { __typename?: 'ReviewStore'; id: Scalars['ID']; @@ -3133,7 +3191,7 @@ export type ReviewStore = Node & { state: Scalars['String']; nps: Scalars['Int']; nextStates: Array; - customer?: Maybe; + customer: Customer; }; export type ReviewStoreFilterParameter = { diff --git a/src/types/generated-shop-schema.ts b/src/types/generated-shop-schema.ts index b291910..42d79f9 100644 --- a/src/types/generated-shop-schema.ts +++ b/src/types/generated-shop-schema.ts @@ -324,6 +324,13 @@ export type CreateCustomerInput = { customFields?: Maybe; }; +export type CreateReviewProductInput = { + productId: Scalars['ID']; + title: Scalars['String']; + description: Scalars['String']; + stars: Scalars['Int']; +}; + export type CreateReviewStoreInput = { title: Scalars['String']; description: Scalars['String']; @@ -1445,6 +1452,8 @@ export type Mutation = { resetPassword: LoginResult; createReviewStore?: Maybe; updateReviewStore?: Maybe; + createReviewProduct?: Maybe; + updateReviewProduct?: Maybe; }; export type MutationAddItemToOrderArgs = { @@ -1568,6 +1577,14 @@ export type MutationUpdateReviewStoreArgs = { input?: Maybe; }; +export type MutationCreateReviewProductArgs = { + input: CreateReviewProductInput; +}; + +export type MutationUpdateReviewProductArgs = { + input: UpdateReviewProductInput; +}; + export type NativeAuthInput = { username: Scalars['String']; password: Scalars['String']; @@ -1830,9 +1847,16 @@ export type Product = Node & { facetValues: Array; translations: Array; collections: Array; + reviewAvg: Scalars['Int']; + reviews: ReviewProductList; + canReview?: Maybe; customFields?: Maybe; }; +export type ProductReviewsArgs = { + options?: Maybe; +}; + export type ProductFilterParameter = { createdAt?: Maybe; updatedAt?: Maybe; @@ -1840,6 +1864,8 @@ export type ProductFilterParameter = { name?: Maybe; slug?: Maybe; description?: Maybe; + reviewAvg?: Maybe; + canReview?: Maybe; }; export type ProductList = PaginatedList & { @@ -1907,6 +1933,7 @@ export type ProductSortParameter = { name?: Maybe; slug?: Maybe; description?: Maybe; + reviewAvg?: Maybe; }; export type ProductTranslation = { @@ -2056,6 +2083,8 @@ export type Query = { avgReviewStore?: Maybe; /** Get the review store of the current customer */ myReviewStore?: Maybe; + /** Get the list of reviews store */ + reviewsStore: ReviewStoreList; }; export type QueryCollectionsArgs = { @@ -2088,6 +2117,10 @@ export type QuerySearchArgs = { input: SearchInput; }; +export type QueryReviewsStoreArgs = { + options?: Maybe; +}; + export type Refund = Node & { __typename?: 'Refund'; id: Scalars['ID']; @@ -2127,6 +2160,40 @@ export type Return = Node & orderItem: OrderItem; }; +export type ReviewProduct = Node & { + __typename?: 'ReviewProduct'; + id: Scalars['ID']; + title: Scalars['String']; + description: Scalars['String']; + stars: Scalars['Int']; +}; + +export type ReviewProductFilterParameter = { + title?: Maybe; + description?: Maybe; + stars?: Maybe; +}; + +export type ReviewProductList = PaginatedList & { + __typename?: 'ReviewProductList'; + items: Array; + totalItems: Scalars['Int']; +}; + +export type ReviewProductListOptions = { + skip?: Maybe; + take?: Maybe; + sort?: Maybe; + filter?: Maybe; +}; + +export type ReviewProductSortParameter = { + id?: Maybe; + title?: Maybe; + description?: Maybe; + stars?: Maybe; +}; + export type ReviewStore = Node & { __typename?: 'ReviewStore'; id: Scalars['ID']; @@ -2135,6 +2202,32 @@ export type ReviewStore = Node & { nps: Scalars['Int']; }; +export type ReviewStoreFilterParameter = { + title?: Maybe; + description?: Maybe; + nps?: Maybe; +}; + +export type ReviewStoreList = PaginatedList & { + __typename?: 'ReviewStoreList'; + items: Array; + totalItems: Scalars['Int']; +}; + +export type ReviewStoreListOptions = { + skip?: Maybe; + take?: Maybe; + sort?: Maybe; + filter?: Maybe; +}; + +export type ReviewStoreSortParameter = { + id?: Maybe; + title?: Maybe; + description?: Maybe; + nps?: Maybe; +}; + export type Role = Node & { __typename?: 'Role'; id: Scalars['ID']; @@ -2386,6 +2479,13 @@ export type UpdateOrderInput = { customFields?: Maybe; }; +export type UpdateReviewProductInput = { + id: Scalars['ID']; + title?: Maybe; + description?: Maybe; + stars?: Maybe; +}; + export type UpdateReviewStoreInput = { title?: Maybe; description?: Maybe; diff --git a/src/ui/common/fragments.graphql.types.ts b/src/ui/common/fragments.graphql.types.ts index 8eb3486..4d674fc 100644 --- a/src/ui/common/fragments.graphql.types.ts +++ b/src/ui/common/fragments.graphql.types.ts @@ -4,7 +4,8 @@ export type ReviewStoreFragment = { __typename?: 'ReviewStore' } & Pick< Types.ReviewStore, 'id' | 'title' | 'description' | 'state' | 'nps' | 'nextStates' > & { - customer?: Types.Maybe< - { __typename?: 'Customer' } & Pick + customer: { __typename?: 'Customer' } & Pick< + Types.Customer, + 'id' | 'firstName' >; }; diff --git a/src/ui/common/generated-admin-schema.ts b/src/ui/common/generated-admin-schema.ts index 4427185..88df5c3 100644 --- a/src/ui/common/generated-admin-schema.ts +++ b/src/ui/common/generated-admin-schema.ts @@ -1937,6 +1937,7 @@ export type Mutation = { /** Remove members from a Zone */ removeMembersFromZone: Zone; transitionReviewStoreToState?: Maybe; + transitionReviewProductToState?: Maybe; }; export type MutationCreateAdministratorArgs = { @@ -2314,6 +2315,11 @@ export type MutationTransitionReviewStoreToStateArgs = { state: Scalars['String']; }; +export type MutationTransitionReviewProductToStateArgs = { + id: Scalars['ID']; + state: Scalars['String']; +}; + export type NativeAuthInput = { username: Scalars['String']; password: Scalars['String']; @@ -2914,6 +2920,10 @@ export type Query = { reviewStore?: Maybe; /** Get the list of reviews store */ reviewsStore: ReviewStoreList; + /** Get the review product */ + reviewProduct?: Maybe; + /** Get the list of reviews product */ + reviewsProduct: ReviewProductList; }; export type QueryAdministratorsArgs = { @@ -3082,6 +3092,14 @@ export type QueryReviewsStoreArgs = { options?: Maybe; }; +export type QueryReviewProductArgs = { + id: Scalars['ID']; +}; + +export type QueryReviewsProductArgs = { + options?: Maybe; +}; + export type Refund = Node & { __typename?: 'Refund'; id: Scalars['ID']; @@ -3125,6 +3143,46 @@ export type Return = Node & orderItem: OrderItem; }; +export type ReviewProduct = Node & { + __typename?: 'ReviewProduct'; + id: Scalars['ID']; + title: Scalars['String']; + description: Scalars['String']; + state: Scalars['String']; + stars: Scalars['Int']; + nextStates: Array; + customer: Customer; + product: Product; +}; + +export type ReviewProductFilterParameter = { + title?: Maybe; + description?: Maybe; + state?: Maybe; + stars?: Maybe; +}; + +export type ReviewProductList = PaginatedList & { + __typename?: 'ReviewProductList'; + items: Array; + totalItems: Scalars['Int']; +}; + +export type ReviewProductListOptions = { + skip?: Maybe; + take?: Maybe; + sort?: Maybe; + filter?: Maybe; +}; + +export type ReviewProductSortParameter = { + id?: Maybe; + title?: Maybe; + description?: Maybe; + state?: Maybe; + stars?: Maybe; +}; + export type ReviewStore = Node & { __typename?: 'ReviewStore'; id: Scalars['ID']; @@ -3133,7 +3191,7 @@ export type ReviewStore = Node & { state: Scalars['String']; nps: Scalars['Int']; nextStates: Array; - customer?: Maybe; + customer: Customer; }; export type ReviewStoreFilterParameter = { From 70bab3e14caad798710ff62838db088b15572045 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonathan=20C=C3=A9lio?= Date: Thu, 13 Aug 2020 02:54:00 -0300 Subject: [PATCH 4/7] refactor: tests --- e2e/config/inject-order.ts | 25 +- e2e/graphql/admin-api.graphql.ts | 48 +++ e2e/graphql/admin-api.graphql.types.ts | 46 +++ e2e/graphql/shop-api.graphql.ts | 84 +++++ e2e/graphql/shop-api.graphql.types.ts | 64 ++++ e2e/review-product.spec.ts | 336 ++++++++++++++++++ e2e/review-store.spec.ts | 27 +- .../admin/review-product.resolver.ts | 21 +- .../resolvers/shop/review-product.resolver.ts | 63 +++- src/api/schemas/review-product.shop.schema.ts | 6 + src/services/review-product.service.spec.ts | 6 +- src/services/review-product.service.ts | 97 ++--- src/types/generated-shop-schema.ts | 5 + 13 files changed, 768 insertions(+), 60 deletions(-) create mode 100644 e2e/review-product.spec.ts diff --git a/e2e/config/inject-order.ts b/e2e/config/inject-order.ts index 134d297..1333ae2 100644 --- a/e2e/config/inject-order.ts +++ b/e2e/config/inject-order.ts @@ -1,13 +1,14 @@ import { Connection } from 'typeorm'; import { InjectConnection } from '@nestjs/typeorm'; - import { PluginCommonModule, VendurePlugin, OnVendureBootstrap, Order, CurrencyCode, - Customer + Customer, + ProductVariant, + OrderLine } from '@vendure/core'; /** @@ -20,7 +21,11 @@ export class E2EInjectOrderPlugin implements OnVendureBootstrap { constructor(@InjectConnection() private connection: Connection) {} async onVendureBootstrap(): Promise { const customers = await this.connection.getRepository(Customer).find(); - await this.connection.getRepository(Order).save([ + const productsVariant = await this.connection + .getRepository(ProductVariant) + .find({ relations: ['product'] }); + + await this.connection.getRepository(Order).save( new Order({ code: 'T_1', state: 'AddingItems', @@ -37,7 +42,10 @@ export class E2EInjectOrderPlugin implements OnVendureBootstrap { subTotal: 10, shipping: 0, shippingWithTax: 0 - }), + }) + ); + + const completeOrder = await this.connection.getRepository(Order).save( new Order({ code: 'T_2', state: 'Fulfilled', @@ -55,6 +63,13 @@ export class E2EInjectOrderPlugin implements OnVendureBootstrap { shipping: 0, shippingWithTax: 0 }) - ]); + ); + + await this.connection.getRepository(OrderLine).save( + new OrderLine({ + order: completeOrder, + productVariant: productsVariant[0] + }) + ); } } diff --git a/e2e/graphql/admin-api.graphql.ts b/e2e/graphql/admin-api.graphql.ts index d5299af..084a4c3 100644 --- a/e2e/graphql/admin-api.graphql.ts +++ b/e2e/graphql/admin-api.graphql.ts @@ -60,3 +60,51 @@ export const ADMIN_TRANSITION_REVIEW_STORE = gql` } ${ADMIN_REVIEW_STORE_FRAGMENT} `; + +export const ADMIN_REVIEW_PRODUCT_FRAGMENT = gql` + fragment AdminReviewProduct on ReviewProduct { + id + title + description + state + stars + nextStates + customer { + id + firstName + } + product { + id + name + } + } +`; + +export const ADMIN_REVIEW_PRODUCT = gql` + query ReviewProduct($id: ID!) { + reviewProduct(id: $id) { + ...AdminReviewProduct + } + } + ${ADMIN_REVIEW_PRODUCT_FRAGMENT} +`; + +export const ADMIN_REVIEWS_PRODUCT = gql` + query ListReviewProduct { + reviewsProduct { + items { + ...AdminReviewProduct + } + } + } + ${ADMIN_REVIEW_PRODUCT_FRAGMENT} +`; + +export const ADMIN_TRANSITION_REVIEW_PRODUCT = gql` + mutation transitionReviewProductToState($id: ID!, $state: String!) { + transitionReviewProductToState(id: $id, state: $state) { + ...AdminReviewProduct + } + } + ${ADMIN_REVIEW_PRODUCT_FRAGMENT} +`; diff --git a/e2e/graphql/admin-api.graphql.types.ts b/e2e/graphql/admin-api.graphql.types.ts index d9f5e11..24a4bf7 100644 --- a/e2e/graphql/admin-api.graphql.types.ts +++ b/e2e/graphql/admin-api.graphql.types.ts @@ -61,3 +61,49 @@ export type TransitionReviewStoreToStateMutation = { { __typename?: 'ReviewStore' } & AdminReviewStoreFragment >; }; + +export type AdminReviewProductFragment = { + __typename?: 'ReviewProduct'; +} & Pick< + Types.ReviewProduct, + 'id' | 'title' | 'description' | 'state' | 'stars' | 'nextStates' +> & { + customer: { __typename?: 'Customer' } & Pick< + Types.Customer, + 'id' | 'firstName' + >; + product: { __typename?: 'Product' } & Pick; + }; + +export type ReviewProductQueryVariables = Types.Exact<{ + id: Types.Scalars['ID']; +}>; + +export type ReviewProductQuery = { __typename?: 'Query' } & { + reviewProduct?: Types.Maybe< + { __typename?: 'ReviewProduct' } & AdminReviewProductFragment + >; +}; + +export type ListReviewProductQueryVariables = Types.Exact<{ + [key: string]: never; +}>; + +export type ListReviewProductQuery = { __typename?: 'Query' } & { + reviewsProduct: { __typename?: 'ReviewProductList' } & { + items: Array<{ __typename?: 'ReviewProduct' } & AdminReviewProductFragment>; + }; +}; + +export type TransitionReviewProductToStateMutationVariables = Types.Exact<{ + id: Types.Scalars['ID']; + state: Types.Scalars['String']; +}>; + +export type TransitionReviewProductToStateMutation = { + __typename?: 'Mutation'; +} & { + transitionReviewProductToState?: Types.Maybe< + { __typename?: 'ReviewProduct' } & AdminReviewProductFragment + >; +}; diff --git a/e2e/graphql/shop-api.graphql.ts b/e2e/graphql/shop-api.graphql.ts index 72ea035..7673956 100644 --- a/e2e/graphql/shop-api.graphql.ts +++ b/e2e/graphql/shop-api.graphql.ts @@ -27,6 +27,17 @@ export const SHOP_UPDATE_REVIEW_STORE = gql` ${SHOP_REVIEW_STORE_FRAGMENT} `; +export const SHOP_REVIEWS_STORE = gql` + query ListReviewStore { + reviewsStore { + items { + ...ShopReviewStore + } + } + } + ${SHOP_REVIEW_STORE_FRAGMENT} +`; + export const SHOP_MY_REVIEW_STORE = gql` query MyReviewStore { myReviewStore { @@ -40,3 +51,76 @@ export const SHOP_AVG_REVIEW_STORE = gql` avgReviewStore } `; + +export const SHOP_REVIEW_PRODUCT_FRAGMENT = gql` + fragment ShopReviewProduct on ReviewProduct { + id + title + description + stars + } +`; + +export const SHOP_AVAILABLE_PRODUCTS_REVIEW = gql` + query AvailableProductsReview { + availableProductsToReview { + items { + id + name + } + } + } +`; + +export const SHOP_REVIEW_PRODUCT = gql` + query ReviewProduct($id: ID!) { + reviewProduct(id: $id) { + ...ShopReviewProduct + } + } + ${SHOP_REVIEW_PRODUCT_FRAGMENT} +`; + +export const SHOP_REVIEWS_PRODUCT = gql` + query ListReviewProduct { + reviewsProduct { + items { + ...ShopReviewProduct + } + } + } + ${SHOP_REVIEW_PRODUCT_FRAGMENT} +`; +export const SHOP_CREATE_REVIEW_PRODUCT = gql` + mutation CreateReviewProduct($input: CreateReviewProductInput!) { + createReviewProduct(input: $input) { + ...ShopReviewProduct + } + } + ${SHOP_REVIEW_PRODUCT_FRAGMENT} +`; + +export const SHOP_UPDATE_REVIEW_PRODUCT = gql` + mutation UpdateReviewProduct($input: UpdateReviewProductInput!) { + updateReviewProduct(input: $input) { + ...ShopReviewProduct + } + } + ${SHOP_REVIEW_PRODUCT_FRAGMENT} +`; + +export const SHOP_PRODUCT_REVIEW = gql` + query ProductReview { + product(id: "T_1") { + id + reviewAvg + reviews { + items { + ...ShopReviewProduct + } + } + canReview + } + } + ${SHOP_REVIEW_STORE_FRAGMENT} +`; diff --git a/e2e/graphql/shop-api.graphql.types.ts b/e2e/graphql/shop-api.graphql.types.ts index f07762f..b63ebaa 100644 --- a/e2e/graphql/shop-api.graphql.types.ts +++ b/e2e/graphql/shop-api.graphql.types.ts @@ -25,6 +25,28 @@ export type UpdateReviewStoreMutation = { __typename?: 'Mutation' } & { >; }; +export type ListReviewStoreQueryVariables = Types.Exact<{ + [key: string]: never; +}>; + +export type ListReviewStoreQuery = { __typename?: 'Query' } & { + reviewsStore: { __typename?: 'ReviewStoreList' } & { + items: Array<{ __typename?: 'ReviewStore' } & ShopReviewStoreFragment>; + }; +}; + +export type AvailableProductsReviewQueryVariables = Types.Exact<{ + [key: string]: never; +}>; + +export type AvailableProductsReviewQuery = { __typename?: 'Query' } & { + availableProductsToReview: { __typename?: 'ProductList' } & { + items: Array< + { __typename?: 'Product' } & Pick + >; + }; +}; + export type MyReviewStoreQueryVariables = Types.Exact<{ [key: string]: never }>; export type MyReviewStoreQuery = { __typename?: 'Query' } & { @@ -41,3 +63,45 @@ export type AvgReviewStoreQuery = { __typename?: 'Query' } & Pick< Types.Query, 'avgReviewStore' >; + +export type ShopReviewProductFragment = { __typename?: 'ReviewProduct' } & Pick< + Types.ReviewProduct, + 'id' | 'title' | 'description' | 'stars' +>; + +export type CreateReviewProductMutationVariables = Types.Exact<{ + input: Types.CreateReviewProductInput; +}>; + +export type CreateReviewProductMutation = { __typename?: 'Mutation' } & { + createReviewProduct?: Types.Maybe< + { __typename?: 'ReviewProduct' } & ShopReviewProductFragment + >; +}; + +export type UpdateReviewProductMutationVariables = Types.Exact<{ + input: Types.UpdateReviewProductInput; +}>; + +export type UpdateReviewProductMutation = { __typename?: 'Mutation' } & { + updateReviewProduct?: Types.Maybe< + { __typename?: 'ReviewProduct' } & ShopReviewProductFragment + >; +}; + +export type ProductReviewQueryVariables = Types.Exact<{ [key: string]: never }>; + +export type ProductReviewQuery = { __typename?: 'Query' } & { + product?: Types.Maybe< + { __typename?: 'Product' } & Pick< + Types.Product, + 'id' | 'reviewAvg' | 'canReview' + > & { + reviews: { __typename?: 'ReviewProductList' } & { + items: Array< + { __typename?: 'ReviewProduct' } & ShopReviewProductFragment + >; + }; + } + >; +}; diff --git a/e2e/review-product.spec.ts b/e2e/review-product.spec.ts new file mode 100644 index 0000000..1e310d9 --- /dev/null +++ b/e2e/review-product.spec.ts @@ -0,0 +1,336 @@ +import path from 'path'; +import initialData from './config/initial-data'; +import { TEST_SETUP_TIMEOUT_MS, testConfig } from './config/config'; +import { + createTestEnvironment, + registerInitializer, + SqljsInitializer +} from '@vendure/testing'; +import { + ADMIN_CUSTOMER_LIST, + ADMIN_REVIEWS_PRODUCT, + ADMIN_REVIEW_PRODUCT, + ADMIN_TRANSITION_REVIEW_PRODUCT +} from './graphql/admin-api.graphql'; +import { + SHOP_CREATE_REVIEW_PRODUCT, + SHOP_UPDATE_REVIEW_PRODUCT, + SHOP_PRODUCT_REVIEW, + SHOP_AVAILABLE_PRODUCTS_REVIEW, + SHOP_REVIEW_PRODUCT, + SHOP_REVIEWS_PRODUCT +} from './graphql/shop-api.graphql'; +import { + ReviewProductQuery, + ReviewProductQueryVariables, + ListReviewProductQuery, + ListReviewProductQueryVariables, + CustomerListQuery, + CustomerListQueryVariables, + TransitionReviewProductToStateMutation, + TransitionReviewProductToStateMutationVariables +} from './graphql/admin-api.graphql.types'; +import { + ProductReviewQuery, + ProductReviewQueryVariables, + CreateReviewProductMutation, + CreateReviewProductMutationVariables, + UpdateReviewProductMutation, + UpdateReviewProductMutationVariables, + AvailableProductsReviewQuery, + AvailableProductsReviewQueryVariables +} from './graphql/shop-api.graphql.types'; + +registerInitializer( + 'sqljs', + new SqljsInitializer(path.join(__dirname, '__data__')) +); + +const customerTestPassword = 'test'; + +const exampleCreteReviewProduct = { + title: 'Good company', + description: 'Good company', + stars: 5 +}; + +describe('Review Product E2E', () => { + const { server, shopClient, adminClient } = createTestEnvironment(testConfig); + + let customers: CustomerListQuery['customers']['items']; + beforeAll(async () => { + await server.init({ + initialData, + productsCsvPath: path.join(__dirname, 'config/products.csv'), + customerCount: 2 + }); + + await adminClient.asSuperAdmin(); + + const result = await adminClient.query< + CustomerListQuery, + CustomerListQueryVariables + >(ADMIN_CUSTOMER_LIST); + customers = result.customers.items; + }, TEST_SETUP_TIMEOUT_MS); + + afterAll(async () => { + await server.destroy(); + }); + + it('should try to create a review with an customer without bought the product and throw error', async () => { + await shopClient.asUserWithCredentials( + customers[0].emailAddress, + customerTestPassword + ); + + await expect( + shopClient.query< + CreateReviewProductMutation, + CreateReviewProductMutationVariables + >(SHOP_CREATE_REVIEW_PRODUCT, { + input: { + productId: '1', + ...exampleCreteReviewProduct + } + }) + ).rejects.toThrow('cannot-create-review-product'); + }); + + it('should try to get a list of available products to review with an valid customer and succeeds', async () => { + await shopClient.asUserWithCredentials( + customers[1].emailAddress, + customerTestPassword + ); + + await expect( + shopClient.query< + AvailableProductsReviewQuery, + AvailableProductsReviewQueryVariables + >(SHOP_AVAILABLE_PRODUCTS_REVIEW) + ).resolves.toEqual({ + availableProductsToReview: { + items: [ + { + id: 'T_1', + name: 'Laptop' + } + ] + } + }); + }); + + it('should try to create a review with an valid customer and succeeds', async () => { + await shopClient.asUserWithCredentials( + customers[1].emailAddress, + customerTestPassword + ); + + await expect( + shopClient.query< + CreateReviewProductMutation, + CreateReviewProductMutationVariables + >(SHOP_CREATE_REVIEW_PRODUCT, { + input: { + productId: '1', + ...exampleCreteReviewProduct + } + }) + ).resolves.toEqual({ + createReviewProduct: { + id: 'T_1', + ...exampleCreteReviewProduct + } + }); + }); + + it('should try to get a list of available products to review with an valid customer and returns null', async () => { + await shopClient.asUserWithCredentials( + customers[1].emailAddress, + customerTestPassword + ); + + await expect( + shopClient.query< + AvailableProductsReviewQuery, + AvailableProductsReviewQueryVariables + >(SHOP_AVAILABLE_PRODUCTS_REVIEW) + ).resolves.toEqual({ + availableProductsToReview: { + items: [] + } + }); + }); + + it('should try to create a review with an customer that already have a review of an product and throw error', async () => { + await expect( + shopClient.query< + CreateReviewProductMutation, + CreateReviewProductMutationVariables + >(SHOP_CREATE_REVIEW_PRODUCT, { + input: { + productId: '1', + ...exampleCreteReviewProduct + } + }) + ).rejects.toThrow('cannot-create-review-product'); + }); + + it('should try to get the list of reviews of the current user', async () => { + await expect( + shopClient.query( + SHOP_REVIEWS_PRODUCT + ) + ).resolves.toEqual({ + reviewsProduct: { + items: [ + { + id: 'T_1', + ...exampleCreteReviewProduct + } + ] + } + }); + }); + + it('should try to get the a reviews of the current user', async () => { + await expect( + shopClient.query(SHOP_REVIEW_PRODUCT, { id: 'T_1' }) + ).resolves.toEqual({}); + }); + + it('should get the list of reviews product in admin', async () => { + await adminClient.asSuperAdmin(); + await expect( + adminClient.query< + ListReviewProductQuery, + ListReviewProductQueryVariables + >(ADMIN_REVIEWS_PRODUCT) + ).resolves.toEqual({ + reviewsProduct: { + items: [ + { + id: 'T_1', + nextStates: ['Authorized', 'Denied', 'Updated'], + state: 'Created', + customer: { + id: 'T_2', + firstName: 'Trevor' + }, + ...exampleCreteReviewProduct + } + ] + } + }); + }); + + it('should get the a review product in admin', async () => { + await expect( + adminClient.query( + ADMIN_REVIEW_PRODUCT, + { + id: 'T_1' + } + ) + ).resolves.toEqual({ + reviewProduct: { + id: 'T_1', + nextStates: ['Authorized', 'Denied', 'Updated'], + state: 'Created', + customer: { + id: 'T_2', + firstName: 'Trevor' + }, + ...exampleCreteReviewProduct + } + }); + }); + + it('should transit a review product to Authorized', async () => { + await expect( + adminClient.query< + TransitionReviewProductToStateMutation, + TransitionReviewProductToStateMutationVariables + >(ADMIN_TRANSITION_REVIEW_PRODUCT, { + id: 'T_1', + state: 'Authorized' + }) + ).resolves.toEqual({ + transitionReviewProductToState: { + id: 'T_1', + state: 'Authorized', + nextStates: ['Updated', 'Denied'], + customer: { + id: 'T_2', + firstName: 'Trevor' + }, + ...exampleCreteReviewProduct + } + }); + }); + + it('should get the the list of reviews of an product in shop', async () => { + await expect( + shopClient.query( + SHOP_PRODUCT_REVIEW + ) + ).resolves.toEqual({ + product: { + reviews: { + items: [ + { + id: 'T_1', + ...exampleCreteReviewProduct + } + ] + } + } + }); + }); + + it('should try to update a review with an customer and succeeds', async () => { + await shopClient.asUserWithCredentials( + customers[1].emailAddress, + customerTestPassword + ); + + await expect( + shopClient.query< + UpdateReviewProductMutation, + UpdateReviewProductMutationVariables + >(SHOP_UPDATE_REVIEW_PRODUCT, { + input: { + id: 'T_1', + ...exampleCreteReviewProduct + } + }) + ).resolves.toEqual({ + updateReviewProduct: { + id: 'T_1', + ...exampleCreteReviewProduct + } + }); + }); + + it('should get the the review product in admin and should be Updated', async () => { + await expect( + adminClient.query( + ADMIN_REVIEW_PRODUCT, + { + id: 'T_1' + } + ) + ).resolves.toEqual({ + reviewProduct: { + id: 'T_1', + customer: { + id: 'T_2', + firstName: 'Trevor' + }, + nextStates: ['Authorized', 'Denied'], + state: 'Updated', + ...exampleCreteReviewProduct + } + }); + }); +}); diff --git a/e2e/review-store.spec.ts b/e2e/review-store.spec.ts index dcc220a..06495ec 100644 --- a/e2e/review-store.spec.ts +++ b/e2e/review-store.spec.ts @@ -17,7 +17,8 @@ import { SHOP_CREATE_REVIEW_STORE, SHOP_MY_REVIEW_STORE, SHOP_AVG_REVIEW_STORE, - SHOP_UPDATE_REVIEW_STORE + SHOP_UPDATE_REVIEW_STORE, + SHOP_REVIEWS_STORE } from './graphql/shop-api.graphql'; import { ReviewStoreQuery, @@ -37,7 +38,9 @@ import { AvgReviewStoreQuery, AvgReviewStoreQueryVariables, UpdateReviewStoreMutation, - UpdateReviewStoreMutationVariables + UpdateReviewStoreMutationVariables, + ListReviewStoreQueryVariables as ShopListReviewStoreQueryVariables, + ListReviewStoreQuery as ShopListReviewStoreQuery } from './graphql/shop-api.graphql.types'; registerInitializer( @@ -96,7 +99,7 @@ describe('Review Store E2E', () => { ).rejects.toThrow('cannot-create-review-store'); }); - it('should try to create a review with an customer with a valid and succeeds', async () => { + it('should try to create a review with an valid customer and succeeds', async () => { await shopClient.asUserWithCredentials( customers[1].emailAddress, customerTestPassword @@ -224,6 +227,24 @@ describe('Review Store E2E', () => { }); }); + it('should get the the list of review store in shop', async () => { + await expect( + shopClient.query< + ShopListReviewStoreQuery, + ShopListReviewStoreQueryVariables + >(SHOP_REVIEWS_STORE) + ).resolves.toEqual({ + reviewsStore: { + items: [ + { + id: 'T_1', + ...exampleCreteReviewStore + } + ] + } + }); + }); + it('should try to get the current review store avg in admin and returns 10', async () => { await expect( adminClient.query( diff --git a/src/api/resolvers/admin/review-product.resolver.ts b/src/api/resolvers/admin/review-product.resolver.ts index 6990b92..813244c 100644 --- a/src/api/resolvers/admin/review-product.resolver.ts +++ b/src/api/resolvers/admin/review-product.resolver.ts @@ -7,7 +7,13 @@ import { Resolver } from '@nestjs/graphql'; import { ReviewProductService } from '../../../services/review-product.service'; -import { Permission, Ctx, RequestContext, Allow } from '@vendure/core'; +import { + Permission, + Ctx, + RequestContext, + Allow, + ProductService +} from '@vendure/core'; import { ReviewState } from '../../../helpers'; import { ReviewProductEntity } from '../../../entities'; import { @@ -18,7 +24,18 @@ import { @Resolver('ReviewProduct') export class ReviewProductAdminResolver { - constructor(private reviewProductService: ReviewProductService) {} + constructor( + private reviewProductService: ReviewProductService, + private productService: ProductService + ) {} + + @ResolveField('product') + async product( + @Ctx() ctx: RequestContext, + @Parent() reviewProduct: ReviewProductEntity + ) { + return this.productService.findOne(ctx, reviewProduct.product.id); + } @ResolveField('nextStates') async nextStates(@Parent() reviewProduct: ReviewProductEntity) { diff --git a/src/api/resolvers/shop/review-product.resolver.ts b/src/api/resolvers/shop/review-product.resolver.ts index d8005d8..b540e94 100644 --- a/src/api/resolvers/shop/review-product.resolver.ts +++ b/src/api/resolvers/shop/review-product.resolver.ts @@ -1,21 +1,42 @@ -import { Resolver, Mutation, Args } from '@nestjs/graphql'; +import { + Resolver, + Mutation, + Args, + Query, + Parent, + ResolveField +} from '@nestjs/graphql'; import { ReviewProductService } from '../../../services/review-product.service'; import { IllegalOperationError, Allow, Ctx, RequestContext, - Permission + Permission, + ProductService } from '@vendure/core'; import { ReviewProductEntity } from '../../../entities'; import { MutationCreateReviewProductArgs, - MutationUpdateReviewProductArgs + MutationUpdateReviewProductArgs, + QueryAvailableProductsToReviewArgs } from './../../../types/generated-shop-schema'; @Resolver('ReviewProduct') export class ReviewProductShopResolver { - constructor(private reviewProductService: ReviewProductService) {} + constructor( + private reviewProductService: ReviewProductService, + private productService: ProductService + ) {} + + @ResolveField('product') + async product( + @Ctx() ctx: RequestContext, + @Parent() reviewProduct: ReviewProductEntity + ) { + return this.productService.findOne(ctx, reviewProduct.product.id); + } + @Mutation() @Allow(Permission.Owner) async createReviewProduct( @@ -54,4 +75,38 @@ export class ReviewProductShopResolver { }); return await this.reviewProductService.update(ctx, input); } + + @Query() + @Allow(Permission.Owner) + async availableProductsToReview( + @Ctx() ctx: RequestContext, + @Args() { options }: QueryAvailableProductsToReviewArgs + ) { + const customer = await this.reviewProductService.getCustomerOrThrow(ctx); + return await this.reviewProductService.availableProductsToReview( + ctx, + customer, + options || undefined + ); + } + + @Query() + @Allow(Permission.Owner) + async reviewProduct(@Ctx() ctx: RequestContext, @Args() { id }: any) { + const customer = await this.reviewProductService.getCustomerOrThrow(ctx); + return this.reviewProductService.findById(id, { + where: { customer: customer } + }); + } + + @Query() + @Allow(Permission.Owner) + async reviewsProduct(@Ctx() ctx: RequestContext, @Args() { options }: any) { + const customer = await this.reviewProductService.getCustomerOrThrow(ctx); + return this.reviewProductService.findAll(options || undefined, { + where: { + customer: customer + } + }); + } } diff --git a/src/api/schemas/review-product.shop.schema.ts b/src/api/schemas/review-product.shop.schema.ts index 51ffc72..26664cf 100644 --- a/src/api/schemas/review-product.shop.schema.ts +++ b/src/api/schemas/review-product.shop.schema.ts @@ -6,6 +6,7 @@ export const reviewProductShopApiExtension = gql` title: String! description: String! stars: Int! + product: Product! } input CreateReviewProductInput { productId: ID! @@ -28,6 +29,11 @@ export const reviewProductShopApiExtension = gql` reviews(options: ReviewProductListOptions): ReviewProductList! canReview: Boolean } + extend type Query { + availableProductsToReview(options: ProductListOptions): ProductList! + reviewProduct(id: ID!): ReviewProduct + reviewsProduct(options: ReviewProductListOptions): ReviewProductList! + } extend type Mutation { createReviewProduct(input: CreateReviewProductInput!): ReviewProduct updateReviewProduct(input: UpdateReviewProductInput!): ReviewProduct diff --git a/src/services/review-product.service.spec.ts b/src/services/review-product.service.spec.ts index d6d3476..d85d16b 100644 --- a/src/services/review-product.service.spec.ts +++ b/src/services/review-product.service.spec.ts @@ -1,3 +1,4 @@ +import { shopCtx } from './../test-helpers/contexts'; import { exampleProduct, exampleCustomer, @@ -66,9 +67,6 @@ describe('ReviewProductService', () => { }); describe('checkIfCustomerIsValidToCreateReviewProduct', () => { it('should try to check if customer is valid to create review product and succeeds', async () => { - connection - .getRepository(Product) - .findOneOrFail.mockImplementation(async () => exampleProduct); connection .getRepository(ReviewProductEntity) .count.mockImplementationOnce(async () => 0); @@ -137,7 +135,7 @@ describe('ReviewProductService', () => { 3 ]); await expect( - resolver.availableProductsToReview(exampleCustomer, {}) + resolver.availableProductsToReview(shopCtx, exampleCustomer, {}) ).resolves.toEqual({ items: examplesReviewProduct, totalItems: 3 }); }); }); diff --git a/src/services/review-product.service.ts b/src/services/review-product.service.ts index f5309de..88fbf59 100644 --- a/src/services/review-product.service.ts +++ b/src/services/review-product.service.ts @@ -9,7 +9,9 @@ import { OrderLine, Customer, Product, - ID + ID, + translateDeep, + RequestContext } from '@vendure/core'; import { ReviewService } from '../helpers'; import { ReviewProductStateTransitionEvent } from '../events'; @@ -33,7 +35,7 @@ export class ReviewProductService extends ReviewService< eventBus, ReviewProductEntity, ReviewProductStateTransitionEvent, - ['customer', 'product'] + ['customer'] ); } @@ -69,64 +71,75 @@ export class ReviewProductService extends ReviewService< const countProductBoughtByCustomer = await this.connection .getRepository(OrderLine) - .count({ - relations: ['order', 'productVariant'], - where: { - order: { - customer: customer, - active: false - }, - productVariant: { - productId: product.id - } - } - }); + .createQueryBuilder('order_line') + .select('id') + .leftJoin('order_line.order', 'order') + .leftJoin('order_line.productVariant', 'productVariant') + .andWhere('order.active = false') + .andWhere('productVariant.productId = :id', { id: product.id }) + .where('order.customer = :id', { id: customer.id }) + .getCount(); + return countProductBoughtByCustomer > 0; } async availableProductsToReview( + ctx: RequestContext, customer: Customer, options?: ListQueryOptions ) { - const customerReviews = await this.connection + // Separate the query in two parts. First to get the customer review + const customerReviewQb = await this.connection .getRepository(ReviewProductEntity) - .find({ - select: ['id', 'product'], - where: { - customer: customer - } - }); + .createQueryBuilder('review_product') + .select('review_product.productId', 'productId') + .where('customerId = :id', { id: customer.id }); - const orderLinesWithDistinctProductVariants = await this.listQueryBuilder - .build( - OrderLine, - {}, - { - relations: ['order', 'productVariant'], - where: { order: { customer: customer, active: false } } - } - ) - .select('productVariant') + // Now we get all products to review based on the products that the user bought and didn't review + const availableProductsToReview = await this.connection + .getRepository(OrderLine) + .createQueryBuilder('order_line') .distinct(true) - .getMany(); - - const availableProductsToReviewIds = orderLinesWithDistinctProductVariants.reduce( - (value, line) => value.add(line.productVariant.productId), - new Set() - ); + .select('productVariant.productId', 'productId') + .leftJoin('order_line.order', 'order') + .leftJoin('order_line.productVariant', 'productVariant') + .andWhere('order.customer = :id', { id: customer.id }) + .andWhere('order.active = false') + .andWhere( + `productVariant.productId NOT IN (${customerReviewQb.getQuery()})` + ) + .setParameters(customerReviewQb.getParameters()) + .getRawMany<{ + productId: ID; + }>(); - customerReviews.map((r) => - availableProductsToReviewIds.delete(r.product.id) + const availableProductsToReviewIds = availableProductsToReview.reduce( + (value, item) => [...value, item.productId], + >[] ); return await this.listQueryBuilder .build(Product, options, { - where: { id: In([...availableProductsToReviewIds]) } + relations: [ + 'featuredAsset', + 'assets', + 'channels', + 'facetValues', + 'facetValues.facet' + ], + channelId: ctx.channelId, + where: { deletedAt: null, id: In(availableProductsToReviewIds) } }) .getManyAndCount() - .then(([products, totalItems]) => { + .then(async ([products, totalItems]) => { + const items = products.map((product) => + translateDeep(product, ctx.languageCode, [ + 'facetValues', + ['facetValues', 'facet'] + ]) + ); return { - items: products, + items, totalItems }; }); diff --git a/src/types/generated-shop-schema.ts b/src/types/generated-shop-schema.ts index 42d79f9..e6d2ece 100644 --- a/src/types/generated-shop-schema.ts +++ b/src/types/generated-shop-schema.ts @@ -2085,6 +2085,7 @@ export type Query = { myReviewStore?: Maybe; /** Get the list of reviews store */ reviewsStore: ReviewStoreList; + availableProductsToReview: ProductList; }; export type QueryCollectionsArgs = { @@ -2121,6 +2122,10 @@ export type QueryReviewsStoreArgs = { options?: Maybe; }; +export type QueryAvailableProductsToReviewArgs = { + options?: Maybe; +}; + export type Refund = Node & { __typename?: 'Refund'; id: Scalars['ID']; From 4c856be6b6d0708983f2ce9e627be4e21b71f06f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonathan=20C=C3=A9lio?= Date: Thu, 13 Aug 2020 12:15:07 -0300 Subject: [PATCH 5/7] test: update test files --- e2e/graphql/shop-api.graphql.ts | 2 +- e2e/review-product.spec.ts | 28 ++++++++- .../admin/review-product.resolver.spec.ts | 20 +++++- .../shop/review-product.resolver.spec.ts | 27 +++++++- src/services/review-product.service.spec.ts | 62 ++++++++++++------- src/services/review-product.service.ts | 13 ++-- 6 files changed, 117 insertions(+), 35 deletions(-) diff --git a/e2e/graphql/shop-api.graphql.ts b/e2e/graphql/shop-api.graphql.ts index 7673956..99c8156 100644 --- a/e2e/graphql/shop-api.graphql.ts +++ b/e2e/graphql/shop-api.graphql.ts @@ -122,5 +122,5 @@ export const SHOP_PRODUCT_REVIEW = gql` canReview } } - ${SHOP_REVIEW_STORE_FRAGMENT} + ${SHOP_REVIEW_PRODUCT_FRAGMENT} `; diff --git a/e2e/review-product.spec.ts b/e2e/review-product.spec.ts index 1e310d9..5f348b8 100644 --- a/e2e/review-product.spec.ts +++ b/e2e/review-product.spec.ts @@ -193,10 +193,15 @@ describe('Review Product E2E', () => { }); }); - it('should try to get the a reviews of the current user', async () => { + it('should try to get an review of the current user', async () => { await expect( shopClient.query(SHOP_REVIEW_PRODUCT, { id: 'T_1' }) - ).resolves.toEqual({}); + ).resolves.toEqual({ + reviewProduct: { + id: 'T_1', + ...exampleCreteReviewProduct + } + }); }); it('should get the list of reviews product in admin', async () => { @@ -217,6 +222,10 @@ describe('Review Product E2E', () => { id: 'T_2', firstName: 'Trevor' }, + product: { + id: 'T_1', + name: 'Laptop' + }, ...exampleCreteReviewProduct } ] @@ -241,6 +250,10 @@ describe('Review Product E2E', () => { id: 'T_2', firstName: 'Trevor' }, + product: { + id: 'T_1', + name: 'Laptop' + }, ...exampleCreteReviewProduct } }); @@ -264,6 +277,10 @@ describe('Review Product E2E', () => { id: 'T_2', firstName: 'Trevor' }, + product: { + id: 'T_1', + name: 'Laptop' + }, ...exampleCreteReviewProduct } }); @@ -276,6 +293,9 @@ describe('Review Product E2E', () => { ) ).resolves.toEqual({ product: { + id: 'T_1', + canReview: false, + reviewAvg: 5, reviews: { items: [ { @@ -327,6 +347,10 @@ describe('Review Product E2E', () => { id: 'T_2', firstName: 'Trevor' }, + product: { + id: 'T_1', + name: 'Laptop' + }, nextStates: ['Authorized', 'Denied'], state: 'Updated', ...exampleCreteReviewProduct diff --git a/src/api/resolvers/admin/review-product.resolver.spec.ts b/src/api/resolvers/admin/review-product.resolver.spec.ts index a94ab75..9761458 100644 --- a/src/api/resolvers/admin/review-product.resolver.spec.ts +++ b/src/api/resolvers/admin/review-product.resolver.spec.ts @@ -4,9 +4,12 @@ import { ReviewProductService } from '../../../services/review-product.service'; import { exampleReviewProduct, examplesReviewProduct, - adminCtx + adminCtx, + shopCtx, + exampleProduct } from '../../../test-helpers'; import { createMock } from '@golevelup/nestjs-testing'; +import { ProductService } from '@vendure/core'; describe('ReviewProductAdminResolver', () => { let resolver: ReviewProductAdminResolver; @@ -26,6 +29,13 @@ describe('ReviewProductAdminResolver', () => { transitionToState: async () => exampleReviewProduct, getNextReviewStates: () => ['Created'] }) + }, + { + provide: ProductService, + useValue: createMock({ + // @ts-ignore + findOne: async () => exampleProduct + }) } ] }).compile(); @@ -70,4 +80,12 @@ describe('ReviewProductAdminResolver', () => { ]); }); }); + + describe('product', () => { + it('should get the product', async () => { + await expect( + resolver.product(shopCtx, exampleReviewProduct) + ).resolves.toEqual(exampleProduct); + }); + }); }); diff --git a/src/api/resolvers/shop/review-product.resolver.spec.ts b/src/api/resolvers/shop/review-product.resolver.spec.ts index f334842..c540548 100644 --- a/src/api/resolvers/shop/review-product.resolver.spec.ts +++ b/src/api/resolvers/shop/review-product.resolver.spec.ts @@ -1,7 +1,7 @@ import { ReviewProductShopResolver } from './review-product.resolver'; import { TestingModule, Test } from '@nestjs/testing'; import { ReviewProductService } from '../../../services/review-product.service'; -import { IllegalOperationError } from '@vendure/core'; +import { IllegalOperationError, ProductService } from '@vendure/core'; import { shopCtx, exampleReviewProduct, @@ -28,6 +28,13 @@ describe('ReviewProductShopResolver', () => { { provide: ReviewProductService, useValue: reviewProductService + }, + { + provide: ProductService, + useValue: createMock({ + // @ts-ignore + findOne: async () => exampleProduct + }) } ] }).compile(); @@ -50,7 +57,10 @@ describe('ReviewProductShopResolver', () => { async () => true ); await expect( - resolver.createReviewProduct(shopCtx, { input: exampleReviewProduct }) + resolver.createReviewProduct(shopCtx, { + // @ts-ignore + input: exampleReviewProduct + }) ).resolves.toBe(exampleReviewProduct); }); it('should try to create a review of an invalid user', async () => { @@ -64,7 +74,10 @@ describe('ReviewProductShopResolver', () => { async () => false ); await expect( - resolver.createReviewProduct(shopCtx, { input: exampleReviewProduct }) + resolver.createReviewProduct(shopCtx, { + // @ts-ignore + input: exampleReviewProduct + }) ).rejects.toThrow(IllegalOperationError); }); }); @@ -81,9 +94,17 @@ describe('ReviewProductShopResolver', () => { ); await expect( resolver.updateReviewProduct(shopCtx, { + // @ts-ignore input: examplesReviewProduct[1] }) ).resolves.toEqual(examplesReviewProduct[1]); }); }); + describe('product', () => { + it('should get the product', async () => { + await expect( + resolver.product(shopCtx, exampleReviewProduct) + ).resolves.toEqual(exampleProduct); + }); + }); }); diff --git a/src/services/review-product.service.spec.ts b/src/services/review-product.service.spec.ts index d85d16b..0742ce5 100644 --- a/src/services/review-product.service.spec.ts +++ b/src/services/review-product.service.spec.ts @@ -72,7 +72,14 @@ describe('ReviewProductService', () => { .count.mockImplementationOnce(async () => 0); connection .getRepository(OrderLine) - .count.mockImplementationOnce(async () => 1); + // @ts-ignore + .createQueryBuilder.mockImplementation(() => ({ + select: jest.fn().mockReturnThis(), + leftJoin: jest.fn().mockReturnThis(), + andWhere: jest.fn().mockReturnThis(), + getCount: jest.fn().mockImplementationOnce(async () => 1) + })); + await expect( resolver.checkIfCustomerIsValidToCreateReviewProduct( exampleCustomer, @@ -82,9 +89,6 @@ describe('ReviewProductService', () => { }); it('should try to check if customer is valid to create review product in a product that he already reviewed and fail', async () => { - connection - .getRepository(Product) - .findOneOrFail.mockImplementation(async () => exampleProduct); connection .getRepository(ReviewProductEntity) .count.mockImplementationOnce(async () => 1); @@ -97,15 +101,19 @@ describe('ReviewProductService', () => { }); it("should try to check if customer is valid to create review product in a product that he didn't bought and fail", async () => { - connection - .getRepository(Product) - .findOneOrFail.mockImplementation(async () => exampleProduct); connection .getRepository(ReviewProductEntity) .count.mockImplementationOnce(async () => 0); connection .getRepository(OrderLine) - .count.mockImplementationOnce(async () => 0); + // @ts-ignore + .createQueryBuilder.mockImplementation(() => ({ + select: jest.fn().mockReturnThis(), + leftJoin: jest.fn().mockReturnThis(), + andWhere: jest.fn().mockReturnThis(), + getCount: jest.fn().mockImplementationOnce(async () => 0) + })); + await expect( resolver.checkIfCustomerIsValidToCreateReviewProduct( exampleCustomer, @@ -119,21 +127,29 @@ describe('ReviewProductService', () => { it('should get available products to review', async () => { connection .getRepository(ReviewProductEntity) - .find.mockImplementationOnce(async () => []); - listQueryBuilder - .build(OrderLine, {}, {}) - .select('productVariant') - .distinct(true) - .getMany.mockImplementationOnce(async () => [ - new OrderLine({ productVariant: { productId: '1' } }), - new OrderLine({ productVariant: { productId: '2' } }) - ]); - listQueryBuilder - .build(Product, {}, {}) - .getManyAndCount.mockImplementationOnce(async () => [ - examplesReviewProduct, - 3 - ]); + // @ts-ignore + .createQueryBuilder.mockImplementation(() => ({ + select: jest.fn().mockReturnThis(), + where: jest.fn().mockReturnThis(), + getQuery: jest.fn().mockImplementation(() => ''), + distinct: jest.fn().mockReturnThis(), + setParameters: jest.fn().mockReturnThis(), + getParameters: jest.fn().mockReturnThis(), + leftJoin: jest.fn().mockReturnThis(), + andWhere: jest.fn().mockReturnThis(), + getRawMany: jest + .fn() + .mockImplementationOnce(async () => [ + { productId: '1' }, + { productId: '2' } + ]) + })); + // @ts-ignore + listQueryBuilder.build.mockImplementationOnce(() => ({ + getManyAndCount: jest + .fn() + .mockImplementationOnce(async () => [examplesReviewProduct, 3]) + })); await expect( resolver.availableProductsToReview(shopCtx, exampleCustomer, {}) ).resolves.toEqual({ items: examplesReviewProduct, totalItems: 3 }); diff --git a/src/services/review-product.service.ts b/src/services/review-product.service.ts index 88fbf59..5c2810c 100644 --- a/src/services/review-product.service.ts +++ b/src/services/review-product.service.ts @@ -35,7 +35,7 @@ export class ReviewProductService extends ReviewService< eventBus, ReviewProductEntity, ReviewProductStateTransitionEvent, - ['customer'] + ['customer', 'product'] ); } @@ -65,6 +65,7 @@ export class ReviewProductService extends ReviewService< product: product } }); + if (countReviewProduct > 0) { return false; } @@ -76,8 +77,10 @@ export class ReviewProductService extends ReviewService< .leftJoin('order_line.order', 'order') .leftJoin('order_line.productVariant', 'productVariant') .andWhere('order.active = false') - .andWhere('productVariant.productId = :id', { id: product.id }) - .where('order.customer = :id', { id: customer.id }) + .andWhere('productVariant.productId = :productId', { + productId: product.id + }) + .andWhere('order.customer = :customerId', { customerId: customer.id }) .getCount(); return countProductBoughtByCustomer > 0; @@ -93,7 +96,7 @@ export class ReviewProductService extends ReviewService< .getRepository(ReviewProductEntity) .createQueryBuilder('review_product') .select('review_product.productId', 'productId') - .where('customerId = :id', { id: customer.id }); + .where('customerId = :customerId', { customerId: customer.id }); // Now we get all products to review based on the products that the user bought and didn't review const availableProductsToReview = await this.connection @@ -103,7 +106,7 @@ export class ReviewProductService extends ReviewService< .select('productVariant.productId', 'productId') .leftJoin('order_line.order', 'order') .leftJoin('order_line.productVariant', 'productVariant') - .andWhere('order.customer = :id', { id: customer.id }) + .andWhere('order.customer = :customerId', { customerId: customer.id }) .andWhere('order.active = false') .andWhere( `productVariant.productId NOT IN (${customerReviewQb.getQuery()})` From 7005a576487a9ab47863d442d9df2a394317f6e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonathan=20C=C3=A9lio?= Date: Thu, 13 Aug 2020 12:53:36 -0300 Subject: [PATCH 6/7] test: update test files --- gql-codegen.yml | 26 +- package.json | 2 +- src/ui/common/fragments.graphql.ts | 16 - src/ui/common/fragments.graphql.types.ts | 11 - src/ui/common/generated-admin-schema.ts | 3796 ----------------- .../review-store-list.graphql.ts | 14 - .../review-store-list.graphql.types.ts | 14 - 7 files changed, 14 insertions(+), 3865 deletions(-) delete mode 100644 src/ui/common/fragments.graphql.ts delete mode 100644 src/ui/common/fragments.graphql.types.ts delete mode 100644 src/ui/common/generated-admin-schema.ts delete mode 100644 src/ui/components/review-store-list/review-store-list.graphql.ts delete mode 100644 src/ui/components/review-store-list/review-store-list.graphql.types.ts diff --git a/gql-codegen.yml b/gql-codegen.yml index 3ed4725..f10f90b 100644 --- a/gql-codegen.yml +++ b/gql-codegen.yml @@ -8,19 +8,19 @@ generates: schema: "http://localhost:3000/shop-api" plugins: - typescript - ./src/ui/common/generated-admin-schema.ts: - schema: "http://localhost:3000/admin-api" - plugins: - - typescript - ./src/ui: - schema: "http://localhost:3000/admin-api" - documents: "./**/*.graphql.ts" - preset: near-operation-file - presetConfig: - extension: .types.ts - baseTypesPath: "common/generated-admin-schema.ts" - plugins: - - typescript-operations + # ./src/ui/common/generated-admin-schema.ts: + # schema: "http://localhost:3000/admin-api" + # plugins: + # - typescript + # ./src/ui: + # schema: "http://localhost:3000/admin-api" + # documents: "./**/*.graphql.ts" + # preset: near-operation-file + # presetConfig: + # extension: .types.ts + # baseTypesPath: "common/generated-admin-schema.ts" + # plugins: + # - typescript-operations ./e2e/graphql/shop-api.graphql.ts: schema: "http://localhost:3000/shop-api" documents: "./e2e/graphql/shop-api.graphql.ts" diff --git a/package.json b/package.json index ae118be..53e8ead 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "build": "rimraf lib && tsc", "lint": "eslint --ext .ts,.tsx", "lint:fix": "eslint --ext .ts,.tsx --fix", - "test": "rimraf e2e/__data__ && jest --collectCoverage", + "test": "rimraf e2e/__data__ && jest --collectCoverage --runInBand", "test:ci": "npm run test && codecov", "codegen": "graphql-codegen --config gql-codegen.yml", "dev-server:populate": "node -r ts-node/register dev-server/populate.ts", diff --git a/src/ui/common/fragments.graphql.ts b/src/ui/common/fragments.graphql.ts deleted file mode 100644 index ec2d33f..0000000 --- a/src/ui/common/fragments.graphql.ts +++ /dev/null @@ -1,16 +0,0 @@ -import gql from 'graphql-tag'; - -export const REVIEW_STORE_FRAGMENT = gql` - fragment ReviewStore on ReviewStore { - id - title - description - state - nps - nextStates - customer { - id - firstName - } - } -`; diff --git a/src/ui/common/fragments.graphql.types.ts b/src/ui/common/fragments.graphql.types.ts deleted file mode 100644 index 4d674fc..0000000 --- a/src/ui/common/fragments.graphql.types.ts +++ /dev/null @@ -1,11 +0,0 @@ -import * as Types from './generated-admin-schema'; - -export type ReviewStoreFragment = { __typename?: 'ReviewStore' } & Pick< - Types.ReviewStore, - 'id' | 'title' | 'description' | 'state' | 'nps' | 'nextStates' -> & { - customer: { __typename?: 'Customer' } & Pick< - Types.Customer, - 'id' | 'firstName' - >; - }; diff --git a/src/ui/common/generated-admin-schema.ts b/src/ui/common/generated-admin-schema.ts deleted file mode 100644 index 88df5c3..0000000 --- a/src/ui/common/generated-admin-schema.ts +++ /dev/null @@ -1,3796 +0,0 @@ -export type Maybe = T | null; -export type Exact = { - [K in keyof T]: T[K]; -}; -/** All built-in and custom scalars, mapped to their actual values */ -export type Scalars = { - ID: string; - String: string; - Boolean: boolean; - Int: number; - Float: number; - /** A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the `date-time` format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. */ - DateTime: any; - /** The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). */ - JSON: any; - /** The `Upload` scalar type represents a file upload. */ - Upload: any; -}; - -export type AddNoteToCustomerInput = { - id: Scalars['ID']; - note: Scalars['String']; - isPublic: Scalars['Boolean']; -}; - -export type AddNoteToOrderInput = { - id: Scalars['ID']; - note: Scalars['String']; - isPublic: Scalars['Boolean']; -}; - -export type Address = Node & { - __typename?: 'Address'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - fullName?: Maybe; - company?: Maybe; - streetLine1: Scalars['String']; - streetLine2?: Maybe; - city?: Maybe; - province?: Maybe; - postalCode?: Maybe; - country: Country; - phoneNumber?: Maybe; - defaultShippingAddress?: Maybe; - defaultBillingAddress?: Maybe; - customFields?: Maybe; -}; - -export type Adjustment = { - __typename?: 'Adjustment'; - adjustmentSource: Scalars['String']; - type: AdjustmentType; - description: Scalars['String']; - amount: Scalars['Int']; -}; - -export enum AdjustmentType { - Tax = 'TAX', - Promotion = 'PROMOTION', - Shipping = 'SHIPPING', - Refund = 'REFUND', - TaxRefund = 'TAX_REFUND', - PromotionRefund = 'PROMOTION_REFUND', - ShippingRefund = 'SHIPPING_REFUND' -} - -export type Administrator = Node & { - __typename?: 'Administrator'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - firstName: Scalars['String']; - lastName: Scalars['String']; - emailAddress: Scalars['String']; - user: User; -}; - -export type AdministratorFilterParameter = { - createdAt?: Maybe; - updatedAt?: Maybe; - firstName?: Maybe; - lastName?: Maybe; - emailAddress?: Maybe; -}; - -export type AdministratorList = PaginatedList & { - __typename?: 'AdministratorList'; - items: Array; - totalItems: Scalars['Int']; -}; - -export type AdministratorListOptions = { - skip?: Maybe; - take?: Maybe; - sort?: Maybe; - filter?: Maybe; -}; - -export type AdministratorSortParameter = { - id?: Maybe; - createdAt?: Maybe; - updatedAt?: Maybe; - firstName?: Maybe; - lastName?: Maybe; - emailAddress?: Maybe; -}; - -export type Asset = Node & { - __typename?: 'Asset'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - name: Scalars['String']; - type: AssetType; - fileSize: Scalars['Int']; - mimeType: Scalars['String']; - width: Scalars['Int']; - height: Scalars['Int']; - source: Scalars['String']; - preview: Scalars['String']; - focalPoint?: Maybe; -}; - -export type AssetFilterParameter = { - createdAt?: Maybe; - updatedAt?: Maybe; - name?: Maybe; - type?: Maybe; - fileSize?: Maybe; - mimeType?: Maybe; - width?: Maybe; - height?: Maybe; - source?: Maybe; - preview?: Maybe; -}; - -export type AssetList = PaginatedList & { - __typename?: 'AssetList'; - items: Array; - totalItems: Scalars['Int']; -}; - -export type AssetListOptions = { - skip?: Maybe; - take?: Maybe; - sort?: Maybe; - filter?: Maybe; -}; - -export type AssetSortParameter = { - id?: Maybe; - createdAt?: Maybe; - updatedAt?: Maybe; - name?: Maybe; - fileSize?: Maybe; - mimeType?: Maybe; - width?: Maybe; - height?: Maybe; - source?: Maybe; - preview?: Maybe; -}; - -export enum AssetType { - Image = 'IMAGE', - Video = 'VIDEO', - Binary = 'BINARY' -} - -export type AssignProductsToChannelInput = { - productIds: Array; - channelId: Scalars['ID']; - priceFactor?: Maybe; -}; - -export type AuthenticationInput = { - native?: Maybe; -}; - -export type AuthenticationMethod = Node & { - __typename?: 'AuthenticationMethod'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - strategy: Scalars['String']; -}; - -export type BooleanCustomFieldConfig = CustomField & { - __typename?: 'BooleanCustomFieldConfig'; - name: Scalars['String']; - type: Scalars['String']; - label?: Maybe>; - description?: Maybe>; - readonly?: Maybe; - internal?: Maybe; -}; - -export type BooleanOperators = { - eq?: Maybe; -}; - -export type Cancellation = Node & - StockMovement & { - __typename?: 'Cancellation'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - productVariant: ProductVariant; - type: StockMovementType; - quantity: Scalars['Int']; - orderLine: OrderLine; - }; - -export type CancelOrderInput = { - /** The id of the order to be cancelled */ - orderId: Scalars['ID']; - /** Optionally specify which OrderLines to cancel. If not provided, all OrderLines will be cancelled */ - lines?: Maybe>; - reason?: Maybe; -}; - -export type Channel = Node & { - __typename?: 'Channel'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - code: Scalars['String']; - token: Scalars['String']; - defaultTaxZone?: Maybe; - defaultShippingZone?: Maybe; - defaultLanguageCode: LanguageCode; - currencyCode: CurrencyCode; - pricesIncludeTax: Scalars['Boolean']; -}; - -export type Collection = Node & { - __typename?: 'Collection'; - isPrivate: Scalars['Boolean']; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - languageCode?: Maybe; - name: Scalars['String']; - slug: Scalars['String']; - breadcrumbs: Array; - position: Scalars['Int']; - description: Scalars['String']; - featuredAsset?: Maybe; - assets: Array; - parent?: Maybe; - children?: Maybe>; - filters: Array; - translations: Array; - productVariants: ProductVariantList; - customFields?: Maybe; -}; - -export type CollectionProductVariantsArgs = { - options?: Maybe; -}; - -export type CollectionBreadcrumb = { - __typename?: 'CollectionBreadcrumb'; - id: Scalars['ID']; - name: Scalars['String']; - slug: Scalars['String']; -}; - -export type CollectionFilterParameter = { - isPrivate?: Maybe; - createdAt?: Maybe; - updatedAt?: Maybe; - languageCode?: Maybe; - name?: Maybe; - slug?: Maybe; - position?: Maybe; - description?: Maybe; -}; - -export type CollectionList = PaginatedList & { - __typename?: 'CollectionList'; - items: Array; - totalItems: Scalars['Int']; -}; - -export type CollectionListOptions = { - skip?: Maybe; - take?: Maybe; - sort?: Maybe; - filter?: Maybe; -}; - -export type CollectionSortParameter = { - id?: Maybe; - createdAt?: Maybe; - updatedAt?: Maybe; - name?: Maybe; - slug?: Maybe; - position?: Maybe; - description?: Maybe; -}; - -export type CollectionTranslation = { - __typename?: 'CollectionTranslation'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - languageCode: LanguageCode; - name: Scalars['String']; - slug: Scalars['String']; - description: Scalars['String']; -}; - -export type ConfigArg = { - __typename?: 'ConfigArg'; - name: Scalars['String']; - type: Scalars['String']; - value: Scalars['String']; -}; - -export type ConfigArgDefinition = { - __typename?: 'ConfigArgDefinition'; - name: Scalars['String']; - type: Scalars['String']; - label?: Maybe; - description?: Maybe; - config?: Maybe; -}; - -export type ConfigArgInput = { - name: Scalars['String']; - type: Scalars['String']; - value: Scalars['String']; -}; - -export type ConfigurableOperation = { - __typename?: 'ConfigurableOperation'; - code: Scalars['String']; - args: Array; -}; - -export type ConfigurableOperationDefinition = { - __typename?: 'ConfigurableOperationDefinition'; - code: Scalars['String']; - args: Array; - description: Scalars['String']; -}; - -export type ConfigurableOperationInput = { - code: Scalars['String']; - arguments: Array; -}; - -export type Coordinate = { - __typename?: 'Coordinate'; - x: Scalars['Float']; - y: Scalars['Float']; -}; - -export type CoordinateInput = { - x: Scalars['Float']; - y: Scalars['Float']; -}; - -export type Country = Node & { - __typename?: 'Country'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - languageCode: LanguageCode; - code: Scalars['String']; - name: Scalars['String']; - enabled: Scalars['Boolean']; - translations: Array; -}; - -export type CountryFilterParameter = { - createdAt?: Maybe; - updatedAt?: Maybe; - languageCode?: Maybe; - code?: Maybe; - name?: Maybe; - enabled?: Maybe; -}; - -export type CountryList = PaginatedList & { - __typename?: 'CountryList'; - items: Array; - totalItems: Scalars['Int']; -}; - -export type CountryListOptions = { - skip?: Maybe; - take?: Maybe; - sort?: Maybe; - filter?: Maybe; -}; - -export type CountrySortParameter = { - id?: Maybe; - createdAt?: Maybe; - updatedAt?: Maybe; - code?: Maybe; - name?: Maybe; -}; - -export type CountryTranslation = { - __typename?: 'CountryTranslation'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - languageCode: LanguageCode; - name: Scalars['String']; -}; - -export type CountryTranslationInput = { - id?: Maybe; - languageCode: LanguageCode; - name?: Maybe; -}; - -export type CreateAddressInput = { - fullName?: Maybe; - company?: Maybe; - streetLine1: Scalars['String']; - streetLine2?: Maybe; - city?: Maybe; - province?: Maybe; - postalCode?: Maybe; - countryCode: Scalars['String']; - phoneNumber?: Maybe; - defaultShippingAddress?: Maybe; - defaultBillingAddress?: Maybe; - customFields?: Maybe; -}; - -export type CreateAdministratorInput = { - firstName: Scalars['String']; - lastName: Scalars['String']; - emailAddress: Scalars['String']; - password: Scalars['String']; - roleIds: Array; -}; - -export type CreateAssetInput = { - file: Scalars['Upload']; -}; - -export type CreateChannelInput = { - code: Scalars['String']; - token: Scalars['String']; - defaultLanguageCode: LanguageCode; - pricesIncludeTax: Scalars['Boolean']; - currencyCode: CurrencyCode; - defaultTaxZoneId: Scalars['ID']; - defaultShippingZoneId: Scalars['ID']; -}; - -export type CreateCollectionInput = { - isPrivate?: Maybe; - featuredAssetId?: Maybe; - assetIds?: Maybe>; - parentId?: Maybe; - filters: Array; - translations: Array; - customFields?: Maybe; -}; - -export type CreateCollectionTranslationInput = { - languageCode: LanguageCode; - name: Scalars['String']; - slug: Scalars['String']; - description: Scalars['String']; - customFields?: Maybe; -}; - -export type CreateCountryInput = { - code: Scalars['String']; - translations: Array; - enabled: Scalars['Boolean']; -}; - -export type CreateCustomerGroupInput = { - name: Scalars['String']; - customerIds?: Maybe>; -}; - -export type CreateCustomerInput = { - title?: Maybe; - firstName: Scalars['String']; - lastName: Scalars['String']; - phoneNumber?: Maybe; - emailAddress: Scalars['String']; - customFields?: Maybe; -}; - -export type CreateFacetInput = { - code: Scalars['String']; - isPrivate: Scalars['Boolean']; - translations: Array; - values?: Maybe>; - customFields?: Maybe; -}; - -export type CreateFacetValueInput = { - facetId: Scalars['ID']; - code: Scalars['String']; - translations: Array; - customFields?: Maybe; -}; - -export type CreateFacetValueWithFacetInput = { - code: Scalars['String']; - translations: Array; -}; - -export type CreateGroupOptionInput = { - code: Scalars['String']; - translations: Array; -}; - -export type CreateProductInput = { - featuredAssetId?: Maybe; - assetIds?: Maybe>; - facetValueIds?: Maybe>; - translations: Array; - customFields?: Maybe; -}; - -export type CreateProductOptionGroupInput = { - code: Scalars['String']; - translations: Array; - options: Array; - customFields?: Maybe; -}; - -export type CreateProductOptionInput = { - productOptionGroupId: Scalars['ID']; - code: Scalars['String']; - translations: Array; - customFields?: Maybe; -}; - -export type CreateProductVariantInput = { - productId: Scalars['ID']; - translations: Array; - facetValueIds?: Maybe>; - sku: Scalars['String']; - price?: Maybe; - taxCategoryId?: Maybe; - optionIds?: Maybe>; - featuredAssetId?: Maybe; - assetIds?: Maybe>; - stockOnHand?: Maybe; - trackInventory?: Maybe; - customFields?: Maybe; -}; - -export type CreateProductVariantOptionInput = { - optionGroupId: Scalars['ID']; - code: Scalars['String']; - translations: Array; -}; - -export type CreatePromotionInput = { - name: Scalars['String']; - enabled: Scalars['Boolean']; - startsAt?: Maybe; - endsAt?: Maybe; - couponCode?: Maybe; - perCustomerUsageLimit?: Maybe; - conditions: Array; - actions: Array; -}; - -export type CreateRoleInput = { - code: Scalars['String']; - description: Scalars['String']; - permissions: Array; - channelIds?: Maybe>; -}; - -export type CreateShippingMethodInput = { - code: Scalars['String']; - description: Scalars['String']; - checker: ConfigurableOperationInput; - calculator: ConfigurableOperationInput; - customFields?: Maybe; -}; - -export type CreateTaxCategoryInput = { - name: Scalars['String']; -}; - -export type CreateTaxRateInput = { - name: Scalars['String']; - enabled: Scalars['Boolean']; - value: Scalars['Float']; - categoryId: Scalars['ID']; - zoneId: Scalars['ID']; - customerGroupId?: Maybe; -}; - -export type CreateZoneInput = { - name: Scalars['String']; - memberIds?: Maybe>; -}; - -/** - * @description - * ISO 4217 currency code - * - * @docsCategory common - */ -export enum CurrencyCode { - /** United Arab Emirates dirham */ - Aed = 'AED', - /** Afghan afghani */ - Afn = 'AFN', - /** Albanian lek */ - All = 'ALL', - /** Armenian dram */ - Amd = 'AMD', - /** Netherlands Antillean guilder */ - Ang = 'ANG', - /** Angolan kwanza */ - Aoa = 'AOA', - /** Argentine peso */ - Ars = 'ARS', - /** Australian dollar */ - Aud = 'AUD', - /** Aruban florin */ - Awg = 'AWG', - /** Azerbaijani manat */ - Azn = 'AZN', - /** Bosnia and Herzegovina convertible mark */ - Bam = 'BAM', - /** Barbados dollar */ - Bbd = 'BBD', - /** Bangladeshi taka */ - Bdt = 'BDT', - /** Bulgarian lev */ - Bgn = 'BGN', - /** Bahraini dinar */ - Bhd = 'BHD', - /** Burundian franc */ - Bif = 'BIF', - /** Bermudian dollar */ - Bmd = 'BMD', - /** Brunei dollar */ - Bnd = 'BND', - /** Boliviano */ - Bob = 'BOB', - /** Brazilian real */ - Brl = 'BRL', - /** Bahamian dollar */ - Bsd = 'BSD', - /** Bhutanese ngultrum */ - Btn = 'BTN', - /** Botswana pula */ - Bwp = 'BWP', - /** Belarusian ruble */ - Byn = 'BYN', - /** Belize dollar */ - Bzd = 'BZD', - /** Canadian dollar */ - Cad = 'CAD', - /** Congolese franc */ - Cdf = 'CDF', - /** Swiss franc */ - Chf = 'CHF', - /** Chilean peso */ - Clp = 'CLP', - /** Renminbi (Chinese) yuan */ - Cny = 'CNY', - /** Colombian peso */ - Cop = 'COP', - /** Costa Rican colon */ - Crc = 'CRC', - /** Cuban convertible peso */ - Cuc = 'CUC', - /** Cuban peso */ - Cup = 'CUP', - /** Cape Verde escudo */ - Cve = 'CVE', - /** Czech koruna */ - Czk = 'CZK', - /** Djiboutian franc */ - Djf = 'DJF', - /** Danish krone */ - Dkk = 'DKK', - /** Dominican peso */ - Dop = 'DOP', - /** Algerian dinar */ - Dzd = 'DZD', - /** Egyptian pound */ - Egp = 'EGP', - /** Eritrean nakfa */ - Ern = 'ERN', - /** Ethiopian birr */ - Etb = 'ETB', - /** Euro */ - Eur = 'EUR', - /** Fiji dollar */ - Fjd = 'FJD', - /** Falkland Islands pound */ - Fkp = 'FKP', - /** Pound sterling */ - Gbp = 'GBP', - /** Georgian lari */ - Gel = 'GEL', - /** Ghanaian cedi */ - Ghs = 'GHS', - /** Gibraltar pound */ - Gip = 'GIP', - /** Gambian dalasi */ - Gmd = 'GMD', - /** Guinean franc */ - Gnf = 'GNF', - /** Guatemalan quetzal */ - Gtq = 'GTQ', - /** Guyanese dollar */ - Gyd = 'GYD', - /** Hong Kong dollar */ - Hkd = 'HKD', - /** Honduran lempira */ - Hnl = 'HNL', - /** Croatian kuna */ - Hrk = 'HRK', - /** Haitian gourde */ - Htg = 'HTG', - /** Hungarian forint */ - Huf = 'HUF', - /** Indonesian rupiah */ - Idr = 'IDR', - /** Israeli new shekel */ - Ils = 'ILS', - /** Indian rupee */ - Inr = 'INR', - /** Iraqi dinar */ - Iqd = 'IQD', - /** Iranian rial */ - Irr = 'IRR', - /** Icelandic króna */ - Isk = 'ISK', - /** Jamaican dollar */ - Jmd = 'JMD', - /** Jordanian dinar */ - Jod = 'JOD', - /** Japanese yen */ - Jpy = 'JPY', - /** Kenyan shilling */ - Kes = 'KES', - /** Kyrgyzstani som */ - Kgs = 'KGS', - /** Cambodian riel */ - Khr = 'KHR', - /** Comoro franc */ - Kmf = 'KMF', - /** North Korean won */ - Kpw = 'KPW', - /** South Korean won */ - Krw = 'KRW', - /** Kuwaiti dinar */ - Kwd = 'KWD', - /** Cayman Islands dollar */ - Kyd = 'KYD', - /** Kazakhstani tenge */ - Kzt = 'KZT', - /** Lao kip */ - Lak = 'LAK', - /** Lebanese pound */ - Lbp = 'LBP', - /** Sri Lankan rupee */ - Lkr = 'LKR', - /** Liberian dollar */ - Lrd = 'LRD', - /** Lesotho loti */ - Lsl = 'LSL', - /** Libyan dinar */ - Lyd = 'LYD', - /** Moroccan dirham */ - Mad = 'MAD', - /** Moldovan leu */ - Mdl = 'MDL', - /** Malagasy ariary */ - Mga = 'MGA', - /** Macedonian denar */ - Mkd = 'MKD', - /** Myanmar kyat */ - Mmk = 'MMK', - /** Mongolian tögrög */ - Mnt = 'MNT', - /** Macanese pataca */ - Mop = 'MOP', - /** Mauritanian ouguiya */ - Mru = 'MRU', - /** Mauritian rupee */ - Mur = 'MUR', - /** Maldivian rufiyaa */ - Mvr = 'MVR', - /** Malawian kwacha */ - Mwk = 'MWK', - /** Mexican peso */ - Mxn = 'MXN', - /** Malaysian ringgit */ - Myr = 'MYR', - /** Mozambican metical */ - Mzn = 'MZN', - /** Namibian dollar */ - Nad = 'NAD', - /** Nigerian naira */ - Ngn = 'NGN', - /** Nicaraguan córdoba */ - Nio = 'NIO', - /** Norwegian krone */ - Nok = 'NOK', - /** Nepalese rupee */ - Npr = 'NPR', - /** New Zealand dollar */ - Nzd = 'NZD', - /** Omani rial */ - Omr = 'OMR', - /** Panamanian balboa */ - Pab = 'PAB', - /** Peruvian sol */ - Pen = 'PEN', - /** Papua New Guinean kina */ - Pgk = 'PGK', - /** Philippine peso */ - Php = 'PHP', - /** Pakistani rupee */ - Pkr = 'PKR', - /** Polish złoty */ - Pln = 'PLN', - /** Paraguayan guaraní */ - Pyg = 'PYG', - /** Qatari riyal */ - Qar = 'QAR', - /** Romanian leu */ - Ron = 'RON', - /** Serbian dinar */ - Rsd = 'RSD', - /** Russian ruble */ - Rub = 'RUB', - /** Rwandan franc */ - Rwf = 'RWF', - /** Saudi riyal */ - Sar = 'SAR', - /** Solomon Islands dollar */ - Sbd = 'SBD', - /** Seychelles rupee */ - Scr = 'SCR', - /** Sudanese pound */ - Sdg = 'SDG', - /** Swedish krona/kronor */ - Sek = 'SEK', - /** Singapore dollar */ - Sgd = 'SGD', - /** Saint Helena pound */ - Shp = 'SHP', - /** Sierra Leonean leone */ - Sll = 'SLL', - /** Somali shilling */ - Sos = 'SOS', - /** Surinamese dollar */ - Srd = 'SRD', - /** South Sudanese pound */ - Ssp = 'SSP', - /** São Tomé and Príncipe dobra */ - Stn = 'STN', - /** Salvadoran colón */ - Svc = 'SVC', - /** Syrian pound */ - Syp = 'SYP', - /** Swazi lilangeni */ - Szl = 'SZL', - /** Thai baht */ - Thb = 'THB', - /** Tajikistani somoni */ - Tjs = 'TJS', - /** Turkmenistan manat */ - Tmt = 'TMT', - /** Tunisian dinar */ - Tnd = 'TND', - /** Tongan paʻanga */ - Top = 'TOP', - /** Turkish lira */ - Try = 'TRY', - /** Trinidad and Tobago dollar */ - Ttd = 'TTD', - /** New Taiwan dollar */ - Twd = 'TWD', - /** Tanzanian shilling */ - Tzs = 'TZS', - /** Ukrainian hryvnia */ - Uah = 'UAH', - /** Ugandan shilling */ - Ugx = 'UGX', - /** United States dollar */ - Usd = 'USD', - /** Uruguayan peso */ - Uyu = 'UYU', - /** Uzbekistan som */ - Uzs = 'UZS', - /** Venezuelan bolívar soberano */ - Ves = 'VES', - /** Vietnamese đồng */ - Vnd = 'VND', - /** Vanuatu vatu */ - Vuv = 'VUV', - /** Samoan tala */ - Wst = 'WST', - /** CFA franc BEAC */ - Xaf = 'XAF', - /** East Caribbean dollar */ - Xcd = 'XCD', - /** CFA franc BCEAO */ - Xof = 'XOF', - /** CFP franc (franc Pacifique) */ - Xpf = 'XPF', - /** Yemeni rial */ - Yer = 'YER', - /** South African rand */ - Zar = 'ZAR', - /** Zambian kwacha */ - Zmw = 'ZMW', - /** Zimbabwean dollar */ - Zwl = 'ZWL' -} - -export type CurrentUser = { - __typename?: 'CurrentUser'; - id: Scalars['ID']; - identifier: Scalars['String']; - channels: Array; -}; - -export type CurrentUserChannel = { - __typename?: 'CurrentUserChannel'; - id: Scalars['ID']; - token: Scalars['String']; - code: Scalars['String']; - permissions: Array; -}; - -export type Customer = Node & { - __typename?: 'Customer'; - groups: Array; - history: HistoryEntryList; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - title?: Maybe; - firstName: Scalars['String']; - lastName: Scalars['String']; - phoneNumber?: Maybe; - emailAddress: Scalars['String']; - addresses?: Maybe>; - orders: OrderList; - user?: Maybe; - customFields?: Maybe; -}; - -export type CustomerHistoryArgs = { - options?: Maybe; -}; - -export type CustomerOrdersArgs = { - options?: Maybe; -}; - -export type CustomerFilterParameter = { - createdAt?: Maybe; - updatedAt?: Maybe; - title?: Maybe; - firstName?: Maybe; - lastName?: Maybe; - phoneNumber?: Maybe; - emailAddress?: Maybe; -}; - -export type CustomerGroup = Node & { - __typename?: 'CustomerGroup'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - name: Scalars['String']; - customers: CustomerList; -}; - -export type CustomerGroupCustomersArgs = { - options?: Maybe; -}; - -export type CustomerGroupFilterParameter = { - createdAt?: Maybe; - updatedAt?: Maybe; - name?: Maybe; -}; - -export type CustomerGroupList = PaginatedList & { - __typename?: 'CustomerGroupList'; - items: Array; - totalItems: Scalars['Int']; -}; - -export type CustomerGroupListOptions = { - skip?: Maybe; - take?: Maybe; - sort?: Maybe; - filter?: Maybe; -}; - -export type CustomerGroupSortParameter = { - id?: Maybe; - createdAt?: Maybe; - updatedAt?: Maybe; - name?: Maybe; -}; - -export type CustomerList = PaginatedList & { - __typename?: 'CustomerList'; - items: Array; - totalItems: Scalars['Int']; -}; - -export type CustomerListOptions = { - skip?: Maybe; - take?: Maybe; - sort?: Maybe; - filter?: Maybe; -}; - -export type CustomerSortParameter = { - id?: Maybe; - createdAt?: Maybe; - updatedAt?: Maybe; - title?: Maybe; - firstName?: Maybe; - lastName?: Maybe; - phoneNumber?: Maybe; - emailAddress?: Maybe; -}; - -export type CustomField = { - name: Scalars['String']; - type: Scalars['String']; - label?: Maybe>; - description?: Maybe>; - readonly?: Maybe; - internal?: Maybe; -}; - -export type CustomFieldConfig = - | StringCustomFieldConfig - | LocaleStringCustomFieldConfig - | IntCustomFieldConfig - | FloatCustomFieldConfig - | BooleanCustomFieldConfig - | DateTimeCustomFieldConfig; - -export type CustomFields = { - __typename?: 'CustomFields'; - Address: Array; - Collection: Array; - Customer: Array; - Facet: Array; - FacetValue: Array; - GlobalSettings: Array; - Order: Array; - OrderLine: Array; - Product: Array; - ProductOption: Array; - ProductOptionGroup: Array; - ProductVariant: Array; - User: Array; - ShippingMethod: Array; -}; - -export type DateOperators = { - eq?: Maybe; - before?: Maybe; - after?: Maybe; - between?: Maybe; -}; - -export type DateRange = { - start: Scalars['DateTime']; - end: Scalars['DateTime']; -}; - -/** - * Expects the same validation formats as the `` HTML element. - * See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/datetime-local#Additional_attributes - */ -export type DateTimeCustomFieldConfig = CustomField & { - __typename?: 'DateTimeCustomFieldConfig'; - name: Scalars['String']; - type: Scalars['String']; - label?: Maybe>; - description?: Maybe>; - readonly?: Maybe; - internal?: Maybe; - min?: Maybe; - max?: Maybe; - step?: Maybe; -}; - -export type DeletionResponse = { - __typename?: 'DeletionResponse'; - result: DeletionResult; - message?: Maybe; -}; - -export enum DeletionResult { - /** The entity was successfully deleted */ - Deleted = 'DELETED', - /** Deletion did not take place, reason given in message */ - NotDeleted = 'NOT_DELETED' -} - -export type Facet = Node & { - __typename?: 'Facet'; - isPrivate: Scalars['Boolean']; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - languageCode: LanguageCode; - name: Scalars['String']; - code: Scalars['String']; - values: Array; - translations: Array; - customFields?: Maybe; -}; - -export type FacetFilterParameter = { - isPrivate?: Maybe; - createdAt?: Maybe; - updatedAt?: Maybe; - languageCode?: Maybe; - name?: Maybe; - code?: Maybe; -}; - -export type FacetList = PaginatedList & { - __typename?: 'FacetList'; - items: Array; - totalItems: Scalars['Int']; -}; - -export type FacetListOptions = { - skip?: Maybe; - take?: Maybe; - sort?: Maybe; - filter?: Maybe; -}; - -export type FacetSortParameter = { - id?: Maybe; - createdAt?: Maybe; - updatedAt?: Maybe; - name?: Maybe; - code?: Maybe; -}; - -export type FacetTranslation = { - __typename?: 'FacetTranslation'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - languageCode: LanguageCode; - name: Scalars['String']; -}; - -export type FacetTranslationInput = { - id?: Maybe; - languageCode: LanguageCode; - name?: Maybe; - customFields?: Maybe; -}; - -export type FacetValue = Node & { - __typename?: 'FacetValue'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - languageCode: LanguageCode; - facet: Facet; - name: Scalars['String']; - code: Scalars['String']; - translations: Array; - customFields?: Maybe; -}; - -/** - * Which FacetValues are present in the products returned - * by the search, and in what quantity. - */ -export type FacetValueResult = { - __typename?: 'FacetValueResult'; - facetValue: FacetValue; - count: Scalars['Int']; -}; - -export type FacetValueTranslation = { - __typename?: 'FacetValueTranslation'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - languageCode: LanguageCode; - name: Scalars['String']; -}; - -export type FacetValueTranslationInput = { - id?: Maybe; - languageCode: LanguageCode; - name?: Maybe; - customFields?: Maybe; -}; - -export type FloatCustomFieldConfig = CustomField & { - __typename?: 'FloatCustomFieldConfig'; - name: Scalars['String']; - type: Scalars['String']; - label?: Maybe>; - description?: Maybe>; - readonly?: Maybe; - internal?: Maybe; - min?: Maybe; - max?: Maybe; - step?: Maybe; -}; - -export type Fulfillment = Node & { - __typename?: 'Fulfillment'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - orderItems: Array; - method: Scalars['String']; - trackingCode?: Maybe; -}; - -export type FulfillOrderInput = { - lines: Array; - method: Scalars['String']; - trackingCode?: Maybe; -}; - -export type GlobalSettings = { - __typename?: 'GlobalSettings'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - availableLanguages: Array; - trackInventory: Scalars['Boolean']; - serverConfig: ServerConfig; - customFields?: Maybe; -}; - -export type HistoryEntry = Node & { - __typename?: 'HistoryEntry'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - isPublic: Scalars['Boolean']; - type: HistoryEntryType; - administrator?: Maybe; - data: Scalars['JSON']; -}; - -export type HistoryEntryFilterParameter = { - createdAt?: Maybe; - updatedAt?: Maybe; - isPublic?: Maybe; - type?: Maybe; -}; - -export type HistoryEntryList = PaginatedList & { - __typename?: 'HistoryEntryList'; - items: Array; - totalItems: Scalars['Int']; -}; - -export type HistoryEntryListOptions = { - skip?: Maybe; - take?: Maybe; - sort?: Maybe; - filter?: Maybe; -}; - -export type HistoryEntrySortParameter = { - id?: Maybe; - createdAt?: Maybe; - updatedAt?: Maybe; -}; - -export enum HistoryEntryType { - CustomerRegistered = 'CUSTOMER_REGISTERED', - CustomerVerified = 'CUSTOMER_VERIFIED', - CustomerDetailUpdated = 'CUSTOMER_DETAIL_UPDATED', - CustomerAddedToGroup = 'CUSTOMER_ADDED_TO_GROUP', - CustomerRemovedFromGroup = 'CUSTOMER_REMOVED_FROM_GROUP', - CustomerAddressCreated = 'CUSTOMER_ADDRESS_CREATED', - CustomerAddressUpdated = 'CUSTOMER_ADDRESS_UPDATED', - CustomerAddressDeleted = 'CUSTOMER_ADDRESS_DELETED', - CustomerPasswordUpdated = 'CUSTOMER_PASSWORD_UPDATED', - CustomerPasswordResetRequested = 'CUSTOMER_PASSWORD_RESET_REQUESTED', - CustomerPasswordResetVerified = 'CUSTOMER_PASSWORD_RESET_VERIFIED', - CustomerEmailUpdateRequested = 'CUSTOMER_EMAIL_UPDATE_REQUESTED', - CustomerEmailUpdateVerified = 'CUSTOMER_EMAIL_UPDATE_VERIFIED', - CustomerNote = 'CUSTOMER_NOTE', - OrderStateTransition = 'ORDER_STATE_TRANSITION', - OrderPaymentTransition = 'ORDER_PAYMENT_TRANSITION', - OrderFullfillment = 'ORDER_FULLFILLMENT', - OrderCancellation = 'ORDER_CANCELLATION', - OrderRefundTransition = 'ORDER_REFUND_TRANSITION', - OrderNote = 'ORDER_NOTE', - OrderCouponApplied = 'ORDER_COUPON_APPLIED', - OrderCouponRemoved = 'ORDER_COUPON_REMOVED' -} - -export type ImportInfo = { - __typename?: 'ImportInfo'; - errors?: Maybe>; - processed: Scalars['Int']; - imported: Scalars['Int']; -}; - -export type IntCustomFieldConfig = CustomField & { - __typename?: 'IntCustomFieldConfig'; - name: Scalars['String']; - type: Scalars['String']; - label?: Maybe>; - description?: Maybe>; - readonly?: Maybe; - internal?: Maybe; - min?: Maybe; - max?: Maybe; - step?: Maybe; -}; - -export type Job = Node & { - __typename?: 'Job'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - startedAt?: Maybe; - settledAt?: Maybe; - queueName: Scalars['String']; - state: JobState; - progress: Scalars['Float']; - data?: Maybe; - result?: Maybe; - error?: Maybe; - isSettled: Scalars['Boolean']; - duration: Scalars['Int']; -}; - -export type JobFilterParameter = { - createdAt?: Maybe; - startedAt?: Maybe; - settledAt?: Maybe; - queueName?: Maybe; - state?: Maybe; - progress?: Maybe; - isSettled?: Maybe; - duration?: Maybe; -}; - -export type JobList = PaginatedList & { - __typename?: 'JobList'; - items: Array; - totalItems: Scalars['Int']; -}; - -export type JobListOptions = { - skip?: Maybe; - take?: Maybe; - sort?: Maybe; - filter?: Maybe; -}; - -export type JobQueue = { - __typename?: 'JobQueue'; - name: Scalars['String']; - running: Scalars['Boolean']; -}; - -export type JobSortParameter = { - id?: Maybe; - createdAt?: Maybe; - startedAt?: Maybe; - settledAt?: Maybe; - queueName?: Maybe; - progress?: Maybe; - duration?: Maybe; -}; - -/** - * @description - * The state of a Job in the JobQueue - * - * @docsCategory common - */ -export enum JobState { - Pending = 'PENDING', - Running = 'RUNNING', - Completed = 'COMPLETED', - Retrying = 'RETRYING', - Failed = 'FAILED' -} - -/** - * @description - * Languages in the form of a ISO 639-1 language code with optional - * region or script modifier (e.g. de_AT). The selection available is based - * on the [Unicode CLDR summary list](https://unicode-org.github.io/cldr-staging/charts/37/summary/root.html) - * and includes the major spoken languages of the world and any widely-used variants. - * - * @docsCategory common - */ -export enum LanguageCode { - /** Afrikaans */ - Af = 'af', - /** Akan */ - Ak = 'ak', - /** Albanian */ - Sq = 'sq', - /** Amharic */ - Am = 'am', - /** Arabic */ - Ar = 'ar', - /** Armenian */ - Hy = 'hy', - /** Assamese */ - As = 'as', - /** Azerbaijani */ - Az = 'az', - /** Bambara */ - Bm = 'bm', - /** Bangla */ - Bn = 'bn', - /** Basque */ - Eu = 'eu', - /** Belarusian */ - Be = 'be', - /** Bosnian */ - Bs = 'bs', - /** Breton */ - Br = 'br', - /** Bulgarian */ - Bg = 'bg', - /** Burmese */ - My = 'my', - /** Catalan */ - Ca = 'ca', - /** Chechen */ - Ce = 'ce', - /** Chinese */ - Zh = 'zh', - /** Simplified Chinese */ - ZhHans = 'zh_Hans', - /** Traditional Chinese */ - ZhHant = 'zh_Hant', - /** Church Slavic */ - Cu = 'cu', - /** Cornish */ - Kw = 'kw', - /** Corsican */ - Co = 'co', - /** Croatian */ - Hr = 'hr', - /** Czech */ - Cs = 'cs', - /** Danish */ - Da = 'da', - /** Dutch */ - Nl = 'nl', - /** Flemish */ - NlBe = 'nl_BE', - /** Dzongkha */ - Dz = 'dz', - /** English */ - En = 'en', - /** Australian English */ - EnAu = 'en_AU', - /** Canadian English */ - EnCa = 'en_CA', - /** British English */ - EnGb = 'en_GB', - /** American English */ - EnUs = 'en_US', - /** Esperanto */ - Eo = 'eo', - /** Estonian */ - Et = 'et', - /** Ewe */ - Ee = 'ee', - /** Faroese */ - Fo = 'fo', - /** Finnish */ - Fi = 'fi', - /** French */ - Fr = 'fr', - /** Canadian French */ - FrCa = 'fr_CA', - /** Swiss French */ - FrCh = 'fr_CH', - /** Fulah */ - Ff = 'ff', - /** Galician */ - Gl = 'gl', - /** Ganda */ - Lg = 'lg', - /** Georgian */ - Ka = 'ka', - /** German */ - De = 'de', - /** Austrian German */ - DeAt = 'de_AT', - /** Swiss High German */ - DeCh = 'de_CH', - /** Greek */ - El = 'el', - /** Gujarati */ - Gu = 'gu', - /** Haitian Creole */ - Ht = 'ht', - /** Hausa */ - Ha = 'ha', - /** Hebrew */ - He = 'he', - /** Hindi */ - Hi = 'hi', - /** Hungarian */ - Hu = 'hu', - /** Icelandic */ - Is = 'is', - /** Igbo */ - Ig = 'ig', - /** Indonesian */ - Id = 'id', - /** Interlingua */ - Ia = 'ia', - /** Irish */ - Ga = 'ga', - /** Italian */ - It = 'it', - /** Japanese */ - Ja = 'ja', - /** Javanese */ - Jv = 'jv', - /** Kalaallisut */ - Kl = 'kl', - /** Kannada */ - Kn = 'kn', - /** Kashmiri */ - Ks = 'ks', - /** Kazakh */ - Kk = 'kk', - /** Khmer */ - Km = 'km', - /** Kikuyu */ - Ki = 'ki', - /** Kinyarwanda */ - Rw = 'rw', - /** Korean */ - Ko = 'ko', - /** Kurdish */ - Ku = 'ku', - /** Kyrgyz */ - Ky = 'ky', - /** Lao */ - Lo = 'lo', - /** Latin */ - La = 'la', - /** Latvian */ - Lv = 'lv', - /** Lingala */ - Ln = 'ln', - /** Lithuanian */ - Lt = 'lt', - /** Luba-Katanga */ - Lu = 'lu', - /** Luxembourgish */ - Lb = 'lb', - /** Macedonian */ - Mk = 'mk', - /** Malagasy */ - Mg = 'mg', - /** Malay */ - Ms = 'ms', - /** Malayalam */ - Ml = 'ml', - /** Maltese */ - Mt = 'mt', - /** Manx */ - Gv = 'gv', - /** Maori */ - Mi = 'mi', - /** Marathi */ - Mr = 'mr', - /** Mongolian */ - Mn = 'mn', - /** Nepali */ - Ne = 'ne', - /** North Ndebele */ - Nd = 'nd', - /** Northern Sami */ - Se = 'se', - /** Norwegian Bokmål */ - Nb = 'nb', - /** Norwegian Nynorsk */ - Nn = 'nn', - /** Nyanja */ - Ny = 'ny', - /** Odia */ - Or = 'or', - /** Oromo */ - Om = 'om', - /** Ossetic */ - Os = 'os', - /** Pashto */ - Ps = 'ps', - /** Persian */ - Fa = 'fa', - /** Dari */ - FaAf = 'fa_AF', - /** Polish */ - Pl = 'pl', - /** Portuguese */ - Pt = 'pt', - /** Brazilian Portuguese */ - PtBr = 'pt_BR', - /** European Portuguese */ - PtPt = 'pt_PT', - /** Punjabi */ - Pa = 'pa', - /** Quechua */ - Qu = 'qu', - /** Romanian */ - Ro = 'ro', - /** Moldavian */ - RoMd = 'ro_MD', - /** Romansh */ - Rm = 'rm', - /** Rundi */ - Rn = 'rn', - /** Russian */ - Ru = 'ru', - /** Samoan */ - Sm = 'sm', - /** Sango */ - Sg = 'sg', - /** Sanskrit */ - Sa = 'sa', - /** Scottish Gaelic */ - Gd = 'gd', - /** Serbian */ - Sr = 'sr', - /** Shona */ - Sn = 'sn', - /** Sichuan Yi */ - Ii = 'ii', - /** Sindhi */ - Sd = 'sd', - /** Sinhala */ - Si = 'si', - /** Slovak */ - Sk = 'sk', - /** Slovenian */ - Sl = 'sl', - /** Somali */ - So = 'so', - /** Southern Sotho */ - St = 'st', - /** Spanish */ - Es = 'es', - /** European Spanish */ - EsEs = 'es_ES', - /** Mexican Spanish */ - EsMx = 'es_MX', - /** Sundanese */ - Su = 'su', - /** Swahili */ - Sw = 'sw', - /** Congo Swahili */ - SwCd = 'sw_CD', - /** Swedish */ - Sv = 'sv', - /** Tajik */ - Tg = 'tg', - /** Tamil */ - Ta = 'ta', - /** Tatar */ - Tt = 'tt', - /** Telugu */ - Te = 'te', - /** Thai */ - Th = 'th', - /** Tibetan */ - Bo = 'bo', - /** Tigrinya */ - Ti = 'ti', - /** Tongan */ - To = 'to', - /** Turkish */ - Tr = 'tr', - /** Turkmen */ - Tk = 'tk', - /** Ukrainian */ - Uk = 'uk', - /** Urdu */ - Ur = 'ur', - /** Uyghur */ - Ug = 'ug', - /** Uzbek */ - Uz = 'uz', - /** Vietnamese */ - Vi = 'vi', - /** Volapük */ - Vo = 'vo', - /** Welsh */ - Cy = 'cy', - /** Western Frisian */ - Fy = 'fy', - /** Wolof */ - Wo = 'wo', - /** Xhosa */ - Xh = 'xh', - /** Yiddish */ - Yi = 'yi', - /** Yoruba */ - Yo = 'yo', - /** Zulu */ - Zu = 'zu' -} - -export type LocaleStringCustomFieldConfig = CustomField & { - __typename?: 'LocaleStringCustomFieldConfig'; - name: Scalars['String']; - type: Scalars['String']; - label?: Maybe>; - description?: Maybe>; - readonly?: Maybe; - internal?: Maybe; - pattern?: Maybe; -}; - -export type LocalizedString = { - __typename?: 'LocalizedString'; - languageCode: LanguageCode; - value: Scalars['String']; -}; - -export enum LogicalOperator { - And = 'AND', - Or = 'OR' -} - -export type LoginResult = { - __typename?: 'LoginResult'; - user: CurrentUser; -}; - -export type MoveCollectionInput = { - collectionId: Scalars['ID']; - parentId: Scalars['ID']; - index: Scalars['Int']; -}; - -export type Mutation = { - __typename?: 'Mutation'; - /** Create a new Administrator */ - createAdministrator: Administrator; - /** Update an existing Administrator */ - updateAdministrator: Administrator; - /** Delete an Administrator */ - deleteAdministrator: DeletionResponse; - /** Assign a Role to an Administrator */ - assignRoleToAdministrator: Administrator; - /** Create a new Asset */ - createAssets: Array; - /** Update an existing Asset */ - updateAsset: Asset; - /** Delete an Asset */ - deleteAsset: DeletionResponse; - /** Delete multiple Assets */ - deleteAssets: DeletionResponse; - /** - * Authenticates the user using the native authentication strategy. This mutation - * is an alias for `authenticate({ native: { ... }})` - */ - login: LoginResult; - /** Authenticates the user using a named authentication strategy */ - authenticate: LoginResult; - logout: Scalars['Boolean']; - /** Create a new Channel */ - createChannel: Channel; - /** Update an existing Channel */ - updateChannel: Channel; - /** Delete a Channel */ - deleteChannel: DeletionResponse; - /** Create a new Collection */ - createCollection: Collection; - /** Update an existing Collection */ - updateCollection: Collection; - /** Delete a Collection and all of its descendants */ - deleteCollection: DeletionResponse; - /** Move a Collection to a different parent or index */ - moveCollection: Collection; - /** Create a new Country */ - createCountry: Country; - /** Update an existing Country */ - updateCountry: Country; - /** Delete a Country */ - deleteCountry: DeletionResponse; - /** Create a new CustomerGroup */ - createCustomerGroup: CustomerGroup; - /** Update an existing CustomerGroup */ - updateCustomerGroup: CustomerGroup; - /** Delete a CustomerGroup */ - deleteCustomerGroup: DeletionResponse; - /** Add Customers to a CustomerGroup */ - addCustomersToGroup: CustomerGroup; - /** Remove Customers from a CustomerGroup */ - removeCustomersFromGroup: CustomerGroup; - /** Create a new Customer. If a password is provided, a new User will also be created an linked to the Customer. */ - createCustomer: Customer; - /** Update an existing Customer */ - updateCustomer: Customer; - /** Delete a Customer */ - deleteCustomer: DeletionResponse; - /** Create a new Address and associate it with the Customer specified by customerId */ - createCustomerAddress: Address; - /** Update an existing Address */ - updateCustomerAddress: Address; - /** Update an existing Address */ - deleteCustomerAddress: Scalars['Boolean']; - addNoteToCustomer: Customer; - updateCustomerNote: HistoryEntry; - deleteCustomerNote: DeletionResponse; - /** Create a new Facet */ - createFacet: Facet; - /** Update an existing Facet */ - updateFacet: Facet; - /** Delete an existing Facet */ - deleteFacet: DeletionResponse; - /** Create one or more FacetValues */ - createFacetValues: Array; - /** Update one or more FacetValues */ - updateFacetValues: Array; - /** Delete one or more FacetValues */ - deleteFacetValues: Array; - updateGlobalSettings: GlobalSettings; - importProducts?: Maybe; - /** Remove all settled jobs in the given queues olfer than the given date. Returns the number of jobs deleted. */ - removeSettledJobs: Scalars['Int']; - settlePayment: Payment; - fulfillOrder: Fulfillment; - cancelOrder: Order; - refundOrder: Refund; - settleRefund: Refund; - addNoteToOrder: Order; - updateOrderNote: HistoryEntry; - deleteOrderNote: DeletionResponse; - transitionOrderToState?: Maybe; - setOrderCustomFields?: Maybe; - /** Update an existing PaymentMethod */ - updatePaymentMethod: PaymentMethod; - /** Create a new ProductOptionGroup */ - createProductOptionGroup: ProductOptionGroup; - /** Update an existing ProductOptionGroup */ - updateProductOptionGroup: ProductOptionGroup; - /** Create a new ProductOption within a ProductOptionGroup */ - createProductOption: ProductOption; - /** Create a new ProductOption within a ProductOptionGroup */ - updateProductOption: ProductOption; - reindex: Job; - /** Create a new Product */ - createProduct: Product; - /** Update an existing Product */ - updateProduct: Product; - /** Delete a Product */ - deleteProduct: DeletionResponse; - /** Add an OptionGroup to a Product */ - addOptionGroupToProduct: Product; - /** Remove an OptionGroup from a Product */ - removeOptionGroupFromProduct: Product; - /** Create a set of ProductVariants based on the OptionGroups assigned to the given Product */ - createProductVariants: Array>; - /** Update existing ProductVariants */ - updateProductVariants: Array>; - /** Delete a ProductVariant */ - deleteProductVariant: DeletionResponse; - /** Assigns Products to the specified Channel */ - assignProductsToChannel: Array; - /** Removes Products from the specified Channel */ - removeProductsFromChannel: Array; - createPromotion: Promotion; - updatePromotion: Promotion; - deletePromotion: DeletionResponse; - /** Create a new Role */ - createRole: Role; - /** Update an existing Role */ - updateRole: Role; - /** Delete an existing Role */ - deleteRole: DeletionResponse; - /** Create a new ShippingMethod */ - createShippingMethod: ShippingMethod; - /** Update an existing ShippingMethod */ - updateShippingMethod: ShippingMethod; - /** Delete a ShippingMethod */ - deleteShippingMethod: DeletionResponse; - /** Create a new TaxCategory */ - createTaxCategory: TaxCategory; - /** Update an existing TaxCategory */ - updateTaxCategory: TaxCategory; - /** Deletes a TaxCategory */ - deleteTaxCategory: DeletionResponse; - /** Create a new TaxRate */ - createTaxRate: TaxRate; - /** Update an existing TaxRate */ - updateTaxRate: TaxRate; - /** Delete a TaxRate */ - deleteTaxRate: DeletionResponse; - /** Create a new Zone */ - createZone: Zone; - /** Update an existing Zone */ - updateZone: Zone; - /** Delete a Zone */ - deleteZone: DeletionResponse; - /** Add members to a Zone */ - addMembersToZone: Zone; - /** Remove members from a Zone */ - removeMembersFromZone: Zone; - transitionReviewStoreToState?: Maybe; - transitionReviewProductToState?: Maybe; -}; - -export type MutationCreateAdministratorArgs = { - input: CreateAdministratorInput; -}; - -export type MutationUpdateAdministratorArgs = { - input: UpdateAdministratorInput; -}; - -export type MutationDeleteAdministratorArgs = { - id: Scalars['ID']; -}; - -export type MutationAssignRoleToAdministratorArgs = { - administratorId: Scalars['ID']; - roleId: Scalars['ID']; -}; - -export type MutationCreateAssetsArgs = { - input: Array; -}; - -export type MutationUpdateAssetArgs = { - input: UpdateAssetInput; -}; - -export type MutationDeleteAssetArgs = { - id: Scalars['ID']; - force?: Maybe; -}; - -export type MutationDeleteAssetsArgs = { - ids: Array; - force?: Maybe; -}; - -export type MutationLoginArgs = { - username: Scalars['String']; - password: Scalars['String']; - rememberMe?: Maybe; -}; - -export type MutationAuthenticateArgs = { - input: AuthenticationInput; - rememberMe?: Maybe; -}; - -export type MutationCreateChannelArgs = { - input: CreateChannelInput; -}; - -export type MutationUpdateChannelArgs = { - input: UpdateChannelInput; -}; - -export type MutationDeleteChannelArgs = { - id: Scalars['ID']; -}; - -export type MutationCreateCollectionArgs = { - input: CreateCollectionInput; -}; - -export type MutationUpdateCollectionArgs = { - input: UpdateCollectionInput; -}; - -export type MutationDeleteCollectionArgs = { - id: Scalars['ID']; -}; - -export type MutationMoveCollectionArgs = { - input: MoveCollectionInput; -}; - -export type MutationCreateCountryArgs = { - input: CreateCountryInput; -}; - -export type MutationUpdateCountryArgs = { - input: UpdateCountryInput; -}; - -export type MutationDeleteCountryArgs = { - id: Scalars['ID']; -}; - -export type MutationCreateCustomerGroupArgs = { - input: CreateCustomerGroupInput; -}; - -export type MutationUpdateCustomerGroupArgs = { - input: UpdateCustomerGroupInput; -}; - -export type MutationDeleteCustomerGroupArgs = { - id: Scalars['ID']; -}; - -export type MutationAddCustomersToGroupArgs = { - customerGroupId: Scalars['ID']; - customerIds: Array; -}; - -export type MutationRemoveCustomersFromGroupArgs = { - customerGroupId: Scalars['ID']; - customerIds: Array; -}; - -export type MutationCreateCustomerArgs = { - input: CreateCustomerInput; - password?: Maybe; -}; - -export type MutationUpdateCustomerArgs = { - input: UpdateCustomerInput; -}; - -export type MutationDeleteCustomerArgs = { - id: Scalars['ID']; -}; - -export type MutationCreateCustomerAddressArgs = { - customerId: Scalars['ID']; - input: CreateAddressInput; -}; - -export type MutationUpdateCustomerAddressArgs = { - input: UpdateAddressInput; -}; - -export type MutationDeleteCustomerAddressArgs = { - id: Scalars['ID']; -}; - -export type MutationAddNoteToCustomerArgs = { - input: AddNoteToCustomerInput; -}; - -export type MutationUpdateCustomerNoteArgs = { - input: UpdateCustomerNoteInput; -}; - -export type MutationDeleteCustomerNoteArgs = { - id: Scalars['ID']; -}; - -export type MutationCreateFacetArgs = { - input: CreateFacetInput; -}; - -export type MutationUpdateFacetArgs = { - input: UpdateFacetInput; -}; - -export type MutationDeleteFacetArgs = { - id: Scalars['ID']; - force?: Maybe; -}; - -export type MutationCreateFacetValuesArgs = { - input: Array; -}; - -export type MutationUpdateFacetValuesArgs = { - input: Array; -}; - -export type MutationDeleteFacetValuesArgs = { - ids: Array; - force?: Maybe; -}; - -export type MutationUpdateGlobalSettingsArgs = { - input: UpdateGlobalSettingsInput; -}; - -export type MutationImportProductsArgs = { - csvFile: Scalars['Upload']; -}; - -export type MutationRemoveSettledJobsArgs = { - queueNames?: Maybe>; - olderThan?: Maybe; -}; - -export type MutationSettlePaymentArgs = { - id: Scalars['ID']; -}; - -export type MutationFulfillOrderArgs = { - input: FulfillOrderInput; -}; - -export type MutationCancelOrderArgs = { - input: CancelOrderInput; -}; - -export type MutationRefundOrderArgs = { - input: RefundOrderInput; -}; - -export type MutationSettleRefundArgs = { - input: SettleRefundInput; -}; - -export type MutationAddNoteToOrderArgs = { - input: AddNoteToOrderInput; -}; - -export type MutationUpdateOrderNoteArgs = { - input: UpdateOrderNoteInput; -}; - -export type MutationDeleteOrderNoteArgs = { - id: Scalars['ID']; -}; - -export type MutationTransitionOrderToStateArgs = { - id: Scalars['ID']; - state: Scalars['String']; -}; - -export type MutationSetOrderCustomFieldsArgs = { - input: UpdateOrderInput; -}; - -export type MutationUpdatePaymentMethodArgs = { - input: UpdatePaymentMethodInput; -}; - -export type MutationCreateProductOptionGroupArgs = { - input: CreateProductOptionGroupInput; -}; - -export type MutationUpdateProductOptionGroupArgs = { - input: UpdateProductOptionGroupInput; -}; - -export type MutationCreateProductOptionArgs = { - input: CreateProductOptionInput; -}; - -export type MutationUpdateProductOptionArgs = { - input: UpdateProductOptionInput; -}; - -export type MutationCreateProductArgs = { - input: CreateProductInput; -}; - -export type MutationUpdateProductArgs = { - input: UpdateProductInput; -}; - -export type MutationDeleteProductArgs = { - id: Scalars['ID']; -}; - -export type MutationAddOptionGroupToProductArgs = { - productId: Scalars['ID']; - optionGroupId: Scalars['ID']; -}; - -export type MutationRemoveOptionGroupFromProductArgs = { - productId: Scalars['ID']; - optionGroupId: Scalars['ID']; -}; - -export type MutationCreateProductVariantsArgs = { - input: Array; -}; - -export type MutationUpdateProductVariantsArgs = { - input: Array; -}; - -export type MutationDeleteProductVariantArgs = { - id: Scalars['ID']; -}; - -export type MutationAssignProductsToChannelArgs = { - input: AssignProductsToChannelInput; -}; - -export type MutationRemoveProductsFromChannelArgs = { - input: RemoveProductsFromChannelInput; -}; - -export type MutationCreatePromotionArgs = { - input: CreatePromotionInput; -}; - -export type MutationUpdatePromotionArgs = { - input: UpdatePromotionInput; -}; - -export type MutationDeletePromotionArgs = { - id: Scalars['ID']; -}; - -export type MutationCreateRoleArgs = { - input: CreateRoleInput; -}; - -export type MutationUpdateRoleArgs = { - input: UpdateRoleInput; -}; - -export type MutationDeleteRoleArgs = { - id: Scalars['ID']; -}; - -export type MutationCreateShippingMethodArgs = { - input: CreateShippingMethodInput; -}; - -export type MutationUpdateShippingMethodArgs = { - input: UpdateShippingMethodInput; -}; - -export type MutationDeleteShippingMethodArgs = { - id: Scalars['ID']; -}; - -export type MutationCreateTaxCategoryArgs = { - input: CreateTaxCategoryInput; -}; - -export type MutationUpdateTaxCategoryArgs = { - input: UpdateTaxCategoryInput; -}; - -export type MutationDeleteTaxCategoryArgs = { - id: Scalars['ID']; -}; - -export type MutationCreateTaxRateArgs = { - input: CreateTaxRateInput; -}; - -export type MutationUpdateTaxRateArgs = { - input: UpdateTaxRateInput; -}; - -export type MutationDeleteTaxRateArgs = { - id: Scalars['ID']; -}; - -export type MutationCreateZoneArgs = { - input: CreateZoneInput; -}; - -export type MutationUpdateZoneArgs = { - input: UpdateZoneInput; -}; - -export type MutationDeleteZoneArgs = { - id: Scalars['ID']; -}; - -export type MutationAddMembersToZoneArgs = { - zoneId: Scalars['ID']; - memberIds: Array; -}; - -export type MutationRemoveMembersFromZoneArgs = { - zoneId: Scalars['ID']; - memberIds: Array; -}; - -export type MutationTransitionReviewStoreToStateArgs = { - id: Scalars['ID']; - state: Scalars['String']; -}; - -export type MutationTransitionReviewProductToStateArgs = { - id: Scalars['ID']; - state: Scalars['String']; -}; - -export type NativeAuthInput = { - username: Scalars['String']; - password: Scalars['String']; -}; - -export type Node = { - id: Scalars['ID']; -}; - -export type NumberOperators = { - eq?: Maybe; - lt?: Maybe; - lte?: Maybe; - gt?: Maybe; - gte?: Maybe; - between?: Maybe; -}; - -export type NumberRange = { - start: Scalars['Float']; - end: Scalars['Float']; -}; - -export type Order = Node & { - __typename?: 'Order'; - nextStates: Array; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - /** A unique code for the Order */ - code: Scalars['String']; - state: Scalars['String']; - /** An order is active as long as the payment process has not been completed */ - active: Scalars['Boolean']; - customer?: Maybe; - shippingAddress?: Maybe; - billingAddress?: Maybe; - lines: Array; - /** Order-level adjustments to the order total, such as discounts from promotions */ - adjustments: Array; - couponCodes: Array; - /** Promotions applied to the order. Only gets populated after the payment process has completed. */ - promotions: Array; - payments?: Maybe>; - fulfillments?: Maybe>; - subTotalBeforeTax: Scalars['Int']; - /** The subTotal is the total of the OrderLines, before order-level promotions and shipping has been applied. */ - subTotal: Scalars['Int']; - currencyCode: CurrencyCode; - shipping: Scalars['Int']; - shippingWithTax: Scalars['Int']; - shippingMethod?: Maybe; - totalBeforeTax: Scalars['Int']; - total: Scalars['Int']; - history: HistoryEntryList; - customFields?: Maybe; -}; - -export type OrderHistoryArgs = { - options?: Maybe; -}; - -export type OrderAddress = { - __typename?: 'OrderAddress'; - fullName?: Maybe; - company?: Maybe; - streetLine1?: Maybe; - streetLine2?: Maybe; - city?: Maybe; - province?: Maybe; - postalCode?: Maybe; - country?: Maybe; - countryCode?: Maybe; - phoneNumber?: Maybe; -}; - -export type OrderFilterParameter = { - createdAt?: Maybe; - updatedAt?: Maybe; - code?: Maybe; - state?: Maybe; - active?: Maybe; - subTotalBeforeTax?: Maybe; - subTotal?: Maybe; - currencyCode?: Maybe; - shipping?: Maybe; - shippingWithTax?: Maybe; - totalBeforeTax?: Maybe; - total?: Maybe; -}; - -export type OrderItem = Node & { - __typename?: 'OrderItem'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - cancelled: Scalars['Boolean']; - unitPrice: Scalars['Int']; - unitPriceWithTax: Scalars['Int']; - unitPriceIncludesTax: Scalars['Boolean']; - taxRate: Scalars['Float']; - adjustments: Array; - fulfillment?: Maybe; - refundId?: Maybe; -}; - -export type OrderLine = Node & { - __typename?: 'OrderLine'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - productVariant: ProductVariant; - featuredAsset?: Maybe; - unitPrice: Scalars['Int']; - unitPriceWithTax: Scalars['Int']; - quantity: Scalars['Int']; - items: Array; - totalPrice: Scalars['Int']; - adjustments: Array; - order: Order; - customFields?: Maybe; -}; - -export type OrderLineInput = { - orderLineId: Scalars['ID']; - quantity: Scalars['Int']; -}; - -export type OrderList = PaginatedList & { - __typename?: 'OrderList'; - items: Array; - totalItems: Scalars['Int']; -}; - -export type OrderListOptions = { - skip?: Maybe; - take?: Maybe; - sort?: Maybe; - filter?: Maybe; -}; - -export type OrderProcessState = { - __typename?: 'OrderProcessState'; - name: Scalars['String']; - to: Array; -}; - -export type OrderSortParameter = { - id?: Maybe; - createdAt?: Maybe; - updatedAt?: Maybe; - code?: Maybe; - state?: Maybe; - subTotalBeforeTax?: Maybe; - subTotal?: Maybe; - shipping?: Maybe; - shippingWithTax?: Maybe; - totalBeforeTax?: Maybe; - total?: Maybe; -}; - -export type PaginatedList = { - items: Array; - totalItems: Scalars['Int']; -}; - -export type Payment = Node & { - __typename?: 'Payment'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - method: Scalars['String']; - amount: Scalars['Int']; - state: Scalars['String']; - transactionId?: Maybe; - errorMessage?: Maybe; - refunds: Array; - metadata?: Maybe; -}; - -export type PaymentMethod = Node & { - __typename?: 'PaymentMethod'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - code: Scalars['String']; - enabled: Scalars['Boolean']; - configArgs: Array; -}; - -export type PaymentMethodFilterParameter = { - createdAt?: Maybe; - updatedAt?: Maybe; - code?: Maybe; - enabled?: Maybe; -}; - -export type PaymentMethodList = PaginatedList & { - __typename?: 'PaymentMethodList'; - items: Array; - totalItems: Scalars['Int']; -}; - -export type PaymentMethodListOptions = { - skip?: Maybe; - take?: Maybe; - sort?: Maybe; - filter?: Maybe; -}; - -export type PaymentMethodSortParameter = { - id?: Maybe; - createdAt?: Maybe; - updatedAt?: Maybe; - code?: Maybe; -}; - -/** - * " - * @description - * Permissions for administrators and customers. Used to control access to - * GraphQL resolvers via the {@link Allow} decorator. - * - * @docsCategory common - */ -export enum Permission { - /** The Authenticated role means simply that the user is logged in */ - Authenticated = 'Authenticated', - /** SuperAdmin can perform the most sensitive tasks */ - SuperAdmin = 'SuperAdmin', - /** Owner means the user owns this entity, e.g. a Customer's own Order */ - Owner = 'Owner', - /** Public means any unauthenticated user may perform the operation */ - Public = 'Public', - CreateCatalog = 'CreateCatalog', - ReadCatalog = 'ReadCatalog', - UpdateCatalog = 'UpdateCatalog', - DeleteCatalog = 'DeleteCatalog', - CreateCustomer = 'CreateCustomer', - ReadCustomer = 'ReadCustomer', - UpdateCustomer = 'UpdateCustomer', - DeleteCustomer = 'DeleteCustomer', - CreateAdministrator = 'CreateAdministrator', - ReadAdministrator = 'ReadAdministrator', - UpdateAdministrator = 'UpdateAdministrator', - DeleteAdministrator = 'DeleteAdministrator', - CreateOrder = 'CreateOrder', - ReadOrder = 'ReadOrder', - UpdateOrder = 'UpdateOrder', - DeleteOrder = 'DeleteOrder', - CreatePromotion = 'CreatePromotion', - ReadPromotion = 'ReadPromotion', - UpdatePromotion = 'UpdatePromotion', - DeletePromotion = 'DeletePromotion', - CreateSettings = 'CreateSettings', - ReadSettings = 'ReadSettings', - UpdateSettings = 'UpdateSettings', - DeleteSettings = 'DeleteSettings' -} - -/** The price range where the result has more than one price */ -export type PriceRange = { - __typename?: 'PriceRange'; - min: Scalars['Int']; - max: Scalars['Int']; -}; - -export type Product = Node & { - __typename?: 'Product'; - enabled: Scalars['Boolean']; - channels: Array; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - languageCode: LanguageCode; - name: Scalars['String']; - slug: Scalars['String']; - description: Scalars['String']; - featuredAsset?: Maybe; - assets: Array; - variants: Array; - optionGroups: Array; - facetValues: Array; - translations: Array; - collections: Array; - customFields?: Maybe; -}; - -export type ProductFilterParameter = { - enabled?: Maybe; - createdAt?: Maybe; - updatedAt?: Maybe; - languageCode?: Maybe; - name?: Maybe; - slug?: Maybe; - description?: Maybe; -}; - -export type ProductList = PaginatedList & { - __typename?: 'ProductList'; - items: Array; - totalItems: Scalars['Int']; -}; - -export type ProductListOptions = { - skip?: Maybe; - take?: Maybe; - sort?: Maybe; - filter?: Maybe; -}; - -export type ProductOption = Node & { - __typename?: 'ProductOption'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - languageCode: LanguageCode; - code: Scalars['String']; - name: Scalars['String']; - groupId: Scalars['ID']; - group: ProductOptionGroup; - translations: Array; - customFields?: Maybe; -}; - -export type ProductOptionGroup = Node & { - __typename?: 'ProductOptionGroup'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - languageCode: LanguageCode; - code: Scalars['String']; - name: Scalars['String']; - options: Array; - translations: Array; - customFields?: Maybe; -}; - -export type ProductOptionGroupTranslation = { - __typename?: 'ProductOptionGroupTranslation'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - languageCode: LanguageCode; - name: Scalars['String']; -}; - -export type ProductOptionGroupTranslationInput = { - id?: Maybe; - languageCode: LanguageCode; - name?: Maybe; - customFields?: Maybe; -}; - -export type ProductOptionTranslation = { - __typename?: 'ProductOptionTranslation'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - languageCode: LanguageCode; - name: Scalars['String']; -}; - -export type ProductOptionTranslationInput = { - id?: Maybe; - languageCode: LanguageCode; - name?: Maybe; - customFields?: Maybe; -}; - -export type ProductSortParameter = { - id?: Maybe; - createdAt?: Maybe; - updatedAt?: Maybe; - name?: Maybe; - slug?: Maybe; - description?: Maybe; -}; - -export type ProductTranslation = { - __typename?: 'ProductTranslation'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - languageCode: LanguageCode; - name: Scalars['String']; - slug: Scalars['String']; - description: Scalars['String']; -}; - -export type ProductTranslationInput = { - id?: Maybe; - languageCode: LanguageCode; - name?: Maybe; - slug?: Maybe; - description?: Maybe; - customFields?: Maybe; -}; - -export type ProductVariant = Node & { - __typename?: 'ProductVariant'; - enabled: Scalars['Boolean']; - stockOnHand: Scalars['Int']; - trackInventory: Scalars['Boolean']; - stockMovements: StockMovementList; - id: Scalars['ID']; - product: Product; - productId: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - languageCode: LanguageCode; - sku: Scalars['String']; - name: Scalars['String']; - featuredAsset?: Maybe; - assets: Array; - price: Scalars['Int']; - currencyCode: CurrencyCode; - priceIncludesTax: Scalars['Boolean']; - priceWithTax: Scalars['Int']; - taxRateApplied: TaxRate; - taxCategory: TaxCategory; - options: Array; - facetValues: Array; - translations: Array; - customFields?: Maybe; -}; - -export type ProductVariantStockMovementsArgs = { - options?: Maybe; -}; - -export type ProductVariantFilterParameter = { - enabled?: Maybe; - stockOnHand?: Maybe; - trackInventory?: Maybe; - createdAt?: Maybe; - updatedAt?: Maybe; - languageCode?: Maybe; - sku?: Maybe; - name?: Maybe; - price?: Maybe; - currencyCode?: Maybe; - priceIncludesTax?: Maybe; - priceWithTax?: Maybe; -}; - -export type ProductVariantList = PaginatedList & { - __typename?: 'ProductVariantList'; - items: Array; - totalItems: Scalars['Int']; -}; - -export type ProductVariantListOptions = { - skip?: Maybe; - take?: Maybe; - sort?: Maybe; - filter?: Maybe; -}; - -export type ProductVariantSortParameter = { - stockOnHand?: Maybe; - id?: Maybe; - productId?: Maybe; - createdAt?: Maybe; - updatedAt?: Maybe; - sku?: Maybe; - name?: Maybe; - price?: Maybe; - priceWithTax?: Maybe; -}; - -export type ProductVariantTranslation = { - __typename?: 'ProductVariantTranslation'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - languageCode: LanguageCode; - name: Scalars['String']; -}; - -export type ProductVariantTranslationInput = { - id?: Maybe; - languageCode: LanguageCode; - name?: Maybe; - customFields?: Maybe; -}; - -export type Promotion = Node & { - __typename?: 'Promotion'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - startsAt?: Maybe; - endsAt?: Maybe; - couponCode?: Maybe; - perCustomerUsageLimit?: Maybe; - name: Scalars['String']; - enabled: Scalars['Boolean']; - conditions: Array; - actions: Array; -}; - -export type PromotionFilterParameter = { - createdAt?: Maybe; - updatedAt?: Maybe; - startsAt?: Maybe; - endsAt?: Maybe; - couponCode?: Maybe; - perCustomerUsageLimit?: Maybe; - name?: Maybe; - enabled?: Maybe; -}; - -export type PromotionList = PaginatedList & { - __typename?: 'PromotionList'; - items: Array; - totalItems: Scalars['Int']; -}; - -export type PromotionListOptions = { - skip?: Maybe; - take?: Maybe; - sort?: Maybe; - filter?: Maybe; -}; - -export type PromotionSortParameter = { - id?: Maybe; - createdAt?: Maybe; - updatedAt?: Maybe; - startsAt?: Maybe; - endsAt?: Maybe; - couponCode?: Maybe; - perCustomerUsageLimit?: Maybe; - name?: Maybe; -}; - -export type Query = { - __typename?: 'Query'; - administrators: AdministratorList; - administrator?: Maybe; - /** Get a list of Assets */ - assets: AssetList; - /** Get a single Asset by id */ - asset?: Maybe; - me?: Maybe; - channels: Array; - channel?: Maybe; - activeChannel: Channel; - collections: CollectionList; - /** Get a Collection either by id or slug. If neither id nor slug is speicified, an error will result. */ - collection?: Maybe; - collectionFilters: Array; - countries: CountryList; - country?: Maybe; - customerGroups: CustomerGroupList; - customerGroup?: Maybe; - customers: CustomerList; - customer?: Maybe; - facets: FacetList; - facet?: Maybe; - globalSettings: GlobalSettings; - job?: Maybe; - jobs: JobList; - jobsById: Array; - jobQueues: Array; - order?: Maybe; - orders: OrderList; - paymentMethods: PaymentMethodList; - paymentMethod?: Maybe; - productOptionGroups: Array; - productOptionGroup?: Maybe; - search: SearchResponse; - products: ProductList; - /** Get a Product either by id or slug. If neither id nor slug is speicified, an error will result. */ - product?: Maybe; - promotion?: Maybe; - promotions: PromotionList; - promotionConditions: Array; - promotionActions: Array; - roles: RoleList; - role?: Maybe; - shippingMethods: ShippingMethodList; - shippingMethod?: Maybe; - shippingEligibilityCheckers: Array; - shippingCalculators: Array; - testShippingMethod: TestShippingMethodResult; - testEligibleShippingMethods: Array; - taxCategories: Array; - taxCategory?: Maybe; - taxRates: TaxRateList; - taxRate?: Maybe; - zones: Array; - zone?: Maybe; - /** Get the average of review store */ - avgReviewStore?: Maybe; - /** Get the review store */ - reviewStore?: Maybe; - /** Get the list of reviews store */ - reviewsStore: ReviewStoreList; - /** Get the review product */ - reviewProduct?: Maybe; - /** Get the list of reviews product */ - reviewsProduct: ReviewProductList; -}; - -export type QueryAdministratorsArgs = { - options?: Maybe; -}; - -export type QueryAdministratorArgs = { - id: Scalars['ID']; -}; - -export type QueryAssetsArgs = { - options?: Maybe; -}; - -export type QueryAssetArgs = { - id: Scalars['ID']; -}; - -export type QueryChannelArgs = { - id: Scalars['ID']; -}; - -export type QueryCollectionsArgs = { - options?: Maybe; -}; - -export type QueryCollectionArgs = { - id?: Maybe; - slug?: Maybe; -}; - -export type QueryCountriesArgs = { - options?: Maybe; -}; - -export type QueryCountryArgs = { - id: Scalars['ID']; -}; - -export type QueryCustomerGroupsArgs = { - options?: Maybe; -}; - -export type QueryCustomerGroupArgs = { - id: Scalars['ID']; -}; - -export type QueryCustomersArgs = { - options?: Maybe; -}; - -export type QueryCustomerArgs = { - id: Scalars['ID']; -}; - -export type QueryFacetsArgs = { - options?: Maybe; -}; - -export type QueryFacetArgs = { - id: Scalars['ID']; -}; - -export type QueryJobArgs = { - jobId: Scalars['ID']; -}; - -export type QueryJobsArgs = { - options?: Maybe; -}; - -export type QueryJobsByIdArgs = { - jobIds: Array; -}; - -export type QueryOrderArgs = { - id: Scalars['ID']; -}; - -export type QueryOrdersArgs = { - options?: Maybe; -}; - -export type QueryPaymentMethodsArgs = { - options?: Maybe; -}; - -export type QueryPaymentMethodArgs = { - id: Scalars['ID']; -}; - -export type QueryProductOptionGroupsArgs = { - filterTerm?: Maybe; -}; - -export type QueryProductOptionGroupArgs = { - id: Scalars['ID']; -}; - -export type QuerySearchArgs = { - input: SearchInput; -}; - -export type QueryProductsArgs = { - options?: Maybe; -}; - -export type QueryProductArgs = { - id?: Maybe; - slug?: Maybe; -}; - -export type QueryPromotionArgs = { - id: Scalars['ID']; -}; - -export type QueryPromotionsArgs = { - options?: Maybe; -}; - -export type QueryRolesArgs = { - options?: Maybe; -}; - -export type QueryRoleArgs = { - id: Scalars['ID']; -}; - -export type QueryShippingMethodsArgs = { - options?: Maybe; -}; - -export type QueryShippingMethodArgs = { - id: Scalars['ID']; -}; - -export type QueryTestShippingMethodArgs = { - input: TestShippingMethodInput; -}; - -export type QueryTestEligibleShippingMethodsArgs = { - input: TestEligibleShippingMethodsInput; -}; - -export type QueryTaxCategoryArgs = { - id: Scalars['ID']; -}; - -export type QueryTaxRatesArgs = { - options?: Maybe; -}; - -export type QueryTaxRateArgs = { - id: Scalars['ID']; -}; - -export type QueryZoneArgs = { - id: Scalars['ID']; -}; - -export type QueryReviewStoreArgs = { - id: Scalars['ID']; -}; - -export type QueryReviewsStoreArgs = { - options?: Maybe; -}; - -export type QueryReviewProductArgs = { - id: Scalars['ID']; -}; - -export type QueryReviewsProductArgs = { - options?: Maybe; -}; - -export type Refund = Node & { - __typename?: 'Refund'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - items: Scalars['Int']; - shipping: Scalars['Int']; - adjustment: Scalars['Int']; - total: Scalars['Int']; - method?: Maybe; - state: Scalars['String']; - transactionId?: Maybe; - reason?: Maybe; - orderItems: Array; - paymentId: Scalars['ID']; - metadata?: Maybe; -}; - -export type RefundOrderInput = { - lines: Array; - shipping: Scalars['Int']; - adjustment: Scalars['Int']; - paymentId: Scalars['ID']; - reason?: Maybe; -}; - -export type RemoveProductsFromChannelInput = { - productIds: Array; - channelId: Scalars['ID']; -}; - -export type Return = Node & - StockMovement & { - __typename?: 'Return'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - productVariant: ProductVariant; - type: StockMovementType; - quantity: Scalars['Int']; - orderItem: OrderItem; - }; - -export type ReviewProduct = Node & { - __typename?: 'ReviewProduct'; - id: Scalars['ID']; - title: Scalars['String']; - description: Scalars['String']; - state: Scalars['String']; - stars: Scalars['Int']; - nextStates: Array; - customer: Customer; - product: Product; -}; - -export type ReviewProductFilterParameter = { - title?: Maybe; - description?: Maybe; - state?: Maybe; - stars?: Maybe; -}; - -export type ReviewProductList = PaginatedList & { - __typename?: 'ReviewProductList'; - items: Array; - totalItems: Scalars['Int']; -}; - -export type ReviewProductListOptions = { - skip?: Maybe; - take?: Maybe; - sort?: Maybe; - filter?: Maybe; -}; - -export type ReviewProductSortParameter = { - id?: Maybe; - title?: Maybe; - description?: Maybe; - state?: Maybe; - stars?: Maybe; -}; - -export type ReviewStore = Node & { - __typename?: 'ReviewStore'; - id: Scalars['ID']; - title: Scalars['String']; - description: Scalars['String']; - state: Scalars['String']; - nps: Scalars['Int']; - nextStates: Array; - customer: Customer; -}; - -export type ReviewStoreFilterParameter = { - title?: Maybe; - description?: Maybe; - state?: Maybe; - nps?: Maybe; -}; - -export type ReviewStoreList = PaginatedList & { - __typename?: 'ReviewStoreList'; - items: Array; - totalItems: Scalars['Int']; -}; - -export type ReviewStoreListOptions = { - skip?: Maybe; - take?: Maybe; - sort?: Maybe; - filter?: Maybe; -}; - -export type ReviewStoreSortParameter = { - id?: Maybe; - title?: Maybe; - description?: Maybe; - state?: Maybe; - nps?: Maybe; -}; - -export type Role = Node & { - __typename?: 'Role'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - code: Scalars['String']; - description: Scalars['String']; - permissions: Array; - channels: Array; -}; - -export type RoleFilterParameter = { - createdAt?: Maybe; - updatedAt?: Maybe; - code?: Maybe; - description?: Maybe; -}; - -export type RoleList = PaginatedList & { - __typename?: 'RoleList'; - items: Array; - totalItems: Scalars['Int']; -}; - -export type RoleListOptions = { - skip?: Maybe; - take?: Maybe; - sort?: Maybe; - filter?: Maybe; -}; - -export type RoleSortParameter = { - id?: Maybe; - createdAt?: Maybe; - updatedAt?: Maybe; - code?: Maybe; - description?: Maybe; -}; - -export type Sale = Node & - StockMovement & { - __typename?: 'Sale'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - productVariant: ProductVariant; - type: StockMovementType; - quantity: Scalars['Int']; - orderLine: OrderLine; - }; - -export type SearchInput = { - term?: Maybe; - facetValueIds?: Maybe>; - facetValueOperator?: Maybe; - collectionId?: Maybe; - groupByProduct?: Maybe; - take?: Maybe; - skip?: Maybe; - sort?: Maybe; -}; - -export type SearchReindexResponse = { - __typename?: 'SearchReindexResponse'; - success: Scalars['Boolean']; -}; - -export type SearchResponse = { - __typename?: 'SearchResponse'; - items: Array; - totalItems: Scalars['Int']; - facetValues: Array; -}; - -export type SearchResult = { - __typename?: 'SearchResult'; - enabled: Scalars['Boolean']; - /** An array of ids of the Collections in which this result appears */ - channelIds: Array; - sku: Scalars['String']; - slug: Scalars['String']; - productId: Scalars['ID']; - productName: Scalars['String']; - /** @deprecated Use `productAsset.preview` instead */ - productPreview: Scalars['String']; - productAsset?: Maybe; - productVariantId: Scalars['ID']; - productVariantName: Scalars['String']; - /** @deprecated Use `productVariantAsset.preview` instead */ - productVariantPreview: Scalars['String']; - productVariantAsset?: Maybe; - price: SearchResultPrice; - priceWithTax: SearchResultPrice; - currencyCode: CurrencyCode; - description: Scalars['String']; - facetIds: Array; - facetValueIds: Array; - /** An array of ids of the Collections in which this result appears */ - collectionIds: Array; - /** A relevence score for the result. Differs between database implementations */ - score: Scalars['Float']; -}; - -export type SearchResultAsset = { - __typename?: 'SearchResultAsset'; - id: Scalars['ID']; - preview: Scalars['String']; - focalPoint?: Maybe; -}; - -/** The price of a search result product, either as a range or as a single price */ -export type SearchResultPrice = PriceRange | SinglePrice; - -export type SearchResultSortParameter = { - name?: Maybe; - price?: Maybe; -}; - -export type ServerConfig = { - __typename?: 'ServerConfig'; - orderProcess: Array; - customFieldConfig: CustomFields; -}; - -export type SettleRefundInput = { - id: Scalars['ID']; - transactionId: Scalars['String']; -}; - -export type ShippingMethod = Node & { - __typename?: 'ShippingMethod'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - code: Scalars['String']; - description: Scalars['String']; - checker: ConfigurableOperation; - calculator: ConfigurableOperation; - customFields?: Maybe; -}; - -export type ShippingMethodFilterParameter = { - createdAt?: Maybe; - updatedAt?: Maybe; - code?: Maybe; - description?: Maybe; -}; - -export type ShippingMethodList = PaginatedList & { - __typename?: 'ShippingMethodList'; - items: Array; - totalItems: Scalars['Int']; -}; - -export type ShippingMethodListOptions = { - skip?: Maybe; - take?: Maybe; - sort?: Maybe; - filter?: Maybe; -}; - -export type ShippingMethodQuote = { - __typename?: 'ShippingMethodQuote'; - id: Scalars['ID']; - price: Scalars['Int']; - priceWithTax: Scalars['Int']; - description: Scalars['String']; - metadata?: Maybe; -}; - -export type ShippingMethodSortParameter = { - id?: Maybe; - createdAt?: Maybe; - updatedAt?: Maybe; - code?: Maybe; - description?: Maybe; -}; - -/** The price value where the result has a single price */ -export type SinglePrice = { - __typename?: 'SinglePrice'; - value: Scalars['Int']; -}; - -export enum SortOrder { - Asc = 'ASC', - Desc = 'DESC' -} - -export type StockAdjustment = Node & - StockMovement & { - __typename?: 'StockAdjustment'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - productVariant: ProductVariant; - type: StockMovementType; - quantity: Scalars['Int']; - }; - -export type StockMovement = { - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - productVariant: ProductVariant; - type: StockMovementType; - quantity: Scalars['Int']; -}; - -export type StockMovementItem = StockAdjustment | Sale | Cancellation | Return; - -export type StockMovementList = { - __typename?: 'StockMovementList'; - items: Array; - totalItems: Scalars['Int']; -}; - -export type StockMovementListOptions = { - type?: Maybe; - skip?: Maybe; - take?: Maybe; -}; - -export enum StockMovementType { - Adjustment = 'ADJUSTMENT', - Sale = 'SALE', - Cancellation = 'CANCELLATION', - Return = 'RETURN' -} - -export type StringCustomFieldConfig = CustomField & { - __typename?: 'StringCustomFieldConfig'; - name: Scalars['String']; - type: Scalars['String']; - length?: Maybe; - label?: Maybe>; - description?: Maybe>; - readonly?: Maybe; - internal?: Maybe; - pattern?: Maybe; - options?: Maybe>; -}; - -export type StringFieldOption = { - __typename?: 'StringFieldOption'; - value: Scalars['String']; - label?: Maybe>; -}; - -export type StringOperators = { - eq?: Maybe; - contains?: Maybe; -}; - -export type TaxCategory = Node & { - __typename?: 'TaxCategory'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - name: Scalars['String']; -}; - -export type TaxRate = Node & { - __typename?: 'TaxRate'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - name: Scalars['String']; - enabled: Scalars['Boolean']; - value: Scalars['Float']; - category: TaxCategory; - zone: Zone; - customerGroup?: Maybe; -}; - -export type TaxRateFilterParameter = { - createdAt?: Maybe; - updatedAt?: Maybe; - name?: Maybe; - enabled?: Maybe; - value?: Maybe; -}; - -export type TaxRateList = PaginatedList & { - __typename?: 'TaxRateList'; - items: Array; - totalItems: Scalars['Int']; -}; - -export type TaxRateListOptions = { - skip?: Maybe; - take?: Maybe; - sort?: Maybe; - filter?: Maybe; -}; - -export type TaxRateSortParameter = { - id?: Maybe; - createdAt?: Maybe; - updatedAt?: Maybe; - name?: Maybe; - value?: Maybe; -}; - -export type TestEligibleShippingMethodsInput = { - shippingAddress: CreateAddressInput; - lines: Array; -}; - -export type TestShippingMethodInput = { - checker: ConfigurableOperationInput; - calculator: ConfigurableOperationInput; - shippingAddress: CreateAddressInput; - lines: Array; -}; - -export type TestShippingMethodOrderLineInput = { - productVariantId: Scalars['ID']; - quantity: Scalars['Int']; -}; - -export type TestShippingMethodQuote = { - __typename?: 'TestShippingMethodQuote'; - price: Scalars['Int']; - priceWithTax: Scalars['Int']; - description: Scalars['String']; - metadata?: Maybe; -}; - -export type TestShippingMethodResult = { - __typename?: 'TestShippingMethodResult'; - eligible: Scalars['Boolean']; - quote?: Maybe; -}; - -export type UpdateAddressInput = { - id: Scalars['ID']; - fullName?: Maybe; - company?: Maybe; - streetLine1?: Maybe; - streetLine2?: Maybe; - city?: Maybe; - province?: Maybe; - postalCode?: Maybe; - countryCode?: Maybe; - phoneNumber?: Maybe; - defaultShippingAddress?: Maybe; - defaultBillingAddress?: Maybe; - customFields?: Maybe; -}; - -export type UpdateAdministratorInput = { - id: Scalars['ID']; - firstName?: Maybe; - lastName?: Maybe; - emailAddress?: Maybe; - password?: Maybe; - roleIds?: Maybe>; -}; - -export type UpdateAssetInput = { - id: Scalars['ID']; - name?: Maybe; - focalPoint?: Maybe; -}; - -export type UpdateChannelInput = { - id: Scalars['ID']; - code?: Maybe; - token?: Maybe; - defaultLanguageCode?: Maybe; - pricesIncludeTax?: Maybe; - currencyCode?: Maybe; - defaultTaxZoneId?: Maybe; - defaultShippingZoneId?: Maybe; -}; - -export type UpdateCollectionInput = { - id: Scalars['ID']; - isPrivate?: Maybe; - featuredAssetId?: Maybe; - parentId?: Maybe; - assetIds?: Maybe>; - filters?: Maybe>; - translations?: Maybe>; - customFields?: Maybe; -}; - -export type UpdateCollectionTranslationInput = { - id?: Maybe; - languageCode: LanguageCode; - name?: Maybe; - slug?: Maybe; - description?: Maybe; - customFields?: Maybe; -}; - -export type UpdateCountryInput = { - id: Scalars['ID']; - code?: Maybe; - translations?: Maybe>; - enabled?: Maybe; -}; - -export type UpdateCustomerGroupInput = { - id: Scalars['ID']; - name?: Maybe; -}; - -export type UpdateCustomerInput = { - id: Scalars['ID']; - title?: Maybe; - firstName?: Maybe; - lastName?: Maybe; - phoneNumber?: Maybe; - emailAddress?: Maybe; - customFields?: Maybe; -}; - -export type UpdateCustomerNoteInput = { - noteId: Scalars['ID']; - note: Scalars['String']; -}; - -export type UpdateFacetInput = { - id: Scalars['ID']; - isPrivate?: Maybe; - code?: Maybe; - translations?: Maybe>; - customFields?: Maybe; -}; - -export type UpdateFacetValueInput = { - id: Scalars['ID']; - code?: Maybe; - translations?: Maybe>; - customFields?: Maybe; -}; - -export type UpdateGlobalSettingsInput = { - availableLanguages?: Maybe>; - trackInventory?: Maybe; - customFields?: Maybe; -}; - -export type UpdateOrderInput = { - id: Scalars['ID']; - customFields?: Maybe; -}; - -export type UpdateOrderNoteInput = { - noteId: Scalars['ID']; - note?: Maybe; - isPublic?: Maybe; -}; - -export type UpdatePaymentMethodInput = { - id: Scalars['ID']; - code?: Maybe; - enabled?: Maybe; - configArgs?: Maybe>; -}; - -export type UpdateProductInput = { - id: Scalars['ID']; - enabled?: Maybe; - featuredAssetId?: Maybe; - assetIds?: Maybe>; - facetValueIds?: Maybe>; - translations?: Maybe>; - customFields?: Maybe; -}; - -export type UpdateProductOptionGroupInput = { - id: Scalars['ID']; - code?: Maybe; - translations?: Maybe>; - customFields?: Maybe; -}; - -export type UpdateProductOptionInput = { - id: Scalars['ID']; - code?: Maybe; - translations?: Maybe>; - customFields?: Maybe; -}; - -export type UpdateProductVariantInput = { - id: Scalars['ID']; - enabled?: Maybe; - translations?: Maybe>; - facetValueIds?: Maybe>; - sku?: Maybe; - taxCategoryId?: Maybe; - price?: Maybe; - featuredAssetId?: Maybe; - assetIds?: Maybe>; - stockOnHand?: Maybe; - trackInventory?: Maybe; - customFields?: Maybe; -}; - -export type UpdatePromotionInput = { - id: Scalars['ID']; - name?: Maybe; - enabled?: Maybe; - startsAt?: Maybe; - endsAt?: Maybe; - couponCode?: Maybe; - perCustomerUsageLimit?: Maybe; - conditions?: Maybe>; - actions?: Maybe>; -}; - -export type UpdateRoleInput = { - id: Scalars['ID']; - code?: Maybe; - description?: Maybe; - permissions?: Maybe>; - channelIds?: Maybe>; -}; - -export type UpdateShippingMethodInput = { - id: Scalars['ID']; - code?: Maybe; - description?: Maybe; - checker?: Maybe; - calculator?: Maybe; - customFields?: Maybe; -}; - -export type UpdateTaxCategoryInput = { - id: Scalars['ID']; - name?: Maybe; -}; - -export type UpdateTaxRateInput = { - id: Scalars['ID']; - name?: Maybe; - value?: Maybe; - enabled?: Maybe; - categoryId?: Maybe; - zoneId?: Maybe; - customerGroupId?: Maybe; -}; - -export type UpdateZoneInput = { - id: Scalars['ID']; - name?: Maybe; -}; - -export type User = Node & { - __typename?: 'User'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - identifier: Scalars['String']; - verified: Scalars['Boolean']; - roles: Array; - lastLogin?: Maybe; - authenticationMethods: Array; - customFields?: Maybe; -}; - -export type Zone = Node & { - __typename?: 'Zone'; - id: Scalars['ID']; - createdAt: Scalars['DateTime']; - updatedAt: Scalars['DateTime']; - name: Scalars['String']; - members: Array; -}; diff --git a/src/ui/components/review-store-list/review-store-list.graphql.ts b/src/ui/components/review-store-list/review-store-list.graphql.ts deleted file mode 100644 index 89f247c..0000000 --- a/src/ui/components/review-store-list/review-store-list.graphql.ts +++ /dev/null @@ -1,14 +0,0 @@ -import gql from 'graphql-tag'; -import { REVIEW_STORE_FRAGMENT } from '../../common/fragments.graphql'; - -export const GET_REVIEW_STORE_LIST = gql` - query GetPackageList($options: ReviewStoreListOptions!) { - reviewsStore(options: $options) { - items { - ...ReviewStore - } - totalItems - } - } - ${REVIEW_STORE_FRAGMENT} -`; diff --git a/src/ui/components/review-store-list/review-store-list.graphql.types.ts b/src/ui/components/review-store-list/review-store-list.graphql.types.ts deleted file mode 100644 index 26d638a..0000000 --- a/src/ui/components/review-store-list/review-store-list.graphql.types.ts +++ /dev/null @@ -1,14 +0,0 @@ -import * as Types from '../../common/generated-admin-schema'; - -import { ReviewStoreFragment } from '../../common/fragments.graphql.types'; - -export type GetPackageListQueryVariables = Types.Exact<{ - options: Types.ReviewStoreListOptions; -}>; - -export type GetPackageListQuery = { __typename?: 'Query' } & { - reviewsStore: { __typename?: 'ReviewStoreList' } & Pick< - Types.ReviewStoreList, - 'totalItems' - > & { items: Array<{ __typename?: 'ReviewStore' } & ReviewStoreFragment> }; -}; From de6d82b3fe670d2a5880d8ce698eb52af8a9beec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonathan=20C=C3=A9lio?= Date: Thu, 13 Aug 2020 13:00:31 -0300 Subject: [PATCH 7/7] docs: update readme --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 666a2de..06883b2 100644 --- a/README.md +++ b/README.md @@ -8,12 +8,12 @@ ## 🌟 Features - Ability to customer create review of the Company using with [NPS](https://en.wikipedia.org/wiki/Net_Promoter) +- Ability to customer get, list, update and create review of an Product - Manage the state of reviews approving every changes by the customer - On every change of state its dispatch a new Event, so you can extend the features of this package to send email or something like that ## Todo - Admin UI -- Products Review - Order Review ## ⚙️ Install @@ -27,17 +27,18 @@ npm install vendure-reviews-plugin --save ### 3. Add the plugin in Vendure configuration ```typescript -import { ReviewsStorePlugin } from 'vendure-reviews-plugin'; +import { ReviewsStorePlugin, ReviewsProductPlugin } from 'vendure-reviews-plugin'; const config: VendureConfig = { ... plugins: [ - ReviewsStorePlugin + ReviewsStorePlugin, + ReviewsProductPlugin ] } ``` ## 📚 How to use? -If you want to use queries and mutation of this package [you can see the all on this file](https://github.com/jonyw4/vendure-reviews-plugin/blob/master/src/api/schema/shop.ts) +If you want to use queries and mutation of this package [you can see the all on this file](https://github.com/jonyw4/vendure-reviews-plugin/blob/master/src/api/schema/) ## ❗️ License MIT \ No newline at end of file