From 982c8f53c99df1ffdcad2a074247d9d0dca799ae Mon Sep 17 00:00:00 2001 From: Arda TANRIKULU Date: Thu, 27 May 2021 16:31:22 +0300 Subject: [PATCH] enhance(utils): refactor and cleanup --- .changeset/smart-donuts-care.md | 5 + .../import/tests/schema/import-schema.spec.ts | 4 +- packages/loaders/apollo-engine/package.json | 4 +- packages/loaders/apollo-engine/src/index.ts | 178 +++------- packages/loaders/code-file/src/index.ts | 33 +- .../tests/load-from-code-file.spec.ts | 45 +-- packages/loaders/git/src/typings.d.ts | 1 - packages/loaders/github/src/index.ts | 9 +- packages/loaders/graphql-file/src/index.ts | 9 +- packages/loaders/json-file/src/index.ts | 9 +- packages/loaders/module/src/index.ts | 53 ++- packages/loaders/module/tests/loader.spec.ts | 3 +- packages/loaders/prisma/src/index.ts | 4 + packages/loaders/url/src/index.ts | 21 +- packages/loaders/url/tests/url-loader.spec.ts | 6 - .../merge/src/typedefs-mergers/merge-nodes.ts | 2 +- .../src/typedefs-mergers/merge-typedefs.ts | 36 +- .../merge/src/typedefs-mergers/schema-def.ts | 4 +- packages/merge/tests/merge-nodes.spec.ts | 6 +- packages/merge/tests/merge-typedefs.spec.ts | 14 +- packages/utils/src/fix-schema-ast.ts | 8 +- packages/utils/src/parse-graphql-json.ts | 14 +- packages/utils/src/parse-graphql-sdl.ts | 3 - yarn.lock | 318 ++++-------------- 24 files changed, 242 insertions(+), 547 deletions(-) create mode 100644 .changeset/smart-donuts-care.md delete mode 100644 packages/loaders/git/src/typings.d.ts diff --git a/.changeset/smart-donuts-care.md b/.changeset/smart-donuts-care.md new file mode 100644 index 00000000000..37667cb69d9 --- /dev/null +++ b/.changeset/smart-donuts-care.md @@ -0,0 +1,5 @@ +--- +'@graphql-tools/utils': minor +--- + +enhance(utils): refactor and cleanup diff --git a/packages/import/tests/schema/import-schema.spec.ts b/packages/import/tests/schema/import-schema.spec.ts index a0b550efc25..bf4efe64520 100644 --- a/packages/import/tests/schema/import-schema.spec.ts +++ b/packages/import/tests/schema/import-schema.spec.ts @@ -923,12 +923,12 @@ describe('importSchema', () => { type Level1 { id: ID! } - + type Level2 { id: ID! level1: Level1 } - + type Level3 { id: ID! level2: Level2 diff --git a/packages/loaders/apollo-engine/package.json b/packages/loaders/apollo-engine/package.json index 65031498b4f..985610392be 100644 --- a/packages/loaders/apollo-engine/package.json +++ b/packages/loaders/apollo-engine/package.json @@ -20,9 +20,11 @@ "graphql": "^14.0.0 || ^15.0.0" }, "dependencies": { + "@ardatan/aggregate-error": "0.0.6", "@graphql-tools/utils": "^7.0.0", "cross-fetch": "3.1.4", - "tslib": "~2.2.0" + "tslib": "~2.2.0", + "sync-fetch": "0.3.0" }, "publishConfig": { "access": "public", diff --git a/packages/loaders/apollo-engine/src/index.ts b/packages/loaders/apollo-engine/src/index.ts index 90413bdd655..3015ce125b1 100644 --- a/packages/loaders/apollo-engine/src/index.ts +++ b/packages/loaders/apollo-engine/src/index.ts @@ -1,6 +1,7 @@ -import { SchemaLoader, Source, SingleFileOptions } from '@graphql-tools/utils'; +import { SchemaLoader, Source, SingleFileOptions, parseGraphQLSDL } from '@graphql-tools/utils'; import { fetch } from 'cross-fetch'; -import { buildClientSchema } from 'graphql'; +import AggregateError from '@ardatan/aggregate-error'; +import syncFetch from 'sync-fetch'; /** * Additional options for loading from Apollo Engine @@ -25,49 +26,63 @@ export class ApolloEngineLoader implements SchemaLoader { return 'apollo-engine'; } + private getFetchArgs(options: ApolloEngineOptions): [string, RequestInit] { + return [ + options.engine.endpoint || DEFAULT_APOLLO_ENDPOINT, + { + method: 'POST', + headers: { + 'x-api-key': options.engine.apiKey, + 'apollo-client-name': 'Apollo Language Server', + 'apollo-client-reference-id': '146d29c0-912c-46d3-b686-920e52586be6', + 'apollo-client-version': '2.6.8', + 'Content-Type': 'application/json', + Accept: 'application/json', + ...options.headers, + }, + body: JSON.stringify({ + query: SCHEMA_QUERY, + variables: { + id: options.graph, + tag: options.variant, + }, + }), + }, + ]; + } + async canLoad(ptr: string) { - return typeof ptr === 'string' && ptr === 'apollo-engine'; + return this.canLoadSync(ptr); } - canLoadSync() { - return false; + canLoadSync(ptr: string) { + return typeof ptr === 'string' && ptr === 'apollo-engine'; } - async load(_: 'apollo-engine', options: ApolloEngineOptions): Promise { - const response = await fetch(options.engine.endpoint || DEFAULT_APOLLO_ENDPOINT, { - method: 'POST', - headers: { - 'x-api-key': options.engine.apiKey, - 'apollo-client-name': 'Apollo Language Server', - 'apollo-client-reference-id': '146d29c0-912c-46d3-b686-920e52586be6', - 'apollo-client-version': '2.6.8', - 'Content-Type': 'application/json', - Accept: 'application/json', - ...options.headers, - }, - body: JSON.stringify({ - query: SCHEMA_QUERY, - variables: { - id: options.graph, - tag: options.variant, - }, - }), - }); + async load(pointer: 'apollo-engine', options: ApolloEngineOptions): Promise { + const fetchArgs = this.getFetchArgs(options); + const response = await fetch(...fetchArgs); const { data, errors } = await response.json(); if (errors) { - throw new Error(errors.map(({ message }: Error) => message).join('\n')); + throw new AggregateError(errors); } - return { - location: 'apollo-engine', - schema: buildClientSchema(data.service.schema), - }; + return parseGraphQLSDL(pointer, data.service.schema.document, options); } - loadSync(): never { - throw new Error('Loader ApolloEngine has no sync mode'); + loadSync(pointer: 'apollo-engine', options: ApolloEngineOptions): Source { + const fetchArgs = this.getFetchArgs(options); + const response = syncFetch(...fetchArgs); + + const { data, errors } = response.json(); + + if (errors) { + throw new AggregateError(errors); + } + + return parseGraphQLSDL(pointer, data.service.schema.document, options); } } @@ -80,104 +95,7 @@ export const SCHEMA_QUERY = /* GraphQL */ ` ... on Service { __typename schema(tag: $tag) { - hash - __schema: introspection { - queryType { - name - } - mutationType { - name - } - subscriptionType { - name - } - types(filter: { includeBuiltInTypes: true }) { - ...IntrospectionFullType - } - directives { - name - description - locations - args { - ...IntrospectionInputValue - } - } - } - } - } - } - } - - fragment IntrospectionFullType on IntrospectionType { - kind - name - description - fields { - name - description - args { - ...IntrospectionInputValue - } - type { - ...IntrospectionTypeRef - } - isDeprecated - deprecationReason - } - inputFields { - ...IntrospectionInputValue - } - interfaces { - ...IntrospectionTypeRef - } - enumValues(includeDeprecated: true) { - name - description - isDeprecated - deprecationReason - } - possibleTypes { - ...IntrospectionTypeRef - } - } - - fragment IntrospectionInputValue on IntrospectionInputValue { - name - description - type { - ...IntrospectionTypeRef - } - defaultValue - } - - fragment IntrospectionTypeRef on IntrospectionType { - kind - name - ofType { - kind - name - ofType { - kind - name - ofType { - kind - name - ofType { - kind - name - ofType { - kind - name - ofType { - kind - name - ofType { - kind - name - } - } - } - } + document } } } diff --git a/packages/loaders/code-file/src/index.ts b/packages/loaders/code-file/src/index.ts index d354225ceae..62e87d246d6 100644 --- a/packages/loaders/code-file/src/index.ts +++ b/packages/loaders/code-file/src/index.ts @@ -1,4 +1,4 @@ -import { Kind, isSchema, print } from 'graphql'; +import { isSchema, GraphQLSchema, DocumentNode } from 'graphql'; import { SchemaPointerSingle, DocumentPointerSingle, @@ -9,7 +9,7 @@ import { asArray, isValidPath, parseGraphQLSDL, - printSchemaWithDirectives, + isDocumentNode, } from '@graphql-tools/utils'; import { GraphQLTagPluckOptions, @@ -19,7 +19,7 @@ import { import { tryToLoadFromExport, tryToLoadFromExportSync } from './load-from-module'; import { isAbsolute, resolve } from 'path'; import { cwd } from 'process'; -import { readFileSync, accessSync, promises as fsPromises } from 'fs'; +import { readFileSync, promises as fsPromises, existsSync } from 'fs'; const { readFile, access } = fsPromises; @@ -77,12 +77,7 @@ export class CodeFileLoader implements UniversalLoader { if (isValidPath(pointer)) { if (FILE_EXTENSIONS.find(extension => pointer.endsWith(extension))) { const normalizedFilePath = isAbsolute(pointer) ? pointer : resolve(options.cwd || cwd(), pointer); - try { - accessSync(normalizedFilePath); - return true; - } catch { - return false; - } + return existsSync(normalizedFilePath); } } @@ -100,7 +95,7 @@ export class CodeFileLoader implements UniversalLoader { const sdl = await gqlPluckFromCodeString(normalizedFilePath, content, options.pluckConfig); if (sdl) { - return parseSDL({ pointer, sdl, options }); + return parseGraphQLSDL(pointer, sdl, options); } } catch (e) { debugLog(`Failed to load schema from code file "${normalizedFilePath}": ${e.message}`); @@ -143,7 +138,7 @@ export class CodeFileLoader implements UniversalLoader { const sdl = gqlPluckFromCodeStringSync(normalizedFilePath, content, options.pluckConfig); if (sdl) { - return parseSDL({ pointer, sdl, options }); + return parseGraphQLSDL(pointer, sdl, options); } } catch (e) { debugLog(`Failed to load schema from code file "${normalizedFilePath}": ${e.message}`); @@ -176,25 +171,19 @@ export class CodeFileLoader implements UniversalLoader { } } -function parseSDL({ pointer, sdl, options }: { pointer: string; sdl: string; options: CodeFileLoaderOptions }) { - return parseGraphQLSDL(pointer, sdl, options); -} - -function resolveSource(pointer: string, value: any, options: CodeFileLoaderOptions): Source | null { - if (isSchema(value)) { +function resolveSource(pointer: string, value: GraphQLSchema | DocumentNode | string, options: CodeFileLoaderOptions): Source | null { + if (typeof value === 'string') { + return parseGraphQLSDL(pointer, value, options); + } else if (isSchema(value)) { return { location: pointer, - rawSDL: printSchemaWithDirectives(value, options), schema: value, }; - } else if (value?.kind === Kind.DOCUMENT) { + } else if (isDocumentNode(value)) { return { location: pointer, - rawSDL: print(value), document: value, }; - } else if (typeof value === 'string') { - return parseGraphQLSDL(pointer, value, options); } return null; diff --git a/packages/loaders/code-file/tests/load-from-code-file.spec.ts b/packages/loaders/code-file/tests/load-from-code-file.spec.ts index 8f3edaef0fd..a18e5163819 100644 --- a/packages/loaders/code-file/tests/load-from-code-file.spec.ts +++ b/packages/loaders/code-file/tests/load-from-code-file.spec.ts @@ -1,5 +1,4 @@ import * as path from 'path'; -import * as fs from 'fs'; import { CodeFileLoader } from '../src'; import { parse } from 'graphql'; @@ -9,12 +8,10 @@ describe('loadFromCodeFile', () => { it('Should throw an error when a document is loaded using AST and the document is not valid', async () => { try { const loaded = await loader.load('./test-files/invalid-anon-doc.js', { - noRequire: true, - fs, - path, - cwd: __dirname - }); - const doc = parse(loaded.rawSDL); + noRequire: true, + cwd: __dirname + }); + const doc = loaded.document ? loaded.document : parse(loaded.rawSDL); expect(doc).toBeFalsy(); } catch (e) { @@ -25,23 +22,19 @@ describe('loadFromCodeFile', () => { it('should load a valid file', async () => { const loaded = await loader.load('./test-files/valid-doc.js', { noRequire: true, - fs, - path, cwd: __dirname }); - const doc = parse(loaded.rawSDL); + const doc = loaded.document ? loaded.document : parse(loaded.rawSDL); expect(doc.kind).toEqual('Document'); }); it('should consider options.cwd', async () => { const loaded = await loader.load('valid-doc.js', { - path, - fs, cwd: path.resolve(__dirname, 'test-files'), noRequire: true, }); - const doc = parse(loaded.rawSDL); + const doc = loaded.document ? loaded.document : parse(loaded.rawSDL); expect(doc.kind).toEqual('Document'); }); @@ -49,22 +42,18 @@ describe('loadFromCodeFile', () => { it('should load a TypeScript file using decorator', async () => { const loaded = await loader.load('./test-files/with-decorator-doc.ts', { noRequire: true, - fs, - path, cwd: __dirname }); - const doc = parse(loaded.rawSDL); + const doc = loaded.document ? loaded.document : parse(loaded.rawSDL); expect(doc.kind).toEqual('Document'); }); it('should support string interpolation', async () => { const loaded = await loader.load('./test-files/string-interpolation.js', { - fs, - path, cwd: __dirname }); - const doc = parse(loaded.rawSDL); + const doc = loaded.document ? loaded.document : parse(loaded.rawSDL); expect(doc.kind).toEqual('Document'); }); @@ -77,46 +66,40 @@ describe('loadFromCodeFileSync', () => { expect(() => { const loaded = loader.loadSync('./test-files/invalid-anon-doc.js', { noRequire: true, - fs, - path, cwd: __dirname }); - parse(loaded.rawSDL); + const doc = loaded.document ? loaded.document : parse(loaded.rawSDL); + + expect(doc.kind).toEqual('Document'); }).toThrowError('Syntax Error: Unexpected Name "InvalidGetUser"') }); it('should load a valid file', () => { const loaded = loader.loadSync('./test-files/valid-doc.js', { noRequire: true, - fs, - path, cwd: __dirname }); - const doc = parse(loaded.rawSDL); + const doc = loaded.document; expect(doc.kind).toEqual('Document'); }); it('should consider options.cwd', () => { const loaded = loader.loadSync('valid-doc.js', { - path, - fs, cwd: path.resolve(__dirname, 'test-files'), noRequire: true, }); - const doc = parse(loaded.rawSDL); + const doc = loaded.document; expect(doc.kind).toEqual('Document'); }); it('should support string interpolation', () => { const loaded = loader.loadSync('./test-files/string-interpolation.js', { - fs, - path, cwd: __dirname }); - const doc = parse(loaded.rawSDL); + const doc = loaded.document; expect(doc.kind).toEqual('Document'); }); diff --git a/packages/loaders/git/src/typings.d.ts b/packages/loaders/git/src/typings.d.ts deleted file mode 100644 index 156436b89b7..00000000000 --- a/packages/loaders/git/src/typings.d.ts +++ /dev/null @@ -1 +0,0 @@ -declare module 'simple-git'; diff --git a/packages/loaders/github/src/index.ts b/packages/loaders/github/src/index.ts index 4a8aa84fd81..007b14c90fa 100644 --- a/packages/loaders/github/src/index.ts +++ b/packages/loaders/github/src/index.ts @@ -112,12 +112,9 @@ export class GithubLoader implements UniversalLoader { return parseGraphQLJSON(pointer, content, options); } - const rawSDL = await gqlPluckFromCodeString(pointer, content, options.pluckConfig); - if (rawSDL) { - return { - location: pointer, - rawSDL, - }; + if (path.endsWith('.tsx') || path.endsWith('.ts') || path.endsWith('.js') || path.endsWith('.jsx')) { + const rawSDL = await gqlPluckFromCodeString(pointer, content, options.pluckConfig); + return parseGraphQLSDL(path, rawSDL, options); } throw new Error(`Invalid file extension: ${path}`); diff --git a/packages/loaders/graphql-file/src/index.ts b/packages/loaders/graphql-file/src/index.ts index 4004650a7e6..b0eb00c602a 100644 --- a/packages/loaders/graphql-file/src/index.ts +++ b/packages/loaders/graphql-file/src/index.ts @@ -8,7 +8,7 @@ import { SingleFileOptions, } from '@graphql-tools/utils'; import { isAbsolute, resolve } from 'path'; -import { readFileSync, accessSync, promises as fsPromises } from 'fs'; +import { readFileSync, promises as fsPromises, existsSync } from 'fs'; import { cwd as processCwd } from 'process'; import { processImport } from '@graphql-tools/import'; @@ -82,12 +82,7 @@ export class GraphQLFileLoader implements UniversalLoader pointer.endsWith(extension))) { const normalizedFilePath = isAbsolute(pointer) ? pointer : resolve(options.cwd || processCwd(), pointer); - try { - accessSync(normalizedFilePath); - return true; - } catch { - return false; - } + return existsSync(normalizedFilePath); } } diff --git a/packages/loaders/json-file/src/index.ts b/packages/loaders/json-file/src/index.ts index b3d030f0c83..a9feb325935 100644 --- a/packages/loaders/json-file/src/index.ts +++ b/packages/loaders/json-file/src/index.ts @@ -7,7 +7,7 @@ import { SingleFileOptions, } from '@graphql-tools/utils'; import { isAbsolute, resolve } from 'path'; -import { readFileSync, accessSync, promises as fsPromises } from 'fs'; +import { readFileSync, promises as fsPromises, existsSync } from 'fs'; import { cwd } from 'process'; const { readFile, access } = fsPromises; @@ -68,12 +68,7 @@ export class JsonFileLoader implements DocumentLoader { if (FILE_EXTENSIONS.find(extension => pointer.endsWith(extension))) { const normalizedFilePath = isAbsolute(pointer) ? pointer : resolve(options.cwd || cwd(), pointer); - try { - accessSync(normalizedFilePath); - return true; - } catch { - return false; - } + return existsSync(normalizedFilePath); } } diff --git a/packages/loaders/module/src/index.ts b/packages/loaders/module/src/index.ts index 568247487f2..3ed2e72a53b 100644 --- a/packages/loaders/module/src/index.ts +++ b/packages/loaders/module/src/index.ts @@ -1,11 +1,11 @@ -import { parse, isSchema } from 'graphql'; +import { DocumentNode, GraphQLSchema, isSchema } from 'graphql'; import { UniversalLoader, - fixSchemaAst, - getDocumentNodeFromSchema, - SingleFileOptions, Source, } from '@graphql-tools/utils'; +import { existsSync, promises as fsPromises } from 'fs'; + +const { access } = fsPromises; const InvalidError = new Error(`Imported object was not a string, DocumentNode or GraphQLSchema`); const createLoadError = (error: any) => @@ -44,17 +44,40 @@ export class ModuleLoader implements UniversalLoader { return 'module-loader'; } + private isExpressionValid(pointer: string) { + return typeof pointer === 'string' && pointer.toLowerCase().startsWith('module:'); + } + async canLoad(pointer: string) { - return this.canLoadSync(pointer); + if (this.isExpressionValid(pointer)) { + const { modulePath } = extractData(pointer); + try { + const moduleAbsolutePath = require.resolve(modulePath); + await access(moduleAbsolutePath); + return true; + } catch (e) { + return false; + } + } + return false; } canLoadSync(pointer: string) { - return typeof pointer === 'string' && pointer.toLowerCase().startsWith('module:'); + if (this.isExpressionValid(pointer)) { + const { modulePath } = extractData(pointer); + try { + const moduleAbsolutePath = require.resolve(modulePath); + return existsSync(moduleAbsolutePath); + } catch(e) { + return false; + } + } + return false; } - async load(pointer: string, options: SingleFileOptions) { + async load(pointer: string) { try { - const result = this.parse(pointer, options, await this.importModule(pointer)); + const result = this.parse(pointer, await this.importModule(pointer)); if (result) { return result; @@ -66,9 +89,9 @@ export class ModuleLoader implements UniversalLoader { } } - loadSync(pointer: string, options: SingleFileOptions) { + loadSync(pointer: string) { try { - const result = this.parse(pointer, options, this.importModuleSync(pointer)); + const result = this.parse(pointer, this.importModuleSync(pointer)); if (result) { return result; @@ -80,20 +103,16 @@ export class ModuleLoader implements UniversalLoader { } } - private parse(pointer: string, options: SingleFileOptions, importedModule: any): Source | void { + private parse(pointer: string, importedModule: GraphQLSchema | string | DocumentNode): Source | void { if (isSchema(importedModule)) { - const schema = fixSchemaAst(importedModule, options); return { - schema, - get document() { - return getDocumentNodeFromSchema(schema); - }, + schema: importedModule, location: pointer, }; } else if (typeof importedModule === 'string') { return { location: pointer, - document: parse(importedModule), + rawSDL: importedModule, }; } else if (typeof importedModule === 'object' && importedModule.kind === 'Document') { return { diff --git a/packages/loaders/module/tests/loader.spec.ts b/packages/loaders/module/tests/loader.spec.ts index f63410abd80..d26ff625afa 100644 --- a/packages/loaders/module/tests/loader.spec.ts +++ b/packages/loaders/module/tests/loader.spec.ts @@ -45,7 +45,6 @@ describe('ModuleLoader', () => { it('should load GraphQLSchema object from a file', async () => { const result: Source = await load(getPointer('schema'), {}); expect(result.schema).toBeDefined(); - expect(result.document).toBeDefined(); }); it('should load DocumentNode object from a file', async () => { @@ -55,7 +54,7 @@ describe('ModuleLoader', () => { it('should load string from a file', async () => { const result: Source = await load(getPointer('type-defs-string'), {}); - expect(result.document).toBeDefined(); + expect(result.rawSDL).toBeDefined(); }); it('should load using a named export', async () => { diff --git a/packages/loaders/prisma/src/index.ts b/packages/loaders/prisma/src/index.ts index a68ffab4d5b..8d28705614b 100644 --- a/packages/loaders/prisma/src/index.ts +++ b/packages/loaders/prisma/src/index.ts @@ -24,6 +24,10 @@ export class PrismaLoader extends UrlLoader { return 'prisma'; } + canLoadSync() { + return false; + } + async canLoad(prismaConfigFilePath: string, options: PrismaLoaderOptions): Promise { if (typeof prismaConfigFilePath === 'string' && prismaConfigFilePath.endsWith('prisma.yml')) { const joinedYmlPath = join(options.cwd || cwd(), prismaConfigFilePath); diff --git a/packages/loaders/url/src/index.ts b/packages/loaders/url/src/index.ts index 323346718dc..0596dceb172 100644 --- a/packages/loaders/url/src/index.ts +++ b/packages/loaders/url/src/index.ts @@ -1,6 +1,6 @@ /* eslint-disable no-case-declarations */ /// -import { print, IntrospectionOptions, DocumentNode, Kind, parse, buildASTSchema, GraphQLError } from 'graphql'; +import { print, IntrospectionOptions, DocumentNode, Kind, GraphQLError } from 'graphql'; import { AsyncExecutor, Executor, @@ -15,6 +15,7 @@ import { ExecutionParams, mapAsyncIterator, withCancel, + parseGraphQLSDL, } from '@graphql-tools/utils'; import { isWebUri } from 'valid-url'; import { fetch as crossFetch } from 'cross-fetch'; @@ -652,14 +653,7 @@ export class UrlLoader implements DocumentLoader { headers, }); const schemaString = await response.text(); - const document = parse(schemaString, options); - const schema = buildASTSchema(document, options); - return { - location: pointer, - rawSDL: schemaString, - document, - schema, - }; + return parseGraphQLSDL(pointer, schemaString, options); } handleSDLSync(pointer: SchemaPointerSingle, options: LoadFromUrlOptions): Source { @@ -671,14 +665,7 @@ export class UrlLoader implements DocumentLoader { headers, }); const schemaString = response.text(); - const document = parse(schemaString, options); - const schema = buildASTSchema(document, options); - return { - location: pointer, - rawSDL: schemaString, - document, - schema, - }; + return parseGraphQLSDL(pointer, schemaString, options); } async load(pointer: SchemaPointerSingle, options: LoadFromUrlOptions): Promise { diff --git a/packages/loaders/url/tests/url-loader.spec.ts b/packages/loaders/url/tests/url-loader.spec.ts index cd2a07d374a..b5c72f6de3c 100644 --- a/packages/loaders/url/tests/url-loader.spec.ts +++ b/packages/loaders/url/tests/url-loader.spec.ts @@ -296,9 +296,6 @@ input TestInput { scope = nock(testHost).get(testPath).reply(200, testTypeDefs); const result = await loader.load(testHost + testPath, {}); - expect(result.schema).toBeDefined(); - expect(printSchemaWithDirectives(result.schema)).toBeSimilarGqlDoc(testTypeDefs); - expect(result.document).toBeDefined(); expect(print(result.document)).toBeSimilarGqlDoc(testTypeDefs); }) @@ -310,9 +307,6 @@ input TestInput { handleAsSDL: true, }); - expect(result.schema).toBeDefined(); - expect(printSchemaWithDirectives(result.schema)).toBeSimilarGqlDoc(testTypeDefs); - expect(result.document).toBeDefined(); expect(print(result.document)).toBeSimilarGqlDoc(testTypeDefs); }) diff --git a/packages/merge/src/typedefs-mergers/merge-nodes.ts b/packages/merge/src/typedefs-mergers/merge-nodes.ts index 3519427d8a7..8fceaa72eba 100644 --- a/packages/merge/src/typedefs-mergers/merge-nodes.ts +++ b/packages/merge/src/typedefs-mergers/merge-nodes.ts @@ -19,7 +19,7 @@ export function isNamedDefinitionNode(definitionNode: DefinitionNode): definitio return 'name' in definitionNode; } -export const schemaDefSymbol = Symbol('schemaDefSymbol'); +export const schemaDefSymbol = 'SCHEMA_DEF_SYMBOL'; export function mergeGraphQLNodes(nodes: ReadonlyArray, config?: Config): MergedResultMap { const mergedResultMap = {} as MergedResultMap; diff --git a/packages/merge/src/typedefs-mergers/merge-typedefs.ts b/packages/merge/src/typedefs-mergers/merge-typedefs.ts index e7a016fa345..0760a62aadf 100644 --- a/packages/merge/src/typedefs-mergers/merge-typedefs.ts +++ b/packages/merge/src/typedefs-mergers/merge-typedefs.ts @@ -14,7 +14,7 @@ import { CompareFn, defaultStringComparator, isSourceTypes, isStringTypes } from import { MergedResultMap, mergeGraphQLNodes, schemaDefSymbol } from './merge-nodes'; import { resetComments, printWithComments } from './comments'; import { getDocumentNodeFromSchema } from '@graphql-tools/utils'; -import { operationTypeDefinitionNodeTypeRootTypeMap } from './schema-def'; +import { DEFAULT_OPERATION_TYPE_NAME_MAP } from './schema-def'; type Omit = Pick>; @@ -117,7 +117,7 @@ export function mergeTypeDefs( function visitTypeSources( types: Array, - allNodes: DefinitionNode[] + allNodes: DefinitionNode[] = [] ) { for (const type of types) { if (type) { @@ -136,6 +136,7 @@ function visitTypeSources( } } } + return allNodes; } export function mergeGraphQLTypes( @@ -144,23 +145,22 @@ export function mergeGraphQLTypes( ): DefinitionNode[] { resetComments(); - const allNodes: DefinitionNode[] = []; - visitTypeSources(types, allNodes); + const allNodes = visitTypeSources(types); const mergedNodes: MergedResultMap = mergeGraphQLNodes(allNodes, config); - // XXX: right now we don't handle multiple schema definitions - let schemaDef = mergedNodes[schemaDefSymbol] || { - kind: Kind.SCHEMA_DEFINITION, - operationTypes: [], - }; - if (config?.useSchemaDefinition) { + // XXX: right now we don't handle multiple schema definitions + const schemaDef = mergedNodes[schemaDefSymbol] || { + kind: Kind.SCHEMA_DEFINITION, + operationTypes: [], + }; const operationTypes = schemaDef.operationTypes as OperationTypeDefinitionNode[]; - for (const opTypeDefNodeType in operationTypeDefinitionNodeTypeRootTypeMap) { + for (const opTypeDefNodeType in DEFAULT_OPERATION_TYPE_NAME_MAP) { const opTypeDefNode = operationTypes.find(operationType => operationType.operation === opTypeDefNodeType); if (!opTypeDefNode) { - const existingPossibleRootType = mergedNodes[operationTypeDefinitionNodeTypeRootTypeMap[opTypeDefNodeType]]; + const possibleRootTypeName = DEFAULT_OPERATION_TYPE_NAME_MAP[opTypeDefNodeType]; + const existingPossibleRootType = mergedNodes[possibleRootTypeName]; if (existingPossibleRootType) { operationTypes.push({ kind: Kind.OPERATION_TYPE_DEFINITION, @@ -173,10 +173,14 @@ export function mergeGraphQLTypes( } } } + + if (schemaDef.operationTypes?.length > 0) { + mergedNodes[schemaDefSymbol] = schemaDef; + } } - if (config?.forceSchemaDefinition && !schemaDef?.operationTypes?.length) { - schemaDef = { + if (config?.forceSchemaDefinition && !mergedNodes[schemaDefSymbol]?.operationTypes?.length) { + mergedNodes[schemaDefSymbol] = { kind: Kind.SCHEMA_DEFINITION, operationTypes: [ { @@ -196,10 +200,6 @@ export function mergeGraphQLTypes( const mergedNodeDefinitions = Object.values(mergedNodes); - if (schemaDef.operationTypes?.length) { - mergedNodeDefinitions.push(schemaDef); - } - if (config?.sort) { const sortFn = typeof config.sort === 'function' ? config.sort : defaultStringComparator; mergedNodeDefinitions.sort((a, b) => sortFn(a.name?.value, b.name?.value)); diff --git a/packages/merge/src/typedefs-mergers/schema-def.ts b/packages/merge/src/typedefs-mergers/schema-def.ts index 47ce6830069..b63662adaab 100644 --- a/packages/merge/src/typedefs-mergers/schema-def.ts +++ b/packages/merge/src/typedefs-mergers/schema-def.ts @@ -2,7 +2,7 @@ import { Kind, OperationTypeDefinitionNode, SchemaDefinitionNode, SchemaExtensio import { mergeDirectives } from './directives'; import { Config } from './merge-typedefs'; -export const operationTypeDefinitionNodeTypeRootTypeMap = { +export const DEFAULT_OPERATION_TYPE_NAME_MAP = { query: 'Query', mutation: 'Mutation', subscription: 'Subscription', @@ -13,7 +13,7 @@ function mergeOperationTypes( existingOpNodeList: ReadonlyArray = [] ): OperationTypeDefinitionNode[] { const finalOpNodeList: OperationTypeDefinitionNode[] = []; - for (const opNodeType in operationTypeDefinitionNodeTypeRootTypeMap) { + for (const opNodeType in DEFAULT_OPERATION_TYPE_NAME_MAP) { const opNode = opNodeList.find(n => n.operation === opNodeType) || existingOpNodeList.find(n => n.operation === opNodeType); if (opNode) { diff --git a/packages/merge/tests/merge-nodes.spec.ts b/packages/merge/tests/merge-nodes.spec.ts index 412a7a6f90b..ac7fcd12fcb 100644 --- a/packages/merge/tests/merge-nodes.spec.ts +++ b/packages/merge/tests/merge-nodes.spec.ts @@ -1,5 +1,5 @@ import { mergeGraphQLNodes } from '../src'; -import { parse, InputObjectTypeDefinitionNode } from 'graphql'; +import { parse, InputObjectTypeDefinitionNode, EnumTypeDefinitionNode } from 'graphql'; describe('Merge Nodes', () => { describe('type', () => { @@ -140,7 +140,7 @@ describe('Merge Nodes', () => { const type1 = parse(`enum A { T }`); const type2 = parse(`enum A { S }`); const merged = mergeGraphQLNodes([...type1.definitions, ...type2.definitions]); - const result: any = merged.A; + const result = merged.A as EnumTypeDefinitionNode; expect(result.values.length).toBe(2); expect(result.values.findIndex(v => v.name.value === 'T')).not.toBe(-1); @@ -241,7 +241,7 @@ describe('Merge Nodes', () => { expect(type.fields[1].type.name.value).toBe('String'); }); - it('should remove schema definition', () => { + it.skip('should remove schema definition', () => { const type1 = parse(`schema { query: Query } type Query { f1: String }`); const type2 = parse(`type Query { f2: String }`); const merged = mergeGraphQLNodes([...type1.definitions, ...type2.definitions]); diff --git a/packages/merge/tests/merge-typedefs.spec.ts b/packages/merge/tests/merge-typedefs.spec.ts index 7b71bc728b5..fc5c890f66c 100644 --- a/packages/merge/tests/merge-typedefs.spec.ts +++ b/packages/merge/tests/merge-typedefs.spec.ts @@ -1,3 +1,4 @@ +import '../../testing/to-be-similar-gql-doc'; import { mergeDirectives, mergeTypeDefs, mergeGraphQLTypes } from '../src'; import { makeExecutableSchema } from '@graphql-tools/schema'; import { stitchSchemas } from '@graphql-tools/stitch' @@ -177,6 +178,7 @@ describe('Merge TypeDefs', () => { expect(mergedArray[0].kind).toBe('ObjectTypeDefinition'); expect(mergedArray[1].kind).toBe('ObjectTypeDefinition'); expect(mergedArray[2].kind).toBe('SchemaDefinition'); + }); it('should return the correct definition of Schema', () => { @@ -186,8 +188,8 @@ describe('Merge TypeDefs', () => { expect(mergedArray.length).toBe(3); expect(mergedArray[0].kind).toBe('ObjectTypeDefinition'); - expect(mergedArray[1].kind).toBe('ObjectTypeDefinition'); - expect(mergedArray[2].kind).toBe('SchemaDefinition'); + expect(mergedArray[1].kind).toBe('SchemaDefinition'); + expect(mergedArray[2].kind).toBe('ObjectTypeDefinition'); }); it('should accept root schema object', () => { @@ -210,8 +212,8 @@ describe('Merge TypeDefs', () => { expect(mergedArray.length).toBe(3); expect(mergedArray[0].kind).toBe('ObjectTypeDefinition'); - expect(mergedArray[1].kind).toBe('ObjectTypeDefinition'); - expect(mergedArray[2].kind).toBe('SchemaDefinition'); + expect(mergedArray[1].kind).toBe('SchemaDefinition'); + expect(mergedArray[2].kind).toBe('ObjectTypeDefinition'); }); }); @@ -658,7 +660,7 @@ describe('Merge TypeDefs', () => { 'type Query { f2: String }', ]); - expect(stripWhitespaces(print(merged))).toBe( + expect(stripWhitespaces(print(merged))).toBeSimilarGqlDoc( stripWhitespaces(/* GraphQL */` type Query { f1: String @@ -710,7 +712,7 @@ describe('Merge TypeDefs', () => { `, ]); - expect(stripWhitespaces(print(merged))).toBe( + expect(stripWhitespaces(print(merged))).toBeSimilarGqlDoc( stripWhitespaces(/* GraphQL */` type Query { f1: String diff --git a/packages/utils/src/fix-schema-ast.ts b/packages/utils/src/fix-schema-ast.ts index 481ad638bca..efccdff9e74 100644 --- a/packages/utils/src/fix-schema-ast.ts +++ b/packages/utils/src/fix-schema-ast.ts @@ -1,10 +1,10 @@ -import { GraphQLSchema, BuildSchemaOptions, buildSchema } from 'graphql'; +import { GraphQLSchema, BuildSchemaOptions, buildASTSchema } from 'graphql'; import { SchemaPrintOptions } from './types'; -import { printSchemaWithDirectives } from './print-schema-with-directives'; +import { getDocumentNodeFromSchema } from './print-schema-with-directives'; function buildFixedSchema(schema: GraphQLSchema, options: BuildSchemaOptions & SchemaPrintOptions) { - return buildSchema(printSchemaWithDirectives(schema), { - noLocation: true, + const document = getDocumentNodeFromSchema(schema); + return buildASTSchema(document, { ...(options || {}), }); } diff --git a/packages/utils/src/parse-graphql-json.ts b/packages/utils/src/parse-graphql-json.ts index 53c0b322875..9710732f54f 100644 --- a/packages/utils/src/parse-graphql-json.ts +++ b/packages/utils/src/parse-graphql-json.ts @@ -1,9 +1,7 @@ import { buildClientSchema, ParseOptions } from 'graphql'; import { GraphQLSchemaValidationOptions } from 'graphql/type/schema'; -import { printSchemaWithDirectives } from './print-schema-with-directives'; import { Source } from './loaders'; import { SchemaPrintOptions } from './types'; -import { parseGraphQLSDL } from './parse-graphql-sdl'; function stripBOM(content: string): string { content = content.toString(); @@ -33,22 +31,22 @@ export function parseGraphQLJSON( } if (parsedJson.kind === 'Document') { - const document = parsedJson; - return { location, - document, + document: parsedJson, }; } else if (parsedJson.__schema) { const schema = buildClientSchema(parsedJson, options); - const rawSDL = printSchemaWithDirectives(schema, options); return { location, - document: parseGraphQLSDL(location, rawSDL, options).document, - rawSDL, schema, }; + } else if (typeof parsedJson === 'string') { + return { + location, + rawSDL: parsedJson + } } throw new Error(`Not valid JSON content`); diff --git a/packages/utils/src/parse-graphql-sdl.ts b/packages/utils/src/parse-graphql-sdl.ts index 9185aaea1b0..21332726d83 100644 --- a/packages/utils/src/parse-graphql-sdl.ts +++ b/packages/utils/src/parse-graphql-sdl.ts @@ -16,11 +16,9 @@ import { GraphQLParseOptions } from './Interfaces'; export function parseGraphQLSDL(location: string, rawSDL: string, options: GraphQLParseOptions = {}) { let document: DocumentNode; const sdl: string = rawSDL; - let sdlModified = false; try { if (options.commentDescriptions && sdl.includes('#')) { - sdlModified = true; document = transformCommentsToDescriptions(rawSDL, options); // If noLocation=true, we need to make sure to print and parse it again, to remove locations, @@ -46,7 +44,6 @@ export function parseGraphQLSDL(location: string, rawSDL: string, options: Graph return { location, document, - rawSDL: sdlModified ? print(document) : sdl, }; } diff --git a/yarn.lock b/yarn.lock index 32a82cb6159..077ec8a70eb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -21,13 +21,6 @@ resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.0.0-alpha.44.tgz#db13902ad1667e455711b77d08cae1a0feafaa48" integrity sha512-2oQZPERYV+yNx/yoVWYjZZdOqsitJ5dfxXJjL18yczOXH6ujnsq+DTczSrX+RjzjQdVeJ1UAG053EJQF/FOiMg== -"@algolia/cache-browser-local-storage@4.8.6": - version "4.8.6" - resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.8.6.tgz#6be9644b68efbbc231ac3f0a4cfa985ef31eade9" - integrity sha512-Bam7otzjIEgrRXWmk0Amm1+B3ROI5dQnUfJEBjIy0YPM0kMahEoJXCw6160tGKxJLl1g6icoC953nGshQKO7cA== - dependencies: - "@algolia/cache-common" "4.8.6" - "@algolia/cache-browser-local-storage@4.9.1": version "4.9.1" resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.9.1.tgz#784e91580dcca00a8280b0905197f5abbbdf4b48" @@ -35,23 +28,11 @@ dependencies: "@algolia/cache-common" "4.9.1" -"@algolia/cache-common@4.8.6": - version "4.8.6" - resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.8.6.tgz#dff1697a0fe3d7856630071559661ec5ad90f31c" - integrity sha512-eGQlsXU5G7n4RvV/K6qe6lRAeL6EKAYPT3yZDBjCW4pAh7JWta+77a7BwUQkTqXN1MEQWZXjex3E4z/vFpzNrg== - "@algolia/cache-common@4.9.1": version "4.9.1" resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.9.1.tgz#2d5f37ba7aab7db76627c4a4fce51a7fd137fa65" integrity sha512-tcvw4mOfFy44V4ZxDEy9wNGr6vFROZKRpXKTEBgdw/WBn6mX51H1ar4RWtceDEcDU4H5fIv5tsY3ip2hU+fTPg== -"@algolia/cache-in-memory@4.8.6": - version "4.8.6" - resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.8.6.tgz#9a100a1be05e700a253ef4bdabd3bd45df2f67d4" - integrity sha512-kbJrvCFANxL/l5Pq1NFyHLRphKDwmqcD/OJga0IbNKEulRGDPkt1+pC7/q8d2ikP12adBjLLg2CVias9RJpIaw== - dependencies: - "@algolia/cache-common" "4.8.6" - "@algolia/cache-in-memory@4.9.1": version "4.9.1" resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.9.1.tgz#3fd1d67aec804b6cc8439015b8b9c712a45c7ae0" @@ -59,15 +40,6 @@ dependencies: "@algolia/cache-common" "4.9.1" -"@algolia/client-account@4.8.6": - version "4.8.6" - resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.8.6.tgz#050cfd6a6d3e06a5a8e1029f24d6d50524d186c6" - integrity sha512-FQVJE/BgCb78jtG7V0r30sMl9P5JKsrsOacGtGF2YebqI0YF25y8Z1nO39lbdjahxUS3QkDw2d0P2EVMj65g2Q== - dependencies: - "@algolia/client-common" "4.8.6" - "@algolia/client-search" "4.8.6" - "@algolia/transporter" "4.8.6" - "@algolia/client-account@4.9.1": version "4.9.1" resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.9.1.tgz#f2c1b3e49de2ee1fca44b8b5e64e1ce0dbdff0db" @@ -77,16 +49,6 @@ "@algolia/client-search" "4.9.1" "@algolia/transporter" "4.9.1" -"@algolia/client-analytics@4.8.6": - version "4.8.6" - resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.8.6.tgz#ac644cfc9d87a085b9e53c71a42ef6e90d828501" - integrity sha512-ZBYFUlzNaWDFtt0rYHI7xbfVX0lPWU9lcEEXI/BlnkRgEkm247H503tNatPQFA1YGkob52EU18sV1eJ+OFRBLA== - dependencies: - "@algolia/client-common" "4.8.6" - "@algolia/client-search" "4.8.6" - "@algolia/requester-common" "4.8.6" - "@algolia/transporter" "4.8.6" - "@algolia/client-analytics@4.9.1": version "4.9.1" resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.9.1.tgz#56972496526910c53c5ce7844f4571efba63eb5f" @@ -97,14 +59,6 @@ "@algolia/requester-common" "4.9.1" "@algolia/transporter" "4.9.1" -"@algolia/client-common@4.8.6": - version "4.8.6" - resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.8.6.tgz#c8b81af250ed8beb741a0e5cfdd3236bb4292c94" - integrity sha512-8dI+K3Nvbes2YRZm2LY7bdCUD05e60BhacrMLxFuKxnBGuNehME1wbxq/QxcG1iNFJlxLIze5TxIcNN3+pn76g== - dependencies: - "@algolia/requester-common" "4.8.6" - "@algolia/transporter" "4.8.6" - "@algolia/client-common@4.9.1": version "4.9.1" resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.9.1.tgz#ae313b65d3249efcb4fafd2e92ed1fa2fd075482" @@ -113,15 +67,6 @@ "@algolia/requester-common" "4.9.1" "@algolia/transporter" "4.9.1" -"@algolia/client-recommendation@4.8.6": - version "4.8.6" - resolved "https://registry.yarnpkg.com/@algolia/client-recommendation/-/client-recommendation-4.8.6.tgz#2518a09bfbeaec78b0d7a4213107f0899f80f9ac" - integrity sha512-Kg8DpjwvaWWujNx6sAUrSL+NTHxFe/UNaliCcSKaMhd3+FiPXN+CrSkO0KWR7I+oK2qGBTG/2Y0BhFOJ5/B/RA== - dependencies: - "@algolia/client-common" "4.8.6" - "@algolia/requester-common" "4.8.6" - "@algolia/transporter" "4.8.6" - "@algolia/client-recommendation@4.9.1": version "4.9.1" resolved "https://registry.yarnpkg.com/@algolia/client-recommendation/-/client-recommendation-4.9.1.tgz#217af2a38d37ab12cf23a419cc9a576af9d15b13" @@ -131,15 +76,6 @@ "@algolia/requester-common" "4.9.1" "@algolia/transporter" "4.9.1" -"@algolia/client-search@4.8.6": - version "4.8.6" - resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.8.6.tgz#1ca3f28c04ef4120b0563a293b30fcfe1b3fd1d0" - integrity sha512-vXLS6umL/9G3bwqc6pkrS9K5/s8coq55mpfRARL+bs0NsToOf77WSTdwzlxv/KdbVF7dHjXgUpBvJ6RyR4ZdAw== - dependencies: - "@algolia/client-common" "4.8.6" - "@algolia/requester-common" "4.8.6" - "@algolia/transporter" "4.8.6" - "@algolia/client-search@4.9.1": version "4.9.1" resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.9.1.tgz#a2fbc47a1b343dade9a8b06310231d51ff675b1b" @@ -149,23 +85,11 @@ "@algolia/requester-common" "4.9.1" "@algolia/transporter" "4.9.1" -"@algolia/logger-common@4.8.6": - version "4.8.6" - resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.8.6.tgz#8c44a4f550e12418b0ec8d76a068e4f1c64206d1" - integrity sha512-FMRxZGdDxSzd0/Mv0R1021FvUt0CcbsQLYeyckvSWX8w+Uk4o0lcV6UtZdERVR5XZsGOqoXLMIYDbR2vkbGbVw== - "@algolia/logger-common@4.9.1": version "4.9.1" resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.9.1.tgz#3323834095f2916338d2535d2df91c4723ac19f2" integrity sha512-9mPrbFlFyPT7or/7PXTiJjyOewWB9QRkZKVXkt5zHAUiUzGxmmdpJIGpPv3YQnDur8lXrXaRI0MHXUuIDMY1ng== -"@algolia/logger-console@4.8.6": - version "4.8.6" - resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.8.6.tgz#77176570fa6532fa846c7cfa2c6280935b1a3a06" - integrity sha512-TYw9lwUCjvApC6Z0zn36T6gkCl7hbfJmnU+Z/D8pFJ3Yp7lz06S3oWGjbdrULrYP1w1VOhjd0X7/yGNsMhzutQ== - dependencies: - "@algolia/logger-common" "4.8.6" - "@algolia/logger-console@4.9.1": version "4.9.1" resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.9.1.tgz#c324ef26843dbed06b44586309331dbb949744ad" @@ -173,13 +97,6 @@ dependencies: "@algolia/logger-common" "4.9.1" -"@algolia/requester-browser-xhr@4.8.6": - version "4.8.6" - resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.8.6.tgz#dbcb5906d10c619d7f08fced2f68fa09abffe5fd" - integrity sha512-omh6uJ3CJXOmcrU9M3/KfGg8XkUuGJGIMkqEbkFvIebpBJxfs6TVs0ziNeMFAcAfhi8/CGgpLbDSgJtWdGQa6w== - dependencies: - "@algolia/requester-common" "4.8.6" - "@algolia/requester-browser-xhr@4.9.1": version "4.9.1" resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.9.1.tgz#0812f3c7c4105a4646c0fba8429b172b2d0e01c5" @@ -187,23 +104,11 @@ dependencies: "@algolia/requester-common" "4.9.1" -"@algolia/requester-common@4.8.6": - version "4.8.6" - resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.8.6.tgz#37ea1f9ecc1afcd91532b9f9c952c62fdef42bca" - integrity sha512-r5xJqq/D9KACkI5DgRbrysVL5DUUagikpciH0k0zjBbm+cXiYfpmdflo/h6JnY6kmvWgjr/4DoeTjKYb/0deAQ== - "@algolia/requester-common@4.9.1": version "4.9.1" resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.9.1.tgz#50fcf4c7c1ed7ae13159167ac1da2844d036a630" integrity sha512-9hPgXnlCSbqJqF69M5x5WN3h51Dc+mk/iWNeJSVxExHGvCDfBBZd0v6S15i8q2a9cD1I2RnhMpbnX5BmGtabVA== -"@algolia/requester-node-http@4.8.6": - version "4.8.6" - resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.8.6.tgz#e966293224f3bd1ba32ce4f9bc0fdada5d8e69ec" - integrity sha512-TB36OqTVOKyHCOtdxhn/IJyI/NXi/BWy8IEbsiWwwZWlL79NWHbetj49jXWFolEYEuu8PgDjjZGpRhypSuO9XQ== - dependencies: - "@algolia/requester-common" "4.8.6" - "@algolia/requester-node-http@4.9.1": version "4.9.1" resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.9.1.tgz#70054a0aa5643072404fcb68042eec97c7abd1c8" @@ -211,15 +116,6 @@ dependencies: "@algolia/requester-common" "4.9.1" -"@algolia/transporter@4.8.6": - version "4.8.6" - resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.8.6.tgz#b605dcd971aed374bdd95dd8938b93b9df650109" - integrity sha512-NRb31J0TP7EPoVMpXZ4yAtr61d26R8KGaf6qdULknvq5sOVHuuH4PwmF08386ERfIsgnM/OBhl+uzwACdCIjSg== - dependencies: - "@algolia/cache-common" "4.8.6" - "@algolia/logger-common" "4.8.6" - "@algolia/requester-common" "4.8.6" - "@algolia/transporter@4.9.1": version "4.9.1" resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.9.1.tgz#63ef3d9ae3b6556fa1ff1e6265bbab482bd084b7" @@ -298,7 +194,7 @@ dependencies: "@babel/highlight" "^7.12.13" -"@babel/compat-data@^7.13.0", "@babel/compat-data@^7.13.11", "@babel/compat-data@^7.13.15", "@babel/compat-data@^7.13.8", "@babel/compat-data@^7.14.0": +"@babel/compat-data@^7.13.0", "@babel/compat-data@^7.13.11", "@babel/compat-data@^7.13.15", "@babel/compat-data@^7.14.0": version "7.14.0" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.0.tgz#a901128bce2ad02565df95e6ecbf195cf9465919" integrity sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q== @@ -346,7 +242,7 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/generator@^7.12.15", "@babel/generator@^7.12.5", "@babel/generator@^7.13.0", "@babel/generator@^7.13.16", "@babel/generator@^7.13.9", "@babel/generator@^7.14.0", "@babel/generator@^7.14.2", "@babel/generator@^7.14.3", "@babel/generator@^7.5.0", "@babel/generator@^7.7.2": +"@babel/generator@^7.12.15", "@babel/generator@^7.12.5", "@babel/generator@^7.14.2", "@babel/generator@^7.14.3", "@babel/generator@^7.5.0", "@babel/generator@^7.7.2": version "7.14.3" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.3.tgz#0c2652d91f7bddab7cccc6ba8157e4f40dcedb91" integrity sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA== @@ -370,7 +266,7 @@ "@babel/helper-explode-assignable-expression" "^7.12.13" "@babel/types" "^7.12.13" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.10", "@babel/helper-compilation-targets@^7.13.16", "@babel/helper-compilation-targets@^7.13.8": +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.16": version "7.13.16" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz#6e91dccf15e3f43e5556dffe32d860109887563c" integrity sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA== @@ -459,7 +355,7 @@ "@babel/traverse" "^7.13.0" "@babel/types" "^7.13.0" -"@babel/helper-member-expression-to-functions@^7.13.0", "@babel/helper-member-expression-to-functions@^7.13.12": +"@babel/helper-member-expression-to-functions@^7.13.12": version "7.13.12" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72" integrity sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw== @@ -513,7 +409,7 @@ "@babel/helper-wrap-function" "^7.13.0" "@babel/types" "^7.13.0" -"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.0", "@babel/helper-replace-supers@^7.13.12": +"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.12": version "7.13.12" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz#6442f4c1ad912502481a564a7386de0c77ff3804" integrity sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw== @@ -523,7 +419,7 @@ "@babel/traverse" "^7.13.0" "@babel/types" "^7.13.12" -"@babel/helper-simple-access@^7.12.13", "@babel/helper-simple-access@^7.13.12": +"@babel/helper-simple-access@^7.13.12": version "7.13.12" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6" integrity sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA== @@ -564,7 +460,7 @@ "@babel/traverse" "^7.13.0" "@babel/types" "^7.13.0" -"@babel/helpers@^7.12.5", "@babel/helpers@^7.13.10", "@babel/helpers@^7.14.0": +"@babel/helpers@^7.12.5", "@babel/helpers@^7.14.0": version "7.14.0" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.0.tgz#ea9b6be9478a13d6f961dbb5f36bf75e2f3b8f62" integrity sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg== @@ -582,7 +478,7 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@7.14.3", "@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.12.0", "@babel/parser@^7.12.13", "@babel/parser@^7.12.16", "@babel/parser@^7.12.5", "@babel/parser@^7.12.7", "@babel/parser@^7.13.0", "@babel/parser@^7.13.10", "@babel/parser@^7.13.16", "@babel/parser@^7.13.9", "@babel/parser@^7.14.0", "@babel/parser@^7.14.2", "@babel/parser@^7.14.3", "@babel/parser@^7.7.2": +"@babel/parser@7.14.3", "@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.12.0", "@babel/parser@^7.12.13", "@babel/parser@^7.12.16", "@babel/parser@^7.12.5", "@babel/parser@^7.12.7", "@babel/parser@^7.13.9", "@babel/parser@^7.14.2", "@babel/parser@^7.14.3", "@babel/parser@^7.7.2": version "7.14.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.3.tgz#9b530eecb071fd0c93519df25c5ff9f14759f298" integrity sha512-7MpZDIfI7sUC5zWo2+foJ50CSI5lcqDehZ0lVgIhSi4bFEk94fLAKlF3Q0nzSQQ+ca0lm+O6G9ztKVBeu8PMRQ== @@ -596,7 +492,7 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" "@babel/plugin-proposal-optional-chaining" "^7.13.12" -"@babel/plugin-proposal-async-generator-functions@^7.13.8", "@babel/plugin-proposal-async-generator-functions@^7.14.2": +"@babel/plugin-proposal-async-generator-functions@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.2.tgz#3a2085abbf5d5f962d480dbc81347385ed62eb1e" integrity sha512-b1AM4F6fwck4N8ItZ/AtC4FP/cqZqmKRQ4FaTDutwSYyjuhtvsGEMLK4N/ztV/ImP40BjIDyMgBQAeAMsQYVFQ== @@ -621,7 +517,7 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-class-static-block" "^7.12.13" -"@babel/plugin-proposal-dynamic-import@^7.13.8", "@babel/plugin-proposal-dynamic-import@^7.14.2": +"@babel/plugin-proposal-dynamic-import@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.2.tgz#01ebabd7c381cff231fa43e302939a9de5be9d9f" integrity sha512-oxVQZIWFh91vuNEMKltqNsKLFWkOIyJc95k2Gv9lWVyDfPUQGSSlbDEgWuJUU1afGE9WwlzpucMZ3yDRHIItkA== @@ -629,7 +525,7 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-proposal-export-namespace-from@^7.12.13", "@babel/plugin-proposal-export-namespace-from@^7.14.2": +"@babel/plugin-proposal-export-namespace-from@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.2.tgz#62542f94aa9ce8f6dba79eec698af22112253791" integrity sha512-sRxW3z3Zp3pFfLAgVEvzTFutTXax837oOatUIvSG9o5gRj9mKwm3br1Se5f4QalTQs9x4AzlA/HrCWbQIHASUQ== @@ -637,7 +533,7 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-json-strings@^7.13.8", "@babel/plugin-proposal-json-strings@^7.14.2": +"@babel/plugin-proposal-json-strings@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.2.tgz#830b4e2426a782e8b2878fbfe2cba85b70cbf98c" integrity sha512-w2DtsfXBBJddJacXMBhElGEYqCZQqN99Se1qeYn8DVLB33owlrlLftIbMzn5nz1OITfDVknXF433tBrLEAOEjA== @@ -645,7 +541,7 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-logical-assignment-operators@^7.13.8", "@babel/plugin-proposal-logical-assignment-operators@^7.14.2": +"@babel/plugin-proposal-logical-assignment-operators@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.2.tgz#222348c080a1678e0e74ea63fe76f275882d1fd7" integrity sha512-1JAZtUrqYyGsS7IDmFeaem+/LJqujfLZ2weLR9ugB0ufUPjzf8cguyVT1g5im7f7RXxuLq1xUxEzvm68uYRtGg== @@ -653,7 +549,7 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8", "@babel/plugin-proposal-nullish-coalescing-operator@^7.14.2": +"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.2.tgz#425b11dc62fc26939a2ab42cbba680bdf5734546" integrity sha512-ebR0zU9OvI2N4qiAC38KIAK75KItpIPTpAtd2r4OZmMFeKbKJpUFLYP2EuDut82+BmYi8sz42B+TfTptJ9iG5Q== @@ -661,7 +557,7 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.12.13", "@babel/plugin-proposal-numeric-separator@^7.14.2": +"@babel/plugin-proposal-numeric-separator@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.2.tgz#82b4cc06571143faf50626104b335dd71baa4f9e" integrity sha512-DcTQY9syxu9BpU3Uo94fjCB3LN9/hgPS8oUL7KrSW3bA2ePrKZZPJcc5y0hoJAM9dft3pGfErtEUvxXQcfLxUg== @@ -678,7 +574,7 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.0" "@babel/plugin-transform-parameters" "^7.12.1" -"@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.13.8", "@babel/plugin-proposal-object-rest-spread@^7.14.2": +"@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.2.tgz#e17d418f81cc103fedd4ce037e181c8056225abc" integrity sha512-hBIQFxwZi8GIp934+nj5uV31mqclC1aYDhctDu5khTi9PCCUOczyy0b34W0oE9U/eJXiqQaKyVsmjeagOaSlbw== @@ -689,7 +585,7 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-transform-parameters" "^7.14.2" -"@babel/plugin-proposal-optional-catch-binding@^7.13.8", "@babel/plugin-proposal-optional-catch-binding@^7.14.2": +"@babel/plugin-proposal-optional-catch-binding@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.2.tgz#150d4e58e525b16a9a1431bd5326c4eed870d717" integrity sha512-XtkJsmJtBaUbOxZsNk0Fvrv8eiqgneug0A6aqLFZ4TSkar2L5dSXWcnUKHgmjJt49pyB/6ZHvkr3dPgl9MOWRQ== @@ -697,7 +593,7 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.13.8", "@babel/plugin-proposal-optional-chaining@^7.14.2": +"@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.2.tgz#df8171a8b9c43ebf4c1dabe6311b432d83e1b34e" integrity sha512-qQByMRPwMZJainfig10BoaDldx/+VDtNcrA7qdNaEOAj6VXud+gfrkA8j4CRAU5HjnWREXqIpSpH30qZX1xivA== @@ -895,14 +791,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.12.13", "@babel/plugin-transform-block-scoping@^7.14.2": +"@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.2.tgz#761cb12ab5a88d640ad4af4aa81f820e6b5fdf5c" integrity sha512-neZZcP19NugZZqNwMTH+KoBjx5WyvESPSIOQb4JHpfd+zPfqcH65RMu5xJju5+6q/Y2VzYrleQTr+b6METyyxg== dependencies: "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.13.0", "@babel/plugin-transform-classes@^7.14.2": +"@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.2.tgz#3f1196c5709f064c252ad056207d87b7aeb2d03d" integrity sha512-7oafAVcucHquA/VZCsXv/gmuiHeYd64UJyyTYU+MPfNu0KeNlxw06IeENBO8bJjXVbolu+j1MM5aKQtH1OMCNg== @@ -922,7 +818,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-destructuring@^7.0.0", "@babel/plugin-transform-destructuring@^7.13.0", "@babel/plugin-transform-destructuring@^7.13.17": +"@babel/plugin-transform-destructuring@^7.0.0", "@babel/plugin-transform-destructuring@^7.13.17": version "7.13.17" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.17.tgz#678d96576638c19d5b36b332504d3fd6e06dea27" integrity sha512-UAUqiLv+uRLO+xuBKKMEpC+t7YRNVRqBsWWq1yKXbBZBje/t3IXCiSinZhjn/DC3qzBfICeYd2EFGEbHsh5RLA== @@ -989,7 +885,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-modules-amd@^7.13.0", "@babel/plugin-transform-modules-amd@^7.14.2": +"@babel/plugin-transform-modules-amd@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.2.tgz#6622806fe1a7c07a1388444222ef9535f2ca17b0" integrity sha512-hPC6XBswt8P3G2D1tSV2HzdKvkqOpmbyoy+g73JG0qlF/qx2y3KaMmXb1fLrpmWGLZYA0ojCvaHdzFWjlmV+Pw== @@ -998,7 +894,7 @@ "@babel/helper-plugin-utils" "^7.13.0" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.13.8", "@babel/plugin-transform-modules-commonjs@^7.14.0": +"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.14.0": version "7.14.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz#52bc199cb581e0992edba0f0f80356467587f161" integrity sha512-EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ== @@ -1019,7 +915,7 @@ "@babel/helper-validator-identifier" "^7.12.11" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.13.0", "@babel/plugin-transform-modules-umd@^7.14.0": +"@babel/plugin-transform-modules-umd@^7.14.0": version "7.14.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz#2f8179d1bbc9263665ce4a65f305526b2ea8ac34" integrity sha512-nPZdnWtXXeY7I87UZr9VlsWme3Y0cfFFE41Wbxz4bbaexAjNMInXPFUpRRUJ8NoMm0Cw+zxbqjdPmLhcjfazMw== @@ -1049,7 +945,7 @@ "@babel/helper-plugin-utils" "^7.12.13" "@babel/helper-replace-supers" "^7.12.13" -"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.13.0", "@babel/plugin-transform-parameters@^7.14.2": +"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.2.tgz#e4290f72e0e9e831000d066427c4667098decc31" integrity sha512-NxoVmA3APNCC1JdMXkdYXuQS+EMdqy0vIwyDHeKHiJKRxmp1qGSdb0JLEIoPRhkx6H/8Qi3RJ3uqOCYw8giy9A== @@ -1103,7 +999,7 @@ "@babel/helper-annotate-as-pure" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-regenerator@^7.12.13", "@babel/plugin-transform-regenerator@^7.13.15": +"@babel/plugin-transform-regenerator@^7.13.15": version "7.13.15" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz#e5eb28945bf8b6563e7f818945f966a8d2997f39" integrity sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ== @@ -1337,7 +1233,7 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@7.14.2", "@babel/types@^7.0.0", "@babel/types@^7.12.0", "@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.12.17", "@babel/types@^7.12.6", "@babel/types@^7.12.7", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.16", "@babel/types@^7.13.17", "@babel/types@^7.14.0", "@babel/types@^7.14.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": +"@babel/types@7.14.2", "@babel/types@^7.0.0", "@babel/types@^7.12.0", "@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.12.17", "@babel/types@^7.12.6", "@babel/types@^7.12.7", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.14.0", "@babel/types@^7.14.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.2.tgz#4208ae003107ef8a057ea8333e56eb64d2f6a2c3" integrity sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw== @@ -2831,11 +2727,6 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff" integrity sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw== -"@types/ungap__global-this@^0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@types/ungap__global-this/-/ungap__global-this-0.3.1.tgz#18ce9f657da556037a29d50604335614ce703f4c" - integrity sha512-+/DsiV4CxXl6ZWefwHZDXSe1Slitz21tom38qPCaG0DYCS1NnDPIQDTKcmQ/tvK/edJUKkmuIDBJbmKDiB0r/g== - "@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2", "@types/unist@^2.0.3": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" @@ -2954,11 +2845,6 @@ "@typescript-eslint/types" "4.25.0" eslint-visitor-keys "^2.0.0" -"@ungap/global-this@^0.4.2": - version "0.4.4" - resolved "https://registry.yarnpkg.com/@ungap/global-this/-/global-this-0.4.4.tgz#8a1b2cfcd3e26e079a847daba879308c924dd695" - integrity sha512-mHkm6FvepJECMNthFuIgpAEFmPOk71UyXuIxYfjytvFTnSDBIz7jmViO+LfHI/AjrazWije0PnSP3+/NlwzqtA== - "@vue/compiler-core@3.0.11": version "3.0.11" resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.0.11.tgz#5ef579e46d7b336b8735228758d1c2c505aae69a" @@ -3134,13 +3020,6 @@ "@webassemblyjs/ast" "1.11.0" "@xtuc/long" "4.2.2" -"@wry/context@^0.5.2": - version "0.5.4" - resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.5.4.tgz#b6c28038872e0a0e1ff14eb40b5bf4cab2ab4e06" - integrity sha512-/pktJKHUXDr4D6TJqWgudOPJW2Z+Nb+bqk40jufA3uTkLbnCRKdJPiYDIa/c7mfcPH8Hr6O8zjCERpg5Sq04Zg== - dependencies: - tslib "^1.14.1" - "@wry/context@^0.6.0": version "0.6.0" resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.6.0.tgz#f903eceb89d238ef7e8168ed30f4511f92d83e06" @@ -3148,13 +3027,6 @@ dependencies: tslib "^2.1.0" -"@wry/equality@^0.3.0": - version "0.3.4" - resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.3.4.tgz#37f101552b18a046d5c0c06da7b2021b15f72c03" - integrity sha512-1gQQhCPenzxw/1HzLlvSIs/59eBHJf9ZDIussjjZhqNSqQuPKQIzN6SWt4kemvlBPDi7RqMuUa03pId7MAE93g== - dependencies: - tslib "^1.14.1" - "@wry/equality@^0.4.0": version "0.4.0" resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.4.0.tgz#474491869a8d0590f4a33fd2a4850a77a0f63408" @@ -3162,13 +3034,6 @@ dependencies: tslib "^2.1.0" -"@wry/trie@^0.2.1": - version "0.2.2" - resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.2.2.tgz#99f20f0fcbbcda17006069b155c826cbabfc402f" - integrity sha512-OxqBB39x6MfHaa2HpMiRMfhuUnQTddD32Ko020eBeJXq87ivX6xnSSnzKHVbA21p7iqBASz8n/07b6W5wW1BVQ== - dependencies: - tslib "^1.14.1" - "@wry/trie@^0.3.0": version "0.3.0" resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.3.0.tgz#3245e74988c4e3033299e479a1bf004430752463" @@ -4158,7 +4023,7 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001181, caniuse-lite@^1.0.30001196, caniuse-lite@^1.0.30001219: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001196, caniuse-lite@^1.0.30001219: version "1.0.30001228" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001228.tgz#bfdc5942cd3326fa51ee0b42fbef4da9d492a7fa" integrity sha512-QQmLOGJ3DEgokHbMSA8cj2a+geXqmnpyOFT0lhQV6P3/YOJvGDEwoedcwxEQ30gJIwIIunHIicunJ2rzK5gB2A== @@ -4494,7 +4359,7 @@ color-string@^1.5.4: color-name "^1.0.0" simple-swizzle "^0.2.2" -color@^3.1.1, color@^3.1.3: +color@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e" integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ== @@ -4507,7 +4372,7 @@ colord@^2.0.0: resolved "https://registry.yarnpkg.com/colord/-/colord-2.0.0.tgz#f8c19f2526b7dc5b22d6e57ef102f03a2a43a3d8" integrity sha512-WMDFJfoY3wqPZNpKUFdse3HhD5BHCbE9JCdxRzoVH+ywRITGOeWAHNkGEmyxLlErEpN9OLMWgdM9dWQtDk5dog== -colorette@^1.2.1, colorette@^1.2.2: +colorette@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== @@ -4810,13 +4675,6 @@ css-color-names@^1.0.1: resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-1.0.1.tgz#6ff7ee81a823ad46e020fa2fd6ab40a887e2ba67" integrity sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA== -css-declaration-sorter@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.0.0.tgz#eb21f75860078627e9e3cc6f5535ccfcea445817" - integrity sha512-S0TE4E0ha5+tBHdLWPc5n+S8E4dFBS5xScPvgHkLNZwWvX4ISoFGhGeerLC9uS1cKA/sC+K2wHq6qEbcagT/fg== - dependencies: - timsort "^0.3.0" - css-declaration-sorter@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.0.3.tgz#9dfd8ea0df4cc7846827876fafb52314890c21a9" @@ -4953,7 +4811,7 @@ cssnano-preset-advanced@^5.1.1: postcss-reduce-idents "^5.0.1" postcss-zindex "^5.0.1" -cssnano-preset-default@^5.0.1, cssnano-preset-default@^5.1.1: +cssnano-preset-default@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.1.tgz#5cd783caed942cc94159aeb10583af4691445b8c" integrity sha512-kAhR71Tascmnjlhl4UegGA3KGGbMLXHkkqVpA9idsRT1JmIhIsz1C3tDpBeQMUw5EX5Rfb1HGc/PRqD2AFk3Vg== @@ -4988,7 +4846,7 @@ cssnano-preset-default@^5.0.1, cssnano-preset-default@^5.1.1: postcss-svgo "^5.0.1" postcss-unique-selectors "^5.0.1" -cssnano-utils@^2.0.0, cssnano-utils@^2.0.1: +cssnano-utils@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-2.0.1.tgz#8660aa2b37ed869d2e2f22918196a9a8b6498ce2" integrity sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ== @@ -5506,7 +5364,7 @@ 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.564, electron-to-chromium@^1.3.649, electron-to-chromium@^1.3.723: +electron-to-chromium@^1.3.564, electron-to-chromium@^1.3.723: version "1.3.727" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.727.tgz#857e310ca00f0b75da4e1db6ff0e073cc4a91ddf" integrity sha512-Mfz4FIB4FSvEwBpDfdipRIrwd6uo8gUDoRDF4QEYb4h4tSuI3ov594OrjU6on042UlFHouIJpClDODGkPcBSbg== @@ -7287,11 +7145,6 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -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= - infima@0.2.0-alpha.23: version "0.2.0-alpha.23" resolved "https://registry.yarnpkg.com/infima/-/infima-0.2.0-alpha.23.tgz#2c17b473784ae8244fd985f126f9c27a49b24523" @@ -8843,11 +8696,6 @@ lodash.some@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= -lodash.sortby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= - lodash.startcase@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" @@ -9349,7 +9197,7 @@ nan@^2.12.1: resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== -nanoid@^3.1.20, nanoid@^3.1.22, nanoid@^3.1.23: +nanoid@^3.1.23: version "3.1.23" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81" integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw== @@ -9436,7 +9284,7 @@ node-modules-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= -node-releases@^1.1.61, node-releases@^1.1.70, node-releases@^1.1.71: +node-releases@^1.1.61, node-releases@^1.1.71: version "1.1.71" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== @@ -9659,14 +9507,6 @@ opn@^5.5.0: dependencies: is-wsl "^1.1.0" -optimism@^0.14.0: - version "0.14.1" - resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.14.1.tgz#db35a0c770e16863f6c288f7cf58341a2348db44" - integrity sha512-7+1lSN+LJEtaj3uBLLFk8uFCFKy3txLvcvln5Dh1szXjF9yghEMeWclmnk0qdtYZ+lcMNyu48RmQQRw+LRYKSQ== - dependencies: - "@wry/context" "^0.5.2" - "@wry/trie" "^0.2.1" - optimism@^0.16.0: version "0.16.1" resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.16.1.tgz#7c8efc1f3179f18307b887e18c15c5b7133f6e7d" @@ -10002,7 +9842,7 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d" integrity sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg== @@ -10105,7 +9945,7 @@ postcss-calc@^8.0.0: postcss-selector-parser "^6.0.2" postcss-value-parser "^4.0.2" -postcss-colormin@^5.0.0, postcss-colormin@^5.1.1: +postcss-colormin@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.1.1.tgz#834d262f6021f832d9085e355f08ade288a92a1d" integrity sha512-SyTmqKKN6PyYNeeKEC0hqIP5CDuprO1hHurdW1aezDyfofDUOn7y7MaxcolbsW3oazPwFiGiY30XRiW1V4iZpA== @@ -10114,29 +9954,29 @@ postcss-colormin@^5.0.0, postcss-colormin@^5.1.1: colord "^2.0.0" postcss-value-parser "^4.1.0" -postcss-convert-values@^5.0.0, postcss-convert-values@^5.0.1: +postcss-convert-values@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.0.1.tgz#4ec19d6016534e30e3102fdf414e753398645232" integrity sha512-C3zR1Do2BkKkCgC0g3sF8TS0koF2G+mN8xxayZx3f10cIRmTaAnpgpRQZjNekTZxM2ciSPoh2IWJm0VZx8NoQg== dependencies: postcss-value-parser "^4.1.0" -postcss-discard-comments@^5.0.0, postcss-discard-comments@^5.0.1: +postcss-discard-comments@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz#9eae4b747cf760d31f2447c27f0619d5718901fe" integrity sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg== -postcss-discard-duplicates@^5.0.0, postcss-discard-duplicates@^5.0.1: +postcss-discard-duplicates@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz#68f7cc6458fe6bab2e46c9f55ae52869f680e66d" integrity sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA== -postcss-discard-empty@^5.0.0, postcss-discard-empty@^5.0.1: +postcss-discard-empty@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz#ee136c39e27d5d2ed4da0ee5ed02bc8a9f8bf6d8" integrity sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw== -postcss-discard-overridden@^5.0.0, postcss-discard-overridden@^5.0.1: +postcss-discard-overridden@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz#454b41f707300b98109a75005ca4ab0ff2743ac6" integrity sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q== @@ -10183,7 +10023,7 @@ postcss-merge-idents@^5.0.1: cssnano-utils "^2.0.1" postcss-value-parser "^4.1.0" -postcss-merge-longhand@^5.0.1, postcss-merge-longhand@^5.0.2: +postcss-merge-longhand@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.0.2.tgz#277ada51d9a7958e8ef8cf263103c9384b322a41" integrity sha512-BMlg9AXSI5G9TBT0Lo/H3PfUy63P84rVz3BjCFE9e9Y9RXQZD3+h3YO1kgTNsNJy7bBc1YQp8DmSnwLIW5VPcw== @@ -10192,7 +10032,7 @@ postcss-merge-longhand@^5.0.1, postcss-merge-longhand@^5.0.2: postcss-value-parser "^4.1.0" stylehacks "^5.0.1" -postcss-merge-rules@^5.0.0, postcss-merge-rules@^5.0.1: +postcss-merge-rules@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.0.1.tgz#4ff61c5089d86845184a0f149e88d687028bef7e" integrity sha512-UR6R5Ph0c96QB9TMBH3ml8/kvPCThPHepdhRqAbvMRDRHQACPC8iM5NpfIC03+VRMZTGXy4L/BvFzcDFCgb+fA== @@ -10203,14 +10043,14 @@ postcss-merge-rules@^5.0.0, postcss-merge-rules@^5.0.1: postcss-selector-parser "^6.0.5" vendors "^1.0.3" -postcss-minify-font-values@^5.0.0, postcss-minify-font-values@^5.0.1: +postcss-minify-font-values@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.0.1.tgz#a90cefbfdaa075bd3dbaa1b33588bb4dc268addf" integrity sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA== dependencies: postcss-value-parser "^4.1.0" -postcss-minify-gradients@^5.0.0, postcss-minify-gradients@^5.0.1: +postcss-minify-gradients@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.0.1.tgz#2dc79fd1a1afcb72a9e727bc549ce860f93565d2" integrity sha512-odOwBFAIn2wIv+XYRpoN2hUV3pPQlgbJ10XeXPq8UY2N+9ZG42xu45lTn/g9zZ+d70NKSQD6EOi6UiCMu3FN7g== @@ -10219,7 +10059,7 @@ postcss-minify-gradients@^5.0.0, postcss-minify-gradients@^5.0.1: is-color-stop "^1.1.0" postcss-value-parser "^4.1.0" -postcss-minify-params@^5.0.0, postcss-minify-params@^5.0.1: +postcss-minify-params@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.0.1.tgz#371153ba164b9d8562842fdcd929c98abd9e5b6c" integrity sha512-4RUC4k2A/Q9mGco1Z8ODc7h+A0z7L7X2ypO1B6V8057eVK6mZ6xwz6QN64nHuHLbqbclkX1wyzRnIrdZehTEHw== @@ -10230,7 +10070,7 @@ postcss-minify-params@^5.0.0, postcss-minify-params@^5.0.1: postcss-value-parser "^4.1.0" uniqs "^2.0.0" -postcss-minify-selectors@^5.0.0, postcss-minify-selectors@^5.1.0: +postcss-minify-selectors@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz#4385c845d3979ff160291774523ffa54eafd5a54" integrity sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og== @@ -10287,12 +10127,12 @@ postcss-nested@5.0.5: dependencies: postcss-selector-parser "^6.0.4" -postcss-normalize-charset@^5.0.0, postcss-normalize-charset@^5.0.1: +postcss-normalize-charset@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz#121559d1bebc55ac8d24af37f67bd4da9efd91d0" integrity sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg== -postcss-normalize-display-values@^5.0.0, postcss-normalize-display-values@^5.0.1: +postcss-normalize-display-values@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.1.tgz#62650b965981a955dffee83363453db82f6ad1fd" integrity sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ== @@ -10300,14 +10140,14 @@ postcss-normalize-display-values@^5.0.0, postcss-normalize-display-values@^5.0.1 cssnano-utils "^2.0.1" postcss-value-parser "^4.1.0" -postcss-normalize-positions@^5.0.0, postcss-normalize-positions@^5.0.1: +postcss-normalize-positions@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.0.1.tgz#868f6af1795fdfa86fbbe960dceb47e5f9492fe5" integrity sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg== dependencies: postcss-value-parser "^4.1.0" -postcss-normalize-repeat-style@^5.0.0, postcss-normalize-repeat-style@^5.0.1: +postcss-normalize-repeat-style@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.1.tgz#cbc0de1383b57f5bb61ddd6a84653b5e8665b2b5" integrity sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w== @@ -10315,14 +10155,14 @@ postcss-normalize-repeat-style@^5.0.0, postcss-normalize-repeat-style@^5.0.1: cssnano-utils "^2.0.1" postcss-value-parser "^4.1.0" -postcss-normalize-string@^5.0.0, postcss-normalize-string@^5.0.1: +postcss-normalize-string@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.0.1.tgz#d9eafaa4df78c7a3b973ae346ef0e47c554985b0" integrity sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA== dependencies: postcss-value-parser "^4.1.0" -postcss-normalize-timing-functions@^5.0.0, postcss-normalize-timing-functions@^5.0.1: +postcss-normalize-timing-functions@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.1.tgz#8ee41103b9130429c6cbba736932b75c5e2cb08c" integrity sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q== @@ -10330,7 +10170,7 @@ postcss-normalize-timing-functions@^5.0.0, postcss-normalize-timing-functions@^5 cssnano-utils "^2.0.1" postcss-value-parser "^4.1.0" -postcss-normalize-unicode@^5.0.0, postcss-normalize-unicode@^5.0.1: +postcss-normalize-unicode@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.1.tgz#82d672d648a411814aa5bf3ae565379ccd9f5e37" integrity sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA== @@ -10338,7 +10178,7 @@ postcss-normalize-unicode@^5.0.0, postcss-normalize-unicode@^5.0.1: browserslist "^4.16.0" postcss-value-parser "^4.1.0" -postcss-normalize-url@^5.0.0, postcss-normalize-url@^5.0.1: +postcss-normalize-url@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.0.1.tgz#ffa9fe545935d8b57becbbb7934dd5e245513183" integrity sha512-hkbG0j58Z1M830/CJ73VsP7gvlG1yF+4y7Fd1w4tD2c7CaA2Psll+pQ6eQhth9y9EaqZSLzamff/D0MZBMbYSg== @@ -10347,14 +10187,14 @@ postcss-normalize-url@^5.0.0, postcss-normalize-url@^5.0.1: normalize-url "^4.5.0" postcss-value-parser "^4.1.0" -postcss-normalize-whitespace@^5.0.0, postcss-normalize-whitespace@^5.0.1: +postcss-normalize-whitespace@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz#b0b40b5bcac83585ff07ead2daf2dcfbeeef8e9a" integrity sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA== dependencies: postcss-value-parser "^4.1.0" -postcss-ordered-values@^5.0.0, postcss-ordered-values@^5.0.1: +postcss-ordered-values@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.0.1.tgz#79ef6e2bd267ccad3fc0c4f4a586dfd01c131f64" integrity sha512-6mkCF5BQ25HvEcDfrMHCLLFHlraBSlOXFnQMHYhSpDO/5jSR1k8LdEXOkv+7+uzW6o6tBYea1Km0wQSRkPJkwA== @@ -10369,7 +10209,7 @@ postcss-reduce-idents@^5.0.1: dependencies: postcss-value-parser "^4.1.0" -postcss-reduce-initial@^5.0.0, postcss-reduce-initial@^5.0.1: +postcss-reduce-initial@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.0.1.tgz#9d6369865b0f6f6f6b165a0ef5dc1a4856c7e946" integrity sha512-zlCZPKLLTMAqA3ZWH57HlbCjkD55LX9dsRyxlls+wfuRfqCi5mSlZVan0heX5cHr154Dq9AfbH70LyhrSAezJw== @@ -10377,7 +10217,7 @@ postcss-reduce-initial@^5.0.0, postcss-reduce-initial@^5.0.1: browserslist "^4.16.0" caniuse-api "^3.0.0" -postcss-reduce-transforms@^5.0.0, postcss-reduce-transforms@^5.0.1: +postcss-reduce-transforms@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.1.tgz#93c12f6a159474aa711d5269923e2383cedcf640" integrity sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA== @@ -10385,15 +10225,6 @@ postcss-reduce-transforms@^5.0.0, postcss-reduce-transforms@^5.0.1: cssnano-utils "^2.0.1" postcss-value-parser "^4.1.0" -postcss-selector-parser@^3.1.2: - 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, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5: version "6.0.6" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" @@ -10409,7 +10240,7 @@ postcss-sort-media-queries@^3.10.11: dependencies: sort-css-media-queries "1.5.4" -postcss-svgo@^5.0.0, postcss-svgo@^5.0.1: +postcss-svgo@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.0.1.tgz#6ed5e01e164e59204978994d844c653a331a8100" integrity sha512-cD7DFo6tF9i5eWvwtI4irKOHCpmASFS0xvZ5EQIgEdA1AWfM/XiHHY/iss0gcKHhkqwgYmuo2M0KhJLd5Us6mg== @@ -10417,7 +10248,7 @@ postcss-svgo@^5.0.0, postcss-svgo@^5.0.1: postcss-value-parser "^4.1.0" svgo "^2.3.0" -postcss-unique-selectors@^5.0.0, postcss-unique-selectors@^5.0.1: +postcss-unique-selectors@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.0.1.tgz#3be5c1d7363352eff838bd62b0b07a0abad43bfc" integrity sha512-gwi1NhHV4FMmPn+qwBNuot1sG1t2OmacLQ/AX29lzyggnjd+MnVD5uqQmpXO3J17KGL2WAxQruj1qTd3H0gG/w== @@ -11480,11 +11311,6 @@ safe-buffer@5.1.2, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -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== - safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" @@ -12268,7 +12094,7 @@ styled-components@5.3.0: shallowequal "^1.1.0" supports-color "^5.5.0" -stylehacks@^5.0.0, stylehacks@^5.0.1: +stylehacks@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.0.1.tgz#323ec554198520986806388c7fdaebc38d2c06fb" integrity sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA== @@ -12659,15 +12485,6 @@ ts-essentials@^2.0.3: resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-2.0.12.tgz#c9303f3d74f75fa7528c3d49b80e089ab09d8745" integrity sha512-3IVX4nI6B5cc31/GFFE+i8ey/N2eA0CZDbo6n0yrz0zDX8ZJ8djmU1p+XRz7G3is0F3bB3pu2pAroFdAWQKU3w== -ts-invariant@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.6.2.tgz#2b95c0f25dd9da0c1d3b921e23ee5593133694d4" - integrity sha512-hsVurayufl1gXg8CHtgZkB7X0KtA3TrI3xcJ9xkRr8FeJHnM/TIEQkgBq9XkpduyBWWUdlRIR9xWf4Lxq3LJTg== - dependencies: - "@types/ungap__global-this" "^0.3.1" - "@ungap/global-this" "^0.4.2" - tslib "^1.9.3" - ts-invariant@^0.7.0: version "0.7.3" resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.7.3.tgz#13aae22a4a165393aaf5cecdee45ef4128d358b8" @@ -12718,7 +12535,7 @@ tslib@1.11.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== -tslib@^1.10.0, tslib@^1.11.1, tslib@^1.14.1, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: +tslib@^1.10.0, tslib@^1.11.1, tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== @@ -12959,11 +12776,6 @@ 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" @@ -13771,7 +13583,7 @@ yargs-parser@^13.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^18.1.1, yargs-parser@^18.1.2, yargs-parser@^18.1.3: +yargs-parser@^18.1.1, 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==